RPATH
at link time or setting LD_LIBRARY_PATH
or SHLIB_PATH
. The problem is that if you are building a C Code Generation (CGC) application that uses shared libraries, then at runtime the user needs to either have the necessary shared libraries in their LD_LIBRARY_PATH
or SHLIB_PATH
, or the binary needs to have the RPATH
to the shared libraries encoded into it. This can be done with an option of the linker. The various commands to do this are architecture dependent, and Default-CGC
target usually fails. The Makefile_C
target and the TclTk_Target
which is derived from Makefile_C
is much more likely to work with shared libraries.
pigiRpc
that has only the domains you are interested in with Jose Pino's mkPtolemyTree
script in $PTOLEMY/bin
, see the Programmer's Manual for more information. The startup time for a full pigiRpc
is greater than for a pigiRpc.ptrim
(SDF, DE, CGC and a few other small domains). If you use either pigiRpc.ptrim
or pigiRpc.ptiny
(SDF and DE only), then the start up time is quite reasonable. If you regularly use some of the other less common domains, then you can build special pigiRpc
with just your domains.One reason that startup time is increased might be because Ptolemy constructs a lot of objects and processes many lists of things like domains. We may be able to decrease startup time by carefully managing the star constructors.
One way to speed things up might be to create a large shared library that has the domains in which you are interested. Startup time might be faster if everything is in one file. Currently we have about 80 different shared libraries.
Combining these libraries into a few big libraries for ptiny, ptrim and pigi binaries might help. Of course, we could leave the 80 libraries and just add the new libraries. We have not tried this, but it might be interesting.