From: Glenn Morris Date: Wed, 23 Oct 2013 06:22:54 +0000 (-0700) Subject: Make building in directories with whitespace possible X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1182 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b8e3b0a9ecb6c8ca1c2a4db189e92bcf08b5052d;p=emacs.git Make building in directories with whitespace possible Make has trouble with targets containing whitespace, http://savannah.gnu.org/bugs/?712, so the general approach is to use relative paths where possible. It's generally only Emacs itself that needs absolute paths, eg in src/epaths.h. * configure.ac (srcdir): Don't make it absolute - abs_srcdir exists. * Makefile.in (abs_srcdir): New, set by configure. (buildlisppath): Use abs_srcdir. (install-arch-indep, install-etcdoc, install-info, install-man) (install-etc): Quote entities that might contain whitespace. * admin/unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el): Quote entities that might contain whitespace. * leim/Makefile.in (abs_srcdir): New, set by configure. (buildlisppath): Use abs_srcdir. (RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el) ($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare): Quote entities that might contain whitespace. * lib-src/Makefile.in ($(DESTDIR)${archlibdir}): Quote entities that might contain whitespace. * lisp/Makefile.in (abs_srcdir, abs_lisp): New, set by configure. (emacs, compile, compile-always): Quote entities that might contain whitespace. (custom-deps, finder-data, autoloads): Use abs_lisp. ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el) ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el) ($(CAL_DIR)/hol-loaddefs.el): Manually expand target file name. * nextstep/Makefile.in (${ns_check_file} ${ns_appdir}): Quote entities that might contain whitespace. * nt/Makefile.in ($(DESTDIR)${archlibdir}): Quote entities that might contain whitespace. * src/Makefile.in (RUN_TEMACS): Make relative (again). ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el) (bootstrap-emacs$(EXEEXT)): Quote entities that might contain whitespace. * test/automated/Makefile.in (abs_top_srcdir, top_builddir): New, set by configure. (top_srcdir): Remove. (abs_test, abs_lispsrc): New. (lisp): No longer absolute. (emacs, lisp-compile, compile, compile-always): Quote entities that might contain whitespace. Fixes: debbugs:15675 --- diff --git a/ChangeLog b/ChangeLog index bf0c7b0afde..afa99cd58ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2013-10-23 Glenn Morris + + Make building in directories with whitespace possible. (Bug#15675) + * configure.ac (srcdir): Don't make it absolute - abs_srcdir exists. + * Makefile.in (abs_srcdir): New, set by configure. + (buildlisppath): Use abs_srcdir. + (install-arch-indep, install-etcdoc, install-info, install-man) + (install-etc): Quote entities that might contain whitespace. + 2013-10-23 Paul Eggert Merge from gnulib, incorporating: diff --git a/Makefile.in b/Makefile.in index c6254fd6098..25e170200a3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -163,6 +163,7 @@ bitmapdir=@bitmapdir@ # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. srcdir=@srcdir@ +abs_srcdir=@abs_srcdir@ # Where the manpage source files are kept. mansrcdir=$(srcdir)/doc/man @@ -216,7 +217,7 @@ lisppath=@lisppath@ # before they've been installed in their final location. # This should be a colon-separated list of directories. # Normally it points to the lisp/ directory in the sources. -buildlisppath=${srcdir}/lisp +buildlisppath=${abs_srcdir}/lisp # Where to install the other architecture-independent # data files distributed with Emacs (like the tutorial, @@ -569,10 +570,10 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR [ -d $${dir} ] || exit 1 ; \ dest=$$1 ; shift ; \ [ -d $${dest} ] && \ - [ `cd $${dest} && /bin/pwd` = `cd $${dir} && /bin/pwd` ] && \ + [ "`cd $${dest} && /bin/pwd`" = "`cd $${dir} && /bin/pwd`" ] && \ continue ; \ if [ "$${dir}" = "leim/quail" ]; then \ - [ `cd $${dir} && /bin/pwd` = `cd ${srcdir}/leim/quail && /bin/pwd` ] && \ + [ "`cd $${dir} && /bin/pwd`" = "`cd ${srcdir}/leim/quail && /bin/pwd`" ] && \ continue ; \ else \ rm -rf $${dest} ; \ @@ -616,7 +617,7 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR unset CDPATH; \ thisdir=`/bin/pwd`; \ for dir in $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}; do \ - cd $${thisdir} ; \ + cd "$${thisdir}" ; \ cd $${dir} || exit 1 ; \ for f in `find . -name "*.elc" -print`; do \ ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ @@ -633,7 +634,7 @@ install-arch-indep: lisp leim install-info install-man ${INSTALL_ARCH_INDEP_EXTR install-etcdoc: src install-arch-indep -unset CDPATH; \ umask 022; ${MKDIR_P} $(DESTDIR)${etcdocdir} ; \ - if [ `cd ./etc; /bin/pwd` != `cd $(DESTDIR)${etcdocdir}; /bin/pwd` ]; \ + if [ "`cd ./etc; /bin/pwd`" != "`cd $(DESTDIR)${etcdocdir}; /bin/pwd`" ]; \ then \ docfile="DOC"; \ echo "Copying etc/$${docfile} to $(DESTDIR)${etcdocdir} ..." ; \ @@ -646,27 +647,28 @@ install-info: info umask 022; ${MKDIR_P} $(DESTDIR)${infodir} -unset CDPATH; \ thisdir=`/bin/pwd`; \ - [ `cd ${srcdir}/info && /bin/pwd` = `cd $(DESTDIR)${infodir} && /bin/pwd` ] || \ - (cd $(DESTDIR)${infodir}; \ + if [ "`cd ${srcdir}/info && /bin/pwd`" = "`cd $(DESTDIR)${infodir} && /bin/pwd`" ]; then \ + true; \ + else \ + (cd "$(DESTDIR)${infodir}"; \ [ -f dir ] || \ - (cd $${thisdir}; \ - ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ; \ - info_misc=`cd $${thisdir}/doc/misc && \ - $(QUIET_SUBMAKE) $(MAKE) -s echo-info \ - `; \ + (cd "$${thisdir}"; \ + ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ); \ + info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ cd ${srcdir}/info ; \ for elt in ${INFO_NONMISC} $${info_misc}; do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ ${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \ [ -n "${GZIP_PROG}" ] || continue ; \ rm -f $(DESTDIR)${infodir}/$$f.gz; \ ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \ done; \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ - done) + done; \ + fi ## "gzip || true" is because some gzips exit with non-zero status ## if compression would not reduce the file size. Eg, the gzip in @@ -680,7 +682,7 @@ install-man: cd ${mansrcdir}; \ for page in *.1; do \ dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \ [ -n "${GZIP_PROG}" ] || continue ; \ rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \ @@ -706,12 +708,12 @@ install-etc: cd ${iconsrcdir} || exit 1; umask 022 ; \ for dir in */*/apps */*/mimetypes; do \ [ -d $${dir} ] || continue ; \ - ( cd $${thisdir}; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \ + ( cd "$${thisdir}"; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \ for icon in $${dir}/${EMACS_ICON}[.-]*; do \ [ -r $${icon} ] || continue ; \ ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \ dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e 's/$(EMACS_ICON)/emacs/' -e '$(TRANSFORM)'`.$${ext} ; \ - ( cd $${thisdir}; \ + ( cd "$${thisdir}"; \ ${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dir}/$${dest} ) \ || exit 1; \ done ; \ @@ -734,8 +736,8 @@ uninstall: uninstall-$(NTDIR) uninstall-doc -unset CDPATH; \ for dir in $(DESTDIR)${lispdir} $(DESTDIR)${etcdir} ; do \ if [ -d $${dir} ]; then \ - case `cd $${dir} ; /bin/pwd` in \ - `cd ${srcdir} ; /bin/pwd`* ) ;; \ + case "`cd $${dir} ; /bin/pwd`" in \ + "`cd ${srcdir} ; /bin/pwd`"* ) ;; \ * ) rm -rf $${dir} ;; \ esac ; \ case $${dir} in \ @@ -750,7 +752,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc (info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ if cd $(DESTDIR)${infodir}; then \ for elt in ${INFO_NONMISC} $${info_misc}; do \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ if [ -n "${GZIP_PROG}" ]; then \ ext=.gz; else ext=; fi; \ diff --git a/admin/ChangeLog b/admin/ChangeLog index 31247765a26..9d5eda1cadf 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el): + Quote entities that might contain whitespace. + 2013-10-07 Paul Eggert Improve support for popcount and counting trailing zeros (Bug#15550). diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index df225cc8cbf..91fb5a07305 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -30,7 +30,7 @@ abs_top_builddir = @abs_top_builddir@ EMACS = ${abs_top_builddir}/src/emacs DSTDIR = ${top_srcdir}/lisp/international -emacs = ${EMACS} -batch --no-site-file --no-site-lisp +emacs = "${EMACS}" -batch --no-site-file --no-site-lisp all: ${DSTDIR}/charprop.el @@ -42,7 +42,7 @@ unidata.txt: ${srcdir}/UnicodeData.txt ${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.elc unidata.txt cd ${DSTDIR} && ${emacs} -l ${srcdir}/unidata-gen \ - -f unidata-gen-files ${srcdir} ${abs_builddir}/unidata.txt + -f unidata-gen-files ${srcdir} "${abs_builddir}/unidata.txt" ## Like the above, but generate in PWD rather than lisp/international. charprop.el: ${srcdir}/unidata-gen.elc unidata.txt diff --git a/configure.ac b/configure.ac index ee6d6959ba6..d88f1d39b66 100644 --- a/configure.ac +++ b/configure.ac @@ -419,30 +419,6 @@ AC_ARG_ENABLE(gtk-deprecation-warnings, [Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])], [ac_enable_gtk_deprecation_warnings="${enableval}"],[]) -#### Make srcdir absolute, if it isn't already. It's important to -#### avoid running the file name through pwd unnecessarily, since pwd can -#### give you automounter prefixes, which can go away. We do all this -#### so Emacs can find its files when run uninstalled. -## Make sure CDPATH doesn't affect cd (in case PWD is relative). -unset CDPATH -case "${srcdir}" in - [[\\/]]* | ?:[[\\/]]*) ;; - . ) - ## We may be able to use the $PWD environment variable to make this - ## absolute. But sometimes PWD is inaccurate. - ## Note: we used to use $PWD at the end instead of `pwd`, - ## but that tested only for a well-formed and valid PWD, - ## it did not object when PWD was well-formed and valid but just wrong. - if test ".$PWD" != "." && test ".`(cd "$PWD" ; sh -c pwd)`" = ".`pwd`" ; - then - srcdir="$PWD" - else - srcdir=`(cd "$srcdir"; pwd)` - fi - ;; - * ) srcdir=`(cd "$srcdir"; pwd)` ;; -esac - #### When building with MinGW inside the MSYS tree, 'pwd' produces #### directories relative to the root of the MSYS tree, #### e.g. '/home/user/foo' instead of '/d/MSYS/home/user/foo'. When @@ -452,7 +428,7 @@ esac #### substitution, it cannot find the data directory. "pwd -W" #### produces Windows-style 'd:/foo/bar' absolute directory names, so #### we use it here to countermand that lossage. -test "$MSYSTEM" = "MINGW32" && srcdir=`(cd "$srcdir"; pwd -W | sed -e 's,^\([[A-Za-z]]\):,/\1,')` +test "$MSYSTEM" = "MINGW32" && abs_srcdir=`(cd "$abs_srcdir"; pwd -W | sed -e 's,^\([[A-Za-z]]\):,/\1,')` ### Canonicalize the configuration name. diff --git a/leim/ChangeLog b/leim/ChangeLog index 11186603df8..4a629765386 100644 --- a/leim/ChangeLog +++ b/leim/ChangeLog @@ -1,3 +1,11 @@ +2013-10-23 Glenn Morris + + * Makefile.in (abs_srcdir): New, set by configure. + (buildlisppath): Use abs_srcdir. + (RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el) + ($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare): + Quote entities that might contain whitespace. + 2013-09-05 Jean Haidouk (tiny change) * quail/latin-alt.el ("french-alt-postfix", "latin-alt-postfix"): diff --git a/leim/Makefile.in b/leim/Makefile.in index 7c3f3ca47e1..eb81e1b2add 100644 --- a/leim/Makefile.in +++ b/leim/Makefile.in @@ -25,16 +25,17 @@ SHELL = @SHELL@ # Here are the things that we expect ../configure to edit. srcdir=@srcdir@ +abs_srcdir=@abs_srcdir@ # Which Emacs to use to convert TIT files to Emacs Lisp files, # byte-compile Emacs Lisp files, and generate the file leim-list.el. EMACS = ../src/emacs -buildlisppath=${srcdir}/../lisp +buildlisppath=${abs_srcdir}/../lisp # How to run Emacs. -RUN_EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \ - ${EMACS} -batch --no-site-file --no-site-lisp +RUN_EMACS = EMACSLOADPATH="$(buildlisppath)" LC_ALL=C \ + "${EMACS}" -batch --no-site-file --no-site-lisp MKDIR_P = @MKDIR_P@ @@ -76,7 +77,7 @@ TIT_MISC=${CHINESE_TIT} ${MISC} .el.elc: @echo Compiling $< - @${RUN_EMACS} -l ${buildlisppath}/international/quail -f batch-byte-compile $< + @${RUN_EMACS} -l "${buildlisppath}/international/quail" -f batch-byte-compile $< all: leim-list.el compile-main .PHONY: all @@ -109,7 +110,7 @@ ${CHINESE_TIT}: changed.tit ## It doesn't seem possible to do this with VPATH and suffix rules. changed.tit: ${TIT_SOURCES} @${MKDIR_P} quail - ${RUN_EMACS} -l ${buildlisppath}/international/titdic-cnv \ + ${RUN_EMACS} -l "${buildlisppath}/international/titdic-cnv" \ -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \ echo "changed" > $@ @@ -126,30 +127,30 @@ ${MISC}: changed.misc changed.misc: ${MISC_SOURCES} @${MKDIR_P} quail - ${RUN_EMACS} -l ${buildlisppath}/international/titdic-cnv \ + ${RUN_EMACS} -l "${buildlisppath}/international/titdic-cnv" \ -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \ echo "changed" > $@ leim-list.el: ${TIT_MISC} ${srcdir}/leim-ext.el rm -f leim-list.el - if [ x`cd ${srcdir} && /bin/pwd` = x`/bin/pwd` ] ; then \ - ${RUN_EMACS} -l ${buildlisppath}/international/quail \ + if [ "`cd ${srcdir} && /bin/pwd`" = "`/bin/pwd`" ] ; then \ + ${RUN_EMACS} -l "${buildlisppath}/international/quail" \ --eval "(update-leim-list-file \".\")" ; \ else \ - ${RUN_EMACS} -l ${buildlisppath}/international/quail \ + ${RUN_EMACS} -l "${buildlisppath}/international/quail" \ --eval "(update-leim-list-file \".\" (unmsys--file-name \"${srcdir}\"))" ; \ fi sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ $(srcdir)/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L @$(MKDIR_P) $(srcdir)/ja-dic - $(RUN_EMACS) -batch -l $(buildlisppath)/international/ja-dic-cnv \ + $(RUN_EMACS) -batch -l "$(buildlisppath)/international/ja-dic-cnv" \ -f batch-skkdic-convert -dir "$(srcdir)/ja-dic" \ "$(srcdir)/SKK-DIC/SKK-JISYO.L" ## Following adapted from lisp/Makefile.in. setwins=wins="${srcdir}/ja-dic quail"; \ - [ `cd ${srcdir} && /bin/pwd` != `/bin/pwd` ] && \ + [ "`cd ${srcdir} && /bin/pwd`" != "`/bin/pwd`" ] && \ wins="$$wins ${srcdir}/quail" .PHONY: compile-targets @@ -184,7 +185,7 @@ bootstrap-clean: clean $(setwins); for w in $$wins; do rm -f $$w/*.elc; done distclean: clean - -[ `cd ${srcdir} && /bin/pwd` != `/bin/pwd` ] && rm -rf quail + -[ "`cd ${srcdir} && /bin/pwd`" != "`/bin/pwd`" ] && rm -rf quail rm -f Makefile maintainer-clean: distclean bootstrap-clean @@ -195,5 +196,5 @@ extraclean: maintainer-clean .PHONY: check-declare check-declare: - $(RUN_EMACS) -l $(buildlisppath)/emacs-lisp/check-declare \ + $(RUN_EMACS) -l "$(buildlisppath)/emacs-lisp/check-declare" \ --eval '(check-declare-directory (unmsys--file-name "$(srcdir)"))' diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 0b91cc4887f..46faf95c0c0 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * Makefile.in ($(DESTDIR)${archlibdir}): + Quote entities that might contain whitespace. + 2013-10-10 Glenn Morris * make-docfile.c (search_lisp_doc_at_eol): diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index 994eb2bb266..01c03e162cc 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -232,7 +232,7 @@ $(DESTDIR)${archlibdir}: all @echo @echo "Installing utilities run internally by Emacs." umask 022; ${MKDIR_P} $(DESTDIR)${archlibdir} - if [ `cd $(DESTDIR)${archlibdir} && /bin/pwd` != `/bin/pwd` ]; then \ + if [ "`cd $(DESTDIR)${archlibdir} && /bin/pwd`" != "`/bin/pwd`" ]; then \ for file in ${UTILITIES}; do \ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \ done ; \ @@ -244,8 +244,8 @@ $(DESTDIR)${archlibdir}: all chown ${gameuser} $(DESTDIR)${gamedir}; \ chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \ fi - if [ `cd $(DESTDIR)${archlibdir} && /bin/pwd` \ - != `cd ${srcdir} && /bin/pwd` ]; then \ + if [ "`cd $(DESTDIR)${archlibdir} && /bin/pwd`" \ + != "`cd ${srcdir} && /bin/pwd`" ]; then \ for file in ${SCRIPTS}; do \ $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \ done ; \ diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2dbd981d8d5..ba2046e15b4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2013-10-23 Glenn Morris + + * Makefile.in (abs_srcdir, abs_lisp): New, set by configure. + (emacs, compile, compile-always): + Quote entities that might contain whitespace. + (custom-deps, finder-data, autoloads): Use abs_lisp. + ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el) + ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el) + ($(CAL_DIR)/hol-loaddefs.el): Manually expand target file name. + 2013-10-23 Dmitry Gutov * progmodes/ruby-mode.el (ruby-smie--at-dot-call): Use diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 4fba1053dfa..814aefc0cc0 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -20,8 +20,10 @@ SHELL = @SHELL@ srcdir = @srcdir@ +abs_srcdir = @abs_srcdir@ top_srcdir = @top_srcdir@ abs_top_builddir = @abs_top_builddir@ +abs_lisp = $(abs_srcdir) lisp = $(srcdir) VPATH = $(srcdir) @@ -112,7 +114,7 @@ COMPILE_FIRST = \ # The actual Emacs command run in the targets below. -emacs = EMACSLOADPATH=$(lisp) LC_ALL=C $(EMACS) $(EMACSOPT) +emacs = EMACSLOADPATH="$(abs_lisp)" LC_ALL=C "$(EMACS)" $(EMACSOPT) # Common command to find subdirectories setwins=subdirs=`find . -type d -print`; \ @@ -165,14 +167,14 @@ $(lisp)/cus-load.el: custom-deps: doit cd $(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file (unmsys--file-name "$(lisp)/cus-load.el"))' -f custom-make-dependencies $$wins + $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file (unmsys--file-name "$(abs_lisp)/cus-load.el"))' -f custom-make-dependencies $$wins $(lisp)/finder-inf.el: $(MAKE) $(MFLAGS) finder-data finder-data: doit cd $(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(emacs) -l finder --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(lisp)/finder-inf.el"))' -f finder-compile-keywords-make-dist $$wins + $(emacs) -l finder --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(abs_lisp)/finder-inf.el"))' -f finder-compile-keywords-make-dist $$wins # The chmod +w is to handle env var CVSREAD=1. autoloads: $(LOADDEFS) doit @@ -181,7 +183,7 @@ autoloads: $(LOADDEFS) doit echo Directories: $$wins; \ $(emacs) -l autoload \ --eval '(setq autoload-builtin-package-versions t)' \ - --eval '(setq generated-autoload-file (unmsys--file-name "$(lisp)/loaddefs.el"))' \ + --eval '(setq generated-autoload-file (unmsys--file-name "$(abs_lisp)/loaddefs.el"))' \ -f batch-update-autoloads $$wins # This is required by the bootstrap-emacs target in ../src/Makefile, so @@ -307,14 +309,14 @@ compile-clean: # Explicitly pass EMACS (sometimes ../src/bootstrap-emacs) to those # sub-makes that run rules that use it, for the sake of some non-GNU makes. compile: $(LOADDEFS) autoloads compile-first - $(MAKE) $(MFLAGS) compile-main EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile-main EMACS="$(EMACS)" # Compile all Lisp files. This is like `compile' but compiles files # unconditionally. Some files don't actually get compiled because they # set the local variable no-byte-compile. compile-always: doit cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc - $(MAKE) $(MFLAGS) compile EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)" .PHONY: compile-calc backup-compiled-files compile-after-backup @@ -378,7 +380,7 @@ mh-autoloads: $(MH_E_DIR)/mh-loaddefs.el $(MH_E_DIR)/mh-loaddefs.el: $(MH_E_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(MH_E_DIR) @@ -396,7 +398,7 @@ TRAMP_SRC = $(TRAMP_DIR)/tramp.el $(TRAMP_DIR)/tramp-adb.el \ $(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###tramp-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(TRAMP_DIR) @@ -418,21 +420,21 @@ CAL_SRC = $(CAL_DIR)/cal-bahai.el $(CAL_DIR)/cal-china.el \ $(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(CAL_DIR) $(CAL_DIR)/diary-loaddefs.el: $(CAL_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(CAL_DIR) $(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(CAL_DIR) diff --git a/nextstep/ChangeLog b/nextstep/ChangeLog index 42086ec1007..7d3cceba205 100644 --- a/nextstep/ChangeLog +++ b/nextstep/ChangeLog @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * Makefile.in (${ns_check_file} ${ns_appdir}): + Quote entities that might contain whitespace. + 2013-09-02 Jan Djärv * Makefile.in (${ns_check_file}): Add so Emacs.app gets properly diff --git a/nextstep/Makefile.in b/nextstep/Makefile.in index 3d80ddb7ad2..b5377232e31 100644 --- a/nextstep/Makefile.in +++ b/nextstep/Makefile.in @@ -38,7 +38,7 @@ ${ns_check_file} ${ns_appdir}: ${srcdir}/${ns_appsrc} ${ns_appsrc} ${MKDIR_P} ${ns_appdir} ( cd ${srcdir}/${ns_appsrc} ; tar cfh - . ) | \ ( cd ${ns_appdir} ; umask 022; tar xf - ) - [ `cd ${srcdir} && /bin/pwd` = `/bin/pwd` ] || \ + [ "`cd ${srcdir} && /bin/pwd`" = "`/bin/pwd`" ] || \ ( cd ${ns_appsrc} ; tar cfh - . ) | \ ( cd ${ns_appdir} ; umask 022; tar xf - ) touch ${ns_appdir} diff --git a/nt/ChangeLog b/nt/ChangeLog index b8bbddda6e5..a04a67b7ce9 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * Makefile.in ($(DESTDIR)${archlibdir}): + Quote entities that might contain whitespace. + 2013-10-14 Eli Zaretskii * inc/mingw_time.h: New file. diff --git a/nt/Makefile.in b/nt/Makefile.in index 0b7318c9b49..cc640152cb6 100644 --- a/nt/Makefile.in +++ b/nt/Makefile.in @@ -142,7 +142,7 @@ $(DESTDIR)${archlibdir}: all @echo @echo "Installing utilities run internally by Emacs." umask 022; ${MKDIR_P} $(DESTDIR)${archlibdir} - if [ `cd $(DESTDIR)${archlibdir} && /bin/pwd` != `/bin/pwd` ]; then \ + if [ "`cd $(DESTDIR)${archlibdir} && /bin/pwd`" != "`/bin/pwd`" ]; then \ for file in ${UTILITIES}; do \ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \ done ; \ diff --git a/src/ChangeLog b/src/ChangeLog index b534e0a1ab0..52669b57825 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2013-10-23 Glenn Morris + + * Makefile.in (RUN_TEMACS): Make relative (again). + ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el) + (bootstrap-emacs$(EXEEXT)): + Quote entities that might contain whitespace. + 2013-10-23 Paul Eggert Port to Solaris 10 and its bundled GCC. diff --git a/src/Makefile.in b/src/Makefile.in index 254aa175d49..ce65b190334 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -313,7 +313,7 @@ INTERVALS_H = dispextern.h intervals.h composite.h GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -RUN_TEMACS = `/bin/pwd`/temacs +RUN_TEMACS = ./temacs ## Invoke ../nt/addsection for MinGW, ":" elsewhere. TEMACS_POST_LINK = @TEMACS_POST_LINK@ @@ -437,7 +437,7 @@ all: emacs$(EXEEXT) $(OTHER_FILES) .PHONY: all $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) - cd $(leimdir) && $(MAKE) $(MFLAGS) leim-list.el EMACS=$(bootstrap_exe) + cd $(leimdir) && $(MAKE) $(MFLAGS) leim-list.el EMACS="$(bootstrap_exe)" ## The dumped Emacs is as functional and more efficient than ## bootstrap-emacs, so we replace the latter with the former. @@ -646,7 +646,7 @@ tags: TAGS TAGS-LISP $(lwlibdir)/TAGS ## With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" .el.elc: @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ - THEFILE=$< EMACS=$(bootstrap_exe) + THEFILE=$< EMACS="$(bootstrap_exe)" ## Since the .el.elc rule cannot specify an extra dependency, we do it here. $(lisp): $(BOOTSTRAPEMACS) @@ -657,7 +657,7 @@ $(lisp): $(BOOTSTRAPEMACS) VCSWITNESS = $(lispsource)/loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) - cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=$(bootstrap_exe) + cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS="$(bootstrap_exe)" ## Dump an Emacs executable named bootstrap-emacs containing the ## files from loadup.el in source form. @@ -672,7 +672,7 @@ bootstrap-emacs$(EXEEXT): temacs$(EXEEXT) mv -f emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ fi @: Compile some files earlier to speed up further compilation. - cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=$(bootstrap_exe) + cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS="$(bootstrap_exe)" ## Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. @deps_frag@ diff --git a/test/ChangeLog b/test/ChangeLog index 71104b64364..358ef31b1bb 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,13 @@ +2013-10-23 Glenn Morris + + * automated/Makefile.in (abs_top_srcdir, top_builddir): + New, set by configure. + (top_srcdir): Remove. + (abs_test, abs_lispsrc): New. + (lisp): No longer absolute. + (emacs, lisp-compile, compile, compile-always): + Quote entities that might contain whitespace. + 2013-10-22 Dmitry Gutov * indent/ruby.rb: Move two examples to "working" section, add one diff --git a/test/automated/Makefile.in b/test/automated/Makefile.in index bf8e62f77cd..17e37556a3e 100644 --- a/test/automated/Makefile.in +++ b/test/automated/Makefile.in @@ -20,12 +20,14 @@ SHELL = @SHELL@ srcdir = @srcdir@ -top_srcdir = @top_srcdir@ +abs_top_srcdir = @abs_top_srcdir@ +top_builddir = @top_builddir@ abs_top_builddir = @abs_top_builddir@ test = $(srcdir) +abs_test = $(abs_srcdir) VPATH = $(srcdir) -lispsrc = $(top_srcdir)/lisp -lisp = ${abs_top_builddir}/lisp +abs_lispsrc = $(abs_top_srcdir)/lisp +lisp = $(top_builddir)/lisp # You can specify a different executable on the make command line, # e.g. "make EMACS=../src/emacs ...". @@ -46,7 +48,7 @@ BYTE_COMPILE_EXTRA_FLAGS = # The example above is just for developers, it should not be used by default. # The actual Emacs command run in the targets below. -emacs = EMACSLOADPATH=$(lispsrc):$(test) LC_ALL=C $(EMACS) $(EMACSOPT) +emacs = EMACSLOADPATH="$(abs_lispsrc):$(abs_test)" LC_ALL=C "$(EMACS)" $(EMACSOPT) # Common command to find subdirectories setwins=subdirs=`find . -type d -print`; \ @@ -79,7 +81,7 @@ doit: .PHONY: lisp-compile compile-main compile compile-always lisp-compile: - cd $(lisp); $(MAKE) $(MFLAGS) compile EMACS=$(EMACS) + cd "$(lisp)"; $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)" # In `compile-main' we could directly do # ... | xargs $(MAKE) $(MFLAGS) EMACS="$(EMACS)" @@ -128,14 +130,14 @@ compile-clean: # Explicitly pass EMACS (sometimes ../src/bootstrap-emacs) to those # sub-makes that run rules that use it, for the sake of some non-GNU makes. compile: $(LOADDEFS) autoloads compile-first - $(MAKE) $(MFLAGS) compile-main EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile-main EMACS="$(EMACS)" # Compile all Lisp files. This is like `compile' but compiles files # unconditionally. Some files don't actually get compiled because they # set the local variable no-byte-compile. compile-always: doit cd $(test); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc - $(MAKE) $(MFLAGS) compile EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)" bootstrap-clean: cd $(test); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc