[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: make-3.80: `eval' bug
From: |
Paul D. Smith |
Subject: |
Re: make-3.80: `eval' bug |
Date: |
Wed, 30 Oct 2002 14:10:13 -0500 |
%% Henning Makholm <address@hidden> writes:
Just FYI, I think those -t problems have been around for a long time;
IIRC I looked as far back as 3.74 and they were there. So just checking
against 3.79% and failing is not going to help...
hm> 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
hm> Yes, that would be a problem. I think I had in mind something
hm> pedestrian like:
hm> To see whehter this `make' is newer than 4.3, do
hm> if MAJOR = 3 then no
hm> else if MAJOR = 4 then
hm> if MINOR = 0 then no
hm> else if MINOR = 1 then no
hm> else if MINOR = 2 then no
hm> else if MINOR = 3 then no
hm> else yes
hm> else yes
Sure, but what about for 3.80, where MINOR is 80 ? :)
I think at this point you're looking at using $(shell ...) in which case
it doesn't matter.
Anyway, you can easily split the current MAKE_VERSION already, like this:
$(subst ., ,$(MAKE_VERSION))
so:
$ echo 'all:;@echo $(subst ., ,$(MAKE_VERSION))' | make -f-
3 79 1
then do whatever you like with the parts using $(firstword ...) or
whatever.
hm> Perhaps if $(.MAKE_FEATURES) also included a list of this and
hm> previous releases, with exception of releases that never defined
hm> $(.MAKE_FEATURES). That may cause the value to grow excessively
hm> long with time. A possibility would be to document that all v3.xx
hm> "feature" markers (with xx>0) would go away with the introduction
hm> of v4.0, so one could do
hm> ifneq ($(filter version_3.84 version_4.0,$(.MAKE_FEATURES)),)
(not sure why you add version_4.0 to this filter?)
Hmm. I agree that this is an interesting idea but I also agree that the
value would get very large.
I suspect that I will probably go with a response like (a) for now if
you need to do complex version calculations you can use $(shell ...),
and (b) in the future we'll hopefully have an embedded scripting
language which can do math for you.
--
-------------------------------------------------------------------------------
Paul D. Smith <address@hidden> Find some GNU make tips at:
http://www.gnu.org http://make.paulandlesley.org
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist