lisp: fix a failure with Solaris /usr/xpg4/bin/sh
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 18 May 2013 11:35:16 +0000 (13:35 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 18 May 2013 11:38:01 +0000 (13:38 +0200)
* lib/am/lisp.am (.el.elc): By initializing the 'am__dir' properly
here.  For most shells, the lacking initialization, while technically
incorrect, didn't cause any issue in practice, because in those shells
"test -d" returns an exit status of 0. But with /usr/xpg4/bin/sh, the
shell complains like this: "test: argument expected", and returns a
non-zero exit status.  This caused testsuite failures in several lisp
tests.
Also, while we are at it, use more proper quoting in the recipe, to
ensure a missing initialization to now be caught by more forgiving
shells as well.
* NEWS: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
NEWS
lib/am/lisp.am

diff --git a/NEWS b/NEWS
index 493b535..3b6814d 100644 (file)
--- a/NEWS
+++ b/NEWS
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+New in 1.13.3:
+
+* Bugs fixed:
+
+  - Byte-compilation of Emacs lisp files could fail spuriously on Solaris,
+    when /bin/ksh or /usr/xpg4/bin/sh were used as shell.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.13.2:
 
 * Obsolescent features:
index de9e5bb..bfb023f 100644 (file)
@@ -31,13 +31,13 @@ endif %?INSTALL%
 ## input (which would erronously put it in $(srcdir) in VPATH builds),
 ## so we override that, too.
        if test "$(EMACS)" != "no"; then \
-         am__subdir_includes=''; \
+         am__dir=. am__subdir_includes=''; \
          case $@ in */*) \
            am__dir=`echo '$@' | sed 's,/[^/]*$$,,'`; \
            am__subdir_includes="-L $$am__dir -L $(srcdir)/$$am__dir"; \
          esac; \
 ## Emacs byte-compilation won't create this automatically, sadly.
-         test -d $$am__dir || $(MKDIR_P) $$am__dir || exit 1; \
+         test -d "$$am__dir" || $(MKDIR_P) "$$am__dir" || exit 1; \
          $(EMACS) --batch \
            $(AM_ELCFLAGS) $(ELCFLAGS) \
            $$am__subdir_includes -L $(builddir) -L $(srcdir) \