Use absolute directory names substituted by configure
authorAndreas Schwab <schwab@linux-m68k.org>
Sun, 21 Mar 2010 11:57:49 +0000 (12:57 +0100)
committerAndreas Schwab <schwab@linux-m68k.org>
Sun, 21 Mar 2010 11:57:49 +0000 (12:57 +0100)
* lisp/Makefile.in (top_srcdir): Define.
(abs_top_builddir): Define.
(srcdir): Don't append `/..'.
(EMACS): Use ${abs_top_builddir}.
(all, compile, compile-always, compile-last): Don't set emacswd.
(update-subdirs, update-authors): Use $(top_srcdir) instead of
$(srcdir).
(lisp): Use $(srcdir) instead of @srcdir@.
* src/Makefile.in (abs_builddir): Define.
(bootstrap_exe): Use it.
(VPATH): Use $(srcdir) instead of @srcdir@.

lisp/ChangeLog
lisp/Makefile.in
src/ChangeLog
src/Makefile.in

index 06e80db..de399c3 100644 (file)
@@ -1,3 +1,14 @@
+2010-03-21  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * Makefile.in (top_srcdir): Define.
+       (abs_top_builddir): Define.
+       (srcdir): Don't append `/..'.
+       (EMACS): Use ${abs_top_builddir}.
+       (all, compile, compile-always, compile-last): Don't set emacswd.
+       (update-subdirs, update-authors): Use $(top_srcdir) instead of
+       $(srcdir).
+       (lisp): Use $(srcdir) instead of @srcdir@.
+
 2010-03-21  Juri Linkov  <juri@jurta.org>
 
        Fix message of multi-line occur regexps and multi-buffer header lines.
index 06d9684..a08e7e9 100644 (file)
 
 SHELL = /bin/sh
 
-lisp=@srcdir@
-VPATH=@srcdir@
-srcdir=@srcdir@/..
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+abs_top_builddir = @abs_top_builddir@
+lisp = $(srcdir)
+VPATH = $(srcdir)
 
 # You can specify a different executable on the make command line,
 # e.g. "make EMACS=../src/emacs ...".
 
 # We sometimes change directory before running Emacs (typically when
 # building out-of-tree, we chdir to the source directory), so we need
-# to use an aboluste file name.  But there's no standard way
-# in a makefile to get the pwd, so we simply rely on a shell
-# "$emacswd" var that needs to be set wherever we use $(EMACS) (or
-# $(emacs)).  Yet, it is setup in such a way that if you forget to set
-# $emacswd, it will still work, so long as you did not
-# change directory.
-EMACS = $$emacswd../src/emacs
+# to use an aboluste file name.
+EMACS = ${abs_top_builddir}/src/emacs
 
 # Command line flags for Emacs.  This must include --multibyte,
 # otherwise some files will not compile.
@@ -119,7 +116,7 @@ setwins_for_subdirs=subdirs=`(find . -type d -print)`; \
 # we add them here to make sure they get built.
 all: compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el
        @: Let us check that we byte-compiled all the files.
-       emacswd=`pwd`/; $(MAKE) $(MFLAGS) compile-last EMACS=$(EMACS)
+       $(MAKE) $(MFLAGS) compile-last EMACS=$(EMACS)
 
 doit:
 
@@ -140,14 +137,14 @@ doit:
 $(lisp)/cus-load.el:
        $(MAKE) $(MFLAGS) custom-deps
 custom-deps: doit
-       emacswd=`pwd`/; cd $(lisp); $(setwins_almost); \
+       cd $(lisp); $(setwins_almost); \
        echo Directories: $$wins; \
        $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file "$(lisp)/cus-load.el")' -f custom-make-dependencies $$wins
 
 $(lisp)/finder-inf.el:
        $(MAKE) $(MFLAGS) finder-data
 finder-data: doit
-       emacswd=`pwd`/; cd $(lisp); $(setwins_almost); \
+       cd $(lisp); $(setwins_almost); \
        echo Directories: $$wins; \
        $(emacs) -l finder --eval '(setq generated-finder-keywords-file "$(lisp)/finder-inf.el")' -f finder-compile-keywords-make-dist $$wins
 
