Layout of Generated Files

Babel generates a lot of files. Many of these files you never have to look at in an editor, but they must all be compiled and properly linked into an application (see Section 14.2). In this section we discuss a host of flags that can affect where files get generated.

Arbitrary combinations of the above flags are allowed. Regardless of the order they appear in the commandline, they are applied to the resulting path in the order they are presented above. For example if a SIDL file pkg.sidl defines a Cls class in the pkg package, and the user runs Babel as follows:

% babel -lugo there -sc
Then the majority of the sources will be generated in the there/pkg/c/glue/ directory (except the Impl files which will occur one directory up in there/pkg/c/). Note the use of equivalent short-form commands in this example. If readers wish to review long and short forms of command line arguments, see Tabel 3.1 on page [*].

Note that many of these options were contributed by users and are not employed in Babel's own build. Instead, we tend to put a SIDL file in a directory and then generate client-side or server-side bindings in in either runXXX/ or libXXX/ subdirectories, respectively (where XXX is a language name). We don't use the --generate-subdirs or --hide-glue flags because they place source files that belong in the same library in different directories. Automake, which Babel uses as part of its build system, works much more reliably when all the sources that go into a library appear in the same directory as the library to be. The --language-subdir has a similar effect to what we do manually, but doesn't capture if it was client-side or server-side. In our tests and demos, we tend to build these separately because we want to exercise different drivers with different implementations.



babel-0.10.2
users_guide Last Modified 2005-03-23

http://www.llnl.gov/CASC/components
components@llnl.gov