bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

maint.mk bug (with tentative fix)


From: Gary V. Vaughan
Subject: maint.mk bug (with tentative fix)
Date: Thu, 2 Jan 2014 14:08:07 +1300

Gnulibbers,

On my Mac OS 10.9.1, with /bin/zsh as my login shell (trying to make an alpha 
release of Libtool master HEAD):

$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

$ make no-submodule-changes
/bin/sh: -c: line 1: syntax error: unexpected end of file
make: *** [no-submodule-changes] Error 2

$ make no-submodule-changes V=1 SHELL=/bin/bash
if test -d ./.git                               \
                && git --version >/dev/null 2>&1; then                  \
          diff=$(cd . && git submodule -q foreach                       \
                 git diff-index --name-only HEAD)                       \
            || exit 1;                                                  \
          case $diff in '') ;;                                          \
            *) echo 'maint.mk: submodule files are locally modified:';  \
                echo "$diff"; exit 1;; esac;                            \
        else                                                            \
          : ;                                                           \
        fi
/bin/bash: -c: line 1: syntax error: unexpected end of file
make: *** [no-submodule-changes] Error 2

$ make no-submodule-changes V=1 SHELL=/bin/zsh
if test -d ./.git                               \
                && git --version >/dev/null 2>&1; then                  \
          diff=$(cd . && git submodule -q foreach                       \
                 git diff-index --name-only HEAD)                       \
            || exit 1;                                                  \
          case $diff in '') ;;                                          \
            *) echo 'maint.mk: submodule files are locally modified:';  \
                echo "$diff"; exit 1;; esac;                            \
        else                                                            \
          : ;                                                           \
        fi
zsh:1: parse error near `fi'
make: *** [no-submodule-changes] Error 1

Replacing the $(...) with back ticks fixes the parse problem for me, though I'm 
not sure whether it's the odd looking dangling `|| exit 1` or the POSIX command 
substitution paren matching interacting badly with nested `cd $(srcdir)`?

l$ make V=1 no-submodule-changes-portable
if test -d ./.git                               \
                && git --version >/dev/null 2>&1; then                  \
          diff=`cd . && git submodule -q foreach                \
                  git diff-index --name-only HEAD`                      \
            || exit 1;                                                  \
          case $diff in '') ;;                                          \
            *) echo 'maint.mk: submodule files are locally modified:';  \
                echo "$diff"; exit 1;; esac;                            \
        else                                                            \
          : ;                                                           \
        fi

The change (back ticks instead of $(...) in the no-submodule-changes rule) 
looks like a harmless way to fix the bug to me.

Okay to push?

Cheers,
-- 
Gary V. Vaughan (gary AT gnu DOT org)

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail


reply via email to

[Prev in Thread] Current Thread [Next in Thread]