I have a makefile with something like the following targets:
install: do a whole bunch of stuff to install dist: install cp README.txt $(INSTALL_DIR) zip $(INSTALL_DIR)
I am trying to not repeat the commands from target install
and make dist
execute install
first before executing its own commands.
Calling make dist
does indeed execute all commands from target install
but then just stops and it does not execute its own commands, e.g. the cp
.
Am I missing something?
$@ is the name of the target being generated, and $< the first prerequisite (usually a source file). You can find a list of all these special variables in the GNU Make manual.
The special rule . PHONY is used to specify that the target is not a file. Common uses are clean and all . This way it won't conflict if you have files named clean or all .
try to add this line in your makefile
.PHONY : install dist
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With