Skip to content

Commit

Permalink
- added new structure in SimulationRuntime/{c,fmi}.
Browse files Browse the repository at this point in the history
   Copy almost all stuff from c_runtime to SimulationRuntime.
   


git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@10339 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Willi Braun committed Nov 8, 2011
1 parent aca7f57 commit b718cec
Show file tree
Hide file tree
Showing 242 changed files with 65,362 additions and 0 deletions.
191 changes: 191 additions & 0 deletions SimulationRuntime/c/Makefile.common
@@ -0,0 +1,191 @@
AR = ar -ru
ANSI= #-ansi
CXXFLAGS := $(CFLAGS) -Wall $(ANSI) $(EXTRA_CFLAGS)
CFLAGS := $(CFLAGS) -Wall $(ANSI) -pedantic $(EXTRA_CFLAGS)
CPPFLAGS = -I. -Iinteractive/ -Imeta/ -I../
FFLAGS = -O -fexceptions
# P.A: before, g77 had -O3 or -O2 but that caused a bug in DDASRT, giving infinite loop.

META_OBJS = \
meta/meta_modelica.o \
meta/meta_modelica_builtin.o \
meta/meta_modelica_real.o \
meta/meta_modelica_string_lit.o \
meta/meta_modelica_catch.o \
meta/meta_modelica_gc.o \
meta/meta_modelica_gc_list.o \
meta/meta_modelica_gc_stack.o \
meta/meta_modelica_gc_roots.o \
meta/meta_modelica_gc_pages.o \
meta/meta_modelica_gc_stats.o \
meta/meta_modelica_gc_settings.o

OBJS = boolean_array.o index_spec.o integer_array.o memory_pool.o \
base_array.o real_array.o string_array.o utility.o \
modelica_string.o bigden.o \
ddasrt.o dlinpk.o enorm.o hybrd1.o nelmead.o qform.o r1updt.o \
biglag.o ddassl.o dogleg.o fdjac1.o hybrj.o newuoa.o qrfac.o trsapp.o \
daux.o dlamch.o dpmpar.o hybrd.o lsame.o newuob.o r1mpyq.o update.o division.o\
java_interface.o rtclock.o ModelicaUtilities.o \
simulation_varinfo.o read_matlab4.o read_csv.o \
simulation_init.o simulation_input.o simulation_input_xml.o \
simulation_events.o linearize.o solver_main.o \
simulation_result_plt.o simulation_result_csv.o \
simulation_result_mat.o simulation_delay.o tables.o options.o dgesv_aux.o \
simulation_modelinfo.o \
$(META_OBJS) \
$(EXTRA_OBJS) \
$(EXTRA_SIMOBJS)

SIM_OBJS = $(OBJS) simulation_runtime.o

QSS_OBJS = $(OBJS) \
simulation_runtime_qss.o \
solver_qss/solver_qss.o \
solver_qss/sampler.o \
solver_qss/integrator.o \
solver_qss/qss_signal.o \
solver_qss/static_function.o \
solver_qss/cross_detector.o

META_HFILES = \
meta/rml_compatibility.h \
meta/meta_modelica_builtin.h \
meta/meta_modelica_builtin_boxptr.h \
meta/meta_modelica_gc.h \
meta/meta_modelica_real.h \
meta/meta_modelica_string_lit.h \
meta/meta_modelica.h \
meta/meta_modelica_gc_stack.h \
meta/meta_modelica_gc_list.h \
meta/meta_modelica_gc_roots.h \
meta/meta_modelica_gc_pages.h \
meta/meta_modelica_gc_stats.h \
meta/meta_modelica_gc_settings.h

