Mercurial > emacs
changeset 107451:d8347f5058b6
Use absolute directory names substituted by configure
* 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@.
author | Andreas Schwab <schwab@linux-m68k.org> |
---|---|
date | Sun, 21 Mar 2010 12:57:49 +0100 |
parents | 8da5b7ca4663 |
children | f18ffe3db4b2 |
files | lisp/ChangeLog lisp/Makefile.in src/ChangeLog src/Makefile.in |
diffstat | 4 files changed, 45 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Mar 21 12:27:46 2010 +0100 +++ b/lisp/ChangeLog Sun Mar 21 12:57:49 2010 +0100 @@ -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.
--- a/lisp/Makefile.in Sun Mar 21 12:27:46 2010 +0100 +++ b/lisp/Makefile.in Sun Mar 21 12:57:49 2010 +0100 @@ -19,22 +19,19 @@ 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 @@ # 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 @@ $(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 @@ 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 @@ 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 @@ # 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 @@ # 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 @@ # 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; \
--- a/src/ChangeLog Sun Mar 21 12:27:46 2010 +0100 +++ b/src/ChangeLog Sun Mar 21 12:57:49 2010 +0100 @@ -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>
--- a/src/Makefile.in Sun Mar 21 12:27:46 2010 +0100 +++ b/src/Makefile.in Sun Mar 21 12:57:49 2010 +0100 @@ -33,16 +33,17 @@ # 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 @@ 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 @@ 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 @@ 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