make-first-existing-target - runs make on one of several targets
make-first-existing-target [-c cmd] target1 [target2 ...] -- [make-options]
The design of make(1) causes difficulty when you know that a Makefile
probably has one of several standardized target names, and want build
machinery to run exactly one of them, propagating any errors. make(1)
will exit 2 if a target does not exist, but an existing target may also exit 2
due to some other failure. Makefiles cannot be reliably parsed to find targets
by anything less Turing-complete than make, and make itself does not provide a
way to enumerate the targets in a Makefile. It may not even be possible to
enumerate the targets in a Makefile without executing part of it. (Proof of
this is left as an exercise for the reader.)
This program avoids the problems described above, by attempting to
call each specified target in turn, until it observes make actually doing
something for one of them.
- -c cmd
- This can be used to specify the make command to run. Default is
The exit status is 0 if at least one target existed and was successfully run,
and nonzero otherwise.
Joey Hess <firstname.lastname@example.org>
Same as GNU make.