Skip to content

Commit

Permalink
Added linux compilation commands to FMU makefile.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@9337 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Azam Zia committed Jun 22, 2011
1 parent e59c028 commit 1fdf393
Showing 1 changed file with 52 additions and 26 deletions.
78 changes: 52 additions & 26 deletions Compiler/susan_codegen/SimCode/SimCodeFMU.tpl
Expand Up @@ -842,6 +842,56 @@ match simVar
>>
end SwitchAliasVarsSet;

template getPlatformString2(String platform, String fileNamePrefix, String dirExtra, String libsPos1, String libsPos2)
"returns compilation commands for the platform. "
::=
match platform
case "WIN32" then
<<
<%fileNamePrefix%>_FMU: <%fileNamePrefix%>.def
<%\t%> dlltool -d <%fileNamePrefix%>.def --dllname <%fileNamePrefix%>.dll --output-lib <%fileNamePrefix%>.lib --kill-at

<%\t%> mv <%fileNamePrefix%>.dll <%fileNamePrefix%>/binaries/<%platform%>/
<%\t%> mv <%fileNamePrefix%>.lib <%fileNamePrefix%>/binaries/<%platform%>/
<%\t%> mv <%fileNamePrefix%>.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>.c
<%\t%> mv <%fileNamePrefix%>_FMU.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_FMU.c
<%\t%> mv <%fileNamePrefix%>_functions.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_functions.c
<%\t%> mv <%fileNamePrefix%>_functions.h <%fileNamePrefix%>/sources/<%fileNamePrefix%>_functions.h
<%\t%> mv <%fileNamePrefix%>_records.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_records.c
<%\t%> mv modelDescription.xml <%fileNamePrefix%>/modelDescription.xml
<%\t%> cd <%fileNamePrefix%>; zip -r <%fileNamePrefix%>.fmu *

<%fileNamePrefix%>.def: <%fileNamePrefix%>.dll
<%\t%> $(CXX) -shared -I. -o <%fileNamePrefix%>.dll <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o -I"C:/dev/OpenModelica/build//include/omc" -I. -lsim -linteractive -O3 -falign-functions -msse2 -mfpmath=sse -lsendData -lQtNetwork-mingw -lQtCore-mingw -lQtGui-mingw -luuid -lole32 -lws2_32 -L"C:/dev/OpenModelica/build//lib/omc" -lc_runtime -lregex -lexpat -Wl,-Bstatic -lf2c -Wl,--output-def,<%fileNamePrefix%>.def

<%fileNamePrefix%>.dll: <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o
<%\t%> $(CXX) -shared -I. -o <%fileNamePrefix%>.dll <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o -I"C:/dev/OpenModelica/build//include/omc" -I. -lsim -linteractive -O3 -falign-functions -msse2 -mfpmath=sse -lsendData -lQtNetwork-mingw -lQtCore-mingw -lQtGui-mingw -luuid -lole32 -lws2_32 -L"C:/dev/OpenModelica/build//lib/omc" -lc_runtime -lregex -lexpat -Wl,-Bstatic -lf2c -Wl,--kill-at

<%fileNamePrefix%>_FMU2.o:
<%\t%> $(CXX) -O3 -falign-functions -msse2 -mfpmath=sse -I"C:/dev/OpenModelica/build//include/omc" -I. -c -o <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>_FMU.c

<%fileNamePrefix%>.o:
<%\t%> $(CC) -O3 -falign-functions -msse2 -mfpmath=sse -I"C:/dev/OpenModelica/build//include/omc" -I. -c -o <%fileNamePrefix%>.o <%fileNamePrefix%>.c

<%fileNamePrefix%>_records.o:
<%\t%> $(CC) -O3 -falign-functions -msse2 -mfpmath=sse -I"C:/dev/OpenModelica/build//include/omc" -I. -c -o <%fileNamePrefix%>_records.o <%fileNamePrefix%>_records.c
>>
case "LINUX" then
<<
<%fileNamePrefix%>_FMU: $(MAINFILE) <%fileNamePrefix%>_FMU.c <%fileNamePrefix%>_functions.c <%fileNamePrefix%>_functions.h <%fileNamePrefix%>_records.c
<%\t%> $(CC) -I. -o <%fileNamePrefix%>$(DLLEXT) $(MAINFILE) -lsim -linteractive <%dirExtra%> <%libsPos1%> <%libsPos2%> $(CFLAGS) $(SENDDATALIBS) $(LDFLAGS) <%match System.os() case "OSX" then "-lf2c" else "-Wl,-Bstatic -Wl,-Bdynamic"%>
<%\t%> mv <%fileNamePrefix%>$(DLLEXT) <%fileNamePrefix%>/binaries/<%platform%>/
<%\t%> mv <%fileNamePrefix%>.lib <%fileNamePrefix%>/binaries/<%platform%>/
<%\t%> mv <%fileNamePrefix%>.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>.c
<%\t%> mv <%fileNamePrefix%>_FMU.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_FMU.c
<%\t%> mv <%fileNamePrefix%>_functions.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_functions.c
<%\t%> mv <%fileNamePrefix%>_functions.h <%fileNamePrefix%>/sources/<%fileNamePrefix%>_functions.h
<%\t%> mv <%fileNamePrefix%>_records.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_records.c
<%\t%> mv modelDescription.xml <%fileNamePrefix%>/modelDescription.xml
<%\t%> cd <%fileNamePrefix%>; zip -r <%fileNamePrefix%>.fmu *
>>
end getPlatformString2;

