Package: make
Version: 3.81-5
Severity: normal
The manual says:
ifdef variable-name
The ifdef form takes the name of a variable as its argument, not a
reference to a variable. The value of that variable has a non-empty value,
the text-if-true is effective; otherwise, the text-if-false, if any, is
effective. Variables that have never been defined have an empty value. The
text variable-name is expanded, so it could be a variable or function that
expands to the name of a variable. For example:
bar = true
foo = bar
ifdef $(foo)
frobozz = yes
endif
The variable reference $(foo) is expanded, yielding bar, which is
considered to be the name of a variable. The variable bar is not
expanded, but its value is examined to determine if it is non-empty.
Note that ifdef only tests whether a variable has a value. It does not
expand the variable to see if that value is nonempty. Consequently, tests
using ifdef return true for all definitions except those like foo =. To
test for an empty value, use ifeq ($(foo),). For example,
The second sentence of the first paragraph has a grammar error, it lools like
it should read "If the vale of that variable..."
The paragraph that begins 'Note that ifdef only tests...' seems to be wrong in
a suble way. Although it is correct for recusively expanded variables, simply
expanded variables that are assigned values that expand empty can still be
undefined.
-- System Information:
Debian Release: 5.0.8
APT prefers oldstable
APT policy: (500, 'oldstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.26-2-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages make depends on:
ii libc6 2.7-18lenny7 GNU C Library: Shared libraries
make recommends no packages.
Versions of packages make suggests:
pn make-doc <none> (no description available)
-- no debconf information
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]