[Xorp-hackers] Pending SCons configure change

J.T. Conklin jtc at acorntoolworks.com
Fri Oct 9 08:30:41 PDT 2009


Hi,

I have a change to the SCons command line option/variable processing
pending in my workspace that should be ready to commit this weekend,
and I wanted to give everyone the heads up (and a chance to voice 
objections).

Currently SCons takes arch=..., a os=..., cross=..., and rel=... 
command line options.  arch=, os=, and cross= are for (initial) 
support of cross compiling, and set the CPU architecture and OS 
for the host system.  rel= is supposededly used for the "release"
number, but is really only used to append to the build directory.

I'm planning on completely removing rel=.  Currently it defaults to 
"public17", so the build directory defaults to obj/<arch>-<os>-public17.
IMO, This doesn't add any value. In fact it could be considered harmful.
When we change the default, either for the 1.7 release candidate or
for 1.8 development, it will orphan the current build directory and
force everything to be rebuilt, even though no (or few) changes have
been made.

I'm planning on completly removing cross=.  This is currently not
used.  After this change, we'll be able to determine that we're cross
compiling if different build= and host= options were specified.

I'm planning on replacing the arch= and os= options with build= and host=,
which would take the GNU system tripple (<cpu>-<vendor>-<os>) or alias
just like would be used just like the --build= and --host= options to
a configure script.  The build= option will allow the user to specify
the build system, instead of having it guessed as it is today.

While we could re-implement the function of the config.guess and
config.sub scripts in python and execute them within SCons, at least
for the time being I've added them to the build and have made the
SConstruct use them.  This ensures the behavior and the accepted
system tripples are the same as every other GNU project.

Like before, if no arguments are passed on the SCons command line,
build and host systems are guessed, and a native XORP installation
is built.

The default build directory will now be obj/<host>.  Since host will
now be the standard GNU system tripple, this may result in a rebuild
and a new object directory (orphaning any objdirs with the old name).

    --jtc

-- 
J.T. Conklin



More information about the Xorp-hackers mailing list