[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ifeq in gmake
From: |
Paul D. Smith |
Subject: |
Re: ifeq in gmake |
Date: |
02 Apr 2006 17:43:15 -0400 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 |
%% "atteson" <kevin@atteson.com> writes:
a> Can someone explain why gmake outputs "goodbye" rather than "hello"
a> with the following test makefile:
a> %.a : b
a> ifeq ($@,"a.a")
a> echo "hello"
a> else
a> echo "goodbye"
a> endif
Because, ifeq etc. are evaluated as make is reading in the makefile
(even if they seem to appear in a "rule context": ONLY lines beginning
with TAB are considered command scripts and passed to the shell.
On the other hand, automatic variables like $@ are set only when make is
trying to build the rules long after the makefiles have been read in.
So, $@ is always empty when you evaluate that ifeq.
--
-------------------------------------------------------------------------------
Paul D. Smith <psmith@gnu.org> 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
- ifeq in gmake, atteson, 2006/04/02
- Re: ifeq in gmake,
Paul D. Smith <=