285 Commits

Author SHA1 Message Date
Scott Fennell
bf7ce2db3c revert/remove TRICK_SYSTEM_SWIG_FLAGS. Wiki and trickify.mk update still required 2018-06-29 11:06:50 -05:00
anon
ef634c9f48 add TRICK_SWIG_FLAGS, TRICK_SYSTEM_SWIG_FLAGS, TRICK_SWIG_CFLAGS, TRICK_SYSTEM_SWIG_CFLAGS. *_FLAGS are swig options, *_CFLAGS are g++ compiler options for swig objects. TRICK_SYSTEM_* options should not be changed by trick users 2018-06-27 13:58:44 -05:00
anon
23fef115c8 2018-05-22 14:55:47 -05:00
anon
9a2bab0df2 2018-05-22 14:53:10 -05:00
anon
bd0cfec731 2018-05-22 14:36:46 -05:00
anon
d764a67709 restored 'make print-%' in sim directory 2018-05-22 14:01:32 -05:00
Derek Bankieris
2ce53dadd2 Move pymods into share/trick
Fixes 
2018-03-05 15:17:22 -06:00
Alex Lin
4bf35a9c82 Revert "Merge pull request from nasa/MakefileCleanup"
This reverts commit 269ed77cb4c096b39e5de88a97f8011a44405277, reversing
changes made to d97f4822195696f2560705816e2a8ebf8719b6f2.
2018-03-02 08:59:26 -06:00
Alex Lin
9dd302f4b1 Trick makefile output formatting and cleanup.
Removed the red from the clean rules.  We'd like to reserve red for
errors.  Ended up removing all color from the clean side.
2018-03-01 08:51:57 -06:00
Alex Lin
9643311f4c Merge branch 'master' into MakefileCleanup 2018-03-01 08:32:08 -06:00
Alex Lin
d97f482219 Allow the FrameLog class to use a different clock
Added a clock reference that to the FrameLog class that defaults
to the GetTimeOfDay clock.  This clock has fast access and is
non intrusive to real-time operations using a different clock.

Added a function to set the clock to something else if desired.
2018-02-28 17:33:09 -06:00
John M. Penn
64d44d6fa8 Updates to Trick 17 Tutorial slides. Ref 2018-02-22 15:47:40 -06:00
John M. Penn
907cd2c481 Created Trick17 Tutorial Review Slides. Ref 2018-02-20 18:25:26 -06:00
Alex Lin
8f76605f3b Create Message client that writes to screen on a separate thread
Created a new message class that will copy incoming messages to a
buffer area.  The buffer area is pre allocated during simulation
initialization.  On a separate thread the buffer area is written
to std::cout.
2018-01-25 15:59:19 -06:00
Derek Bankieris
5db74dc804 Prefer simply-expanded variables in makefiles
Closes 
2018-01-09 12:19:16 -06:00
Alex Lin
c694700148 Add environment variable to ignore types from ICG processing
Added a new environment variable TRICK_ICG_IGNORE_TYPES.  Class/struct/enum
types found in this semicolon delimited list will not have attributes written
out.
2017-12-19 10:02:41 -06:00
Christopher LaChance
6e0fcbd947 Updated formating and replaced formating variables. 2017-12-07 15:10:39 -06:00
Christopher LaChance
1bb3ac2a06 Cleaned up 'make clean' output significantly. 2017-12-06 13:12:13 -06:00
Derek Bankieris
380ab024a4 Add --with-udunits path to TRICK_EXCLUDE
Fixes 
2017-12-04 11:02:03 -06:00
Alex Lin
de012dde71 Feature request: Support checkpointing and logging of std::array
Added std::array as an STL type Trick recognizes.  We can now create io code
that can save and restore std::arrays like std::vectors and other similar
types. Like other STL types, an std::array cannot be logged or viewed in
trick-tv.
2017-09-27 16:01:52 -05:00
Alex Lin
e2693de992 Many Trick sims SEGFAULT when built in 32-bit mode
Added a switch to trick-ICG to handle the -m32 flag.  When the
flag is present we tell clang to use a 32bit layout when calculating
member offsets.
2017-06-19 14:18:37 -05:00
Derek Bankieris
bb9b136a66 Remove CURDIR in trickify.mk
Reverts the important parts of c909669. Trying to include another
project's build dependencies as part of a sim build doesn't work that
well.

Refs 
2017-05-30 08:56:06 -05:00
Alex Lin
34c62c5aab Sim build doesn't stop on error
PIPESTATUS is only available in bash.  For many of the systems
we use /bin/sh and /bin/bash are the same, but noooo, not on
Ubuntu where it is linked to dash.  I set SHELL := /bin/bash
in our makefile now.
2017-05-18 14:34:32 -05:00
Alex Lin
b2ebe157ed Lost the MAKE_out file when we updated simulation makefiles
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.
2017-04-18 10:26:58 -05:00
Derek Bankieris
2db341cff8 Revert (almost all of) 2e4c3286
Sadly, we cannot yet require SWIG 2.0.

