X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/95b6d681b1121e1be8955aa3f79dd39098edf4cf..66ebf9838b3b7744bcf2ad63d62e9cd6c7690066:/src/Makefile.in diff --git a/src/Makefile.in b/src/Makefile.in index 00706460d2..e1195968f7 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,6 @@ +# src/Makefile for GNU Emacs. -# Makefile for GNU Emacs. -# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2011 # Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -46,28 +45,26 @@ version = @version@ # LIBS = @LIBS@ LIBOBJS = @LIBOBJS@ -lispsource = ${srcdir}/../lisp/ -libsrc = ../lib-src/ -etc = ../etc/ -oldXMenudir = ../oldXMenu/ -lwlibdir = ../lwlib/ -lispdir = ../lisp/ +lispsource = $(srcdir)/../lisp +lib = ../lib +libsrc = ../lib-src +etc = ../etc +oldXMenudir = ../oldXMenu +lwlibdir = ../lwlib +lispdir = ../lisp # Configuration files for .o files to depend on. -M_FILE = ${srcdir}/@machfile@ -S_FILE = ${srcdir}/@opsysfile@ +M_FILE = @M_FILE@ +S_FILE = @S_FILE@ config_h = config.h $(M_FILE) $(S_FILE) -bootstrap_exe = ${abs_builddir}/bootstrap-emacs${EXEEXT} +bootstrap_exe = $(abs_builddir)/bootstrap-emacs$(EXEEXT) ## ns-app if HAVE_NS, else empty. OTHER_FILES = @OTHER_FILES@ -CRT_DIR=@CRT_DIR@ - ## Flags to pass for profiling builds PROFILING_CFLAGS = @PROFILING_CFLAGS@ -PROFILING_LDFLAGS = @PROFILING_LDFLAGS@ ## Flags to pass to the compiler to enable build warnings C_WARNINGS_SWITCH = @C_WARNINGS_SWITCH@ @@ -109,14 +106,14 @@ LD_SWITCH_SYSTEM=@LD_SWITCH_SYSTEM@ ## This holds any special options for linking temacs only (ie, not ## used by configure). Not used elsewhere because it sometimes -## contains options that have to do with using Emacs's crt0, +## contains options that have to do with using Emacs's crt0, ## which are only good with temacs. LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@ ## Flags to pass to ld only for temacs. TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS) -## $LDFLAGS $PROFILING_LDFLAGS, or empty if NS_IMPL_GNUSTEP (for some reason). +## $LDFLAGS or empty if NS_IMPL_GNUSTEP (for some reason). TEMACS_LDFLAGS2 = @TEMACS_LDFLAGS2@ ## Some systems define this to request special libraries. @@ -125,8 +122,10 @@ LIBS_SYSTEM=@LIBS_SYSTEM@ ## Where to find libgcc.a, if using gcc and necessary. LIB_GCC=@LIB_GCC@ +CRT_DIR=@CRT_DIR@ ## May use $CRT_DIR. LIB_STANDARD=@LIB_STANDARD@ +START_FILES = @START_FILES@ ## -lm, or empty. LIB_MATH=@LIB_MATH@ @@ -177,8 +176,8 @@ LIBXT_OTHER=@LIBXT_OTHER@ OLDXMENU_TARGET=@OLDXMENU_TARGET@ ## If !HAVE_X11 || USE_GTK, empty. -## Else if USE_X_TOOLKIT, ${lwlibdir}liblw.a. -## Else ${oldXMenudir}libXMenu11.a. +## Else if USE_X_TOOLKIT, $(lwlibdir)/liblw.a. +## Else $(oldXMenudir)/libXMenu11.a. ## (Actually, rather than being empty, it is set to "nothing". ## It is never actually used for anything in this case. ## This is done because there is a rule with target $(OLDXMENU) below, @@ -188,10 +187,10 @@ OLDXMENU_TARGET=@OLDXMENU_TARGET@ ## The alternative would be to put that rule in a makefile fragment.) OLDXMENU=@OLDXMENU@ -## If HAVE_X11 && !USE_GTK, ${OLDXMENU} ../src/${OLDXMENU}; else empty. +## If HAVE_X11 && !USE_GTK, $(OLDXMENU) ../src/$(OLDXMENU); else empty. ## We use stamp-xmenu with these two deps to both ensure that lwlib ## gets remade based on its dependencies in its own makefile, -## and remake temacs if lwlib gets changed by this. +## and remake temacs if lwlib gets changed by this. OLDXMENU_DEPS=@OLDXMENU_DEPS@ ## If !HAVE_X11 && HAVE_X_WINDOWS, -lXMenu (this case no longer possible). @@ -238,16 +237,17 @@ CYGWIN_OBJ=@CYGWIN_OBJ@ MSDOS_OBJ = ## w16select.o termcap.o if MSDOS && HAVE_X_WINDOWS. MSDOS_X_OBJ = -MSDOS_SUPPORT_REAL = ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \ - ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc \ - ${lispsource}term/internal.elc ${lispsource}term/pc-win.elc +MSDOS_SUPPORT_REAL = $(lispsource)/ls-lisp.elc $(lispsource)/disp-table.elc \ + $(lispsource)/dos-fns.elc $(lispsource)/dos-w32.elc $(lispsource)/dos-vars.elc \ + $(lispsource)/term/internal.elc $(lispsource)/term/pc-win.elc ## $MSDOS_SUPPORT_REAL if MSDOS. -MSDOS_SUPPORT = +MSDOS_SUPPORT = ns_appdir=@ns_appdir@ ns_appbindir=@ns_appbindir@ ns_appsrc=@ns_appsrc@ NS_OBJ=@NS_OBJ@ +NS_OBJC_OBJ=@NS_OBJC_OBJ@ NS_SUPPORT=@NS_SUPPORT@ ## Only set if NS_IMPL_GNUSTEP. GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ @@ -259,23 +259,23 @@ GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@ FONT_OBJ=@FONT_OBJ@ ## Used if HAVE_MOUSE. -REAL_MOUSE_SUPPORT=${lispsource}mouse.elc ${lispsource}select.elc \ - ${lispsource}scroll-bar.elc +REAL_MOUSE_SUPPORT=$(lispsource)/mouse.elc $(lispsource)/select.elc \ + $(lispsource)/scroll-bar.elc ## Used if HAVE_GPM && !HAVE_MOUSE -GPM_MOUSE_SUPPORT=${lispsource}mouse.elc +GPM_MOUSE_SUPPORT=$(lispsource)/mouse.elc LIBGPM = @LIBGPM@ ## Either of the two preceding options, or empty. MOUSE_SUPPORT=@MOUSE_SUPPORT@ -## ${lispsource}tooltip.elc if HAVE_WINDOW_SYSTEM, else empty. +## $(lispsource)/tooltip.elc if HAVE_WINDOW_SYSTEM, else empty. TOOLTIP_SUPPORT=@TOOLTIP_SUPPORT@ -BASE_WINDOW_SUPPORT=${lispsource}fringe.elc ${lispsource}image.elc \ - ${lispsource}international/fontset.elc ${lispsource}dnd.elc \ - ${lispsource}tool-bar.elc ${lispsource}mwheel.elc +BASE_WINDOW_SUPPORT=$(lispsource)/fringe.elc $(lispsource)/image.elc \ + $(lispsource)/international/fontset.elc $(lispsource)/dnd.elc \ + $(lispsource)/tool-bar.elc $(lispsource)/mwheel.elc -X_WINDOW_SUPPORT=${lispsource}x-dnd.elc ${lispsource}term/common-win.elc \ - ${lispsource}term/x-win.elc ${lispsource}dynamic-setting.elc +X_WINDOW_SUPPORT=$(lispsource)/x-dnd.elc $(lispsource)/term/common-win.elc \ + $(lispsource)/term/x-win.elc $(lispsource)/dynamic-setting.elc ## If HAVE_X_WINDOWS, both the above ## else if HAVE_WINDOW_SYSTEM (ie, HAVE_NS) just the former; else empty. @@ -295,16 +295,14 @@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ RUN_TEMACS = `/bin/pwd`/temacs -START_FILES = @START_FILES@ - UNEXEC_OBJ = @UNEXEC_OBJ@ CANNOT_DUMP=@CANNOT_DUMP@ DEPDIR=deps -## -MMD -MF ${DEPDIR}/$*.d if AUTO_DEPEND; else empty. +## -MMD -MF $(DEPDIR)/$*.d if AUTO_DEPEND; else empty. DEPFLAGS=@DEPFLAGS@ -## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'. +## test -d $(DEPDIR) || mkdir $(DEPDIR) (if AUTO_DEPEND); else ':'. MKDEPDIR=@MKDEPDIR@ ## DO NOT use -R. There is a special hack described in lastfile.c @@ -322,14 +320,15 @@ MKDEPDIR=@MKDEPDIR@ ## since it may have -I options that should override those. ## ## FIXME? MYCPPFLAGS only referenced in etc/DEBUG. -ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} \ - ${C_SWITCH_MACHINE} ${C_SWITCH_SYSTEM} ${C_SWITCH_X_SITE} \ - ${C_SWITCH_X_SYSTEM} ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${IMAGEMAGICK_CFLAGS} \ - ${LIBXML2_CFLAGS} ${DBUS_CFLAGS} \ - ${GCONF_CFLAGS} ${FREETYPE_CFLAGS} ${FONTCONFIG_CFLAGS} \ - ${LIBOTF_CFLAGS} ${M17N_FLT_CFLAGS} ${DEPFLAGS} ${PROFILING_CFLAGS} \ +ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I$(srcdir) \ + -I$(lib) -I$(srcdir)/../lib \ + $(C_SWITCH_MACHINE) $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \ + $(C_SWITCH_X_SYSTEM) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \ + $(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \ + $(GCONF_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \ + $(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) $(PROFILING_CFLAGS) \ $(LIBGNUTLS_CFLAGS) \ - ${C_WARNINGS_SWITCH} ${CFLAGS} + $(C_WARNINGS_SWITCH) $(CFLAGS) ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) .SUFFIXES: .m @@ -343,20 +342,21 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS) ## lastfile must follow all files whose initialized data areas should ## be dumped as pure by dump-emacs. -obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ +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) \ emacs.o keyboard.o macros.o keymap.o sysdep.o \ buffer.o filelock.o insdel.o marker.o \ - minibuf.o fileio.o dired.o filemode.o \ + minibuf.o fileio.o dired.o \ cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \ alloc.o data.o doc.o editfns.o callint.o \ eval.o floatfns.o fns.o font.o print.o lread.o \ syntax.o $(UNEXEC_OBJ) bytecode.o \ process.o gnutls.o callproc.o \ region-cache.o sound.o atimer.o \ - doprnt.o strftime.o intervals.o textprop.o composite.o md5.o xml.o \ + doprnt.o intervals.o textprop.o composite.o xml.o \ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) +obj = $(base_obj) $(NS_OBJC_OBJ) ## Object files used on some machine or other. ## These go in the DOC file on all machines in case they are needed. @@ -400,93 +400,93 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ ## Place loaddefs.el first, so it gets generated first, since it is on ## the critical path (relevant in parallel compilations). lisp= \ - ${lispsource}loaddefs.el \ - ${lispsource}abbrev.elc \ - ${lispsource}buff-menu.elc \ - ${lispsource}button.elc \ - ${lispsource}emacs-lisp/byte-run.elc \ - ${lispsource}composite.elc \ - ${lispsource}cus-face.elc \ - ${lispsource}cus-start.elc \ - ${lispsource}custom.elc \ - ${lispsource}emacs-lisp/backquote.elc \ - ${lispsource}emacs-lisp/lisp-mode.elc \ - ${lispsource}emacs-lisp/lisp.elc \ - ${lispsource}env.elc \ - ${lispsource}faces.elc \ - ${lispsource}files.elc \ - ${lispsource}format.elc \ - ${lispsource}facemenu.elc \ - ${MOUSE_SUPPORT} \ - ${lispsource}emacs-lisp/float-sup.elc \ - ${lispsource}frame.elc \ - ${lispsource}help.elc \ - ${lispsource}indent.elc \ - ${lispsource}isearch.elc \ - ${lispsource}rfn-eshadow.elc \ - ${lispsource}loadup.el \ - ${lispsource}bindings.elc \ - ${lispsource}emacs-lisp/map-ynp.elc \ - ${lispsource}menu-bar.elc \ - ${lispsource}international/mule.elc \ - ${lispsource}international/mule-conf.elc \ - ${lispsource}international/mule-cmds.elc \ - ${lispsource}international/characters.elc \ - ${lispsource}international/charprop.el \ - ${lispsource}case-table.elc \ - ${lispsource}language/chinese.elc \ - ${lispsource}language/cyrillic.elc \ - ${lispsource}language/indian.elc \ - ${lispsource}language/sinhala.el \ - ${lispsource}language/english.el \ - ${lispsource}language/ethiopic.elc \ - ${lispsource}language/european.elc \ - ${lispsource}language/czech.el \ - ${lispsource}language/slovak.el \ - ${lispsource}language/romanian.el \ - ${lispsource}language/greek.el \ - ${lispsource}language/hebrew.elc \ - ${lispsource}language/japanese.el \ - ${lispsource}language/korean.el \ - ${lispsource}language/lao.el \ - ${lispsource}language/cham.el \ - ${lispsource}language/tai-viet.el \ - ${lispsource}language/thai.el \ - ${lispsource}language/tibetan.elc \ - ${lispsource}language/vietnamese.elc \ - ${lispsource}language/misc-lang.el \ - ${lispsource}language/utf-8-lang.el \ - ${lispsource}language/georgian.el \ - ${lispsource}language/khmer.el \ - ${lispsource}language/burmese.el \ - ${lispsource}paths.el \ - ${lispsource}register.elc \ - ${lispsource}replace.elc \ - ${lispsource}simple.elc \ - ${lispsource}minibuffer.elc \ - ${lispsource}startup.elc \ - ${lispsource}subr.elc \ - ${lispsource}term/tty-colors.elc \ - ${lispsource}font-core.elc \ - ${lispsource}emacs-lisp/syntax.elc \ - ${lispsource}font-lock.elc \ - ${lispsource}jit-lock.elc \ - ${lispsource}textmodes/fill.elc \ - ${lispsource}textmodes/page.elc \ - ${lispsource}textmodes/paragraphs.elc \ - ${lispsource}textmodes/text-mode.elc \ - ${lispsource}emacs-lisp/timer.elc \ - ${lispsource}jka-cmpr-hook.elc \ - ${lispsource}vc/vc-hooks.elc \ - ${lispsource}vc/ediff-hook.elc \ - ${lispsource}epa-hook.elc \ - ${TOOLTIP_SUPPORT} \ - ${MSDOS_SUPPORT} \ - ${WINDOW_SUPPORT} \ - ${NS_SUPPORT} \ - ${lispsource}widget.elc \ - ${lispsource}window.elc \ - ${lispsource}version.el + $(lispsource)/loaddefs.el \ + $(lispsource)/abbrev.elc \ + $(lispsource)/buff-menu.elc \ + $(lispsource)/button.elc \ + $(lispsource)/emacs-lisp/byte-run.elc \ + $(lispsource)/composite.elc \ + $(lispsource)/cus-face.elc \ + $(lispsource)/cus-start.elc \ + $(lispsource)/custom.elc \ + $(lispsource)/emacs-lisp/backquote.elc \ + $(lispsource)/emacs-lisp/lisp-mode.elc \ + $(lispsource)/emacs-lisp/lisp.elc \ + $(lispsource)/env.elc \ + $(lispsource)/faces.elc \ + $(lispsource)/files.elc \ + $(lispsource)/format.elc \ + $(lispsource)/facemenu.elc \ + $(MOUSE_SUPPORT) \ + $(lispsource)/emacs-lisp/float-sup.elc \ + $(lispsource)/frame.elc \ + $(lispsource)/help.elc \ + $(lispsource)/indent.elc \ + $(lispsource)/isearch.elc \ + $(lispsource)/rfn-eshadow.elc \ + $(lispsource)/loadup.el \ + $(lispsource)/bindings.elc \ + $(lispsource)/emacs-lisp/map-ynp.elc \ + $(lispsource)/menu-bar.elc \ + $(lispsource)/international/mule.elc \ + $(lispsource)/international/mule-conf.elc \ + $(lispsource)/international/mule-cmds.elc \ + $(lispsource)/international/characters.elc \ + $(lispsource)/international/charprop.el \ + $(lispsource)/case-table.elc \ + $(lispsource)/language/chinese.elc \ + $(lispsource)/language/cyrillic.elc \ + $(lispsource)/language/indian.elc \ + $(lispsource)/language/sinhala.el \ + $(lispsource)/language/english.el \ + $(lispsource)/language/ethiopic.elc \ + $(lispsource)/language/european.elc \ + $(lispsource)/language/czech.el \ + $(lispsource)/language/slovak.el \ + $(lispsource)/language/romanian.el \ + $(lispsource)/language/greek.el \ + $(lispsource)/language/hebrew.elc \ + $(lispsource)/language/japanese.el \ + $(lispsource)/language/korean.el \ + $(lispsource)/language/lao.el \ + $(lispsource)/language/cham.el \ + $(lispsource)/language/tai-viet.el \ + $(lispsource)/language/thai.el \ + $(lispsource)/language/tibetan.elc \ + $(lispsource)/language/vietnamese.elc \ + $(lispsource)/language/misc-lang.el \ + $(lispsource)/language/utf-8-lang.el \ + $(lispsource)/language/georgian.el \ + $(lispsource)/language/khmer.el \ + $(lispsource)/language/burmese.el \ + $(lispsource)/paths.el \ + $(lispsource)/register.elc \ + $(lispsource)/replace.elc \ + $(lispsource)/simple.elc \ + $(lispsource)/minibuffer.elc \ + $(lispsource)/startup.elc \ + $(lispsource)/subr.elc \ + $(lispsource)/term/tty-colors.elc \ + $(lispsource)/font-core.elc \ + $(lispsource)/emacs-lisp/syntax.elc \ + $(lispsource)/font-lock.elc \ + $(lispsource)/jit-lock.elc \ + $(lispsource)/textmodes/fill.elc \ + $(lispsource)/textmodes/page.elc \ + $(lispsource)/textmodes/paragraphs.elc \ + $(lispsource)/textmodes/text-mode.elc \ + $(lispsource)/emacs-lisp/timer.elc \ + $(lispsource)/jka-cmpr-hook.elc \ + $(lispsource)/vc/vc-hooks.elc \ + $(lispsource)/vc/ediff-hook.elc \ + $(lispsource)/epa-hook.elc \ + $(TOOLTIP_SUPPORT) \ + $(MSDOS_SUPPORT) \ + $(WINDOW_SUPPORT) \ + $(NS_SUPPORT) \ + $(lispsource)/widget.elc \ + $(lispsource)/window.elc \ + $(lispsource)/version.el ## List of relative names for those files from $lisp that are loaded ## unconditionally (i.e. on all platforms). Files from $lisp that @@ -578,103 +578,116 @@ shortlisp= \ ## Like $shortlisp, but includes only those files from $lisp that are loaded ## conditionally (i.e., only on some platforms). +## Confusingly, term/internal is not in loadup, but is unconditionally +## loaded by pc-win, which is. SOME_MACHINE_LISP = ../lisp/mouse.elc \ ../lisp/select.elc ../lisp/scroll-bar.elc \ ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \ ../lisp/w32-fns.elc ../lisp/dos-w32.elc \ - ../lisp/disp-table.elc ../lisp/dos-vars.elc \ + ../lisp/disp-table.elc ../lisp/dos-vars.elc ../lisp/w32-vars.elc \ ../lisp/tooltip.elc ../lisp/image.elc \ ../lisp/fringe.elc ../lisp/dnd.elc \ ../lisp/mwheel.elc ../lisp/tool-bar.elc \ ../lisp/x-dnd.elc ../lisp/dynamic-setting.elc \ - ../lisp/international/ccl.elc \ ../lisp/international/fontset.elc \ - ../lisp/mouse.elc \ ../lisp/term/common-win.elc \ ../lisp/term/x-win.elc \ ../lisp/term/pc-win.elc ../lisp/term/internal.elc \ - ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \ - ../lisp/emacs-lisp/easymenu.elc + ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc ## Construct full set of libraries to be linked. ## Note that SunOS needs -lm to come before -lc; otherwise, you get ## duplicated symbols. If the standard libraries were compiled ## with GCC, we might need LIB_GCC again after them. LIBES = $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ - $(RSVG_LIBS) ${IMAGEMAGICK_LIBS} $(DBUS_LIBS) \ - ${LIBXML2_LIBS} $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ - $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ + $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(DBUS_LIBS) \ + $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ + $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(GCONF_LIBS) $(LIBSELINUX_LIBS) \ $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ $(LIBGNUTLS_LIBS) \ $(LIB_GCC) $(LIB_MATH) $(LIB_STANDARD) $(LIB_GCC) -all: emacs${EXEEXT} $(OTHER_FILES) +all: emacs$(EXEEXT) $(OTHER_FILES) ## Does anyone ever pay attention to the load-path-shadows output here? ## The dumped Emacs is as functional and more efficient than ## bootstrap-emacs, so we replace the latter with the former. -emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} - if test "${CANNOT_DUMP}" = "yes"; then \ - ln -f temacs${EXEEXT} emacs${EXEEXT}; \ - EMACSLOADPATH=${lispsource} ./emacs -q -batch \ +emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) + if test "$(CANNOT_DUMP)" = "yes"; then \ + ln -f temacs$(EXEEXT) emacs$(EXEEXT); \ + EMACSLOADPATH=$(lispsource) ./emacs -batch \ -f list-load-path-shadows || true; \ else \ LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump || exit 1; \ - ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ - ./emacs -q -batch -f list-load-path-shadows || true; \ + ln -f emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ + ./emacs -batch -f list-load-path-shadows || true; \ fi ## We run make-docfile twice because the command line may get too long ## on some systems. -## ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may -## or may not be included in ${obj}, but they are always included in -## ${SOME_MACHINE_OBJECTS}. Since a file is processed when it is mentioned +## $(SOME_MACHINE_OBJECTS) comes before $(obj) because some files may +## or may not be included in $(obj), but they are always included in +## $(SOME_MACHINE_OBJECTS). Since a file is processed when it is mentioned ## for the first time, this prevents any variation between configurations ## in the contents of the DOC file. -## Likewise for ${SOME_MACHINE_LISP}. -## Most of this Makefile refers to Lisp files via ${lispsource}, so -## we also use ${lisp} rather than ${shortlisp} for the dependency since +## Likewise for $(SOME_MACHINE_LISP). +## Most of this Makefile refers to Lisp files via $(lispsource), so +## we also use $(lisp) rather than $(shortlisp) for the dependency since ## the Makefile uses string equality to decide when we talk about identical -## files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile +## files. Apparently we pass $(shortlisp) rather than $(lisp) to make-docfile ## only in order to reduce the command line length. --Stef -${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP} - -rm -f ${etc}DOC - ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC - ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} +$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) $(SOME_MACHINE_LISP) + -rm -f $(etc)/DOC + $(libsrc)/make-docfile -d $(srcdir) $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC + $(libsrc)/make-docfile -a $(etc)/DOC -d $(srcdir) $(SOME_MACHINE_LISP) $(shortlisp) -${libsrc}make-docfile${EXEEXT}: - cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT} +$(libsrc)/make-docfile$(EXEEXT): + cd $(libsrc); $(MAKE) $(MFLAGS) make-docfile$(EXEEXT) buildobj.h: Makefile - echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h + echo "#define BUILDOBJ \"$(obj) $(otherobj) " "\"" > buildobj.h +globals.h: gl-stamp; @true -temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} - $(CC) $(LD_FIRSTFLAG) ${TEMACS_LDFLAGS} ${TEMACS_LDFLAGS2} \ - -o temacs ${START_FILES} ${obj} ${otherobj} ${LIBES} +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 $(SOME_MACHINE_OBJECTS) $(obj) > gl-tmp + $(srcdir)/../move-if-change gl-tmp globals.h + echo timestamp > $@ + +$(obj) $(otherobj): globals.h + +$(lib)/libgnu.a: $(config_h) + cd $(lib) && $(MAKE) libgnu.a + +temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) $(lib)/libgnu.a + $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(TEMACS_LDFLAGS2) \ + -o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES) ## The following oldxmenu-related rules are only (possibly) used if ## HAVE_X11 && !USE_GTK, but there is no harm in always defining them ## (provided we take a little care that OLDXMENU is never empty). -really-lwlib: - cd ${lwlibdir}; ${MAKE} ${MFLAGS} \ - CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' +really-lwlib: globals.h + cd $(lwlibdir); $(MAKE) $(MFLAGS) \ + CC='$(CC)' CFLAGS='$(CFLAGS)' MAKE='$(MAKE)' @true # make -t should not create really-lwlib. .PHONY: really-lwlib really-oldXMenu: - cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \ - CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' + cd $(oldXMenudir); $(MAKE) $(MFLAGS) \ + CC='$(CC)' CFLAGS='$(CFLAGS)' MAKE='$(MAKE)' @true # make -t should not create really-oldXMenu. .PHONY: really-oldXMenu ## We do not really need this when OLDXMENU_DEPS is empty, but as ## things stand we need something to satisfy the temacs dependency. -stamp-oldxmenu: ${OLDXMENU_DEPS} +stamp-oldxmenu: $(OLDXMENU_DEPS) touch stamp-oldxmenu ## Supply an ordering for parallel make. -../src/$(OLDXMENU): ${OLDXMENU} +../src/$(OLDXMENU): $(OLDXMENU) $(OLDXMENU): $(OLDXMENU_TARGET) @@ -688,9 +701,6 @@ $(OLDXMENU): $(OLDXMENU_TARGET) @echo "Please run the `configure' script again." exit 1 -ecrt0.o: ecrt0.c $(config_h) - @$(MKDEPDIR) - $(CC) -c $(ALL_CFLAGS) ${srcdir}/ecrt0.c doc.o: buildobj.h @@ -699,14 +709,15 @@ doc.o: buildobj.h mostlyclean: - rm -f temacs${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a + rm -f temacs$(EXEEXT) core *.core \#* *.o libXMenu11.a liblw.a rm -f ../etc/DOC - rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT} + rm -f bootstrap-emacs$(EXEEXT) emacs-$(version)$(EXEEXT) rm -f buildobj.h + rm -f globals.h gl-stamp clean: mostlyclean - rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT} - -rm -rf ${DEPDIR} - test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir} + rm -f emacs-*.*.*$(EXEEXT) emacs$(EXEEXT) + -rm -rf $(DEPDIR) + test "X$(ns_appdir)" = "X" || rm -rf $(ns_appdir) ## bootstrap-clean is used to clean up just before a bootstrap. ## It should remove all files generated during a compilation/bootstrap, @@ -715,7 +726,7 @@ bootstrap-clean: clean rm -f epaths.h config.h config.stamp stamp-oldxmenu ../etc/DOC-* if test -f ./.gdbinit; then \ mv ./.gdbinit ./.gdbinit.save; \ - if test -f "${srcdir}/.gdbinit"; then rm -f ./.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. @@ -727,7 +738,7 @@ maintainer-clean: distclean @echo "it deletes files that may require special tools to rebuild." rm -f TAGS versionclean: - -rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC* + -rm -f emacs$(EXEEXT) emacs-*.*.*$(EXEEXT) ../etc/DOC* extraclean: distclean -rm -f *~ \#* m/?*~ s/?*~ @@ -738,17 +749,17 @@ ctagsfiles1 = [xyzXYZ]*.[hcm] ctagsfiles2 = [a-wA-W]*.[hcm] TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) - ../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \ + ../lib-src/etags --include=TAGS-LISP --include=$(lwlibdir)/TAGS \ --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \ $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) frc: TAGS-LISP: frc - $(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags + $(MAKE) -f $(lispdir)/Makefile TAGS-LISP ETAGS=../lib-src/etags -$(lwlibdir)TAGS: - (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags) +$(lwlibdir)/TAGS: + (cd $(lwlibdir); $(MAKE) -f $(lwlibdir)/Makefile tags ETAGS=../lib-src/etags) -tags: TAGS TAGS-LISP $(lwlibdir)TAGS +tags: TAGS TAGS-LISP $(lwlibdir)/TAGS .PHONY: tags @@ -770,10 +781,10 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS ## it), so it was compiled in parallel, leading typically to having 2 ## processes dumping bootstrap-emacs at the same time). ## So instead, we replace the witness-emacs dependencies by conditional -## bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do +## bootstrap-dependencies (via $(BOOTSTRAPEMACS)). Of course, since we do ## not want to rely on GNU Make features, we have to rely on an external ## script to do the conditional part of the dependency -## (i.e. see the ${SUBDIR} rule ../Makefile.in). +## (i.e. see the $(SUBDIR) rule ../Makefile.in). .SUFFIXES: .elc .el @@ -783,28 +794,28 @@ 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} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS) +$(lisp) $(SOME_MACHINE_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. -${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) - cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe} +$(lispsource)/loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) + cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=$(bootstrap_exe) ## Dump an Emacs executable named bootstrap-emacs containing the ## files from loadup.el in source form. -bootstrap-emacs${EXEEXT}: temacs${EXEEXT} +bootstrap-emacs$(EXEEXT): temacs$(EXEEXT) cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs - if test "${CANNOT_DUMP}" = "yes"; then \ - ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}; \ + if test "$(CANNOT_DUMP)" = "yes"; then \ + ln -f temacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ else \ $(RUN_TEMACS) --batch --load loadup bootstrap || exit 1; \ - mv -f emacs${EXEEXT} bootstrap-emacs${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@