HFILES = \
base_array.h \
blaswrap.h \
boolean_array.h \
compat.h \
division.h \
f2c.h \
fortran_types.h \
index_spec.h \
inline.h \
integer_array.h \
java_interface.h \
jni.h \
jni_md.h \
jni_md_solaris.h \
jni_md_windows.h \
matrix.h \
memory_pool.h \
modelica.h \
modelica_string.h \
ModelicaUtilities.h \
omc_msvc.h \
read_matlab4.h \
read_csv.h \
real_array.h \
ringbuffer.h \
rtclock.h \
sendData/sendData.h \
simulation_delay.h \
simulation_events.h \
simulation_init.h \
simulation_inline_solver.h \
simulation_input.h \
simulation_input_xml.h \
simulation_modelinfo.h \
simulation_result_csv.h \
simulation_result_empty.h \
simulation_result.h \
simulation_result_mat.h \
simulation_result_plt.h \
simulation_runtime.h \
simulation_varinfo.h \
solver_main.h \
string_array.h \
utility.h \
linearize.h \
fmu_model_interface.h \
fmiModelFunctions.h \
fmiModelTypes.h \
solver_qss/solver_qss.h \
$(META_HFILES)

LIBS = libSimulationRuntimeC.a libSimulationRuntimeQss.a interactive/libinteractive.a \
ModelicaExternalC/libModelicaExternalC.a

.PHONY : libsendData.a interactive/libinteractive.a ModelicaExternalC/libModelicaExternalC.a

all : install

simulation_result_plt.o : $(CONFIG_H)

#recompile all if a header changes!
$(SIM_OBJS) : $(HFILES)
$(QSS_OBJS) : $(HFILES)

# Commented out due to the script not running on all platform, and rarely changes
#meta/meta_modelica_string_lit.h: meta/meta_modelica_gen_string_lit.sh
# sh $< h > $@.tmp
# mv $@.tmp $@
#meta/meta_modelica_string_lit.c: meta/meta_modelica_gen_string_lit.sh
# sh $< > $@.tmp
# mv $@.tmp $@

libSimulationRuntimeC.a : $(SIM_OBJS) $(HFILES)
$(AR) $@ $(SIM_OBJS)
ranlib $@

libSimulationRuntimeQss.a : $(QSS_OBJS) $(HFILES)
$(AR) $@ $(QSS_OBJS)
ranlib $@

simulation_runtime_qss.o: simulation_runtime.cpp
$(CXX) $(CPPFLAGS) -c -o $@ simulation_runtime.cpp -D_OMC_QSS_LIB

ModelicaExternalC/libModelicaExternalC.a: $(addprefix ModelicaExternalC/,ModelicaInternal.c ModelicaStrings.c ModelicaTablesImpl.c) $(HFILES)
$(MAKE) -C ModelicaExternalC -f $(EXTERNALCMAKEFILE)

interactive/libinteractive.a : interactive/omi_Calculation.cpp interactive/omi_Control.cpp interactive/omi_ResultManager.cpp interactive/omi_ServiceInterface.cpp interactive/omi_Transfer.cpp interactive/socket.cpp interactive/thread.cpp
$(MAKE) -C interactive -f $(INTERACTIVEMAKEFILE)

libf2c/libf2c.a :
cd libf2c && $(MAKE) -f $(LIBF2CMAKEFILE)
ranlib $@

meta/meta_modelica_catch.o : meta/meta_modelica_catch.c
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ -g $<

# Requires IEEE floating-point precision
simulation_input.o : simulation_input.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -mfpmath=sse -c -g $<
simulation_events.o : simulation_events.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -mfpmath=sse -c -g $<

install: libSimulationRuntimeC.a libSimulationRuntimeQss.a $(LIBF2C) interactive/libinteractive.a $(LIBSENDDATA) omdevinstall ModelicaExternalC/libModelicaExternalC.a
cp $(HFILES) $(builddir_inc)/
cp fmu_model_interface.c $(builddir_inc)/
cp $(LIBS) $(builddir_lib)/
test -z "$(LIBF2C)" || cp libf2c/libf2c.* $(builddir_lib)/
test -z "$(LIBSENDDATA)" || cp sendData/release/$(LIBSENDDATA) $(builddir_lib)/
cp interactive/libinteractive.a $(builddir_lib)/
@$(MAKE) -C java_interface -f $(JAVAMAKEFILE) && \
$(MAKE) -C java_interface -f $(JAVAMAKEFILE) install || \
$(MAKE) -C java_interface -f $(JAVAMAKEFILE) install-nomodelica