template fmuMakefile(SimCode simCode)
"Generates the contents of the makefile for the simulation case."
::=
Expand All @@ -856,6 +906,7 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
case "inline-euler" then "-D_OMC_INLINE_EULER"
case "inline-rungekutta" then "-D_OMC_INLINE_RK"%>'
let platfrom = getPlatformString(makefileParams.platform)
let compilecmds = getPlatformString2(makefileParams.platform, fileNamePrefix, dirExtra, libsPos1, libsPos2)
<<
# Makefile generated by OpenModelica

Expand All @@ -874,33 +925,8 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
MAINFILE=<%fileNamePrefix%>_FMU<% if acceptMetaModelicaGrammar() then ".conv"%>.c

.PHONY: <%fileNamePrefix%>_FMU
<%fileNamePrefix%>_FMU: <%fileNamePrefix%>.def
<%\t%> dlltool -d <%fileNamePrefix%>.def --dllname <%fileNamePrefix%>.dll --output-lib <%fileNamePrefix%>.lib --kill-at
<%\t%> mv <%fileNamePrefix%>$(DLLEXT) <%fileNamePrefix%>/binaries/<%platfrom%>/
<%\t%> mv <%fileNamePrefix%>.lib <%fileNamePrefix%>/binaries/<%platfrom%>/
<%\t%> mv <%fileNamePrefix%>.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>.c
<%\t%> mv <%fileNamePrefix%>_FMU.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_FMU.c
<%\t%> mv <%fileNamePrefix%>_functions.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_functions.c
<%\t%> mv <%fileNamePrefix%>_functions.h <%fileNamePrefix%>/sources/<%fileNamePrefix%>_functions.h
<%\t%> mv <%fileNamePrefix%>_records.c <%fileNamePrefix%>/sources/<%fileNamePrefix%>_records.c
<%\t%> mv modelDescription.xml <%fileNamePrefix%>/modelDescription.xml
<%\t%> cd <%fileNamePrefix%>; zip -r <%fileNamePrefix%>.fmu *

<%fileNamePrefix%>.def: <%fileNamePrefix%>.dll
<%\t%> $(CXX) -shared -I. -o <%fileNamePrefix%>.dll <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o -I"C:/dev/OpenModelica/build//include/omc" -I. -lsim -linteractive -O3 -falign-functions -msse2 -mfpmath=sse -lsendData -lQtNetwork-mingw -lQtCore-mingw -lQtGui-mingw -luuid -lole32 -lws2_32 -L"C:/dev/OpenModelica/build//lib/omc" -lc_runtime -lregex -lexpat -Wl,-Bstatic -lf2c -Wl,--output-def,<%fileNamePrefix%>.def

<%fileNamePrefix%>.dll: <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o
<%\t%> $(CXX) -shared -I. -o <%fileNamePrefix%>.dll <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>.o <%fileNamePrefix%>_records.o -I"C:/dev/OpenModelica/build//include/omc" -I. -lsim -linteractive -O3 -falign-functions -msse2 -mfpmath=sse -lsendData -lQtNetwork-mingw -lQtCore-mingw -lQtGui-mingw -luuid -lole32 -lws2_32 -L"C:/dev/OpenModelica/build//lib/omc" -lc_runtime -lregex -lexpat -Wl,-Bstatic -lf2c -Wl,--kill-at

<%fileNamePrefix%>_FMU2.o:
<%\t%> $(CXX) -O3 -falign-functions -msse2 -mfpmath=sse -I"C:/dev/OpenModelica/build//include/omc" -I. -c -o <%fileNamePrefix%>_FMU2.o <%fileNamePrefix%>_FMU.c
<%compilecmds%>

<%fileNamePrefix%>.o:
<%\t%> $(CC) -O3 -falign-functions -msse2 -mfpmath=sse -I"C:/dev/OpenModelica/build//include/omc" -I. -c -o <%fileNamePrefix%>.o <%fileNamePrefix%>.c

<%fileNamePrefix%>_records.o:
<%\t%> $(CC) -O3 -falign-functions -msse2 -mfpmath=sse -I"C:/dev/OpenModelica/build//include/omc" -I. -c -o <%fileNamePrefix%>_records.o <%fileNamePrefix%>_records.c

<%\t%> mkdir -p <%fileNamePrefix%>
<%\t%> mkdir -p <%fileNamePrefix%>/binaries
<%\t%> mkdir -p <%fileNamePrefix%>/binaries/<%platfrom%>
Expand Down

0 comments on commit 1fdf393

Please sign in to comment.