Contents|Index|Previous|Next

Conditionals that Test Flags

You can write a conditional that tests make command flags such as ‘-t’ by using the variable MAKEFLAGS together with the findstring function (see Functions for String Substitution and Analysis ). This is useful when touch is not enough to make a file appear up to date.

The findstring function determines whether one string appears as a substring of another. If you want to test for the ‘-t’ flag, use ‘t’ as the first string and the value of MAKEFLAGS as the other.

For example, the following shows how to arrange to use ‘ranlib -t’ to finish marking an archive file up to date.

archive.a... :
ifneq (,$(findstring t,$(MAKEFLAGS)))
+touch archive.a
+ranlib -t archive.a
else
ranlib archive.a
endif

The ‘+’ prefix marks those command lines as “recursive” so that they will be executed despite use of the ‘-t’ flag. See Recursive Use of make.