diff --git a/OMCompiler/3rdParty b/OMCompiler/3rdParty index 2cba3820fde..f98c1d3d7e9 160000 --- a/OMCompiler/3rdParty +++ b/OMCompiler/3rdParty @@ -1 +1 @@ -Subproject commit 2cba3820fde2c0992237a162f127a4e4137882fa +Subproject commit f98c1d3d7e906aa827eaa9f31590e77d2db35c36 diff --git a/OMCompiler/Compiler/boot/Makefile.in b/OMCompiler/Compiler/boot/Makefile.in index 07ede27f020..3848d20d9c4 100644 --- a/OMCompiler/Compiler/boot/Makefile.in +++ b/OMCompiler/Compiler/boot/Makefile.in @@ -23,7 +23,7 @@ endif LDFLAGS=-L. -L$(GEN_DIR) -L"$(OMHOME)/$(LIB_OMC)" $(LOMPARSE) $(LCOMPILERRUNTIME) -lOpenModelicaRuntimeC -lModelicaExternalC -lModelicaIO -lModelicaMatIO -lzlib -lomantlr3 $(CORBALIBS) $(FMILIB_OR_BOOT) @RT_LDFLAGS@ @LIBSOCKET@ @LIBLPSOLVE55@ @OMC_LIBS@ @GRAPHLIB@ @LD_LAPACK@ -lzmq $(OMENCRYPTIONLIBS) LDFLAGS_SHARED_MAIN=-L"$(OMHOME)/$(LIB_OMC)" @RT_LDFLAGS_SHARED@ ifeq (@WITH_FMIL@,yes) -FMILIB = $(TOP_DIR)/3rdParty/FMIL/install/lib/libfmilib.a +FMILIB = $(TOP_DIR)/3rdParty/FMIL/install/"$(LIB_OMC)"/libfmilib.a endif CPPFLAGS=-I"$(OMHOME)/include/omc/c" -I../Util/ @CPPFLAGS@ -DADD_METARECORD_DEFINITIONS= CORBALIBS=@CORBALIBS@ diff --git a/OMCompiler/Makefile.common b/OMCompiler/Makefile.common index 0b6e5d4e8b1..95d45c57487 100644 --- a/OMCompiler/Makefile.common +++ b/OMCompiler/Makefile.common @@ -175,7 +175,7 @@ ipopt: $(OMBUILDDIR)/$(LIB_OMC)/libipopt.la $(UMFPACK_LIB_TARGET): 3rdParty/SuiteSparse/CMakeLists.txt mkdir -p 3rdParty/SuiteSparse/build - cd 3rdParty/SuiteSparse/build && $(CMAKE) .. -G $(CMAKE_TARGET) -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_INSTALL_PREFIX:PATH="$(OMBUILDDIR)" -DLIB_OMC="$(LIB_OMC)" -DBUILD_SHARED_LIBS:Bool=$(UMFPACK_SHARED) + cd 3rdParty/SuiteSparse/build && $(CMAKE) .. -G $(CMAKE_TARGET) -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_INSTALL_PREFIX:PATH="$(OMBUILDDIR)" -DCMAKE_INSTALL_LIBDIR="$(LIB_OMC)" -DBUILD_SHARED_LIBS:Bool=$(UMFPACK_SHARED) $(MAKE) -C 3rdParty/SuiteSparse/build install test ! `uname` = Darwin || install_name_tool -id @rpath/libumfpack.dylib "$@" test ! `uname` = Darwin || install_name_tool -id @rpath/libamd.dylib "$(OMBUILDDIR)/$(LIB_OMC)/libamd$(SHREXT)" @@ -355,10 +355,10 @@ $(OMBUILDDIR)/$(LIB_OMC)/$(LIBFMILIB): 3rdParty/FMIL/build/Makefile @# Pass CC/CFLAGS/CPPFLAGS because FMIL does not configure subprojects with the selected CC. Shocking; a cmake project not working the way it should. test -f 3rdParty/FMIL/build/$(LIBFMILIB) || CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" $(MAKE) -C 3rdParty/FMIL/build test -d 3rdParty/FMIL/install || $(MAKE) -C 3rdParty/FMIL/build install - test "(" ! `uname` = Darwin ")" -o "(" ! -f 3rdParty/FMIL/install/lib/libfmilib_shared$(SHREXT) ")" || install_name_tool -id @rpath/libfmilib_shared$(SHREXT) 3rdParty/FMIL/install/lib/libfmilib_shared$(SHREXT) - cp -pPR 3rdParty/FMIL/install/lib/$(LIBFMILIB) $(builddir_lib_omc) + test "(" ! `uname` = Darwin ")" -o "(" ! -f 3rdParty/FMIL/install/$(LIB_OMC)/libfmilib_shared$(SHREXT) ")" || install_name_tool -id @rpath/libfmilib_shared$(SHREXT) 3rdParty/FMIL/install/$(LIB_OMC)/libfmilib_shared$(SHREXT) + cp -pPR 3rdParty/FMIL/install/$(LIB_OMC)/$(LIBFMILIB) $(builddir_lib_omc) @if [ "$(FMILIB_SHARED)" = "ON" ]; then\ - cp -v -pPR 3rdParty/FMIL/install/lib/libfmilib_shared$(SHREXT) $(builddir_lib_omc);\ + cp -v -pPR 3rdParty/FMIL/install/$(LIB_OMC)/libfmilib_shared$(SHREXT) $(builddir_lib_omc);\ fi test ! -f $(OMBUILDDIR)/$(LIB_OMC)/libfmilib_shared$(SHREXT) || ln -sf libfmilib_shared$(SHREXT) $(OMBUILDDIR)/$(LIB_OMC)/libfmilib$(SHREXT) #TODO: Only copy required headers, add them in omc/fmi subfolder, and do not copy c/txt-files @@ -368,7 +368,7 @@ $(OMBUILDDIR)/$(LIB_OMC)/$(LIBFMILIB): 3rdParty/FMIL/build/Makefile 3rdParty/FMIL/build/Makefile: 3rdParty/FMIL/CMakeLists.txt test -d 3rdParty/FMIL mkdir -p 3rdParty/FMIL/build - (cd 3rdParty/FMIL/build && test -f Makefile || CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" $(CMAKE) -D CMAKE_AR:String="$(AR)" $(MINGW_FMIL_FLAGS) -D FMILIB_BUILD_SHARED_LIB:Bool=$(FMILIB_SHARED) -D FMILIB_BUILD_TESTS:Bool=OFF -D FMILIB_GENERATE_DOXYGEN_DOC:Bool=OFF -DCMAKE_COLOR_MAKEFILE:Bool=OFF -DCMAKE_INSTALL_PREFIX:String=../install .. -G $(CMAKE_TARGET)) + (cd 3rdParty/FMIL/build && test -f Makefile || CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" $(CMAKE) -D CMAKE_AR:String="$(AR)" $(MINGW_FMIL_FLAGS) -D FMILIB_BUILD_SHARED_LIB:Bool=$(FMILIB_SHARED) -D FMILIB_BUILD_TESTS:Bool=OFF -D FMILIB_GENERATE_DOXYGEN_DOC:Bool=OFF -DCMAKE_COLOR_MAKEFILE:Bool=OFF -DCMAKE_INSTALL_PREFIX:String=../install -DCMAKE_INSTALL_LIBDIR="$(LIB_OMC)" .. -G $(CMAKE_TARGET)) # Install expat expat: fmil @@ -395,7 +395,7 @@ $(builddir_lib_omc)/$(LIBCMINPACKLIB): 3rdParty/CMinpack/build/Makefile 3rdParty/CMinpack/build/Makefile: 3rdParty/CMinpack/CMakeLists.txt test -d 3rdParty/CMinpack mkdir -p 3rdParty/CMinpack/build - (cd 3rdParty/CMinpack/build && test -f Makefile || CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" $(CMAKE) -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -D CMAKE_AR:String="$(AR)" -DCMAKE_COLOR_MAKEFILE:Bool=OFF -DCMINPACK_BUILD_SHARED_LIBS:Bool=$(CMINPACKLIB_SHARED) -DCMAKE_INSTALL_PREFIX:String=../install -DCMINPACK_LIB_INSTALL_DIR:String=../install .. -G $(CMAKE_TARGET)) + (cd 3rdParty/CMinpack/build && test -f Makefile || CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" $(CMAKE) -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -D CMAKE_AR:String="$(AR)" -DCMAKE_COLOR_MAKEFILE:Bool=OFF -DCMINPACK_BUILD_SHARED_LIBS:Bool=$(CMINPACKLIB_SHARED) -DCMAKE_INSTALL_PREFIX:String=../install -DCMAKE_INSTALL_LIBDIR="$(LIB_OMC)" .. -G $(CMAKE_TARGET)) CMinpack-clean: rm -rf 3rdParty/CMinpack/install #This is a bad idea, because the cache contains the absolute path to cmake that was used for build -> if the cmake location has changed, the clean command will fail @@ -430,8 +430,9 @@ cppzmq-clean: rm -rf 3rdParty/cppzmq/build metis: $(OMBUILDDIR)/$(LIB_OMC)/libmetis$(STAEXT) $(OMBUILDDIR)/$(LIB_OMC)/libmetis$(STAEXT): 3rdParty/metis-5.1.0/CMakeLists.txt - (cd 3rdParty/metis-5.1.0 && $(CMAKE) ./ -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -G $(CMAKE_TARGET) && CC="$(CC)" CFLAGS="$(CFLAGS)" $(MAKE)) - cp 3rdParty/metis-5.1.0/libmetis/libmetis$(STAEXT) $(OMBUILDDIR)/$(LIB_OMC)/libmetis$(STAEXT) + mkdir -p 3rdParty/metis-5.1.0/build + (cd 3rdParty/metis-5.1.0/build && $(CMAKE) ../ -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_INSTALL_LIBDIR="$(LIB_OMC)" -G $(CMAKE_TARGET) && CC="$(CC)" CFLAGS="$(CFLAGS)" $(MAKE)) + cp 3rdParty/metis-5.1.0/build/libmetis/libmetis$(STAEXT) $(OMBUILDDIR)/$(LIB_OMC)/libmetis$(STAEXT) metis-clean: test ! -f 3rdParty/metis-5.1.0/Makefile || $(MAKE) -C 3rdParty/metis-5.1.0 clean rm -rf 3rdParty/metis-5.1.0/CMakeCache.txt 3rdParty/metis-5.1.0/libmetis/libmetis.a 3rdParty/metis-5.1.0/CMakeFiles 3rdParty/metis-5.1.0/Makefile 3rdParty/metis-5.1.0/cmake_install.cmake 3rdParty/metis-5.1.0/include/CMakeFiles 3rdParty/metis-5.1.0/include/Makefile 3rdParty/metis-5.1.0/include/cmake_install.cmake 3rdParty/metis-5.1.0/libmetis/CMakeFiles 3rdParty/metis-5.1.0/libmetis/Makefile 3rdParty/metis-5.1.0/libmetis/cmake_install.cmake 3rdParty/metis-5.1.0/programs/CMakeFiles 3rdParty/metis-5.1.0/programs/Makefile 3rdParty/metis-5.1.0/programs/cmake_install.cmake diff --git a/OMCompiler/Makefile.omdev.mingw b/OMCompiler/Makefile.omdev.mingw index f6b2145ed2e..3be9b98d514 100644 --- a/OMCompiler/Makefile.omdev.mingw +++ b/OMCompiler/Makefile.omdev.mingw @@ -338,7 +338,7 @@ $(OMBUILDDIR)/bin/msvc/fmilib_shared.dll: getMSVCversion echo @echo on > 3rdParty/FMIL/build_msvc/build.bat echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/FMIL/build_msvc/build.bat echo echo Calling CMake >> 3rdParty/FMIL/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DFMILIB_BUILD_TESTS=OFF -DFMILIB_BUILD_STATIC_LIB=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/FMIL/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DFMILIB_BUILD_TESTS=OFF -DFMILIB_BUILD_STATIC_LIB=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc -DCMAKE_INSTALL_LIBDIR="$(LIB_OMC)" ../ -G "NMake Makefiles" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/FMIL/build_msvc/build.bat echo @echo on >> 3rdParty/FMIL/build_msvc/build.bat echo set MAKE= >> 3rdParty/FMIL/build_msvc/build.bat echo set MAKEFLAGS= >> 3rdParty/FMIL/build_msvc/build.bat @@ -351,13 +351,13 @@ $(OMBUILDDIR)/bin/msvc/fmilib_shared.dll: getMSVCversion # copy dll to bin folder mkdir -p $(OMBUILDDIR)/bin/msvc - (cp -puf 3rdParty/FMIL/install_msvc/lib/fmilib_shared.dll $(OMBUILDDIR)/bin/msvc/fmilib.dll) - (cp -puf 3rdParty/FMIL/install_msvc/lib/fmilib_shared.dll $(OMBUILDDIR)/lib/omc/msvc/fmilib.dll) - (cp -puf 3rdParty/FMIL/install_msvc/lib/fmilib_shared.lib $(OMBUILDDIR)/lib/omc/msvc/fmilib.lib) + (cp -puf 3rdParty/FMIL/install_msvc/$(LIB_OMC)/fmilib_shared.dll $(OMBUILDDIR)/bin/msvc/fmilib.dll) + (cp -puf 3rdParty/FMIL/install_msvc/$(LIB_OMC)/fmilib_shared.dll $(OMBUILDDIR)/lib/omc/msvc/fmilib.dll) + (cp -puf 3rdParty/FMIL/install_msvc/$(LIB_OMC)/fmilib_shared.lib $(OMBUILDDIR)/lib/omc/msvc/fmilib.lib) # copy the dll with the actual name: fmilib_shared.dll as the fmilib.lib contains that name and the exe will look for it - (cp -puf 3rdParty/FMIL/install_msvc/lib/fmilib_shared.dll $(OMBUILDDIR)/bin/msvc/fmilib_shared.dll) - (cp -puf 3rdParty/FMIL/install_msvc/lib/fmilib_shared.dll $(OMBUILDDIR)/lib/omc/msvc/fmilib_shared.dll) - (cp -puf 3rdParty/FMIL/install_msvc/lib/fmilib_shared.lib $(OMBUILDDIR)/lib/omc/msvc/fmilib_shared.lib) + (cp -puf 3rdParty/FMIL/install_msvc/$(LIB_OMC)/fmilib_shared.dll $(OMBUILDDIR)/bin/msvc/fmilib_shared.dll) + (cp -puf 3rdParty/FMIL/install_msvc/$(LIB_OMC)/fmilib_shared.dll $(OMBUILDDIR)/lib/omc/msvc/fmilib_shared.dll) + (cp -puf 3rdParty/FMIL/install_msvc/$(LIB_OMC)/fmilib_shared.lib $(OMBUILDDIR)/lib/omc/msvc/fmilib_shared.lib) CMinpack_msvc: $(OMBUILDDIR)/lib/omc/msvc/cminpack.lib $(OMBUILDDIR)/lib/omc/msvc/cminpack.lib: getMSVCversion @@ -404,7 +404,7 @@ $(OMBUILDDIR)/lib/omc/msvc/umfpack.lib: getMSVCversion echo @echo on > 3rdParty/SuiteSparse/build_msvc/build.bat echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/SuiteSparse/build_msvc/build.bat echo echo Calling CMake >> 3rdParty/SuiteSparse/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/SuiteSparse/build_msvc/build.bat + echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_VERBOSE_MAKEFILE:Bool=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=../install_msvc ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe" -DCMAKE_INSTALL_LIBDIR="$(LIB_OMC)"' >> 3rdParty/SuiteSparse/build_msvc/build.bat echo echo Building Umfpack >> 3rdParty/SuiteSparse/build_msvc/build.bat echo @echo on >> 3rdParty/SuiteSparse/build_msvc/build.bat echo set MAKE= >> 3rdParty/SuiteSparse/build_msvc/build.bat @@ -417,7 +417,7 @@ $(OMBUILDDIR)/lib/omc/msvc/umfpack.lib: getMSVCversion # copy dll to bin folder (mkdir -p $(OMBUILDDIR)/include/omc/msvc/suitesparse) - (cp -puf 3rdParty/SuiteSparse/install_msvc/lib/omc/*.lib $(OMBUILDDIR)/lib/omc/msvc/) + (cp -puf 3rdParty/SuiteSparse/install_msvc/$(LIB_OMC)/*.lib $(OMBUILDDIR)/lib/omc/msvc/) (cp -pur 3rdParty/SuiteSparse/install_msvc/include/omc/c/suitesparse/Include/*.h $(OMBUILDDIR)/include/omc/msvc/suitesparse/) # build sundials @@ -565,19 +565,19 @@ simulationruntimecmsvc: getMSVCversion CMinpack_msvc fmil_msvc echo 'Copy the needed .dll files from OMDev to $(OMBUILDDIR)/omc' cp -p $(OMDEVMSYS)/lib/pthread/pthreadV*.dll $(OMBUILDDIR)/bin/ # build gc as well, as it is needed for the msvc c runtime - echo 'Build gc (RelWithDebInfo)' - mkdir -p 3rdParty/gc/build_msvc - echo @echo on > 3rdParty/gc/build_msvc/build.bat - echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/gc/build_msvc/build.bat - echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGC_BUILD_SHARED_LIBS=OFF ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/gc/build_msvc/build.bat - echo @echo on >> 3rdParty/gc/build_msvc/build.bat - echo set MAKE= >> 3rdParty/gc/build_msvc/build.bat - echo set MAKEFLAGS= >> 3rdParty/gc/build_msvc/build.bat - echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile >> 3rdParty/gc/build_msvc/build.bat - cd 3rdParty/gc/build_msvc && cmd /c build.bat - echo 'Copy the .lib files (needed for compilation) and .pdb files (needed for debugging) to $(OMBUILDDIR)/lib/omc/msvc/' - cp -u 3rdParty/gc/build_msvc/omcgc.* $(OMBUILDDIR)/lib/omc/msvc/ - rm -rf 3rdParty/gc/build_msvc/ + # echo 'Build gc (RelWithDebInfo)' + # mkdir -p 3rdParty/gc/build_msvc + # echo @echo on > 3rdParty/gc/build_msvc/build.bat + # echo call '"${VSCOMNTOOLS}\\..\\..\\VC\\vcvarsall.bat" ${VCVARS_PARAMS}' >> 3rdParty/gc/build_msvc/build.bat + # echo '%OMDEV%\\bin\\cmake\\bin\\cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGC_BUILD_SHARED_LIBS=OFF ../ -G "NMake Makefiles JOM" -D"CMAKE_MAKE_PROGRAM:PATH=%OMDEV%\\tools\\jom\\jom.exe"' >> 3rdParty/gc/build_msvc/build.bat + # echo @echo on >> 3rdParty/gc/build_msvc/build.bat + # echo set MAKE= >> 3rdParty/gc/build_msvc/build.bat + # echo set MAKEFLAGS= >> 3rdParty/gc/build_msvc/build.bat + # echo %OMDEV%\\tools\\jom\\jom.exe /f Makefile >> 3rdParty/gc/build_msvc/build.bat + # cd 3rdParty/gc/build_msvc && cmd /c build.bat + # echo 'Copy the .lib files (needed for compilation) and .pdb files (needed for debugging) to $(OMBUILDDIR)/lib/omc/msvc/' + # cp -u 3rdParty/gc/build_msvc/omcgc.* $(OMBUILDDIR)/lib/omc/msvc/ + # rm -rf 3rdParty/gc/build_msvc/ omc-bootstrapped: $(MAKE) -f $(defaultMakefileTarget) CC="$(CC)" CXX="$(CXX)" CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" OMBUILDDIR=$(OMBUILDDIR) bootstrap-dependencies sim-dependencies diff --git a/OMCompiler/SimulationRuntime/OMSICpp/CMakeLists.txt b/OMCompiler/SimulationRuntime/OMSICpp/CMakeLists.txt index 83cdeb0fba6..23be0ac873b 100644 --- a/OMCompiler/SimulationRuntime/OMSICpp/CMakeLists.txt +++ b/OMCompiler/SimulationRuntime/OMSICpp/CMakeLists.txt @@ -643,7 +643,7 @@ IF(USE_OMSI) IF(MSVC) SET(FMILIB_INLCUDE_HOME "${CMAKE_SOURCE_DIR}/../../3rdParty/FMIL/install_msvc/include") - SET(FMILIB_LIBRARY_RELEASE_HOME "${CMAKE_SOURCE_DIR}/../../3rdParty/FMIL/install_msvc/lib") + SET(FMILIB_LIBRARY_RELEASE_HOME "${CMAKE_SOURCE_DIR}/../../3rdParty/FMIL/install_msvc/${LIB_OMC}") SET(OMSIBASELIB_LIBRARY_RELEASE_HOME "${CMAKE_INSTALL_PREFIX}/lib/omc/omsi/msvc") ELSEIF(WIN32) SET(FMILIB_INLCUDE_HOME "${CMAKE_INSTALL_PREFIX}/include/omc/fmil")