Refs 
2017-03-28 15:59:08 -05:00
Derek Bankieris
b53c52ac33 Separate ICG & SWIG exclusion constructs
Refs 
2017-03-27 15:19:43 -05:00
Derek Bankieris
2e4c3286a3 Automatically generate dependencies with SWIG
Like gcc, swig supports all those -M options. Use them to automatically
manage *_py.cpp dependencies.
Add dependency generation to trickify.mk as well.
2017-03-14 13:38:09 -05:00
Alex Lin
7c78187abf Using ccache seems to work but prints warnings
Found a place in the makefile where TRICK_CC was not being set correctly.
Also found a case in gte.pm where we are not handling ccache properly.
2017-03-13 15:11:57 -05:00
Derek Bankieris
dd2a17e034 Separate convert_swig rule in trickify.mk
Refs 
2017-02-27 08:56:09 -06:00
Derek Bankieris
c909669f7d Use absolute paths in S_source.d (Trickification)
CURDIR is used to produce absolute paths in S_source.d, which allows it
to be included from external makefiles. It is specifically intended to
be included from a Trickified project's user-facing makefile. That is,
the one the user is intended to include in a sim's S_overrides.mk. This
allows the project to automatically build their Trickified object as
part of a simulation build, but only when necessary as specified by the
dependencies.

Refs 
2017-02-16 12:58:07 -06:00
Derek Bankieris
76148fda7a Don't echo ld command in trickify.mk
Refs 
2017-02-15 13:42:58 -06:00
Derek Bankieris
40242601b2 Use partial linking in trickify.mk
Trick uses dlsym to dynamically load symbols at run time. At link time,
it cannot be known which symbols will be needed. When presented with a
library, the linker will only link in symbols that are known to be
needed. Therefore, the use of -whole-archive (Linux) or -force_load
(Mac) is necessary when linking a Trickified library into a sim.

We can simplify this by partially linking into an object instead of
creating a library. The linker will link all symbols in an object
regardless of whether or not they are known to be needed.

Refs 
2017-02-15 12:57:20 -06:00
Derek Bankieris
90a26ab7c7 Autogenerate dependencies in trickify.mk
By using gcc's dependency generation feature, we can execute ICG only
when necessary, instead of all the time.

Refs 
2017-02-14 15:41:58 -06:00
Alex Lin
9d587a45c2 S_overrides.mk is included twice when building
Moved makefile assignment of S_MAIN out of MAkefile.common to simulation
makefile.  The definition in Makefile.common was causing trouble for
autotesting because it changes TRICK_HOST_CPU.
2017-02-14 08:34:02 -06:00
Alex Lin
337139cacb S_overrides.mk is included twice when building
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.
2017-02-09 09:46:58 -06:00
Derek Bankieris
29bdbee8fa Revert 150ea9f
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  by having Trickified libraries use
target-specific variables (ironically, on $(S_MAIN)) to avoid
duplication of the -whole-archive option.
2017-02-06 15:25:18 -06:00
Derek Bankieris
a8c41d7cb5 Move new Python modules to intended location
They're supposed to be at the top level, not in share. Oops!

Refs 
2017-01-12 14:52:43 -06:00
Derek Bankieris
93f1828fb9 Introduce Python variable server client module
I also made a wiki page: Python Variable Server Client

Refs 
2017-01-12 14:43:31 -06:00
Derek Bankieris
7a08829d3d Introduce makefile variable TRICK_SYSTEM_LDFLAGS
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 
2016-12-14 12:36:21 -06:00
Derek Bankieris
150ea9f094 Remove double include of S_overrides.mk
Refs 
2016-12-07 14:19:52 -06:00
Derek Bankieris
3600e3880a Infer TRICK_HOME automatically
Refs 
2016-11-30 14:12:34 -06:00
Alex Lin
55db2fedb3 Create a distclean target in the sim makefile
distclean target added to makefile.
2016-11-03 15:20:05 -05:00
Alex Lin
f1cbacd646 ICG exclude of class member variables now defines incorrect memory offsets in io_src
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.
2016-10-21 13:13:43 -05:00
Derek Bankieris
0039b95a73 Removed compiler option to silence set but unused variable warnings, which was obviated by the prior commit 2016-10-20 14:55:00 -05:00
Derek Bankieris
dae2b0e1c3 Corrected SWIG ignore warning number 2016-10-19 14:48:28 -05:00
Derek Bankieris
9f4c854353 Pass SWIG_FLAGS when calling SWIG in trickify.mk 2016-10-19 14:43:32 -05:00
Derek Bankieris
bc131147c3 Pass TRICK_ICGFLAGS to invocation of ICG 2016-10-13 15:16:40 -05:00
Derek Bankieris
c4456e3913 Generate S_define.deps when S_source.hh is created 2016-10-12 10:09:20 -05:00
Derek Bankieris
f31da79139 Got rid of the apocalypse target. Make will no longer tolerate frivolity 2016-10-11 11:47:37 -05:00
Derek Bankieris
b5b46d9c75 Use immediate instead of deferred assignment when copying TRICK_SYSTEM_CXXFLAGS to TRICK_SYSTEM_CFLAGS 2016-10-06 16:00:22 -05:00