diff --git a/ChangeLog b/ChangeLog index 39ea1f54452..412b840a55e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-06-20 Paul Eggert + + Diagnose failures due to colons in directory names (Bug#17278). + * Makefile.in (epaths-force): Don't allow ':' in directories whose + names go into a colon-separated path. + * configure.ac: Fail if submake fails. + 2014-06-17 Paul Eggert Omit redundant extern decls. diff --git a/Makefile.in b/Makefile.in index 7104ef82744..1a7acef0c5a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -297,6 +297,14 @@ removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g' # to just letting configure generate epaths.h from epaths.in in a # similar way to how Makefile is made from Makefile.in. epaths-force: + @for dir in '$(abs_srcdir)' '$(lispdir)' '$(archlibdir)'; do \ + case $$dir in \ + *:*) \ + echo >&2 "Build or installation directory '$$dir'"; \ + echo >&2 "cannot contain ':'."; \ + exit 1;; \ + esac; \ + done @(standardlisppath=`echo "${standardlisppath}" | ${removenullpaths}` ; \ locallisppath=`echo "${locallisppath}" | ${removenullpaths}` ; \ buildlisppath=`echo "${buildlisppath}" | ${removenullpaths}` ; \ diff --git a/configure.ac b/configure.ac index 56005b51e22..c4ca395d6d1 100644 --- a/configure.ac +++ b/configure.ac @@ -5121,7 +5121,7 @@ if test "${opsys}" = "mingw32"; then ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force-w32 else ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force -fi +fi || AC_MSG_ERROR(['src/epaths.h' could not be made.]) ], [GCC="$GCC" CPPFLAGS="$CPPFLAGS" opsys="$opsys"]) dnl NB we have to cheat and use the ac_... version because abs_top_srcdir