Date: Sun, 31 May 1998 02:10:42 +0800 From: Peter Wemm <peter@netplex.com.au> To: Mike Smith <mike@smith.net.au> Cc: current@FreeBSD.ORG, committers@FreeBSD.ORG Subject: Re: elf vs. bsd.*.mk Message-ID: <199805301810.CAA24860@spinner.netplex.com.au> In-Reply-To: Your message of "Sat, 30 May 1998 09:42:46 MST." <199805301642.JAA06203@antipodes.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Smith wrote:
> First, a big cheer for the work you've been doing on all this!
>
> > So, I thought I'd see what general feelings were on the subject. Do we
> > really want things like ${LIBDIR} defined for *all* makefiles, including
> > non bsd.prog.mk etc Makefiles. Also, make.conf is also globally visible
> > as well. I'm sure this can't be good for posix compliance etc. Since
> > I've finished 95% of the work so far, should I press on and clean up the
> > loose ends, or should I put it in the 'too hard' basket for the time being
> > and try the simple way out :-).
>
> That depends on whether the simple way out will work. 8) If it's the
> "right" way, then of course it's worth doing. How about some more
> details on it?
Specifically, bsd.own.mk does this:
.if ${BINFORMAT} == aout
LIBDIR?= /usr/lib/aout
.else
LIBDIR?= /usr/lib
.endif
Which means... The condition is processed before the Makefile is read, so
the makefile cannot "change" BINFORMAT and get a coherent set of changes.
ie: everything except LIBDIR changes.
So, the cheap hack way out is this:
LIBDIR?= /usr/lib${LIBSUBDIR}
and then define LIBSUBDIR later on in the bsd.*.mk files. ie: set it to
"" for elf, or "/aout" for a.out, or even "/compat" if needed. This might
make a few things easier in some other places too where we have gone to a
lot of trouble with this particular variable.
Yes, I was peeved when I realized this. :-) I started trying to get my
dual-mode elf system to build world around 13 hours ago (and working on NFS
stuff while waiting for the next compile to fail :-)
The other way:
peter@beast[2:04am]~src/share/mk-266> cvs diff -c | wc -l
cvs diff: Diffing .
860
peter@beast[2:04am]~src/share/mk-267> cvs diff -u | wc -l
cvs diff: Diffing .
700
Plus 20 other Makefile tweaks around the tree. Luckily, a number of the
changes are applicable either way, so it's not a total loss.
On one hand, the one-line change is simpler, but I think the reshuffle is
more "right", although it has very little effect on how the bmakefiles see
the world. It's more of a cleanliness win on non-BSD makefiles.
Cheers,
-Peter
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199805301810.CAA24860>
