help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help-make Digest, Vol 76, Issue 7


From: xiangfeng shen
Subject: Re: Help-make Digest, Vol 76, Issue 7
Date: Mon, 16 Mar 2009 19:32:24 -0800

Hi,
 
The macro PROGRAM_template do not expand by first parse when reading the makefile.
So the server_LIBS is not defined at all when calling macro PROGRAM_template.
The $($(1)_LIBS) expand to nothing when called.

regards.
carl shen
 
2009/3/16 <address@hidden>
Send Help-make mailing list submissions to
       address@hidden

To subscribe or unsubscribe via the World Wide Web, visit
       http://lists.gnu.org/mailman/listinfo/help-make
or, via email, send a message with subject or body 'help' to
       address@hidden

You can reach the person managing the list at
       address@hidden

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Help-make digest..."


Today's Topics:

  1. define issues (Appleton, R. (Rick))


----------------------------------------------------------------------

Message: 1
Date: Mon, 16 Mar 2009 09:05:10 +0100
From: "Appleton, R. (Rick)" <address@hidden>
Subject: define issues
To: <address@hidden>
Message-ID:
       <address@hidden>
Content-Type: text/plain; charset="iso-8859-1"

I'm having issues using defines in a Makefile.
The following makefile:

=====================
PROGRAMS    = server client

.PHONY: all
all: $(PROGRAMS)

server_LIBS := priv protocol
client_LIBS := protocol

define PROGRAM_template

$(1):
       cc $($(1)_LIBS) -o $$@

endef

$(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))
=====================

generates this output
cc priv protocol -o server
cc protocol -o client

yet the following file
=====================
PROGRAMS    = server client

.PHONY: all
all: $(PROGRAMS)

client_LIBS := protocol

define PROGRAM_template

# The following line has moved inside the define
server_LIBS := priv protocol

$(1):
       cc $($(1)_LIBS) -o $$@

endef

$(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))
=====================

generates this (unexpected) output
cc  -o server
cc protocol -o client

Does anyone have an idea why it might be doing this?

My GNU Make version is 3.80
This e-mail and its contents are subject to the DISCLAIMER at http://www.tno.nl/disclaimer/email.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.gnu.org/pipermail/help-make/attachments/20090316/256949fe/attachment.html

------------------------------

_______________________________________________
Help-make mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/help-make


End of Help-make Digest, Vol 76, Issue 7
****************************************


reply via email to

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