Subject: RE: make 3.79: core dump expanding target specific variables
From: Scott Carter <[email-masked]>
To: [email-masked]
Cc: "'Robert Bogomip'" <[email-masked]>
Date: Tue, 6 Feb 2001 13:51:14 -0700

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:[email-masked]]
Sent: Tuesday, February 06, 2001 07:55 AM
To: [email-masked]
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:[email-masked]
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