X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/37d2e431f35492c14510f9960cac94c2f21b6ecb..d57f4dde80447f0fcdb1c31df7f0657fd2eea369:/src/Makefile.in diff --git a/src/Makefile.in b/src/Makefile.in index b2034a3379..ca0b25a2f6 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# src/Makefile for GNU Emacs. +### @configure_input@ -# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2013 Free Software -# Foundation, Inc. +# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2013 +# Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -23,13 +23,14 @@ # script may need modifying in sync with changes made here. Try to # avoid shell-ism because the DOS build has to use the DOS shell. -SHELL = /bin/sh +SHELL = @SHELL@ # 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@ +# MinGW CPPFLAGS may use this. +abs_top_srcdir=@abs_top_srcdir@ ntsource = $(srcdir)/../nt -abs_builddir = @abs_builddir@ VPATH = $(srcdir) CC = @CC@ WINDRES = @WINDRES@ @@ -54,12 +55,11 @@ etc = ../etc leimdir = ../leim oldXMenudir = ../oldXMenu lwlibdir = ../lwlib -lispdir = ../lisp # Configuration files for .o files to depend on. config_h = config.h $(srcdir)/conf_post.h -bootstrap_exe = $(abs_builddir)/bootstrap-emacs$(EXEEXT) +bootstrap_exe = ../src/bootstrap-emacs$(EXEEXT) ## ns-app if HAVE_NS, else empty. OTHER_FILES = @OTHER_FILES@ @@ -137,8 +137,10 @@ LIBOTF_LIBS = @LIBOTF_LIBS@ M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS@ M17N_FLT_LIBS = @M17N_FLT_LIBS@ +LIB_ACL=@LIB_ACL@ LIB_CLOCK_GETTIME=@LIB_CLOCK_GETTIME@ LIB_EACCESS=@LIB_EACCESS@ +LIB_FDATASYNC=@LIB_FDATASYNC@ LIB_TIMER_TIME=@LIB_TIMER_TIME@ DBUS_CFLAGS = @DBUS_CFLAGS@ @@ -154,6 +156,13 @@ SETTINGS_LIBS = @SETTINGS_LIBS@ ## gtkutil.o if USE_GTK, else empty. GTK_OBJ=@GTK_OBJ@ +## gfilenotify.o if HAVE_GFILENOTIFY. +## inotify.o if HAVE_INOTIFY. +## w32notify.o if HAVE_W32NOTIFY. +NOTIFY_OBJ = @NOTIFY_OBJ@ +GFILENOTIFY_CFLAGS = @GFILENOTIFY_CFLAGS@ +GFILENOTIFY_LIBS = @GFILENOTIFY_LIBS@ + ## -ltermcap, or -lncurses, or -lcurses, or "". LIBS_TERMCAP=@LIBS_TERMCAP@ ## terminfo.o if TERMINFO, else tparam.o. @@ -198,10 +207,13 @@ LIBXMENU=@LIBXMENU@ ## xmenu.o if HAVE_X_WINDOWS, else empty. XMENU_OBJ=@XMENU_OBJ@ -## xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o xgselect.o if +## xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o if ## HAVE_X_WINDOWS, else empty. XOBJ=@XOBJ@ +# xgselect.o if linking with GLib, else empty +XGSELOBJ=@XGSELOBJ@ + TOOLKIT_LIBW=@TOOLKIT_LIBW@ ## Only used if HAVE_X11, in LIBX_OTHER. @@ -231,6 +243,14 @@ IMAGEMAGICK_CFLAGS= @IMAGEMAGICK_CFLAGS@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIBXML2_CFLAGS = @LIBXML2_CFLAGS@ +LIBZ = @LIBZ@ + +XRANDR_LIBS = @XRANDR_LIBS@ +XRANDR_CFLAGS = @XRANDR_CFLAGS@ + +XINERAMA_LIBS = @XINERAMA_LIBS@ +XINERAMA_CFLAGS = @XINERAMA_CFLAGS@ + ## widget.o if USE_X_TOOLKIT, otherwise empty. WIDGET_OBJ=@WIDGET_OBJ@ @@ -246,7 +266,7 @@ MSDOS_OBJ = MSDOS_X_OBJ = NS_OBJ=@NS_OBJ@ -## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o if HAVE_NS. +## nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macfont.o if HAVE_NS. NS_OBJC_OBJ=@NS_OBJC_OBJ@ ## Only set if NS_IMPL_GNUSTEP. GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ @@ -259,10 +279,13 @@ W32_OBJ=@W32_OBJ@ W32_LIBS=@W32_LIBS@ ## emacs.res if HAVE_W32 -W32_RES=@W32_RES@ +EMACSRES = @EMACSRES@ +## emacs-*.manifest if HAVE_W32 +EMACS_MANIFEST = @EMACS_MANIFEST@ ## If HAVE_W32, compiler arguments for including ## the resource file in the binary. -## XXX -Wl,-b -Wl,pe-i386 -Wl,emacs.res +## Cygwin: -Wl,emacs.res +## MinGW: emacs.res W32_RES_LINK=@W32_RES_LINK@ ## Empty if !HAVE_X_WINDOWS @@ -271,6 +294,9 @@ W32_RES_LINK=@W32_RES_LINK@ ## else xfont.o FONT_OBJ=@FONT_OBJ@ +## Empty for MinGW, cm.o for the rest. +CM_OBJ=@CM_OBJ@ + LIBGPM = @LIBGPM@ ## -lresolv, or empty. @@ -281,15 +307,21 @@ LIBSELINUX_LIBS = @LIBSELINUX_LIBS@ LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@ LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@ -LIBACL_LIBS = @LIBACL_LIBS@ - LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ 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@ +ADDSECTION = @ADDSECTION@ +EMACS_HEAPSIZE = @EMACS_HEAPSIZE@ +MINGW_TEMACS_POST_LINK = \ + mv temacs$(EXEEXT) temacs.tmp; \ + ../nt/addsection temacs.tmp temacs$(EXEEXT) EMHEAP $(EMACS_HEAPSIZE) UNEXEC_OBJ = @UNEXEC_OBJ@ @@ -314,26 +346,26 @@ ALL_CFLAGS=-Demacs $(MYCPPFLAGS) -I. -I$(srcdir) \ -I$(lib) -I$(srcdir)/../lib \ $(C_SWITCH_MACHINE) $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \ $(GNUSTEP_CFLAGS) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \ - $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \ + $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) $(XRANDR_CFLAGS) $(XINERAMA_CFLAGS) \ $(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \ - $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) $(PROFILING_CFLAGS) \ - $(LIBGNUTLS_CFLAGS) \ + $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) \ + $(LIBGNUTLS_CFLAGS) $(GFILENOTIFY_CFLAGS) \ $(WARN_CFLAGS) $(WERROR_CFLAGS) $(CFLAGS) ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) .SUFFIXES: .m .c.o: @$(MKDEPDIR) - $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< + $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $(PROFILING_CFLAGS) $< .m.o: @$(MKDEPDIR) - $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< + $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $(PROFILING_CFLAGS) $< ## lastfile must follow all files whose initialized data areas should ## be dumped as pure by dump-emacs. base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ charset.o coding.o category.o ccl.o character.o chartab.o bidi.o \ - cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \ + $(CM_OBJ) term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \ emacs.o keyboard.o macros.o keymap.o sysdep.o \ buffer.o filelock.o insdel.o marker.o \ minibuf.o fileio.o dired.o \ @@ -343,10 +375,10 @@ base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ syntax.o $(UNEXEC_OBJ) bytecode.o \ process.o gnutls.o callproc.o \ region-cache.o sound.o atimer.o \ - doprnt.o intervals.o textprop.o composite.o xml.o inotify.o \ - profiler.o \ + doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \ + profiler.o decompress.o \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \ - $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) + $(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ) obj = $(base_obj) $(NS_OBJC_OBJ) ## Object files used on some machine or other. @@ -356,7 +388,7 @@ obj = $(base_obj) $(NS_OBJC_OBJ) SOME_MACHINE_OBJECTS = dosfns.o msdos.o \ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \ fontset.o dbusbind.o cygw32.o \ - nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \ + nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macfont.o \ w32.o w32console.o w32fns.o w32heap.o w32inevt.o w32notify.o \ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \ w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \ @@ -371,9 +403,9 @@ VMLIMIT_OBJ=@VMLIMIT_OBJ@ ## ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. RALLOC_OBJ=@RALLOC_OBJ@ -## Empty on Cygwin, lastfile.o elsewhere. +## Empty on Cygwin and MinGW, lastfile.o elsewhere. PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@ -## lastfile.o on Cygwin, empty elsewhere. +## lastfile.o on Cygwin and MinGW, empty elsewhere. POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ ## List of object files that make-docfile should not be told about. @@ -381,7 +413,9 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ $(POST_ALLOC_OBJ) $(WIDGET_OBJ) $(LIBOBJS) ## All object files linked into temacs. $(VMLIMIT_OBJ) should be first. -ALLOBJS = $(VMLIMIT_OBJ) $(obj) $(otherobj) +## (On MinGW, firstfile.o should be before vm-limit.o.) +FIRSTFILE_OBJ=@FIRSTFILE_OBJ@ +ALLOBJS = $(FIRSTFILE_OBJ) $(VMLIMIT_OBJ) $(obj) $(otherobj) ## Configure inserts the file lisp.mk at this point, defining $lisp. @lisp_frag@ @@ -390,27 +424,28 @@ ALLOBJS = $(VMLIMIT_OBJ) $(obj) $(otherobj) ## Construct full set of libraries to be linked. LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ $(LIBX_OTHER) $(LIBSOUND) \ - $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_CLOCK_GETTIME) \ - $(LIB_EACCESS) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ - $(LIB_EXECINFO) \ + $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_ACL) $(LIB_CLOCK_GETTIME) \ + $(LIB_EACCESS) $(LIB_FDATASYNC) $(LIB_TIMER_TIME) $(DBUS_LIBS) \ + $(LIB_EXECINFO) $(XRANDR_LIBS) $(XINERAMA_LIBS) \ $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \ $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ - $(LIBACL_LIBS) $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) $(LIB_PTHREAD_SIGMASK) \ - $(LIB_MATH) + $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) $(LIB_PTHREAD_SIGMASK) \ + $(GFILENOTIFY_LIBS) $(LIB_MATH) $(LIBZ) 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. ## Strictly speaking, emacs does not depend directly on all of $lisp, ## since not all pieces are used on all platforms. But DOC depends ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here. -emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) $(leimdir)/leim-list.el +emacs$(EXEEXT): temacs$(EXEEXT) $(ADDSECTION) \ + $(etc)/DOC $(lisp) $(leimdir)/leim-list.el if test "$(CANNOT_DUMP)" = "yes"; then \ rm -f emacs$(EXEEXT); \ ln temacs$(EXEEXT) emacs$(EXEEXT); \ @@ -436,6 +471,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) $(leimdir)/leim-list.el ## in the contents of the DOC file. ## $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) + $(MKDIR_P) $(etc) -rm -f $(etc)/DOC $(libsrc)/make-docfile -d $(srcdir) $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC $(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)/||p' $(srcdir)/lisp.mk` @@ -444,16 +480,19 @@ $(libsrc)/make-docfile$(EXEEXT): cd $(libsrc); $(MAKE) $(MFLAGS) make-docfile$(EXEEXT) buildobj.h: Makefile - echo "#define BUILDOBJ \"$(ALLOBJS) " "\"" >$@ + for i in $(ALLOBJS); do \ + echo "$$i" | sed 's,.*/,,; s/\.obj$$/\.o/; s/^/"/; s/$$/",/' \ + || exit; \ + done >$@.tmp + mv $@.tmp $@ globals.h: gl-stamp; @true GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m) gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES) - @rm -f gl-tmp - $(libsrc)/make-docfile -d $(srcdir) -g $(obj) > gl-tmp - $(srcdir)/../build-aux/move-if-change gl-tmp globals.h + $(libsrc)/make-docfile -d $(srcdir) -g $(obj) > gl.tmp + $(srcdir)/../build-aux/move-if-change gl.tmp globals.h echo timestamp > $@ $(ALLOBJS): globals.h @@ -461,11 +500,16 @@ $(ALLOBJS): globals.h $(lib)/libgnu.a: $(config_h) cd $(lib) && $(MAKE) libgnu.a +## We have to create $(etc) here because init_cmdargs tests its +## existence when setting Vinstallation_directory (FIXME?). +## This goes on to affect various things, and the emacs binary fails +## to start if Vinstallation_directory has the wrong value. temacs$(EXEEXT): stamp-oldxmenu $(ALLOBJS) \ - $(lib)/libgnu.a $(W32_RES) + $(lib)/libgnu.a $(EMACSRES) $(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ - -o temacs $(ALLOBJS) $(lib)/libgnu.a $(LIBES) \ - $(W32_RES_LINK) + -o temacs $(ALLOBJS) $(lib)/libgnu.a $(W32_RES_LINK) $(LIBES) + $(MKDIR_P) $(etc) + $(TEMACS_POST_LINK) test "$(CANNOT_DUMP)" = "yes" || \ test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT) @@ -494,28 +538,24 @@ stamp-oldxmenu: $(OLDXMENU_DEPS) $(OLDXMENU): $(OLDXMENU_TARGET) -../config.status:: epaths.in - @echo "The file epaths.h needs to be set up from epaths.in." - @echo "Please run the `configure' script again." - exit 1 - -../config.status:: config.in - @echo "The file config.h needs to be set up from config.in." - @echo "Please run the `configure' script again." +../config.status: config.in epaths.in + @echo "The file ${?:.in=.h} needs to be set up from $?." + @echo "Please run the 'configure' script again." exit 1 doc.o: buildobj.h emacs.res: $(ntsource)/emacs.rc \ $(ntsource)/icons/emacs.ico \ - $(ntsource)/emacs-x86.manifest - $(WINDRES) -O COFF -o $@ $(ntsource)/emacs.rc + $(ntsource)/$(EMACS_MANIFEST) + $(WINDRES) -O COFF --include-dir=$(srcdir)/../nt \ + -o $@ $(ntsource)/emacs.rc ns-app: emacs$(EXEEXT) cd ../nextstep && $(MAKE) $(MFLAGS) all .PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean -.PHONY: versionclean extraclean frc +.PHONY: versionclean extraclean mostlyclean: rm -f temacs$(EXEEXT) core *.core \#* *.o libXMenu11.a liblw.a @@ -523,6 +563,7 @@ mostlyclean: rm -f bootstrap-emacs$(EXEEXT) emacs-$(version)$(EXEEXT) rm -f buildobj.h rm -f globals.h gl-stamp + rm -f *.res *.tmp clean: mostlyclean rm -f emacs-*.*.*$(EXEEXT) emacs$(EXEEXT) -rm -rf $(DEPDIR) @@ -531,43 +572,51 @@ clean: mostlyclean ## It should remove all files generated during a compilation/bootstrap, ## but not things like config.status or TAGS. bootstrap-clean: clean - rm -f epaths.h config.h config.stamp stamp-oldxmenu ../etc/DOC-* + rm -f epaths.h config.h config.stamp stamp-h1 stamp-oldxmenu if test -f ./.gdbinit; then \ mv ./.gdbinit ./.gdbinit.save; \ if test -f "$(srcdir)/.gdbinit"; then rm -f ./.gdbinit.save; \ else mv ./.gdbinit.save ./.gdbinit; fi; \ fi -## This is used in making a distribution. -## Do not use it on development directories! + distclean: bootstrap-clean rm -f Makefile + maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." rm -f TAGS versionclean: -rm -f emacs$(EXEEXT) emacs-*.*.*$(EXEEXT) ../etc/DOC* extraclean: distclean - -rm -f *~ \#* m/?*~ s/?*~ + -rm -f *~ \#* -## Arrange to make a tags table TAGS-LISP for ../lisp, -## plus TAGS for the C files, which includes ../lisp/TAGS by reference. -ctagsfiles1 = [xyzXYZ]*.[hcm] -ctagsfiles2 = [a-wA-W]*.[hcm] +ETAGS = ../lib-src/etags -TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(S_FILE) - ../lib-src/etags --include=TAGS-LISP --include=$(lwlibdir)/TAGS \ - --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \ - $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(S_FILE) -frc: -TAGS-LISP: frc - $(MAKE) -f $(lispdir)/Makefile TAGS-LISP ETAGS=../lib-src/etags +ctagsfiles1 = [xyzXYZ]*.[hc] +ctagsfiles2 = [a-wA-W]*.[hc] +ctagsfiles3 = [a-zA-Z]*.m + +## FIXME? In out-of-tree builds, should TAGS be generated in srcdir? + +## This does not need to depend on ../lisp and ../lwlib TAGS files, +## because etags "--include" only includes a pointer to the file, +## rather than the file contents. +TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) $(srcdir)/$(ctagsfiles3) + "$(ETAGS)" --include=../lisp/TAGS --include=$(lwlibdir)/TAGS \ + --regex='{c}/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \ + $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) \ + --regex='{objc}/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \ + $(srcdir)/$(ctagsfiles3) + +## Arrange to make tags tables for ../lisp and ../lwlib, +## which the above TAGS file for the C files includes by reference. +../lisp/TAGS: + cd ../lisp && $(MAKE) TAGS ETAGS="$(ETAGS)" $(lwlibdir)/TAGS: - (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)/Makefile tags ETAGS=../lib-src/etags) + cd $(lwlibdir) && $(MAKE) TAGS ETAGS="$(ETAGS)" -tags: TAGS TAGS-LISP $(lwlibdir)/TAGS +tags: TAGS ../lisp/TAGS $(lwlibdir)/TAGS .PHONY: tags @@ -602,15 +651,18 @@ 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) ## VCSWITNESS points to the file that holds info about the current checkout. ## We use it as a heuristic to decide when to rebuild loaddefs.el. +## If empty it is ignored; the parent makefile can set it to some other value. +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. @@ -625,7 +677,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@