Commit Graph

106 Commits

Author SHA1 Message Date
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
Alex Lin
f5578c2e79 Inconsistency between including headers and SimObjects #294
Added ${TRICK_HOME}/share to the SYSTEM_SFLAGS so you can use a
consistent "trick/sim_objects/default_trick_sys.sm" path if you
want.
2016-08-26 09:08:41 -05:00
Alex Lin
7c57c1d02d Move the loop that waits for scheduled threads to finish out of advance_sim_time #292
Created a new executive job that waits for the scheduled threads to finish.  We
run this right before advancing time.
2016-08-26 09:07:46 -05:00
Alex Lin
0072e7d6f0 Unintended performance issue with integ_loop at end of scheduled job classes #243
Created a new executive job that waits for threads to finish and readies them
for their next frame of execution.  Created a new job class system_thread_sync
after the top of frame jobs and before the input processor is run to sync the
threads.  Along the way cleaned up instrumentation jobs on the threads to fix #290.
2016-08-24 10:55:27 -05:00
Alex Lin
f9f1847385 Changing trick_ver.txt to 17.1.dev 2016-08-23 17:02:29 -05:00
Alex Lin
90552a5053 Move clean rules to makefile in sim directory. #284
Added the clean rules back to Makefile.sim with a addition of
defining a conditional variable.  If this variable is set than
the set of rules in the local makefile will not be defined.  This
should allow the sim to be cleaned whether TRICK_HOME exists or not.
2016-08-23 09:00:03 -05:00
Alex Lin
d0349772d5 configure script doesn't check for clang headers #287
Added a configure check for clang/Basic/LLVM.h.
Also removed -lz from the link libraries.  I don't think we need it.
2016-08-23 08:58:16 -05:00
Alex Lin
c32b239472 Get rid of the real time clock sim objects #286
Removed the objects.
2016-08-19 09:59:07 -05:00
Alex Lin
60473dde03 Move clean rules to makefile in sim directory. #284
Moved the clean rules to the makefile in the sim directory.  They will
always work whether the rest of Trick is set up or not.
2016-08-19 09:57:13 -05:00
Alex Lin
8c8c7130b4 Change release number from 16 to 17. #280
Changed the version in trick_ver.txt
2016-08-15 13:27:23 -05:00
Alex Lin
784d6c86a4 Remove some outdated documentation #279
Removed some old files.
2016-08-10 13:55:16 -05:00
Alex Lin
ce1347de74 Remove sim_services/STL #275
Removed the sim object, directory and the entry in the Makefile to compile it.
2016-08-03 14:12:16 -05:00
Alex Lin
bff1967d4d Add a flag to turn off java version check during configure #276
Added an --enable-java=(yes|no) and --disable-java options to the
configure script.  If java is disabled then the java GUIs are
not compiled.
2016-08-03 09:45:22 -05:00
Alex Lin
ca02209d8f man pages completely out of date #253
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.
2016-08-02 09:56:43 -05:00
Alex Lin
4ab584ed55 Support using Python 3
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
2016-06-28 13:44:21 -05:00
Alex Lin
1224c43e7f Set and use LD in our makefiles correctly.
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
2016-06-27 12:48:35 -05:00
Alex Lin
6f20aa4b8b Save X11 include and library information from configure
Saved the value of x_libraries variable from the autoconf AC_PATH_X if
the location is not standard.

refs #133
2016-06-27 09:50:04 -05:00
Alex Lin
8921811f7e When running a monte carlo set, don't delete the log files in the master run directory.
Moved the job that removes log files from a default data to a phase 1 initialization
job.  Initialization jobs are not run in the master sim if the sim is a monte carlo
run, so the data is not deleted.

refs #35
2016-06-24 17:20:13 -05:00
Alex Lin
9bcee57b6a S_define_exp needs a list of dependencies
I made S_define_exp a PHONY target in the makefile so it is always
regenerated.  It's fast to regenerate, so I'm taking the easy way
out. :D

refs #138
2016-06-24 15:59:50 -05:00
Alex Lin
11fb71f036 man pages completely out of date
First step to updating man pages, renaming pages to match executable name and deleting man pages for commands long gone.

refs #253
2016-06-20 11:22:45 -05:00
Alex Lin
fb4601734f Need to include SimTime.hh for ICG and swig processing.
Added the sim time header files to files_to_ICG.hh and sim_services.i so it will be processed.

refs #247
2016-06-15 16:11:09 -05:00
John M. Penn
5b53f8155a Delete these tutorial files because they are going into the wiki rather than here. Ref #241 2016-05-25 17:06:33 -05:00