]> code.delx.au - gnu-emacs/blobdiff - src/Makefile.in
(add_properties, remove_properties, set_properties):
[gnu-emacs] / src / Makefile.in
index 775bf1663fae678f3a4050a7aeb9fe477b058ce1..a097849e6957abf0e4381cc30b0ac6c387502128 100644 (file)
@@ -30,7 +30,8 @@ LN_S=@LN_S@
 
 # On Xenix and the IBM RS6000, double-dot gets screwed up.
 dot = .
 
 # 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/
 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
 
 /* just to be sure the sh is used */
 SHELL=/bin/sh
 
+#define THIS_IS_MAKEFILE
 #define NO_SHORTNAMES
 #define NO_SHORTNAMES
-#define THIS_IS_YMAKEFILE
 #define NOT_C_CODE
 #include "config.h"
 
 #define NOT_C_CODE
 #include "config.h"
 
@@ -239,6 +240,13 @@ LOCALCPP= localcpp
 SHORT= shortnames
 #endif
 
 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
 /* 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.  */
 
 /* 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) $<
 
 .c.o:
        $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
 
@@ -329,11 +337,23 @@ LIBXTR6 = -lSM -lICE
 #endif
 #endif
 
 #endif
 #endif
 
-LIBXT= $(LIBW) -lXmu -lXt $(LIBXTR6) -lXext
-#else
-LIBXT=
+#ifndef LIBXMU
+#define LIBXMU -lXmu
 #endif
 
 #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.  */
 #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)
 
 
 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
    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
 #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.  */
 /* 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
 
 
   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
 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
 #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
 #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
 #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
 #else
 #define MOUSE_SUPPORT
 #endif
@@ -569,19 +591,19 @@ otherobj= $(termcapobj) lastfile.o $(mallocobj) $(allocaobj) $(widgetobj)
 #endif
 
 #ifdef VMS
 #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
 #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
 #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
 #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
 
    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= \
 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 \
        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 \
        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
 
 /* 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.  */
 
 /* 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
 ${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
 
 ${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}
 
     -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)
 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
 
 /* 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.  */
     "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
 #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.  */
     "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 */
 
 #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
 
        @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
 
        @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 \
        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)
 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 \
 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 \
 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)
 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 \
 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)
 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
 
 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)
 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)
 
 /* 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
 
 /* 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
 /**/# 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."
 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. */
 
 /* 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)
 
 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]
 /* 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)
 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)
        --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
 .PHONY: tags