When I added the "tee" commands to split off command outputs to
a file and the screen, I forgot that the exit status of the make commands
takes the exit status of "tee" which does not ususally have an error and
masks any error in the actual compilation. I added an exit ${PIPESTATUS[0]}
which returns the exit status of the compilation.
Added echos to all compile commands to append to MAKE_out. tee'd
the output of the compile command so that it will go to both the MAKE_out
file and the screen.
Like gcc, swig supports all those -M options. Use them to automatically
manage *_py.cpp dependencies.
Add dependency generation to trickify.mk as well.
A different approach. Instead of trying to limit the number of times
S_overrides.mk is included, combine the makefiles so only one
call to make is made.
Namespace packages are a mechanism for splitting a single Python
package across multiple directories on disk. With the addition of
$(TRICK_HOME)/pymods/trick, there now exists a package named 'trick' at
$(TRICK_HOME)/pymods and in each SIM_* directory. This change allows sims
to import modules from both locations.
Refs #365
The input file that is created while running monte carlo runs is done
in 3 different places. There was no easy way to collect all of those
lines in one place, so I duplicated the lines in the dryrun function.
Created a hook for the clang preprocessor. The hook does 2 things. It
keeps track to which header files we have entered and exited. Second it
searches for the use of TRICK_ICG. If we find an instance of TRICK_ICG we
mark all of the included files from this point up the chain as requiring
compensation. To compensate for using TRICK_ICG we write out the older
offset statements to get the location of variables in classes/structures.
Like other TRICK_SYSTEM variables, users should not modify this.
This renders TRICK_LDFLAGS and TRICK_USER_LINK_LIBS redundant. While we
would like to eventually remove TRICK_USER_LINK_LIBS, it's not likely to
ever actually happen.
Refs #369
For the record, I'd like to point out that many of the DataRecordGroup
functions shouldn't be called after init, but we don't prevent anyone
from doing so. Bad Trick!
Refs #350
One of the constructor parameters enables automatic creation of
SI-prefixed versions of the root unit, which obviates the need to
create them individually.
Refs #345