questionable feature in FreeBSD pmake

Peter Pentchev roam at ringlet.net
Thu Oct 28 03:53:47 PDT 2004


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	roam at ringlet.net    roam at cnsys.bg    roam at FreeBSD.org
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20041028/2bc1acbc/attachment.bin


More information about the freebsd-hackers mailing list