make 3.79: core dump expanding target specific variables

Scott Carter scarter@emware.com
Tue Feb 6 12:51:00 GMT 2001


I don't have a explanation/solution for the core dump, but here's a
explanation of why you get [ 2] rather than [2] 

http://sources.redhat.com/ml/cygwin/2000-07/msg00816.html
(summary: += inserts a space.)

Because of this, the += will not give the result you appear to want. 
None of the following alternatives worked for me
t : m = ${m}2
t : m := ${m}2
m := ${m}2

But this does
---------------------------
/cygdrive/d/temp % cat makefile
t: n = ${m}2

t:
        @echo "[${n}]"

/cygdrive/d/temp % make t
[2]
/cygdrive/d/temp % make m=hello t
[hello2]
/cygdrive/d/temp %
---------------------------

Scott Carter
Software Engineer



-----Original Message-----
From: Robert Bogomip [ mailto:bob.bogo@milohedge.com ]
Sent: Tuesday, February 06, 2001 07:55 AM
To: cygwin@cygwin.com
Subject: make 3.79: core dump expanding target specific variables


Consider this makefile:

  t: m+=2

  t:
	@echo "[${m}]"

Then the following sort of works:

  $ make t
  [ 2]
  $

(Interestingly, make 3.77 (which I have kept a copy of) produces a
different result:

  $ make377 t
  [2]
  $

Hmmm.)

BUT the folowing crashes:

  $ make m=hello t
  assertion "current_variable_set_list->next != 0" failed: file
"/cygnus/netrel/src/make-3.79.1-2/expand.c", line 489

        0 [sig] make 1580 stackdump: Dumping stack trace to
make.exe.stackdump
  Aborted (core dumped)
  $

All is OK with m:=hello on the command line (note the colon), and also
running with make377. None of make-3.79-3, make-3.79.1-1, or make 3.79.1-2
work.
-- 
Robert Bogomip /// mailto:bob.bogo@milohedge.com
Milo Hedge Ltd, OCFI, Mill Street, Oxford, OX2 0JX /// tel:+44 1865 799400


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list