Skip to content

Commit

Permalink
- fix for hpcom analyzation mode
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@22993 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
Marcus Walther committed Oct 28, 2014
1 parent 2ce864d commit fe7c64e
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 34 deletions.
19 changes: 13 additions & 6 deletions Compiler/Template/CodegenCpp.tpl
Expand Up @@ -18,7 +18,7 @@ template translateModel(SimCode simCode, Boolean useFlatArrayNotation)
let()= textFile(simulationFunctionsHeaderFile(simCode,modelInfo.functions,literals,false), 'OMCpp<%fileNamePrefix%>Functions.h')
let()= textFile(simulationFunctionsFile(simCode, modelInfo.functions,literals,externalFunctionIncludes, false), 'OMCpp<%fileNamePrefix%>Functions.cpp')
let()= textFile(simulationTypesHeaderFile(simCode,modelInfo.functions,literals, useFlatArrayNotation), 'OMCpp<%fileNamePrefix%>Types.h')
let()= textFile(simulationMakefile(target,simCode,"","","","",false), '<%fileNamePrefix%>.makefile')
let()= textFile(simulationMakefile(target,simCode,"","","","",false,false), '<%fileNamePrefix%>.makefile')
let()= textFile(simulationInitHeaderFile(simCode), 'OMCpp<%fileNamePrefix%>Initialize.h')
let()= textFile(simulationInitCppFile(simCode,false),'OMCpp<%fileNamePrefix%>Initialize.cpp')
let()= textFile(simulationJacobianHeaderFile(simCode), 'OMCpp<%fileNamePrefix%>Jacobian.h')
Expand Down Expand Up @@ -1700,7 +1700,7 @@ end simulationMainDLLib2;

template simulationMakefile(String target, SimCode simCode, String additionalLinkerFlags_GCC,
String additionalLinkerFlags_MSVC, String additionalCFlags_GCC,
String additionalCFlags_MSVC, Boolean compileForMPI)
String additionalCFlags_MSVC, Boolean compileForMPI, Boolean createStaticBinary)
"Generates the contents of the makefile for the simulation case."
::=
let &timeMeasureLink = buffer "" /*BUFD*/
Expand Down Expand Up @@ -1813,7 +1813,7 @@ case "gcc" then
CFLAGS_BASED_ON_INIT_FILE=<%extraCflags%>
CFLAGS=$(CFLAGS_BASED_ON_INIT_FILE) -Winvalid-pch $(SYSTEM_CFLAGS) -I"<%makefileParams.omhome%>/include/omc/cpp/Core" -I"<%makefileParams.omhome%>/include/omc/cpp/" -I. <%makefileParams.includes%> -I"$(BOOST_INCLUDE)" -I"$(SUITESPARSE_INCLUDE)" <%makefileParams.includes ; separator=" "%> <%match sopt case SOME(s as SIMULATION_SETTINGS(__)) then s.cflags %> <%additionalCFlags_GCC%>
LDSYTEMFLAGS=-L"<%makefileParams.omhome%>/lib/omc/cpp" $(BASE_LIB) -lOMCppOMCFactory -lOMCppSystem -lOMCppModelicaUtilities -lOMCppMath <%timeMeasureLink%> -L"$(BOOST_LIBS)" $(BOOST_SYSTEM_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_LOG_LIB) $(BOOST_THREAD_LIB) $(LINUX_LIB_DL)
LDMAINFLAGS=-L"<%makefileParams.omhome%>/lib/omc/cpp" -L"<%makefileParams.omhome%>/bin" -lOMCppOMCFactory <%timeMeasureLink%> -L"$(BOOST_LIBS)" $(BOOST_SYSTEM_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_PROGRAM_OPTIONS_LIB) $(LINUX_LIB_DL) <%additionalLinkerFlags_GCC%>
LDMAINFLAGS=-L"<%makefileParams.omhome%>/lib/omc/cpp" -L"<%makefileParams.omhome%>/bin" -lOMCppOMCFactory -L"$(BOOST_LIBS)" $(BOOST_SYSTEM_LIB) $(BOOST_FILESYSTEM_LIB) $(BOOST_PROGRAM_OPTIONS_LIB) $(LINUX_LIB_DL) <%additionalLinkerFlags_GCC%> <%timeMeasureLink%> $(BOOST_LOG_LIB)
CPPFLAGS = $(CFLAGS)
SYSTEMFILE=OMCpp<%fileNamePrefix%><% if acceptMetaModelicaGrammar() then ".conv"%>.cpp
MAINFILE = OMCpp<%fileNamePrefix%>Main.cpp
Expand All @@ -1829,9 +1829,16 @@ case "gcc" then
.PHONY: <%lastIdentOfPath(modelInfo.name)%> $(CPPFILES)

<%fileNamePrefix%>: $(MAINFILE) $(OFILES)
<%\t%>$(CXX) -shared -I. -o $(SYSTEMOBJ) $(OFILES) $(CPPFLAGS) <%dirExtra%> <%libsPos1%> <%libsPos2%> $(LDSYTEMFLAGS)
<%\t%>$(CXX) $(CPPFLAGS) -I. -o $(MAINOBJ) $(MAINFILE) $(LDMAINFLAGS)

