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.
We've agreed that the long-term solution is to refactor the makefiles so
we don't use recursive make. Until then, continue double including
S_overrides.mk so that the $(S_MAIN) target is available in
S_overrides.mk. Resolve#360 by having Trickified libraries use
target-specific variables (ironically, on $(S_MAIN)) to avoid
duplication of the -whole-archive option.
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
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
This changes back the default behavior to not use offsetof in io_src code.
Added a flag to ICG, -c or --compat15, to globally generate offsetof statements.
Added an ENV variable that can be used to generate offsetof statements by file or directory.
Added in a warning if classes parsed at ICG time are different in size than at runtime.
Copied the block of code that sends header file comments through the preprocessor from
15.x to trunk. This block was left out and is now used by both headers and source files.
So using consts as arguments to STLs causes errors in our io code and SWIG.
Added a check for const template arguments and going to ignore them for
both ICG and what we input to SWIG.
Created man pages for each executable we have in bin. Updated the
couple of man pages we did have in there. Modified trick-CP
to accept arguments. Updated the version number reported by ICG
as well.
When extracting include files full path file names fall through all
of the logic that strips quotes off of the path. This leads to double
double quotes in the output. Added an else statement that catches
all other include files and strips the quotes off of pathnames.
refs #267
Fixed the configure script to allow the user to specify using a python3
interpreter. Had to change the the way to load the swig generated python modules.
Also had to change code dealing with python strings, oct, long, and
boolean operations.
refs #258
Set LD in our makefiles to the ld executable found by configure.
Changed the final sim link to use TRICK_CPPC as the link command since
it was using the compiler anyways. Changed the places where we use "ld" to
use LD.
refs #131
Initial checkin of using udunits for measurement units conversions. Replaced
our conversion code in ICG and swig code to use udunits.
Also added code to convert unit symbols that we used in Trick that are different
names in udunits.
Added a sim_object that will eventually allow users to specify a custom
set of files to read units information.
refs #231
Made adjustments to template default arguments to avoid clang compiler
errors. Also added an irnore warning during python glue code compilation
refs #206
Initial checkin of STL checkpointing. This checkin only covers the sequential
STLs, vector, list, deque, set, and multiset. This checkin does include the
changes in Trick header files to include/exclude our STLs properly to make a
restartable checkpoint.
refs #206
Found that the list of swig files we should expect from external libraries
was incorrectly cleared before it was being used. This still allows the
sim to compile, but no information about the models in the library are
available in the input file.
refs #179
When I split the comment remover into 2 regular expressions I reversed
the order removing C style comments before c++. This caused this error
where a /* in a C++ comment made Trick look for the end of the C style
comment and it may never find the end.
refs #178
Changed the regular expressions that removes comments in convert_swig to
try and handle C style comments found in multiline #define statements.
Also added a TRICK_ICG_NOCOMMENT line to SIM_ode to stop ICG from
trying to process non-Trick comments in the ODE directory.
refs #172
When I merged the sections of code that look for library dependencies I left out
the section that searches for dependencies that have a full path. I added
that back in.
refs #170
I kind of took the easy way out on this one, I remove any
structure definitions that matches the pattern
typedef const struct A {...} constA ; out of out of
convert_swig before they get to SWIG.
refs #169
Changed the commands to force the copy files in the the SIM directory
from "cp" to "cp -f". Added a rule in Makefile.sim to properly
call the configuration processor if the build directory is missing.
Also added a loop to filter the files found to be in an external
library. Those files need to be tested to see if they include ICG: (No)
refs #156
If a directory has more than one language the rule to create the object
directory is written twice. Added a check to see if we've written
the rule for each object code directory, if we have already written
the rule then don't write it again.
refs #127
Fixed the problem where library dependencies for header and source files are
saved to the same file and half are lost. Did this by not removing the
suffix when creating the library dependency file name.
refs #128
Changed parenthesis to curly brace... er I mean curly bracket. Well too late, in
the code I called it curly brace. It's these "{}". Oh well. Also found that the
dependency_only headers were not actually reading the dependencies. Added the list
of dependency only files to the list of files to get dependencies from.
refs #114
Added new doxygen style tags for truning on/off Trick attributes processing,
comment processing, and library dependencies. Here are the tags we recognize
(@|\)trick_parse(everything|attributes|dependencies_only)
(@|\)trick_exclude_typename(class_name)
(@|\)trick_link_dependency(link_name)
refs #114
Took the code that we had that generated the list of header files we need to
process from an older version of make_swig_makefile.pm and put the code back
in make_makefile_swig. What's old is new again and it works.
refs #113
Added TRICK_SYSTEM_CXXFLAGS and TRICK_SYSTEM_CFLAGS to the gte list of
variables stored in a simulation. These variables are used to
compile JIT input files.
refs #104
Created TRICK_SYSTEM_CFLAGS, TRICK_SYSTEM_CXXFLAGS, and TRICK_SYSTEM_SFLAGS
that Trick uses to add the Trick system includes, defines and other
compilation flags. TRICK_CFLAGS and TRICK_CXXFLAGS are now in
full control of the user.
refs #90
Added a new TRICK_EXT_LIB_DIRS variable that allows users to
tell Trick about external libraries, rather than trying to
use TRICK_EXCLUDE. Added back getting multiple library dependency
sections from source files.
refs #86
First tests are working. Changing a source file and header works
as before. Adding library dependencies in either of these files
causes the makefile pieces to be redone. Only tested in the ball
sim so far.
refs #86
sometimes convert_swig is the first to process a file and it needs
to be able to create the output directory for its output. The output
directory should use perl's make_path because the output directories
are deep down in the build area.
refs #80
Functioning build directory on Linux. Everything is going into the build directory.
All files for all steps use the full path. this change removes the need for us to
call depend_objs to fix makefile dependencies. Changed the makefile rules to use
more pattern rules reducing the size of make_makefile.pm and the makefile too.
Changed the output of make to show short commands for each compile line. Setting
the variable TRICK_VERBOSE_BUILD in the environement, command line, or in S_overrides.mk
will change the output to the full printout.
refs #80
Moved most generated files into the build directory. All object code,
io_src realated files, and swig related files are now in build.
Realized that ICG should be creating the makefile for the io_src
code. ICG knows which files it created.
refs #80
Found that we need to add python files to lists of expected modules
before testing if they are being excluded. Moved the check to
exclude to after adding the files to the list.
This may have uninteded consequences. Might have to revisit using
different mechanism to exclude files and mark files as expected from
libraries.
refs #74
Added 2 flags to trick-ICG. "-o" will specify an output directory. Added this
option to the calls to trick-ICG for the Memory Manager tests. Also added
a "-m" option to create the map files ICG creates for sims. The memory manager
tests do not need these maps so we don't include the option. Added the -m option
to the sim makefile and the master makefile so we do create the map when compile
Trick core and sims.
refs #72
Adjusted all of the source code to point to the header files in their new
locations. Adjusted the makefiles for the header locations as well.
Added .gitignore files in the test directories to ignore test object code.
Moved the header files and the swig .i files to include/trick/swig. Adjusted the
source files and the convert_swig script to find the headers in their new
location.
refs #67
Moved the no_arch swig files to share/trick/swig and adjusted the makefiles to look for the files in the new location. Changed the install rule to only copy the files we need for our installation.
refs #63
Reorganized. Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory. Created a libexec directory that holds all of the executables that users don't need to execute directly. Changed all of the executables remaining in bin to start with "trick-". In the sim_services directories changed all source files to find the Trick headers in their new location. Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level. Moved the makefiles, docs, man, and other architecture independent files into a top level share directory. Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on.
refs #63