Subject: Re: CVS commit: basesrc
To: None <tech-userlevel@netbsd.org>
From: Greg A. Woods <woods@weird.com>
List: tech-userlevel
Date: 03/28/2001 00:49:23
[ On Tuesday, March 27, 2001 at 14:41:28 (-0800), Simon J. Gerraty wrote: ]
> Subject: Re: CVS commit: basesrc
>
> I didn't see the original post so don't know what tool we are talking about 
> but I've had no problems running host tools out of ${.OBJDIR} when 
> cross-building at work.  Mind you we don't build anything which needs
> to be both host compiled and target compiled (ie we don't install cc etc).

Maybe we don't, but we should.

There are several tools, such as asn1_compile, compile_et, etc., that
are used during the build and which seem to have ill-defined enough
input formats that they must usually be re-built before the targets they
are used to build can be properly built.  I.e. they don't stand any real
degree of version skew whereas other tools like C compilers, etc., are
relatively stable.

Once upon a time I tried submitting patches for compile_et that would
cause it to be built in the correct order, with full dependencies, but
they were not compatible with cross builds, and I haven't tried working
out the issues since....

It would be really nice if the build system had automated mechanisms for
declaring that a program was needed as part of the build process and
providing some way to automatically register dependencies on the host
version.  Such tools might even make it possible to create a half-decent
set of dependencies on many other build tools, such as yacc et al.  Of
course the scheme of having one makefile in every directory makes this
kind of dependency registration a bit more difficult.

-- 
							Greg A. Woods

+1 416 218-0098      VE3TCP      <gwoods@acm.org>      <robohack!woods>
Planix, Inc. <woods@planix.com>; Secrets of the Weird <woods@weird.com>