Hi,

I think this:

until ([[ Reference.pdf -nt Reference.tex ]] && (diff -qs Reference.toc

should be (one square bracket instead of two):

until ([ Reference.pdf -nt Reference.tex ] && (diff -qs Reference.toc


HTH
--
Delio

On 6/06/2008, at 8:27 PM, Aidan Gauland wrote:

Hello,

I'm trying to figure out how to make this Makefile I have 100% POSIX compliant.

Details:
When run make with this Makefile, I get this error:

/bin/sh: [[: not found

This happens because there is no executable called '[['. You will find that your system has an executable called '[' which is usually a symlink to 'test' (running #man test will reveal more).



...it still runs, but I get caught in an infinite loop. I think this line is
the problem...

until ([[ Reference.pdf -nt Reference.tex ]] && (diff -qs Reference.toc last/Reference.toc) && (diff -qs Reference.aux last/Reference.aux) && (diff
-qs Reference.ind last/Reference.ind)); do \

The make file works if I force make to use bash, instead of the default
/bin/sh (which, on my systen is a link to dash).

Now, conditionals in bash (and the like) have always baffeled me, so I'm a bit lost here (now isn't that an understatement), and if any bash savvy system administrators here can help me out, that would be greatly appreciated.

I've attached a copy of the Makefile in question, but it's from the Pipmak ( http://pipmak.sourceforge.net ) project, and you can get it with Subversion
from...
https://pipmak.svn.sourceforge.net/svnroot/pipmak/trunk/pipmak/documentation

Thanks,
Aidan


<Makefile.gz>

Reply via email to