A far better way to learn about GNU make would be to read the actual manual.
https://www.gnu.org/software/make/manual/
This doesn't seem like a well thought out introduction. There's quite a lot of randomness. For example, the first makefile says:
This makefile will always run. The default target is some_binary,
because it is first.
some_binary:
echo "nothing"
Actually, it's not true that that will always echo nothing because some_binary isn't declared as phony and so if some_binary exists on the CWD echo "nothing" will not happen.
Also, the language here is weird. The tutorial talks about makefiles running and targets calling targets.
4.8 states:
1) We do not use *.o, because that is just the string *.o,
which might be useful in the commands, but is only one
target and does not expand."
That's not true. Consider the following
*.foo: ; @echo $@
If there are any files in the CWD that match *.foo then it is expanded and rules created for each file.
https://www.gnu.org/software/make/manual/
This doesn't seem like a well thought out introduction. There's quite a lot of randomness. For example, the first makefile says:
Actually, it's not true that that will always echo nothing because some_binary isn't declared as phony and so if some_binary exists on the CWD echo "nothing" will not happen.Also, the language here is weird. The tutorial talks about makefiles running and targets calling targets.
4.8 states:
That's not true. Consider the following If there are any files in the CWD that match *.foo then it is expanded and rules created for each file.