output target locations

Mathew Boorman <[email protected]> 07 Feb 2004 13:58:31 +1100
Newsgroups gmane.comp.tools.aap.user
Message-ID <[email protected]>
One goal I am trying to obtain with our build system is a quick
turnaround on builds on 2 different platforms to check it all build
properly.  Using :program and library targets with no path component
will mean a full relink is required after each platform switch.

Am I missing something?  


My current solution is embedding $BDIR into each :program, :dll seems a
relatively complex way to do this, especially once children recipes are
involved.  I also tried setting a targetprefix but it did not really
make it any clearer.

eg:

:child misc/main.aap
:child cat/main.aap

:program aaa$BDIR/go1 
	{var_LIBS= -ldog }
	{var_LDFLAGS= -Lmisc/$BDIR }
	:
 	go1.cpp
        {var_INCLUDE=-Imisc -Icat}

$BDIR/go1 : misc/$BDIR/dog  cat/$BDIR/cat


The philosophy of BDIR seems to be it is used only for object files.  It
seems to me though that everything should be generated in BDIR.  In
particular libraries are really just objects anyway.

SCons seems to take a very different approach, basically everything is
built in the output directory, with all source files symbolically linked
in on the fly as required.  That is certainly a 'scary' solution, but it
does simplify the recipes by mostly eliminating the BDIR concept. Mind
you the SCons recipes have a horrible syntax compared with the nice
format of aap recipes, which is why I'm here :-)

m@




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn