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, here is 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 recipe lines as “recursive” so that they will be executed despite use of the ‘-t’ flag. See Recursive Use of make
.
Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Testing-Flags.html