[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: make-3.80: `eval' bug
From: |
Henning Makholm |
Subject: |
Re: make-3.80: `eval' bug |
Date: |
30 Oct 2002 18:23:06 +0100 |
Scripsit "Paul D. Smith" <address@hidden>
> As for the version numbering, the fact that GNU make is a string-based
> tool and has no numeric operators anyway
Yes, that would be a problem. I think I had in mind something
pedestrian like:
To see whehter this `make' is newer than 4.3, do
if MAJOR = 3 then no
else if MAJOR = 4 then
if MINOR = 0 then no
else if MINOR = 1 then no
else if MINOR = 2 then no
else if MINOR = 3 then no
else yes
else yes
> Instead I'm seriously considering something suggested to me by Greg
> McGary, based on Emacs' provide/require (well, I don't know if that's
> where he got the idea but that's what it reminds me of :)), which would
> create a variable like $(.MAKE_FEATURES) containing space-separated
> strings for all the major "enhanced" features that are present in the
> current version of GNU make.
Hm, might work too. In my particular case, the feature I was looking
for was "a correct implementation of the -t option", which I suppose
wouldn't be in such a variable even though -t works in 3.80 and was
horribly broken in 3.79.x.
Perhaps if $(.MAKE_FEATURES) also included a list of this and previous
releases, with exception of releases that never defined
$(.MAKE_FEATURES). That may cause the value to grow excessively long
with time. A possibility would be to document that all v3.xx "feature"
markers (with xx>0) would go away with the introduction of v4.0, so
one could do
ifneq ($(filter version_3.84 version_4.0,$(.MAKE_FEATURES)),)
# Good. We're on 3.84 or later.
# The .FROBNICATE_OPTIONS pseudotarget works here - 3.83 claims
# that it works, but contains minor bugs that happen to kill our
# particular use of it.
else
# Here I am sure that we're on something older than 3.84.
end
--
Henning Makholm "Nemo enim fere saltat sobrius, nisi forte insanit."