STRIDE Build Tools: Difference between revisions

From STRIDE Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
__FORCETOC__
__FORCETOC__
[[Image:ProductionBuildEFS.jpg]]


=Build Tools=
=Build Tools=
The STRIDE Build Tools are a set of command line utilities that perform the Stride compile/build process on a supported platform, which may be easily invoked through makefiles or similar build utilities (eg. ANT).


==Command line Utilities:==
==Command line Utilities:==
# [[s2scompile|The STRIDE compiler (s2scompile.exe)]]<br><br>
# [[s2scompile|The STRIDE compiler (s2scompile.exe)]]<br><br>
# [[s2sbind|The STRIDE database binder (s2sbind.exe)]]<br><br>
# [[s2sbind|The STRIDE database binder (s2sbind.exe)]]<br><br>
# [[s2sinstrument|The STRIDE instrumentation generator (s2sinstrument.exe)]]
# [[s2sinstrument|The STRIDE instrumentation generator (s2sinstrument.exe)]]
''Follow the above links for detailed information on each build tool.''




Line 15: Line 14:


===Compiling multiple files===
===Compiling multiple files===
In this scenario, the '''s2scompile''' utility is invoked with a list of header files, containing SCL, each to be compiled a resulting intermediate (.meta) file:


     s2scompile –I"C:\STRIDE\inc" –DN=100 file1.h file2.h
     s2scompile –I"C:\STRIDE\inc" –DN=100 file1.h file2.h


===Database Binding===
===Database Binding===
Here, the '''s2sbind''' utility is invoked with a list of .meta files to be bound into the specified database (.sidb) file:


     s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta
     s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta
   
 
===Intercept Module Generation===
===Intercept Module Generation===
* <h4>Single Intercept Module</h4>
====Single Intercept Module====
** <h5>Pre-build Instrumentation.</h5>
=====Pre-build Instrumentation=====
The S2 compilation, binding and instrumentation are done before the user’s build.
In this scenario, the compilation, binding and instrumentation are done before the user’s build. Here, '''s2scompile''' is called first, then '''s2sbind''', and finally '''s2sinstrument''':
'''s2scompile''' is called first, then s2sbind, and finally s2sinstrument:
:s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h
'''s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h'''
:s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta
'''s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta'''
:s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb
'''s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb'''


=====In-build Prototyping with Post-build Implementation=====
=====In-build Prototyping with Post-build Implementation=====
The compilation, binding and IM prototyping (header files only generation) are done incrementally. For each component of the user’s build just a subset of SCL files are compiled, bound to a database (merged into the previously created database) and IM prototypes are generated for a set of interfaces defined in those SCL files.
Here, the compilation, binding and IM prototyping (header files only generation) are done incrementally. Here, the compilation, binding and IM prototyping (header files only generation) are done incrementally. Note that at the second bind step during prototyping, '''s2sbind''' is given an option specifying the existing database to merge with. Also note that '''s2sinstrument''' is called the first two times with the "prototype" option specified and then finally is called with the "implement" option for code generation:


:s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h
:s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h
Line 55: Line 55:
:s2sbind –-input_database=test.sidb test.sidb file2.meta
:s2sbind –-input_database=test.sidb test.sidb file2.meta
:s2sinstrument –-im_name=test2 -–mode=P(f2) test.sidb
:s2sinstrument –-im_name=test2 -–mode=P(f2) test.sidb
==Overview==
Below is a diagram showing the interaction between the build tool utilities:
[[Image:ProductionBuildEFS.jpg]]

Revision as of 21:59, 19 June 2008


Build Tools

The STRIDE Build Tools are a set of command line utilities that perform the Stride compile/build process on a supported platform, which may be easily invoked through makefiles or similar build utilities (eg. ANT).

Command line Utilities:

  1. The STRIDE compiler (s2scompile.exe)

  2. The STRIDE database binder (s2sbind.exe)

  3. The STRIDE instrumentation generator (s2sinstrument.exe)

Follow the above links for detailed information on each build tool.


Examples

Compiling multiple files

In this scenario, the s2scompile utility is invoked with a list of header files, containing SCL, each to be compiled a resulting intermediate (.meta) file:

   s2scompile –I"C:\STRIDE\inc" –DN=100 file1.h file2.h

Database Binding

Here, the s2sbind utility is invoked with a list of .meta files to be bound into the specified database (.sidb) file:

   s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta

Intercept Module Generation

Single Intercept Module

Pre-build Instrumentation

In this scenario, the compilation, binding and instrumentation are done before the user’s build. Here, s2scompile is called first, then s2sbind, and finally s2sinstrument:

s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h
s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta
s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb
In-build Prototyping with Post-build Implementation

Here, the compilation, binding and IM prototyping (header files only generation) are done incrementally. Here, the compilation, binding and IM prototyping (header files only generation) are done incrementally. Note that at the second bind step during prototyping, s2sbind is given an option specifying the existing database to merge with. Also note that s2sinstrument is called the first two times with the "prototype" option specified and then finally is called with the "implement" option for code generation:

s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h
s2sbind –-starting_suid=123 test.sidb file1.meta
s2sinstrument –-im_name=test –prototype=p1 -–mode=SDud(f10,f11) test.sidb
s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h
s2sbind –-input_database=test.sidb test.sidb file2.meta
s2sinstrument –-im_name=test –prototype=p2 -–mode=P(f20,f21) test.sidb
s2sinstrument –-im_name=test –implement -–mode=SDud(f10,f11) -–mode=P(f20,f21) test.sidb

Multiple Intercept Modules

The compilation, binding and IM generation (headers and source) are done incrementally. For each component of the user’s build just a subset of SCL files are compiled, bound to a database (merged into the previously created database) and an IM generated for a set of interfaces defined in those SCL files. This example shows how this can be accomplished. Notice that a unique name is specified for each IM when s2sinstrument is called:

s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h
s2sbind –-starting_suid=123 test.sidb file1.meta
s2sinstrument –-im_name=test1 -–mode=SDud(f1) test.sidb
s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h
s2sbind –-input_database=test.sidb test.sidb file2.meta
s2sinstrument –-im_name=test2 -–mode=P(f2) test.sidb


Overview

Below is a diagram showing the interaction between the build tool utilities: File:ProductionBuildEFS.jpg