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 <[email protected]> > Send Help-make mailing list submissions to > [email protected] > > 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 > [email protected] > > You can reach the person managing the list at > [email protected] > > 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)" <[email protected]> > Subject: define issues > To: <[email protected]> > Message-ID: > <[email protected]> > 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 > [email protected] > http://lists.gnu.org/mailman/listinfo/help-make > > > End of Help-make Digest, Vol 76, Issue 7 > **************************************** >
_______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
