Jon Mountjoy wrote:
>
> Are you perhaps (not) using bash?
> Bash accepts for i in ; and sh not.
Bash and sh are identical on Linux systems (/bin/sh is a link to /bin/bash).
Newer (>=2.0) Bashs are more pedantic regarding the syntax, e.g.
{ echo foo ; echo bar }
is not accepted anymore, it has to be
{ echo foo ; echo bar ; }
Similarly,
for i in ; do echo $i ; done
is illegal now. Wrapping an "if" around it (see Makefile for the binary
distribution) doesn't help as the command line is parsed before it is
evaluated:
if false ; then for i in ; do echo $i ; done ; fi
bash: syntax error near unexpected token `;'
Quick hack for the Makefile: Change
if test "$(PACKAGE_FOO)"; then \
for i in $(PACKAGE_FOO) ; do \
...
done
fi
to
for i in $(PACKAGE_FOO) ThisIsAHack ; do \
if test $i != ThisIsAHack ; then
...
fi
done
Hopefully, nothing in the package is called "ThisIsAHack"... :-)
--
Sven Panne Tel.: +49/89/2178-2235
LMU, Institut fuer Informatik FAX : +49/89/2178-2211
LFE Programmier- und Modellierungssprachen Oettingenstr. 67
mailto:[EMAIL PROTECTED] D-80538 Muenchen
http://www.pms.informatik.uni-muenchen.de/mitarbeiter/panne