mirror of
https://github.com/nasa/trick.git
synced 2024-12-19 13:17:55 +00:00
158 lines
6.2 KiB
Plaintext
158 lines
6.2 KiB
Plaintext
/**
|
||
@page LEVEL2 Trick Environment
|
||
|
||
@anchor Trick_Environment
|
||
|
||
A very important part of building %Trick simulations is understanding the environment and
|
||
how to manipulate it. %Trick maintains a list of variables. Each variable has a default
|
||
value that may be overridden by setting the value in the environment. %Trick resolves these
|
||
variables by a call to a function called "gte". You can type in "${TRICK_HOME}/bin/gte"
|
||
on the command line to see what the "Trick environment" is.
|
||
|
||
A %Trick simulation may run with no UNIX environment. However, for simulation development,
|
||
there is a set of UNIX variables that may be in your UNIX environment. For instance, you
|
||
may have TRICK_CFLAGS defined.
|
||
|
||
The user’s environment is very important to building a correct simulation and it can be
|
||
complex at times. If you have questions, please contact a %Trick representative.
|
||
|
||
@section LEVEL3 TRICK_CFLAGS and TRICK_CXXFLAGS
|
||
|
||
The contents of TRICK_CFLAGS is included on the command line with each C file compilation.
|
||
Similiarly, TRICK_CXXFLAGS is included for each C++ file. Each contain header file search
|
||
directories, macro define variables, and compiler flags.
|
||
|
||
For building a simulation, a user must be proficient at tweaking TRICK_CFLAGS and TRICK_CXXFLAGS.
|
||
There are a several ways to do this.
|
||
|
||
TRICK_CXXFLAGS works exactly like TRICK_CFLAGS.
|
||
|
||
<b>Example 1:</b> Add "-I/user/mooo/trick_models" to the environment variable.
|
||
TRICK_CFLAGS is currently...
|
||
|
||
<tt><b>UNIX Prompt></b> echo $TRICK_CFLAGS</tt><br>
|
||
<tt>-Wall</tt>
|
||
|
||
Now we need to edit the shell startup file where TRICK_CFLAGS is defined.
|
||
|
||
Add the following line for bash.
|
||
|
||
<tt>TRICK_CFLAGS="$TRICK_CFLAGS -I/user/mooo/trick_models"</tt>
|
||
|
||
Add the following line for [t]csh.
|
||
|
||
<tt>setenv TRICK_CFLAGS "$TRICK_CFLAGS -I/user/mooo/trick_models"</tt>
|
||
|
||
Now source your shell startup file and voila!...
|
||
|
||
For bash:<br>
|
||
<tt><b>UNIX Prompt></b> . ~/.bash_profile</tt><br>
|
||
<tt><b>UNIX Prompt></b> echo $TRICK_CFLAGS</tt><br>
|
||
-Wall -I/user/mooo/trick_models
|
||
|
||
For [t]csh:<br>
|
||
<tt><b>UNIX Prompt></b> source ~/.cshrc</tt><br>
|
||
<tt><b>UNIX Prompt></b> echo $TRICK_CFLAGS</tt><br>
|
||
-Wall -I/user/mooo/trick_models
|
||
|
||
<b>Example 2:</b> Add "-I/user/mooo/trick_models" through the simulation S_overrides.mk file
|
||
|
||
~e need to edit the S_overrides.mk file in the simulation to be built.
|
||
|
||
Add the following line.
|
||
|
||
<tt>TRICK_CFLAGS="$TRICK_CFLAGS -I/user/mooo/trick_models"</tt>
|
||
|
||
This will not show up in the current shell environment, but will be set for each command that
|
||
the makefile executtes.
|
||
|
||
@section LEVEL3 TRICK_CONVERT_SWIG_FLAGS
|
||
|
||
TRICK_CONVERT_SWIG_FLAGS contains flags sent to the convert_swig utility. Currently the flags only
|
||
support "-s" which allows convert_swig to process STLs.
|
||
|
||
@section LEVEL3 TRICK_EDITOR
|
||
|
||
TRICK_EDITOR defaults to an empty string. With TRICK_EDITOR is set, when CP encounters an error it
|
||
brings up the S_define file automatically using the TRICK_EDITOR command.
|
||
|
||
@section LEVEL3 TRICK_EXCLUDE
|
||
|
||
A colon separated list of directories to skip when processing files.
|
||
|
||
It is possible to instruct all CP functions to skip entire directories using the environment variable
|
||
TRICK_EXCLUDE. Set this variable to a colon separated list of directories which you
|
||
wish CP to bypass. All header files found in TRICK_EXCLUDE will not be processed. All source code
|
||
files found in TRICK_EXCLDUE will not be compiled or linked into the simulation.
|
||
|
||
This feature is useful to bring in packages as a library.
|
||
|
||
@section LEVEL3 TRICK_FORCE_32BIT
|
||
|
||
To force %Trick to compile in 32-bit on 64-bit systems, set the TRICK_FORCE_32BIT environment
|
||
variable to 1. Setting this variable appends "-m32" automatically to TRICK_CFLAGS and TRICK_CXXFLAGS.
|
||
|
||
@section LEVEL3 TRICK_HOST_CPU
|
||
|
||
%Trick determines a system specific suffix to append to object code directory names. By default
|
||
this is determined automatically by %Trick. The user may override this by setting the TRICK_HOST_CPU
|
||
environment variable.
|
||
|
||
@section LEVEL3 TRICK_HOST_TYPE
|
||
|
||
%Trick determines the current OS type. The user may override this by setting the TRICK_HOST_TYPE.
|
||
It is rare to set this variable.
|
||
|
||
@section LEVEL3 TRICK_ICG_EXCLUDE
|
||
|
||
A colon separated list of directories to skip when processing header files.
|
||
|
||
It is possible to instruct ICG to skip entire directories using the environment variable
|
||
TRICK_ICG_EXCLUDE. Set this variable to a colon separated list of directories which you
|
||
wish ICG to bypass. This is useful when there is code which you do not wish %Trick to have
|
||
any knowledge of (i.e. you don’t need any of the parameters recorded or input processable).
|
||
|
||
@section LEVEL3 TRICK_LDFLAGS
|
||
|
||
TRICK_LDFLAGS include linker flags. TRICK_LDFLAGS is used when linking the simulation executable.
|
||
It is rare to set this variable.
|
||
|
||
@section LEVEL3 TRICK_MAKE
|
||
|
||
This variable has been deprecated.
|
||
|
||
@section LEVEL3 TRICK_SFLAGS
|
||
|
||
TRICK_SFLAGS includes header file search directories and macro define variables.
|
||
TRICK_SFLAGS is used when parsing the S_define file.
|
||
|
||
@section LEVEL3 TRICK_USER_LINK_LIBS
|
||
|
||
Additional library and library directories to include when linking a simulation.
|
||
|
||
An example of adding a library search path, a library to be searched for, and a full
|
||
path library.
|
||
|
||
bash<br>
|
||
<tt>export TRICK_USER_LINK_LIBS="-L/full/path/to/libs -lfile1 /another/path/to/a/libfile2.a"</tt>
|
||
|
||
[t]csh<br>
|
||
<tt>setenv TRICK_USER_LINK_LIBS "-L/full/path/to/libs -lfile1 /another/path/to/a/libfile2.a"</tt>
|
||
|
||
@section LEVEL3 MAKEFLAGS
|
||
|
||
MAKEFLAGS is not a %Trick environment variable. It is used with the GNU make utility.
|
||
Invoking make with the -j flag allows make to compile more than one file simultaneously.
|
||
Dramatic speedups in compiling can be achieved when using multiple processors.
|
||
|
||
<tt><b>UNIX Prompt></b> setenv MAKEFLAGS –j10</tt>
|
||
|
||
(circa 2007?) We have used the parallel make to build %Trick on an 8 core system in a
|
||
gee-whiz time of only 25 seconds! In the year 2016, or thereabouts, %Trick will be compiled
|
||
in 1 second. Imagine that!!! Of course, we are assuming that there will be such a thing
|
||
as %Trick... By then, hopefully, %Trick will be written in a language that needs no compilation.
|
||
So really, make will be a thing of the past... And this section will not exist in the
|
||
User’s Guide! Assuming of course that the editor, at that time, actually reads the thing.
|
||
|
||
*/
|