bug-make
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]