[ExM Users] mkstatic questions

Tim Armstrong tim.g.armstrong at gmail.com
Thu May 29 09:09:35 CDT 2014


Forgot to send this to the list.


On Thu, May 29, 2014 at 8:06 AM, Tim Armstrong <tim.g.armstrong at gmail.com>wrote:

> Another thing I should mention is that you can source the
> turbine-build-config,sh script under turbine to get many of the variables
> you need e.g. install dirs, tcl version, linker flags.
>
> - Tim
>
>
> On Wed, May 28, 2014 at 9:40 AM, Tim Armstrong <tim.g.armstrong at gmail.com>wrote:
>
>> main_script lets you specify the Tcl script that's run on application
>> startup.  To run a compiled Swift program, you set main_script to point to
>> the Tcl output file.  mkstatic.tcl doesn't need Swift source files.
>>
>> Note that you only need to fill in the fields in the "Manifest info"
>> section to generate the C main program.  You probably only need the follow
>> to generate the C code:
>>
>> # Name and version of Tcl package
>> pkg_name=flex_pep_docking_or_whatever
>> pkg_version=0.0
>>
>> # C function names to initialise Tcl modules
>> # These follow the Tcl naming convention, e.g., Userlib_Init
>> # Use nm on your extension object code to find this symbol
>> lib_init=_Z24FlexPepDocking_wrap_InitP10Tcl_Interp
>>
>> # lib scripts are executed in specified order, before main_script and
>> # after lib_inits
>> lib_script=../flexpep_docking/user-code.tcl
>>
>> # headers for user Tcl code, e.g. lib_init functions
>> lib_include=../flexpep_docking/FlexPepDocking_wrap.h
>>
>> # main script (generated by STC).
>> # If provided, always runs this main script.
>> # Otherwise, the script file is specified at run time as the
>> # first command line argument (like tclsh)
>> main_script = stc_output_file.tcl
>>
>>
>> - Tim
>>
>>
>> On Wed, May 28, 2014 at 9:17 AM, Ketan Maheshwari <ketan at mcs.anl.gov>wrote:
>>
>>> Thanks. One more question:
>>>
>>> I am not sure where should I provide the application source file in the
>>> manifest files?
>>>
>>> Thanks,
>>> Ketan
>>>
>>>
>>> On Tue, May 27, 2014 at 2:14 PM, Tim Armstrong <
>>> tim.g.armstrong at gmail.com> wrote:
>>>
>>>>
>>>>
>>>>
>>>> On Tue, May 27, 2014 at 1:50 PM, Ketan Maheshwari <ketan at mcs.anl.gov>wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>>  Trying to get the Rosetta application static build for Turbine using
>>>>> mkstatic.tcl.
>>>>>
>>>>>  I am a bit confused about the entries in the manifest file:
>>>>>
>>>>>  1. The purpose of lib_script option is not very clear to me. What
>>>>> scripts are supposed to go in there? The template lists user_stuff1.tcl,
>>>>> user_stuff2.tcl.
>>>>>
>>>>>   Any Tcl scripts that you want to run when the library loads.  E.g.
>>>> if you set pkg_name=the_pkg and lib_script=the_pkg.tcl, then pkg.tcl will
>>>> be included in the executable.  It's run when the Tcl user script does a
>>>> "package require the_pkg".
>>>>
>>>>
>>>>>  2. The lib_include entry: does it accept both include dirs and
>>>>> header files?
>>>>>
>>>> It has to be a header file - it will just add a #include at the top of
>>>> the C main file.  You have to provide any include directory flags to the C
>>>> compiler later when you compile it.
>>>>
>>>>
>>>>>
>>>>>  3. From the documentation
>>>>> http://www.mcs.anl.gov/exm/local/guides/swift.html#mkstatic, I see
>>>>> that there are options at commandline such as --include-lib and
>>>>> --include-system-lib. Are these in lieu of the ones in the manifest?
>>>>>
>>>> These let you link in entire library directories.
>>>>
>>>> --include-system-lib is for the Tcl standard library directory that is
>>>> always loaded on startup - it links the files into the executable so that
>>>> it doesn't need to load them off disk.  It's mainly for performance, but it
>>>> can help build entirely self-contained executables.
>>>>
>>>>  --include-lib  lets you link in an external library, e.g. a directory
>>>> of Tcl files, or a directory with a pkgIndex.tcl file.  These are set up to
>>>> to be loaded on demand with "package require".  --include-lib <dir> is
>>>> essentially an alternative to setting TURBINE_USER_LIB=<dir>.
>>>>
>>>>
>>>>
>>>>>
>>>>>  Thanks,
>>>>> Ketan
>>>>>
>>>>> _______________________________________________
>>>>> ExM-user mailing list
>>>>> ExM-user at lists.mcs.anl.gov
>>>>> https://lists.mcs.anl.gov/mailman/listinfo/exm-user
>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/exm-user/attachments/20140529/0f1ac326/attachment.html>


More information about the ExM-user mailing list