Robert Pluim <rpluim(a)bigfoot.com> wrote:
Jerry James writes:
> APPROVE COMMIT 21.5
>
> Thanks to David John for pointing this out.
>
Did it cause him problems? Or is it merely a style issue?
It caused him problems. He is using Solaris make, where := means
something completely different from its meaning in BSD and GNU makes.
Does anyone if this is true for SVR4-descended Unixes in general?
Thus neatly breaking module building on FreeBSD again. I
wouldn't
really mind that much if we mandated GNU make, but messing around
trying to find the minimal working intersection of all makes on the
planet is going to get old real fast.
How does this change break the build? What goes wrong? Does it break
other BSDs as well?
I agree that messing around with a bunch of makes is likely to be
unsatisfying. Let's try to figure out what we might do, though. From
the information provided by you and David and my own experiments, I know
that:
Solaris make FreeBSD make GNU make
------------ ------------ --------
:= breaks works works
= works breaks works
Since GNU make works in either case, and we preprocess our Makefiles, we
could do something like this:
#if BUILDING_ON_SOLARIS (or maybe BUILDING_ON_SVR4)
SRC_SRCS=$(SRCS:%=$(srcdir)/%)
#else
SRC_SRCS:=$(SRCS:%=$(srcdir)/%)
#endif
or even
#if BUILDING_ON_FREEBSD (or maybe BUILDING_ON_BSD)
SRC_SRCS:=$(SRCS:%=$(srcdir)/%)
#else
SRC_SRCS=$(SRCS:%=$(srcdir)/%)
#endif
and we don't have to worry about whether the native make or GNU make is
in use. If that looks good to you, I'll figure out how to make it so.
Thanks,
--
Jerry James
http://www.ittc.ku.edu/~james/