<%if(createStaticBinary) then
<<
<%\t%>$(CXX) $(CPPFLAGS) -I. -o $(MAINOBJ) $(OFILES) $(MAINFILE) $(LDMAINFLAGS)
>>
else
<<
<%\t%>$(CXX) -shared -I. -o $(SYSTEMOBJ) $(OFILES) $(CPPFLAGS) <%dirExtra%> <%libsPos1%> <%libsPos2%> $(LDSYTEMFLAGS)
<%\t%>$(CXX) $(CPPFLAGS) -I. -o $(MAINOBJ) $(MAINFILE) $(LDMAINFLAGS)
>>
%>
<%if boolNot(stringEq(makefileParams.platform, "win32")) then
<<
<%\t%>chmod +x <%fileNamePrefix%>.sh
Expand Down
52 changes: 24 additions & 28 deletions Compiler/Template/CodegenCppHpcom.tpl
Expand Up @@ -416,22 +416,24 @@ case SIMCODE(modelInfo = MODELINFO(__)) then

<%Update(simCode,useFlatArrayNotation)%>

<%DefaultImplementationCode(simCode,useFlatArrayNotation)%>
<%checkForDiscreteEvents(discreteModelVars,simCode,useFlatArrayNotation)%>
<%giveZeroFunc1(zeroCrossings,simCode,useFlatArrayNotation)%>
<%setConditions(simCode)%>
<%geConditions(simCode)%>
<%isConsistent(simCode)%>
<%generateStepCompleted(listAppend(allEquations,initialEquations),simCode,useFlatArrayNotation)%>
<%generatehandleTimeEvent(timeEvents, simCode)%>
<%generateDimTimeEvent(listAppend(allEquations,initialEquations),simCode)%>
<%generateTimeEvent(timeEvents, simCode, false)%>
<%DefaultImplementationCode(simCode,useFlatArrayNotation)%>
<%checkForDiscreteEvents(discreteModelVars,simCode,useFlatArrayNotation)%>
<%giveZeroFunc1(zeroCrossings,simCode,useFlatArrayNotation)%>

<%setConditions(simCode)%>
<%geConditions(simCode)%>
<%isConsistent(simCode)%>

<%isODE(simCode)%>
<%DimZeroFunc(simCode)%>
<%generateStepCompleted(listAppend(allEquations,initialEquations),simCode,useFlatArrayNotation)%>

<%generateStepStarted(listAppend(allEquations,initialEquations),simCode,useFlatArrayNotation)%>

<%generatehandleTimeEvent(timeEvents, simCode)%>
<%generateDimTimeEvent(listAppend(allEquations,initialEquations),simCode)%>
<%generateTimeEvent(timeEvents, simCode, true)%>

<%isODE(simCode)%>
<%DimZeroFunc(simCode)%>

<%getCondition(zeroCrossings,whenClauses,simCode,useFlatArrayNotation)%>
<%handleSystemEvents(zeroCrossings,whenClauses,simCode)%>
Expand Down Expand Up @@ -1335,18 +1337,12 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__)) then
<<

#ifndef BOOST_ALL_DYN_LINK
#define BOOST_ALL_DYN_LINK
#endif
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <string>
#include <vector>
#include <map>
using std::string;
using std::vector;
using std::map;
#define BOOST_ALL_DYN_LINK
#endif
#include <Core/Modelica.h>
#include <Core/ModelicaDefine.h>
#include <SimCoreFactory/Policies/FactoryConfig.h>
#include <SimController/ISimController.h>

#ifdef ANALYZATION_MODE
#include "Solver/IAlgLoopSolver.h"
Expand Down Expand Up @@ -1397,11 +1393,11 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__)) then
//create Modelica system
#ifdef ANALYZATION_MODE
std::pair<boost::weak_ptr<IMixedSystem>,boost::weak_ptr<ISimData> > system = simulation.first->LoadSystem(&createSimData, &createSystem, "<%lastIdentOfPath(modelInfo.name)%>");
std::pair<boost::shared_ptr<IMixedSystem>,boost::shared_ptr<ISimData> > system = simulation.first->LoadSystem(&createSimData, &createSystem, "<%lastIdentOfPath(modelInfo.name)%>");
#else
std::pair<boost::weak_ptr<IMixedSystem>,boost::weak_ptr<ISimData> > system = simulation.first->LoadSystem("OMCpp<%fileNamePrefix%><%makefileParams.dllext%>","<%lastIdentOfPath(modelInfo.name)%>");
std::pair<boost::shared_ptr<IMixedSystem>,boost::shared_ptr<ISimData> > system = simulation.first->LoadSystem("OMCpp<%fileNamePrefix%><%makefileParams.dllext%>","<%lastIdentOfPath(modelInfo.name)%>");
#endif
simulation.first->Start(system.first,simulation.second);
simulation.first->Start(system.first,simulation.second, "<%lastIdentOfPath(modelInfo.name)%>");
}
Expand Down Expand Up @@ -1597,7 +1593,7 @@ template simulationMakefile(String target,SimCode simCode)

CodegenCpp.simulationMakefile(target, simCode, additionalLinkerFlags_GCC,
additionalCFlags_MSVC, additionalCFlags_GCC,
additionalLinkerFlags_MSVC, Util.stringBool(compileForMPI))
additionalLinkerFlags_MSVC, Util.stringBool(compileForMPI), Flags.isSet(Flags.HPCOM_ANALYZATION_MODE))
end simulationMakefile;


Expand Down

0 comments on commit fe7c64e

Please sign in to comment.