The next part of the trip was to Detroit, aka Motown. There were some customer visits planned and some internal training for a new collegue.
The flight was OK and everything went smooth. I picked up my rental car and then after typing in stuff for a long time the lady from Hertz told me that she could not find my car in the system…. I said, well that’s cool, I just take it and then I don’t have to take it back…
Nice try but she wasn’t going to do that. But she was nice, asked me politely to bring the car back and then pick another. Any other… So I ended up with a cool Infinity Q50. With 400 HP… cool…
The rest of the trip was without incidents… except for some flooding. But I only saw that on the TV. Haven’t had any trouble with it.
Back to work II
So from the MakeFileContent property there are some things you have to adapt.
What when it doesn’t work?
If you re-read the model and you get an error message then…. you did something wrong 😉
Debugging is bnot so difficult. In Rhapsody go to the features of your model and open the “Makefilecontent” property. This will show you exectly to where it could be read…
When the make doesn’t work, try removing (or temporary) switch of the “echo off” with a rem before it. Also you can edit the makefile that is generated, copy the “cc” line and put an echo in it. Then you can see what happens.
Build the new Framework
Now the framework also needs to be built. This can be done from the Rhapsody Menu (“Code”, “Build the Framework”) This is only visible if you can rebuild the framework i.e. when the following property is set:
CPP_CG::QNXv7NeutrinoMomentics::buildFrameworkCommand "$OMROOT/etc/Executer.exe" "\"\"$OMROOT\"\etc\qnxv7cwmake.bat qnxv7cwbuild.mak build \"CPU=$CPU\" \"CPU_SUFFIX=$CPU_SUFFIX\" \"
This should contain the call to the batchfile (and makefile) that builds the framework. The same paths and changes you’ve made to the makefile content should be applied to all the makefiles that you can find in the batchfile, they are in the OXF, OMCOM, TOM, AOM and WebComponents directories. You actuall only need the OXF but do the rest (that is only needed for animation) anyway.
TARGETS= oxflibs omcomlib tomlib aomlibs webcomponentslib CPU=aarch64 CPU_SUFFIX=le MAKE=make CPU=$(CPU) CPU_SUFFIX=$(CPU_SUFFIX) all all: $(TARGETS) oxflibs: $(MAKE) -C oxf -f QNXv7CWoxf.mak CFG=oxf $(MAKE) -C oxf -f QNXv7CWoxf.mak CFG=oxfinst omcomlib: $(MAKE) -C omcom -f QNXv7CWomcom.mak CFG=omcomappl tomlib: $(MAKE) -C tom -f QNXv7CWtom.mak CFG=tomtrace $(MAKE) -C tom -f QNXv7CWtom.mak CFG=tomtraceRiC aomlibs: $(MAKE) -C aom -f QNXv7CWaom.mak CFG=aomtrace $(MAKE) -C aom -f QNXv7CWaom.mak CFG=aomanim webcomponentslib: $(MAKE) -C WebComponents -f QNXv7CWWebComponents.mak CFG=WebComponents
Then in all makefiles set the correct include paths and compiler calls: (This is my example, adapt to your own paths)
ADDED_CPP_FLAGS = $(CPU_FLAG) $(DEFAULT_CPP_FLAGS) -I$(QNX_TARGET)/usr/include/c++/5.4.0 -I$(QNX_TARGET)/usr/include/c++/5.4.0/aarch64-unknown-nto-qnx7.0.0 -I$(QNX_TARGET)/usr/include -DOM_STL -I.. -I../osconfig/QNX -D_MSL_NO_VECTOR_BOOL -DUSE_IOSTREAM $(RHAP_FLAGS)