GPC git

Jay Michael jmichael_ll at yahoo.com
Sun Jul 29 03:58:11 CEST 2012


> From: Prof A Olowofoyeku (The African Chief) <chief at 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). 



More information about the Gpc mailing list