X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/70d4013c165888b5840f1579dc49abf79ad64d03..a03f91ada2cec963ec3e73e81dbc8fbd4e8e0cc9:/src/Makefile.in diff --git a/src/Makefile.in b/src/Makefile.in index 775bf1663f..a097849e69 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -30,7 +30,8 @@ LN_S=@LN_S@ # On Xenix and the IBM RS6000, double-dot gets screwed up. dot = . -lispdir = ${srcdir}/$(dot)$(dot)/lisp/ +dotdot = ${dot}${dot} +lispsource = ${srcdir}/$(dot)$(dot)/lisp/ libsrc = $(dot)$(dot)/lib-src/ etc = $(dot)$(dot)/etc/ shortnamesdir = $(dot)$(dot)/shortnames/ @@ -53,8 +54,8 @@ C_SWITCH_SYSTEM= /* just to be sure the sh is used */ SHELL=/bin/sh +#define THIS_IS_MAKEFILE #define NO_SHORTNAMES -#define THIS_IS_YMAKEFILE #define NOT_C_CODE #include "config.h" @@ -239,6 +240,13 @@ LOCALCPP= localcpp SHORT= shortnames #endif +#ifdef USE_X_TOOLKIT +#define USE_@X_TOOLKIT_TYPE@ +TOOLKIT_DEFINES = -DUSE_@X_TOOLKIT_TYPE@ +#else +TOOLKIT_DEFINES = +#endif + /* DO NOT use -R. There is a special hack described in lastfile.c which is used instead. Some initialized data areas are modified at initial startup, then labeled as part of the text area when @@ -252,7 +260,7 @@ SHORT= shortnames /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM since it may have -I options that should override those two. */ -ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAG) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM ${CFLAGS} +ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAG) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM ${CFLAGS} .c.o: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< @@ -329,11 +337,23 @@ LIBXTR6 = -lSM -lICE #endif #endif -LIBXT= $(LIBW) -lXmu -lXt $(LIBXTR6) -lXext -#else -LIBXT= +#ifndef LIBXMU +#define LIBXMU -lXmu #endif +#ifdef LIBXT_STATIC +/* We assume the config files have defined STATIC_OPTION + since that might depend on the operating system. + (Don't forget you need different definitions with and without __GNUC__.) */ +LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext STATIC_OPTION +#else /* not LIBXT_STATIC */ +LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext +#endif /* not LIBXT_STATIC */ + +#else /* not USE_X_TOOLKIT */ +LIBXT= +#endif /* not USE_X_TOOLKIT */ + #ifdef HAVE_X11 /* LD_SWITCH_X_DEFAULT comes after everything else that specifies options for where to find X libraries, but before those libraries. */ @@ -420,9 +440,11 @@ LD=ld ALL_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_MACHINE LD_SWITCH_SITE $(LDFLAGS) -/* A macro which other sections of ymakefile can redefine to munge the +/* A macro which other sections of Makefile can redefine to munge the flags before they're passed to LD. This is helpful if you have - redefined LD to something odd, like "gcc". */ + redefined LD to something odd, like "gcc". + (The YMF prefix is a holdover from the old name "ymakefile".) + */ #ifndef YMF_PASS_LDFLAGS #define YMF_PASS_LDFLAGS(flags) flags #endif @@ -484,7 +506,7 @@ obj= dispnew.o frame.o scroll.o xdisp.o window.o \ /* Object files used on some machine or other. These go in the DOC file on all machines in case they are needed there. */ -SOME_MACHINE_OBJECTS = sunfns.o msdos.o \ +SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o intervals.o textprop.o \ xterm.o xfns.o xfaces.o xmenu.o xselect.o xrdb.o @@ -538,26 +560,26 @@ widgetobj= otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj) #ifdef HAVE_FACES -#define FACE_SUPPORT ${lispdir}faces.elc ${lispdir}facemenu.elc +#define FACE_SUPPORT ${lispsource}faces.elc ${lispsource}facemenu.elc #else #define FACE_SUPPORT #endif #ifdef LISP_FLOAT_TYPE -#define FLOAT_SUPPORT ${lispdir}float-sup.elc +#define FLOAT_SUPPORT ${lispsource}float-sup.elc #else #define FLOAT_SUPPORT #endif #ifdef MULTI_FRAME -#define FRAME_SUPPORT ${lispdir}frame.elc +#define FRAME_SUPPORT ${lispsource}frame.elc #else #define FRAME_SUPPORT #endif #ifdef HAVE_MOUSE -#define MOUSE_SUPPORT ${lispdir}menu-bar.elc ${lispdir}mouse.elc \ - ${lispdir}select.elc ${lispdir}scroll-bar.elc +#define MOUSE_SUPPORT ${lispsource}menu-bar.elc ${lispsource}mouse.elc \ + ${lispsource}select.elc ${lispsource}scroll-bar.elc #else #define MOUSE_SUPPORT #endif @@ -569,19 +591,19 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj) #endif #ifdef VMS -#define VMS_SUPPORT ${lispdir}vmsproc.elc ${lispdir}vms-patch +#define VMS_SUPPORT ${lispsource}vmsproc.elc ${lispsource}vms-patch.elc #else #define VMS_SUPPORT #endif #ifdef MSDOS -#define MSDOS_SUPPORT ${lispdir}ls-lisp.elc ${lispdir}disp-tab.elc ${lispdir}dos-fns.elc +#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-tab.elc ${lispsource}dos-fns.elc #else #define MSDOS_SUPPORT #endif #ifdef WINDOWSNT -#define WINNT_SUPPORT ${lispdir}ls-lisp.elc ${lispdir}winnt.elc +#define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}winnt.elc #else #define WINNT_SUPPORT #endif @@ -592,42 +614,92 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj) Note that this list should not include lisp files which might not be present, like site-load.el and site-init.el; this makefile - expects them all to be either present or buildable. */ + expects them all to be either present or buildable. + + Always update shortlisp as well as this variable. */ + lisp= \ - ${lispdir}abbrev.elc \ - ${lispdir}buff-menu.elc \ - ${lispdir}byte-run.elc \ - ${lispdir}c-mode.elc \ - ${lispdir}files.elc \ - ${lispdir}fill.elc \ - ${lispdir}format.elc \ + ${lispsource}abbrev.elc \ + ${lispsource}buff-menu.elc \ + ${lispsource}byte-run.elc \ + ${lispsource}files.elc \ + ${lispsource}fill.elc \ + ${lispsource}format.elc \ FACE_SUPPORT \ MOUSE_SUPPORT \ FLOAT_SUPPORT \ FRAME_SUPPORT \ X_WINDOWS_SUPPORT \ - ${lispdir}help.elc \ - ${lispdir}indent.elc \ - ${lispdir}isearch.elc \ - ${lispdir}lisp-mode.elc \ - ${lispdir}lisp.elc \ - ${lispdir}loaddefs.el \ - ${lispdir}map-ynp.elc \ - ${lispdir}page.elc \ - ${lispdir}paragraphs.elc \ - ${lispdir}paths.el \ - ${lispdir}register.elc \ - ${lispdir}replace.elc \ - ${lispdir}simple.elc \ - ${lispdir}startup.elc \ - ${lispdir}subr.elc \ - ${lispdir}text-mode.elc \ - ${lispdir}vc-hooks.elc \ + ${lispsource}help.elc \ + ${lispsource}indent.elc \ + ${lispsource}isearch.elc \ + ${lispsource}lisp-mode.elc \ + ${lispsource}lisp.elc \ + ${lispsource}loadup.el \ + ${lispsource}loaddefs.el \ + ${lispsource}map-ynp.elc \ + ${lispsource}page.elc \ + ${lispsource}paragraphs.elc \ + ${lispsource}paths.el \ + ${lispsource}register.elc \ + ${lispsource}replace.elc \ + ${lispsource}simple.elc \ + ${lispsource}startup.elc \ + ${lispsource}subr.elc \ + ${lispsource}text-mode.elc \ + ${lispsource}vc-hooks.elc \ + ${lispsource}ediff-hook.elc \ VMS_SUPPORT \ MSDOS_SUPPORT \ WINNT_SUPPORT \ - ${lispdir}window.elc \ - ${lispdir}version.el + ${lispsource}window.elc \ + ${lispsource}version.el + +/* These are relative file names for the Lisp files + that are loaded unconditionally. This is used in make-docfile. + It need not contain the files that are loaded conditionally + because SOME_MACHINE_LISP has those. */ +shortlisp= \ + ../lisp/abbrev.elc \ + ../lisp/buff-menu.elc \ + ../lisp/byte-run.elc \ + ../lisp/files.elc \ + ../lisp/fill.elc \ + ../lisp/format.elc \ + ../lisp/help.elc \ + ../lisp/indent.elc \ + ../lisp/isearch.elc \ + ../lisp/lisp-mode.elc \ + ../lisp/lisp.elc \ + ../lisp/loadup.el \ + ../lisp/loaddefs.el \ + ../lisp/map-ynp.elc \ + ../lisp/page.elc \ + ../lisp/paragraphs.elc \ + ../lisp/paths.el \ + ../lisp/register.elc \ + ../lisp/replace.elc \ + ../lisp/simple.elc \ + ../lisp/startup.elc \ + ../lisp/subr.elc \ + ../lisp/text-mode.elc \ + ../lisp/vc-hooks.elc \ + ../lisp/ediff-hook.elc \ + ../lisp/window.elc \ + ../lisp/version.el + +/* Lisp files that may or may not be used. + We must unconditionally put them in the DOC file. + We use ../lisp/ to start the file names + to reduce the size of the argument list for make-docfile + for the sake of systems which can't handle large ones. */ +SOME_MACHINE_LISP = ${dotdot}/lisp/faces.elc ${dotdot}/lisp/facemenu.elc \ + ${dotdot}/lisp/float-sup.elc ${dotdot}/lisp/frame.elc \ + ${dotdot}/lisp/menu-bar.elc ${dotdot}/lisp/mouse.elc \ + ${dotdot}/lisp/select.elc ${dotdot}/lisp/scroll-bar.elc \ + ${dotdot}/lisp/vmsproc.elc ${dotdot}/lisp/vms-patch.elc \ + ${dotdot}/lisp/ls-lisp.elc ${dotdot}/lisp/dos-fns.elc \ + ${dotdot}/lisp/winnt.elc /* Construct full set of libraries to be linked. Note that SunOS needs -lm to come before -lc; otherwise, you get @@ -667,10 +739,17 @@ emacs: temacs ${etc}DOC ${lisp} /* 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 + for the first time, this prevents any variation between configurations + in the contents of the DOC file. + Likewise for ${SOME_MACHINE_LISP}. */ ${etc}DOC: ${libsrc}make-docfile ${obj} ${lisp} -rm -f ${etc}DOC - ${libsrc}make-docfile -d ${srcdir} ${obj} ${SOME_MACHINE_OBJECTS} > ${etc}DOC - ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${lisp} + ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC + cd + ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp} ${libsrc}make-docfile: cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile @@ -685,8 +764,11 @@ temacs: MAKE_PARALLEL $(LOCALCPP) $(SHORT) $(STARTFILES) $(OLDXMENU) ${obj} ${ot -o temacs ${STARTFILES} ${obj} ${otherobj} \ OBJECTS_SYSTEM OBJECTS_MACHINE ${LIBES} +/* We don't use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE + often contain options that have to do with using Emacs's crt0, + which are only good with temacs. */ prefix-args: prefix-args.c $(config_h) - $(CC) $(ALL_CFLAGS) ${srcdir}/prefix-args.c -o prefix-args + $(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args /* These are needed for C compilation, on the systems that need them */ #ifdef NEED_CPP @@ -745,6 +827,7 @@ really-lwlib: "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \ "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)" @true /* make -t should not create really-lwlib. */ +.PHONY: really-lwlib #else /* not USE_X_TOOLKIT */ #ifdef HAVE_X_MENU $(OLDXMENU): really-oldXMenu @@ -767,18 +850,19 @@ really-oldXMenu: "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \ "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)" @true /* make -t should not create really-oldXMenu. */ +.PHONY: really-oldXMenu #endif /* HAVE_X_MENU */ #endif /* not USE_X_TOOLKIT */ #endif /* HAVE_X11 */ #endif /* HAVE_X_WINDOWS */ -paths.h: paths.h.in - @echo "The file paths.h needs to be set up from paths.h.in." +paths.h: paths.in + @echo "The file paths.h needs to be set up from paths.in." @echo "Consult the file \`INSTALL' for instructions for building Emacs." exit 1 -config.h: config.h.in - @echo "The file config.h needs to be set up from config.h.in." +config.h: config.in + @echo "The file config.h needs to be set up from config.in." @echo "Consult the file \`INSTALL' for instructions for building Emacs." exit 1 @@ -839,7 +923,8 @@ ecrt0.o: ecrt0.c $(config_h) CRT0_COMPILE ${srcdir}/ecrt0.c dired.o: dired.c commands.h buffer.h $(config_h) regex.h dispnew.o: dispnew.c commands.h frame.h window.h buffer.h dispextern.h \ - termchar.h termopts.h termhooks.h cm.h disptab.h systty.h systime.h $(config_h) + termchar.h termopts.h termhooks.h cm.h disptab.h systty.h systime.h \ + xterm.h $(config_h) doc.o: doc.c $(config_h) paths.h buffer.h keyboard.h doprnt.o: doprnt.c $(config_h) dosfns.o: buffer.h termchar.h termhooks.h frame.h msdos.h dosfns.h $(config_h) @@ -854,9 +939,9 @@ indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \ insdel.o: insdel.c window.h buffer.h INTERVAL_SRC blockinput.h $(config_h) keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h \ commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \ - systty.h systime.h dispextern.h intervals.h blockinput.h $(config_h) + systty.h systime.h dispextern.h intervals.h blockinput.h xterm.h $(config_h) keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \ - $(config_h) + puresize.h $(config_h) lastfile.o: lastfile.c $(config_h) macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h $(config_h) malloc.o: malloc.c $(config_h) @@ -885,7 +970,7 @@ syntax.o: syntax.c syntax.h buffer.h commands.h $(config_h) sysdep.o: sysdep.c $(config_h) dispextern.h termhooks.h termchar.h termopts.h \ frame.h syssignal.h systty.h systime.h syswait.h blockinput.h window.h term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \ - disptab.h + disptab.h keyboard.h termcap.o: termcap.c $(config_h) terminfo.o: terminfo.c $(config_h) tparam.o: tparam.c $(config_h) @@ -916,7 +1001,7 @@ hftctl.o: hftctl.c $(config_h) alloc.o: alloc.c frame.h window.h buffer.h puresize.h syssignal.h keyboard.h \ blockinput.h $(config_h) INTERVAL_SRC -bytecode.o: bytecode.c buffer.h $(config_h) +bytecode.o: bytecode.c buffer.h syntax.h $(config_h) data.o: data.c buffer.h puresize.h syssignal.h keyboard.h $(config_h) eval.o: eval.c commands.h keyboard.h blockinput.h $(config_h) floatfns.o: floatfns.c $(config_h) @@ -927,7 +1012,7 @@ lread.o: lread.c commands.h keyboard.h buffer.h paths.h $(config_h) \ /* Text properties support */ textprop.o: textprop.c buffer.h intervals.h $(config_h) -intervals.o: intervals.c buffer.h intervals.h puresize.h $(config_h) +intervals.o: intervals.c buffer.h intervals.h keyboard.h puresize.h $(config_h) /* System-specific programs to be made. OTHER_FILES, OBJECTS_SYSTEM and OBJECTS_MACHINE @@ -945,7 +1030,7 @@ clean: mostlyclean /**/# This is used in making a distribution. /**/# Do not use it on development directories! distclean: clean - rm -f paths.h config.h Makefile Makefile.in ../etc/DOC-* + rm -f paths.h config.h Makefile Makefile.c ../etc/DOC-* maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." @@ -957,8 +1042,8 @@ extraclean: distclean /* The rule for the [sm] files has to be written a little funny to avoid looking like a C comment to CPP. */ -SOURCES = *.[ch] [sm]/?* COPYING ymakefile \ - config.h.in README COPYING ChangeLog vms.pp-trans +SOURCES = *.[ch] [sm]/?* COPYING Makefile.in \ + config.in paths.in README COPYING ChangeLog vms.pp-trans unlock: chmod u+w $(SOURCES) @@ -969,11 +1054,12 @@ relock: /* Arrange to make a tags table in ../lisp, and another in this dir which includes ../lisp/TAGS by reference. */ ctagsfiles = [a-zA-Z]*.[hc] -lisptagsfiles = ../lisp/[a-zA-Z]*.el ../lisp/term/[a-zA-Z]*.el +lisptagsfiles = ../lisp/[a-zA-Z]*.el TAGS: $(ctagsfiles) - ../lib-src/etags --include=../lisp/TAGS \ + export DIR; DIR=`pwd`; cd ${srcdir}; \ + $$DIR/../lib-src/etags --include=../lisp/TAGS \ --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' $(ctagsfiles) -../lisp/TAGS: $(lisptagsfiles) - cd ../lisp; $(MAKE) TAGS -tags: TAGS ../lisp/TAGS +${lispsource}TAGS: ${lispsource}$(lisptagsfiles) + cd ${lispsource}; $(MAKE) TAGS +tags: TAGS ${lispsource}TAGS .PHONY: tags