/
Makefile.common
91 lines (71 loc) · 3.42 KB
/
Makefile.common
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# 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.
include Makefile.objs
AR = ar -ru
ANSI=# -ansi
CXXFLAGS := $(CFLAGS) -mfpmath=sse -Wall $(ANSI) $(EXTRA_CFLAGS) -I. -I$(UTILPATH)
CPPFLAGS := $(CFLAGS) -mfpmath=sse -Wall $(ANSI) $(EXTRA_CFLAGS) -I. -I$(UTILPATH)
CFLAGS := $(CFLAGS) -mfpmath=sse -Wall $(ANSI) -pedantic -I. -I$(METAPATH) -I$(METAPATH)gc $(EXTRA_CFLAGS)
FFLAGS = -O -fexceptions
# P.A: before, g77 had -O3 or -O2 but that caused a bug in DDASRT, giving infinite loop.
.PHONY : clean all ModelicaExternalC/libModelicaExternalC.a $(LIBF2C)
all : install
#recompile all if a header changes!
$(ALL_OBJS) : $(ALL_HEADERS)
libSimulationRuntimeC.a: $(ALL_OBJS)
@# You have to remove the old archive first or it may contain old objects
@rm -f $@
$(AR) $@ $(ALL_OBJS)
ranlib $@
$(METAOBJSPATH):%.o: %.c $(METAHFILESPATH) $(COMMON_HEADERS)
$(CC) -c $(CFLAGS) -o $@ $< -I$(METAPATH) -I$(UTILPATH)
meta/meta_modelica_catch.o: meta/meta_modelica_catch.c
$(CC) -c $(CFLAGS) -o $@ $< -g
$(UTILOBJSPATH):%.o: %.c $(UTILHFILESPATH) $(COMMON_HEADERS)
$(CC) -c $(CFLAGS) -o $@ $< -I$(UTILPATH) -I$(METAPATH)
$(MATHOBJSPATH):%.o: %.c $(MATHHFILESPATH) $(COMMON_HEADERS)
$(CC) -c $(CFLAGS) -o $@ $< -I$(MATHPATH) -I$(MATHPATH) -I$(UTILPATH)
$(SOLVEROBJSPATH):%.o: %.c $(SOLVERHFILESPATH) $(COMMON_HEADERS)
$(CC) -c $(CFLAGS) -o $@ $< -I$(SOLVERPATH) -I$(SIMPATH) -I$(MATHPATH) -I$(UTILPATH)
$(RESULTSOBJSPATH):%.o: $(RESULTSFILESPATH) $(COMMON_HEADERS)
$(SIMOBJSPATH):%.o: %.cpp linearization/linearize.cpp $(SIMHFILESPATH) $(COMMON_HEADERS)
$(CXX) -c $(CXXFLAGS) -o $@ $< -I$(SIMPATH) -I$(UTILPATH) -I$(MATHPATH) -I$(RESULTSPATH) -I$(SOLVERPATH) -Ilinearization/
ModelicaExternalC/libModelicaExternalC.a: $(addprefix ModelicaExternalC/,ModelicaInternal.c ModelicaStrings.c ModelicaTablesImpl.c) $(HFILES)
$(MAKE) -C ModelicaExternalC -f $(EXTERNALCMAKEFILE)
simulation/libf2c/libf2c.a:
$(MAKE) -C simulation/libf2c -f ${LIBMAKEFILE}
install: ModelicaExternalC/libModelicaExternalC.a libSimulationRuntimeC.a simulation/libf2c/libf2c.a $(ALL_OBJS) omdevinstall
# copy libraries
cp ./libSimulationRuntimeC.a \
./ModelicaExternalC/libModelicaExternalC.a \
../interactive/libinteractive.a $(builddir_lib)
test -z "$(LIBF2C)" || cp simulation/libf2c/libf2c.* $(builddir_lib)/
# copy header files
cp ./inline.h \
./openmodelica.h \
./ModelicaExternalC/ModelicaUtilities.h \
./openmodelica_func.h \
./simulation_data.h \
./f2c.h \
./util/*.h \
./math-support/*.h \
./simulation/*.h \
./simulation/solver/*.h \
./simulation/results/*.h \
./meta/*.h ./meta/gc/*.h $(builddir_inc)
# copy fmi stuff
cp ../fmi/export/*.h \
../fmi/export/fmu_model_interface.c \
../../FMI/import/source/fmuWrapper.h \
../../FMI/import/source/xmlparser.h $(builddir_inc)
# copy java interface stuff
@$(MAKE) -C util/java_interface -f $(LIBMAKEFILE) && \
$(MAKE) -C util/java_interface -f $(LIBMAKEFILE) install || \
$(MAKE) -C util/java_interface -f $(LIBMAKEFILE) install-nomodelica
clean:
rm -f $(ALL_PATHS_CLEAN_OBJS) *.a
$(MAKE) -C ModelicaExternalC -f ${LIBMAKEFILE} clean
$(MAKE) -C simulation/libf2c -f ${LIBMAKEFILE} clean