If I type just
$ make
it will invoke the make command with the default target (typically the first target specified in the Makefile, but the rules are a bit more complicated than that).
Is there a way to specify the default target on the command line without knowing what it is, other than by simply omitting the target name?
What I’d like to be able to do is combine these two commands:
$ make clean
$ make
into a single invocation of make. If I happen to know that the default target is all, I can type:
$ make clean all
but that doesn’t work if I don’t know what the default target is.
Ideally, I’d like some syntax that refers to the default target (the GNU make manual calls it the “default goal”). This:
$ make clean .DEFAULT_GOAL
shows the general idea, but it doesn’t work.
Second best would be a simple and reliable way to determine, from the command line, what the default target is:
$ make clean $(get-default-target)
A GNU-specific solution would be ok.
I suspect, from a quick look into the manual, that there’s no good way to do this.
For a shot at the second-best solution, you can parse the default goal from the output of make -pq: