[Xorp-hackers] bootstrap

Bruce M Simpson bms at incunabulum.net
Tue Mar 25 01:27:30 PDT 2008


Hi,

The bootstrap script doesn't generate the XIF files, it just regenerates
the configure script and Makefile.in files from the Makefile.am and
configure.in files, so that GNU make knows how to build what you've
added to those files.

Selçuk Cevher wrote:
> Hi All,
>  
> I created a .xif file containing a new XRL interface in xrl/interfaces 
> folder. I also modified Makefile.am <http://Makefile.am> file in 
> xrl/interfaces folder properly to build the related library, .hh, and 
> .cc client files (I am basically talking about clnt-gen script). 
> However, when I run the bootstrap script at the top-level of XORP 
> tree, neither the library for the new interface nor the stub code for 
> the caller (.hh and .cc) files are created in xrl/interfaces folder.
>  
> What type of modifications should I make to get the library, .cc and 
> .hh files for a newly added interface ?

If you've added your XRL interface to the xrl/interfaces directory, then
in order to generate the cc/hh files, you need to run "gmake" from
within that directory.
    There are suffix rules in that Makefile.am which should do this
automatically, providing you have something which depends upon the cc/hh
files, usually one of the noinst_LTLIBRARIES primaries. These suffix
rules are at the very end of Makefile.am.
    GNU make should see your library target, and build it
unconditionally, unless you've added other conditionals around it.
    If it doesn't do this, something else is going wrong.

In the automake world of build engineering, the order of directory
search is strictly controlled by the top level Makefile.am.
    libxipc in particular needs to see some generated files before the
xrl directory is actually reached in the build order, look at its
Makefile.am for more information.

The newer Boost.BuildV2 build magic will automatically rebuild all
targets depending on the XIF, including the cc/hh files, providing
something depends upon it in the global dependency graph, and does NOT
require that you run bootstrap every time you change something.

That however is not in CVS yet...

cheers
BMS






More information about the Xorp-hackers mailing list