Prof A Olowofoyeku (The African Chief) wrote:
I wrote:
Hi Waldek
Something is broken under Win32 (compiling with msys environment). This is what I have noticed so far;
- rts-config.inc is not installed when you run 'make pascal.install' 2.
make-lang.inc has "@true" in it. This results in a "command not found" error
I have found the issues (under Win32, gcc-3.4.5 backend sources);
- "@true" causes an error in 'pascal.install' and 'pascal.bindist', so
I have removed it.
The line is now:
echo "pascal.install done" ; @true
Try:
echo "pascal.install done" ; true
that is remove '@' sign. Note: both lines start from a tab.
On 27 Jul 2012 at 0:41, Waldek Hebisch wrote:
[...]
I have found the issues (under Win32, gcc-3.4.5 backend sources);
- "@true" causes an error in 'pascal.install' and 'pascal.bindist',
so I have removed it.
The line is now:
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".
Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/
Prof. Abimbola A. Olowofoyeku (The African Chief) wrote:
On 27 Jul 2012 at 0:41, Waldek Hebisch wrote:
[...]
I have found the issues (under Win32, gcc-3.4.5 backend sources);
- "@true" causes an error in 'pascal.install' and 'pascal.bindist',
so I have removed it.
The line is now:
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. Similarely, the fact that you see no problem after removal of it does not mean that it will work fine for everybody after removing it.
On 27 Jul 2012 at 20:43, Waldek 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. Similarely, 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?
Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/
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).
On 28 Jul 2012 at 18:58, Jay Michael wrote:
[...]
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.
Indeed.
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".
Yes.
I think your real problem is that you somehow don't have this
program "true" visible.
It is visible. What the shell doesn't like is the "@" sign (i.e., in "@true"). Just running "true" as Waldek suggests works fine - but the command line is printed (which is quite fine IMHO). Removing the semi-colon and the "true" or "@true" after it also works okay - but who knows whether it can cause problems on another platform? So I guess we should simply removing the "@" sign as suggested by Waldek. I don't pretend to understand unix shells very intimately, so perhaps the best option is minimal intervention.
Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/
From: Prof A Olowofoyeku 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'
Which version of the make rule gave you "@true -- command not found"?
If it's the git version, with "echo ; @true" as a make recipe line, I think the problem is that when the command was moved from the end of the prerequisites list to its own line, and the "echo" command was inserted, the "echo" command was inserted wrongly. The at-sign is a make feature, and belongs at the beginning of the make recipe line:
a: b ; @true to a: b @true to a: b @echo something ; true or a: b @echo something @true
Prof. Abimbola A. Olowofoyeku (The African Chief) wrote:
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?
You are right. I was thinking that the echo command was in release tarball, but it was present only in my local copy. Given that purpose of '; @true' was to have a command and now 'echo' is such command we can safely remove '; @true'. I have commited this change now.