Commit Graph

227 Commits

Author SHA1 Message Date
Scott Fennell
086c5c84c3 change version number for release 2019-11-22 08:45:43 -06:00
Alex Lin
ce0cdc9636
Cmake merge (#901)
* Merging changes from cmake branch to master

* Fixing includes for renamed header files

* still need build rule

* Adding warning for swig code for gcc8+

* Adding CMakeLists.txt for data products

* Cmake merge #901

Making adjustments to get cmake working on the Mac (Mojave)

* Cmake merge #901

Changing string append to list append
2019-11-19 09:01:16 -06:00
Derek Bankieris
213964afba Fix typos 2019-11-05 16:03:47 -06:00
Derek Bankieris
9501bd9a5e Fix typo 2019-11-05 16:02:12 -06:00
Derek Bankieris
2d89023031 Generalize from_pid to find_simulation
This allows searching for a sim by any of its parameters over the
multicate channel.
2019-11-04 11:22:48 -06:00
Derek Bankieris
c35ca93830 Add checkpoint functionality to variable_server.py 2019-11-01 15:30:26 -05:00
jmpenn
95c6659733
Incorporate Webserver into Trick, so one only has to include HttpServ… (#886)
* Incorporate Webserver into Trick, so one only has to include HttpServer.sm

* Tweaks in default index.html file

* Rename HTTPServer.sm to WebServer.sm

* Rename http_server to WebServer

* Add --retry to curl invocations in HttpServer makefile.

* Fix #include in VariableServerVariable.hh

* Include cleanup and curl tweaks in the hopes of making Jenkins happy.

* Doh! problem in makefile masked by preinstalled mongoose in usr/local/lib

* DIE Make Bug DIE

* Fix include in WebServer.sm

* WebServer.sm constructor name

* Don't SWIG mongoose.h

* Compile with -std=c++11

* Attempt to fix race condition in makefile

* makefie tweek

* Fix trick library name problem for Centos and Redhat
2019-10-23 11:58:19 -05:00
Scott Fennell
82bae3b0d0 #836 remove all S_default.dat stuff 2019-07-09 15:58:26 -05:00
Alex Lin
d1c08ade7a
Make switching to 32bit compile better #829 (#830)
Added a new configure arugument "--enable-32bit".  If enabled,
TRICK_FORCE_32BIT is automatically set for building Trick and for
all sims built.  Changed the ARCH and added -m32 in the configure
script if 32bit is enabled.  This changes the configure script to
test for 32bit libraries.
2019-06-27 07:58:49 -05:00
Scott Fennell
b23b19195b
Merge pull request #818 from nasa/786-clock-stuff
Add C call to clock_tics_per_sec and also log init job elapsed time
2019-06-18 13:38:18 -05:00
Alex Lin
453a03a809
Get configure with no java and no X to work #735 (#817)
Found if --without-x was specified, that automatically caused an
error condition in the configure script.  Fixed that and only
tested for X windows headers and libs if X is included.  Excluded
a couple of directories from compiling if X is not included.

Didn't seem to be a problem with java.
2019-06-18 11:00:42 -05:00
Alex Lin
497f11f132
Make TRICK_CXX variable to specify c++ compiler #767 (#815)
Changed all references of TRICK_CPPC to TRICK_CXX.  Added a
warning message that TRICK_CPPC has been deprecated.
2019-06-18 11:00:08 -05:00
Scott Fennell
97941ac073 move init_log_stream to Executive.hh, move Executive::process_sim_args from "default data" to Executive::init 2019-06-18 10:34:56 -05:00
dbankieris
053b42512b
Merge pull request #809 from nasa/703
Separate stdout and stderr during CP
2019-06-12 09:15:50 -05:00
Alex Lin
a420418443 TPROCTE_HOME Being Used In Place Of TPRO_HOME #778
Changed the Tsync routing from using the old TPro API to the
new Tsync API.
2019-06-11 15:50:49 -05:00
Alex Lin
a78fcf1bc9 TPROCTE_HOME Being Used In Place Of TPRO_HOME #778
Need to exclude the tsync directory from Trick operations.
2019-06-11 11:22:06 -05:00
Alex Lin
a394f0d187 TPROCTE_HOME Being Used In Place Of TPRO_HOME #778
Needed to make some more fixes to work with modern tsync driver
code.
2019-06-11 09:48:29 -05:00
Derek Bankieris
b3c9e75c1b Separate stdout and stderr during CP
Closes #703
2019-06-07 09:34:53 -05:00
dbankieris
35c2dacac5
Merge pull request #785 from nasa/746
Clean up duplication in makefiles
2019-05-30 16:27:51 -05:00
dbankieris
ae09b2b243
Merge pull request #780 from nasa/505
Autogenerate SWIG dependencies
2019-05-30 16:04:27 -05:00
Derek Bankieris
7b0e84e58e Clean up duplication in makefiles
Normalize behavior of TRICK_VERBOSE_BUILD

Closes #746
2019-05-30 15:47:07 -05:00
Derek Bankieris
cf5c087ef0 Autogenerate SWIG dependencies
Add flags to SWIG invocation for PYTHON MODULE files
Make dependency files order-only prerequisites

Refs #505
2019-05-30 09:52:06 -05:00
Scott Fennell
aed4c94e56 version number to 19.1.dev 2019-05-29 15:29:41 -05:00
Scott Fennell
51c9d69ac8 Trick 19 is here (╯°□°)╯︵ ┻━┻ 2019-05-29 15:23:52 -05:00
Scott Fennell
24e1ec6d46 update version number 2019-05-29 15:13:13 -05:00
dbankieris
a3c7b57a0a
Merge pull request #778 from esduran/fix/with-tpro-path-bug
Consistently use TPRO_HOME over TPROCTE_HOME
2019-05-29 14:54:03 -05:00
Derek Bankieris
36c19e1589 Change TPROCTE_HOME to TPRO_HOME in config_user.mk.in 2019-05-29 14:50:58 -05:00
Derek Bankieris
7b7ecaa0c4 Trickification: autogenerate SWIG dependencies
Refs #505
2019-05-29 10:45:26 -05:00
Derek Bankieris
881ee69757 Improve Python 3 support in variable_server.py
Correct send_on_copy's variable server string

Closes #777
2019-05-22 11:38:35 -05:00
Derek Bankieris
3e3bc02cd2 Correct TRICK_CONVERT_SWIG_FLAGS in Makefile_swig
Fixes #770
2019-05-10 15:30:17 -05:00
nmerlene
38bfdf2a54
Convert string to bytes in variable_server.py for Python 3
* Method socket.sendall() expects bytes to be sent, rather than a string
* Python 3 stores text strings as unicode (not ASCII) by default
* Therefore, strings must be explicitly converted to bytes for Python 3 compatibility
* This works for both Python 2 and Python 3 (tested on Python 2.7, Python 3.6, and Python 3.7)
2019-04-24 15:45:06 -05:00
Scott Fennell
49e243b54a
Merge branch 'master' into VERBOSE-synonym 2019-04-02 13:34:52 -05:00
Aaron Brogley
e52449309c Create the shortcut trick.mc_add_variable.
This is shorter than the existing trick_mc.mc.add_variable and is
accessible through the trick namespace with 'import trick'.
2019-03-26 16:58:27 -05:00
Derek Bankieris
951bee52c0 Use existing variables for LD and c++
This is why we have code reviews!
2019-03-25 11:33:50 -05:00
Derek Bankieris
4146834f10 Support static/dynamic libraries in Trickification
Update documentation
Change TRICK_LIB_BUILD_TYPE to TRICKIFY_BUILD_TYPE
Remove support for linking in arbitrary objects
Conform logging to existing pattern
2019-03-25 10:49:34 -05:00
Scott Fennell
644a9a0e00 #741 add VERBOSE synonym everywhere 2019-03-21 09:28:52 -05:00
Jose Perez
787f2c7dc2 Support Shared and Static library. Optionally package trickified generated code and source code in to one library. 2019-03-20 15:32:11 -05:00
dbankieris
348bbb3798
Add ExecutiveException.hh to sim_services.i (#691)
* Add ExecutiveException.hh to sim_services.i and files_to_ICG.hh
* Update version number

Fixes #690
2018-10-30 13:49:55 -05:00
Scott Fennell
437ee149b5 release 17.4.0 2018-10-25 15:45:40 -05:00
Derek Bankieris
f6872aa12c Add missing dependency to Trickification makefile
Fixes #679
2018-10-18 11:37:59 -05:00
Derek Bankieris
d38c30ad02 SWIG all of S_library_swig during Trickification
Fixes #681
2018-10-18 10:45:13 -05:00
Scott Fennell
8044c03176 #618 update trickify.mk flag name 2018-07-09 09:41:34 -05:00
Scott Fennell
bf7ce2db3c #618 revert/remove TRICK_SYSTEM_SWIG_FLAGS. Wiki and trickify.mk update still required 2018-06-29 11:06:50 -05:00
anon
ef634c9f48 #618 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 #603 #623 2018-05-22 14:55:47 -05:00
anon
9a2bab0df2 #603 #623 2018-05-22 14:53:10 -05:00
anon
bd0cfec731 #603 #623 2018-05-22 14:36:46 -05:00
anon
d764a67709 #603 restored 'make print-%' in sim directory 2018-05-22 14:01:32 -05:00
Derek Bankieris
2ce53dadd2 Move pymods into share/trick
Fixes #574
2018-03-05 15:17:22 -06:00
Alex Lin
4bf35a9c82 Revert "Merge pull request #533 from nasa/MakefileCleanup"
This reverts commit 269ed77cb4, reversing
changes made to d97f482219.
2018-03-02 08:59:26 -06:00
Alex Lin
9dd302f4b1 Trick makefile output formatting and cleanup. #533
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 #571
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 #554 2018-02-22 15:47:40 -06:00
John M. Penn
907cd2c481 Created Trick17 Tutorial Review Slides. Ref #554 2018-02-20 18:25:26 -06:00
Alex Lin
8f76605f3b Create Message client that writes to screen on a separate thread #553
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 #538
2018-01-09 12:19:16 -06:00
Alex Lin
c694700148 Add environment variable to ignore types from ICG processing #535
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 #524
2017-12-04 11:02:03 -06:00
Alex Lin
de012dde71 Feature request: Support checkpointing and logging of std::array #480
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 #440
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 #309
2017-05-30 08:56:06 -05:00
Alex Lin
34c62c5aab Sim build doesn't stop on error #421
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 #412
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 #400
2017-03-28 15:59:08 -05:00
Derek Bankieris
b53c52ac33 Separate ICG & SWIG exclusion constructs
Refs #392
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 #390
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 #309
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 #309
2017-02-16 12:58:07 -06:00
Derek Bankieris
76148fda7a Don't echo ld command in trickify.mk
Refs #309
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 #309
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 #309
2017-02-14 15:41:58 -06:00
Alex Lin
9d587a45c2 S_overrides.mk is included twice when building #360
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 #360
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 #360 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 #365
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 #365
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 #369
2016-12-14 12:36:21 -06:00
Derek Bankieris
150ea9f094 Remove double include of S_overrides.mk
Refs #360
2016-12-07 14:19:52 -06:00
Derek Bankieris
3600e3880a Infer TRICK_HOME automatically
Refs #358
2016-11-30 14:12:34 -06:00
Alex Lin
55db2fedb3 Create a distclean target in the sim makefile #342
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 #311
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 #326 2016-10-20 14:55:00 -05:00
Derek Bankieris
dae2b0e1c3 Corrected SWIG ignore warning number #326 2016-10-19 14:48:28 -05:00
Derek Bankieris
9f4c854353 Pass SWIG_FLAGS when calling SWIG in trickify.mk #326 2016-10-19 14:43:32 -05:00
Derek Bankieris
bc131147c3 Pass TRICK_ICGFLAGS to invocation of ICG #309 2016-10-13 15:16:40 -05:00
Derek Bankieris
c4456e3913 Generate S_define.deps when S_source.hh is created #326 2016-10-12 10:09:20 -05:00
Derek Bankieris
f31da79139 Got rid of the apocalypse target. Make will no longer tolerate frivolity #326 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
Derek Bankieris
f161ddb18c Made everything about Trick's build process better 2016-10-06 13:54:06 -05:00
dbankieris
29a09cc56f Set variable to nothing instead of using undefine, which is not available before make 3.82 2016-09-26 11:25:15 -05:00
Derek Bankieris
e835ecf515 Improved trickify.mk #309 2016-09-19 16:03:50 -05:00
Derek Bankieris
ba59606b1d Added TRICK_PYTHON_PATH environment variable #313 2016-09-16 09:20:11 -05:00
Derek Bankieris
2aa0287fb9 Generic makefile for building a Trickified project library #309 2016-09-14 11:26:29 -05:00
Derek Bankieris
261af7930e Removed prerequisites from .NOTPARALLEL #303 2016-09-07 10:27:51 -05:00
Alex Lin
2918662767 Create a trick-config script #298
Created trick-config that can print the version, installation prefix,
and compile and link flags that Trick defines.
2016-09-07 09:33:03 -05:00
Alex Lin
fa4664c4ea Move the loop that waits for scheduled threads to finish out of advance_sim_time #292
2 problems found.  Syncing scheduled threads was not happening at all because the job
was not being rescheduled.  Did not want to deal with changing job call times so I
called the new scheuduled_thread_sync routine from advance_sim_time.  That's where
it started, it'll be fine.

Also found that I was resetting job complete flags too aggressively.  The check to
test if the thread is ready to run was missing.  Added that check back in.
2016-08-30 10:56:18 -05:00