--
output-directory=
path
--
generate-subdirs
--
language-subdir
--
hide-glue
glue
.
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 -scThen 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.