On Thu, Oct 28, 2004 at 03:23:02AM -0700, Dan Strick wrote:
> I just spent a *very* frustrating hour trying to figure out why the
> FreeBSD make program was invoking all commands to make things in a
> subdirectory named "obj".  I eventually discovered this gem in the
> make man page:
[snip]
>     .OBJDIR   A path to the directory where the targets are built.
[snip]
>               1.   ${MAKEOBJDIRPREFIX}/`pwd`
>               2.   ${MAKEOBJDIR}
>               3.   obj.${MACHINE}
>               4.   obj
>               5.   /usr/obj/`pwd`
> 
> I believe this feature is a real botch because it is magic, unintuitive,
> and so *exceedingly* easy to invoke by mistake.

Actually, this feature lies at the base of the FreeBSD base system build
infrastructure, and it is pretty much The Feature that allows us to
build from read-only and/or NFS-mounted sources shared among wide swarms
of machines :)

[snip]
> This feature is not mentioned in the pmake tutorial found in
> /usr/share/doc/psd/12.make.  Is it a FreeBSD-ism?

A quick glance at other BSD's make(1) manual pages, all available from
<URL:http://www.FreeBSD.org/cgi/man.cgi>, seems to show that .OBJDIR and
MAKEOBJDIRPREFIX handling is present in all of them, and OpenBSD's
make(1) manual lists the same search order, including 'obj.${MACHINE}'
and 'obj'.

G'luck,
Peter

-- 
Peter Pentchev  [EMAIL PROTECTED]    [EMAIL PROTECTED]    [EMAIL PROTECTED]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
I am jealous of the first word in this sentence.

Attachment: pgpxz16AD420E.pgp
Description: PGP signature

Reply via email to