From: Prof A Olowofoyeku (The African Chief) chief@greatchief.plus.com Hebisch wrote:
echo "pascal.install done" ; @true
Try:
echo "pascal.install done" ; true
that is remove '@' sign. Note: both lines start from a tab.
It does nothing very different compared to removing everything after "echo pascal.install done".
The comment above this line says that the semicolon and 'true' command were added on purpose. I admit that I do not understand which problem this tries to fix, but given that it seems safer to keep it. We had '; @true' in this line for several years and nobody complained about it. Similarly, the fact that you see no problem after removal of it does not mean that it will work fine for everybody after removing it.
I get your point, but we are talking about different things. This is what is in the release tarball:
'pascal.install: pascal.install-normal pascal.install-compiler; @true'
This is what is in the git version:
'pascal.install: pascal.install-normal pascal.install-compiler echo "pascal.install done" ; @true'
Seems to me that these lines are not the same?
gmake lets you put the first command ("line" of the "recipe") at the end of the line of prerequisites, using a semicolon to separate the command from the prerequisites.
a: b c ; d
is supposed to be the same as
a: b c d
The at-sign ('@') is supposed to suppress the printing of the command.
It looks like, in the building of two pseudo-targets by specifying them as prerequisites of yet another pseudo-target, someone wanted to specify a do-nothing recipe for the top-level target (maybe to keep it from inheriting implicit recipes, maybe to suppress a "don't know how to make" message). So he told it to run the program "true", which always terminates with an exit status of "SUCCESS".
I think your real problem is that you somehow don't have this program "true" visible. Under Windows, I find mingw\msys\1.0\bin\true.exe I've seen postings indicating it's a standard program under UNIX (or at least Linux).