Subject: Re: two builds on the same tree
To: Andrew Brown <atatat@atatdot.net>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: current-users
Date: 03/09/2001 10:37:50
On Friday 09 March 2001  8:36 am, Andrew Brown wrote:
> while using the same source tree (shared via nfs) to update two
> machines simultaneously, with
>
> OBJMACHINE=yes
> MAKEOBJDIRPREFIX!=echo /usr/obj/${MACHINE}-on-`uname -m`

You might be confusing it with the above line, you probably don't need the 
/usr/obj bit, as you should have BSDOBJDIR set.  Do you really need the above 
line?  you'll end up with objdir names such as i386-on-i386.i386, the .i386 
is appended by the OBJMACHINE, if you just have OBJMACHINE set you get dir 
names such as obj.i386.

> MKOBJDIRS=yes

> in my /etc/mk.conf file (i cross compile not infrequently), i found
> that the sparc, running behind the alpha (of course), died at
>
> ....
> includes ===> lib/libasn1
> all ===> lib/libasn1/asn1_compile
> /usr/src/lib/libasn1/asn1_compile/asn1_compile
> /usr/src/lib/libasn1/../../crypto /dist/heimdal/lib/asn1/k5.asn1
> /usr/src/lib/libasn1/asn1_compile/asn1_compile: 1: Syntax error: ")"
> unexpected *** Error code 2
>
> Stop.

what happens if you do make obj in that dir, does it attempt to create the 
obj dir?  if the obj dir exists where is it pointing to?  does the place it 
points to exist?

> which makes me wonder.  obviously i can't use the one i built in the
> objdirs, since that might be targeted for another arch, yet i
> similarly can't use the one in the source tree because someone else
> might have built that.  maybe this should just be installed as part of
> the normal build process?  is there an easy solution to this, or do i
> have to wait for the alpha to finished before doing the sparc?

No need to wait, I build for arm32, i386 and sparc out of the same tree, my 
mk.conf looks like:
#MKOBJDIRS=NO
MKSHARE=YES
BUILD=YES
UPDATE=YES
BSDSRCDIR=/usr/src/src
BSDOBJDIR=/usr/obj/obj
OBJMACHINE=YES
USR_OBJMACHINE=YES                                                            
 
I then just run make obj by hand (takes too long on machines if something 
stops it building) and then do make build.  I then end up with /usr/obj 
containing:
obj.arm32 obj.i386  obj.sparc

Cheers,
Chris