@@ -157,7 +154,7 @@ autoloads: $(LOADDEFS) doit
        chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
          $(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
          $(lisp)/dired.el $(lisp)/ibuffer.el
-       emacswd=`pwd`/; cd $(lisp); $(setwins_almost); \
+       cd $(lisp); $(setwins_almost); \
        echo Directories: $$wins; \
        $(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
 
@@ -168,7 +165,7 @@ $(lisp)/subdirs.el:
 update-subdirs: doit
        cd $(lisp); $(setwins_for_subdirs); \
        for file in $$wins; do \
-          $(srcdir)/update-subdirs $$file; \
+          $(top_srcdir)/update-subdirs $$file; \
        done;
 
 updates: update-subdirs autoloads finder-data custom-deps
@@ -182,7 +179,7 @@ cvs-update: bzr-update
 # Update the AUTHORS file.
 
 update-authors:
-       $(emacs) -l authors -f batch-update-authors $(srcdir)/etc/AUTHORS $(srcdir)
+       $(emacs) -l authors -f batch-update-authors $(top_srcdir)/etc/AUTHORS $(top_srcdir)
 
 TAGS TAGS-LISP: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
        els=`echo $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) | sed -e "s,$(lisp)/[^ ]*loaddefs[^ ]*,," -e "s,$(lisp)/ldefs-boot[^ ]*,,"`; \
@@ -1513,8 +1510,7 @@ compile-main: $(ELCFILES)
 # 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
-       emacswd=`pwd`/; \
-       $(MAKE) $(MFLAGS) compile-main EMACS=$(EMACS); \
+       $(MAKE) $(MFLAGS) compile-main EMACS=$(EMACS)
        $(MAKE) $(MFLAGS) compile-last EMACS=$(EMACS)
 
 ## Doing this causes make install to dump another emacs.
@@ -1525,12 +1521,11 @@ compile: $(LOADDEFS) autoloads compile-first
 # set the local variable no-byte-compile.
 compile-always: doit
        cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc
-       emacswd=`pwd`/; \
        $(MAKE) $(MFLAGS) compile EMACS=$(EMACS)
 
 ## In case any files are missing from ELCFILES.
 compile-last:
-       @emacswd=`pwd`/; cd $(lisp); $(setwins); \
+       @cd $(lisp); $(setwins); \
        els=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \
        for el in $$els; do \
          test -f $$el || continue; \
index 80e10e2..39f37d4 100644 (file)
@@ -1,8 +1,8 @@
 2010-03-21  Andreas Schwab  <schwab@linux-m68k.org>
 
-       * Makefile.in (.el.elc): Expand ${bootstrap_exe} before chdir.
-       (${lispsource}loaddefs.el): Likewise.
-       (bootstrap-emacs${EXEEXT}): Likewise.
+       * Makefile.in (abs_builddir): Define.
+       (bootstrap_exe): Use it.
+       (VPATH): Use $(srcdir) instead of @srcdir@.
 
 2010-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
index 6b502f3..d8661bc 100644 (file)
 
 # Here are the things that we expect ../configure to edit.
 # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
-srcdir=@srcdir@
-VPATH=@srcdir@
-CC=@CC@
-CPP=@CPP@
-CFLAGS=@CFLAGS@
-CPPFLAGS=@CPPFLAGS@
-LDFLAGS=@LDFLAGS@
-LN_S=@LN_S@
-EXEEXT=@EXEEXT@
-version=@version@
+srcdir = @srcdir@
+abs_builddir = @abs_builddir@
+VPATH = $(srcdir)
+CC = @CC@
+CPP = @CPP@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LN_S = @LN_S@
+EXEEXT = @EXEEXT@
+version = @version@
 # Substitute an assignment for the MAKE variable, because
 # BSD doesn't have it as a default.
 @SET_MAKE@
@@ -63,7 +64,7 @@ M_FILE = ${srcdir}/@machfile@
 S_FILE = ${srcdir}/@opsysfile@
 config_h = config.h $(M_FILE) $(S_FILE)
 
-bootstrap_exe = `pwd`/bootstrap-emacs${EXEEXT}
+bootstrap_exe = ${abs_builddir}/bootstrap-emacs${EXEEXT}
 
 OTHER_FILES = @OTHER_FILES@
 
@@ -1332,15 +1333,14 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
    separately below.
    With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)"  */
 .el.elc:
-       @EMACS=${bootstrap_exe}; \
-       cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile THEFILE=$< EMACS=$$EMACS
+       @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
+                            THEFILE=$< EMACS=${bootstrap_exe}
 
 /* Since the .el.elc rule cannot specify an extra dependency, we do it here.  */
 ${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
 
 ${lispsource}loaddefs.el: $(BOOTSTRAPEMACS)
-       EMACS=${bootstrap_exe}; \
-       cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=$$EMACS
+       cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe}
 
 /* Dump an Emacs executable named bootstrap-emacs containing the
    files from loadup.el in source form.  */
@@ -1354,8 +1354,7 @@ bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
        mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
 #endif /* ! defined (CANNOT_DUMP) */
        @: Compile some files earlier to speed up further compilation.
-       EMACS=${bootstrap_exe}; \
-       cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=$$EMACS
+       cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe}
 
 #ifdef AUTO_DEPEND
 ALLOBJS=$(STARTFILES) ${obj} ${otherobj} prefix-args.o