[Top][All Lists]

[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" <> 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 <>          Find some GNU make tips at:            
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist

reply via email to

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