clean :
test -z "$(LIBF2C)" || $(MAKE) -C libf2c -f $(LIBF2CMAKEFILE) clean
$(MAKE) -C java_interface -f $(JAVAMAKEFILE) clean
$(MAKE) -C interactive -f $(INTERACTIVEMAKEFILE) clean
$(MAKE) -C ModelicaExternalC -f $(EXTERNALCMAKEFILE) clean
rm -f libSimulationRuntimeC.a libSimulationRuntimeQss.a
rm -f $(OBJS) $(SIM_OBJS) $(QSS_OBJS)
cd sendData && rm -fr release debug *sendData*.o *sendData*.a
rm -rf sendData/release sendData/debug
rm -f sendData.o sendData.a sendData/sendDataHumbug.o sendData/releasesendData.o sendData/Makefile solver_qss/*.o


34 changes: 34 additions & 0 deletions SimulationRuntime/c/Makefile.in
@@ -0,0 +1,34 @@
# Adrian Pop, adrpo@ida.liu.se, Martin Sjölund, marsj@ida.liu.se
# - Use make -f Makefile.omdev.mingw if you want to compile on Windows/MinGW
# - Please leave the UNIX Makefile as it is if you are not using UNIX/Linux
# If you need to add files, etc, you modify Makefile.common - a common file
# for both UNIX/Linux and Windows platforms.

top_builddir = ..
builddir_bin=$(top_builddir)/build/bin
builddir_lib=$(top_builddir)/build/lib/omc
builddir_inc=$(top_builddir)/build/include/omc

CC := @CC@
CXX := @CXX@
CFLAGS := @CFLAGS@

LIBF2CMAKEFILE = makefile.u
JAVAMAKEFILE = Makefile
INTERACTIVEMAKEFILE = Makefile
EXTERNALCMAKEFILE = Makefile
INTERACTIVELIBS = "-lpthread"
LIBSENDDATA = @LIBSENDDATA@
QMAKE=@QMAKE@
CONFIG_H=$(top_builddir)/Compiler/runtime/config.h $(top_builddir)/Compiler/runtime/config.unix.h
# Use f2c from the OS itself...
LIBF2C=@LIBF2C@

include Makefile.common

libsendData.a :
cd ./sendData && $(QMAKE) && $(MAKE) -f Makefile
omdevinstall:

Makefile: Makefile.in
cd $(top_builddir); ./config.status
13 changes: 13 additions & 0 deletions SimulationRuntime/c/ModelicaExternalC/CMakeLists.txt
@@ -0,0 +1,13 @@
# Sources and Headers
set(ModelicaExternalC_sources ModelicaInternal.c ModelicaStrings.c ModelicaTablesImpl.c)

SET(ModelicaExternalC_headers ModelicaTables.h)

# Library ModelicaExternalC
add_library(ModelicaExternalC ${ModelicaExternalC_sources} ${ModelicaExternalC_headers})

# Install
INSTALL(TARGETS ModelicaExternalC
ARCHIVE DESTINATION lib)
INSTALL(FILES f2c.h DESTINATION include)

17 changes: 17 additions & 0 deletions SimulationRuntime/c/ModelicaExternalC/Makefile.in
@@ -0,0 +1,17 @@
CC = @CC@
CFLAGS := @CFLAGS@
CPPFLAGS := @CPPFLAGS@ -I.. -Dlinux -Dstatic=
OBJS = ModelicaInternal.o ModelicaStrings.o ModelicaTablesImpl.o
AR = ar -ru

all: libModelicaExternalC.a

libModelicaExternalC.a : $(OBJS)
$(AR) $@ $(OBJS)
ranlib $@

clean:
rm -f libModelicaExternalC.a $(OBJS)

Makefile: Makefile.in
cd ../../; ./config.status

0 comments on commit b718cec

Please sign in to comment.