diff src/Makefile.in.in @ 149:538048ae2ab8 r20-3b1

Import from CVS: tag r20-3b1
author cvs
date Mon, 13 Aug 2007 09:36:16 +0200
parents 585fb297b004
children 59463afc5666
line wrap: on
line diff
--- a/src/Makefile.in.in	Mon Aug 13 09:35:15 2007 +0200
+++ b/src/Makefile.in.in	Mon Aug 13 09:36:16 2007 +0200
@@ -32,29 +32,35 @@
 #undef NeXT
 #undef i386
 
-#ifdef USE_GNU_MAKE
 /* For performance and consistency, no built-in rules */
 .SUFFIXES:
-#endif
 .SUFFIXES: .c .o .i .h
 dot = .
 /* On Xenix and the IBM RS6000, double-dot gets screwed up.  */
 lispdir = ${srcdir}/$(dot)$(dot)/lisp/
 libsrc = $(dot)$(dot)/lib-src/
 etcdir = $(dot)$(dot)/etc/
-/* This allows you to put the Mule files in a separate location.
-   Change this if you so desire. */
-muledirfromsrc = $(dot)
-MULESRCDIR = ${srcdir}/${muledirfromsrc}
 
 /* Here are the things that we expect ../configure to edit. */
 srcdir=@srcdir@
 CC=@CC@
 CPP=@CPP@
 CFLAGS=@CFLAGS@
-C_SWITCH_SYSTEM=@c_switch_system@
+CPPFLAGS=@CPPFLAGS@
+LDFLAGS=@LDFLAGS@
+
+c_switch_general=@c_switch_general@
+c_switch_window_system=@c_switch_window_system@
+c_switch_all=@c_switch_all@
+ld_switch_general=@ld_switch_general@
+ld_switch_window_system=@ld_switch_window_system@
+ld_switch_all=@ld_switch_all@
+ld_libs_general=@ld_libs_general@
+ld_libs_window_system=@ld_libs_window_system@
+ld_libs_all=@ld_libs_all@
+
+extra_objs=@extra_objs@
 LN_S=@LN_S@
-native_sound_lib=@native_sound_lib@
 
 /* just to be sure the sh is used */
 SHELL=/bin/sh
@@ -88,23 +94,6 @@
 VPATH=@srcdir@
 #endif
 
-#ifdef USE_LCC
-/* Why is this here?
-# undef LIB_STANDARD
-# define LIB_STANDARD
-*/
-# define LCCFLAGS -Xa -wucp -XW'[Oo]ld style func dcl' $(ENERGIZEP)
-#ifdef NEW_LCC
-# define LCCLINK -Xdbx
-#else
-# define LCCLINK
-#endif
-# define ORDINARY_LINK
-#else
-# define LCCFLAGS
-# define LCCLINK
-#endif
-
 /* On some machines #define register is done in config;
    do not let it interfere with this file.  */
 #undef register
@@ -114,10 +103,6 @@
 MAKE = MAKE_COMMAND
 #endif
 
-#ifdef C_COMPILER
-CC = C_COMPILER
-#endif
-
 /* Some machines do not have the standard C libraries in the usual place. */
 #ifndef ORDINARY_LINK
 #ifndef LIB_STANDARD
@@ -134,33 +119,6 @@
 #define LIBS_DEBUG -lg
 #endif
 
-/* Some s/*.h files define this to request special libraries.  */
-#ifndef LIBS_SYSTEM
-#define LIBS_SYSTEM
-#endif
-
-/* Some m/*.h files define this to request special libraries.  */
-#ifndef LIBS_MACHINE
-#define LIBS_MACHINE
-#endif
-
-#ifndef LIB_MATH
-# ifdef LISP_FLOAT_TYPE
-#  define LIB_MATH -lm
-# else /* ! defined (LISP_FLOAT_TYPE) */
-#  define LIB_MATH
-# endif /* ! defined (LISP_FLOAT_TYPE) */
-#endif /* LIB_MATH */
-
-/* Some s/*.h files define this to request special switches in ld.  */
-#ifndef LD_SWITCH_SYSTEM
-#if !defined (__GNUC__) && (defined(COFF_ENCAPSULATE) || (defined (BSD) && !defined (COFF)))
-#define LD_SWITCH_SYSTEM -X
-#else /* ! defined(COFF_ENCAPSULATE) || (defined (BSD) && !defined (COFF)) */
-#define LD_SWITCH_SYSTEM
-#endif /* ! defined(COFF_ENCAPSULATE) || (defined (BSD) && !defined (COFF)) */
-#endif /* LD_SWITCH_SYSTEM */
-
 #ifndef LD_SWITCH_CALL_SHARED
 #define LD_SWITCH_CALL_SHARED
 #endif /* define a call_shared switch */
@@ -169,56 +127,10 @@
 #define LD_SWITCH_SHARED -c
 #endif /* define a shared switch */
 
-/* Some m/*.h files define this to request special switches in ld.  */
-#ifndef LD_SWITCH_MACHINE
-#define LD_SWITCH_MACHINE
-#endif
-
-/* Some m/*.h files define this to request special switches in cc.  */
-#ifndef C_SWITCH_MACHINE
-#define C_SWITCH_MACHINE
-#endif
-
-/* Some s/*.h files define this to request special switches in cc.  */
-#ifndef C_SWITCH_SYSTEM
-#define C_SWITCH_SYSTEM
-#endif
-
-/* These macros are for switches specifically related to X Windows.  */
-#ifndef C_SWITCH_X_MACHINE
-#define C_SWITCH_X_MACHINE
-#endif
-
-#ifndef C_SWITCH_X_SYSTEM
-#define C_SWITCH_X_SYSTEM
-#endif
-
-#ifndef C_SWITCH_X_SITE
-#define C_SWITCH_X_SITE
-#endif
-
-#ifndef LD_SWITCH_X_SYSTEM
-#define LD_SWITCH_X_SYSTEM
-#endif
-
-#ifndef LD_SWITCH_X_SITE
-#define LD_SWITCH_X_SITE
-#endif
-
-/* These can be passed in from config.h to define special load and
-   compile switches needed by individual sites */
-#ifndef LD_SWITCH_SITE
-#define LD_SWITCH_SITE
-#endif
-
-#ifndef C_SWITCH_SITE
-#define C_SWITCH_SITE
-#endif
-
 #ifndef ORDINARY_LINK
 
 #ifndef CRT0_COMPILE
-#define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS) C_SWITCH_ASM 
+#define CRT0_COMPILE $(CC) -c $(cflags) C_SWITCH_ASM 
 #endif
 
 #ifndef START_FILES
@@ -261,394 +173,62 @@
 #define C_SWITCH_ASM
 #endif
 
-ILD=/cadillac1/code/bin.sun4/ild
-
 PURIFY_PROG=purify
 PURIFY_FLAGS=-chain-length=16 -ignore-signals=SIGPOLL -log-file=puremacs.log \
              -messages=batch -show-directory=yes -windows=yes \
              -cache-dir=. -always-use-cache-dir=yes
-QUANTIFY_PROG=quantify
-QUANTIFY_FLAGS=-windows=no -record-data=no
 PURECOV_PROG=purecov
 #ifdef  QUANTIFY
-#define QUANTIFY_INCLUDES -I/local/include
-#define QUANTIFY_LIBS /local/lib/quantify_stubs.a
-#else
-#define QUANTIFY_INCLUDES
-#define QUANTIFY_LIBS
-#endif
-
-/* Figure out whether the system cpp can handle long names.
-   Do it by testing it right now.
-   If it loses, arrange to use the GNU cpp.  */
-
-#define LONGNAMEBBBFOOX
-#ifdef LONGNAMEBBBARFOOX
-/* Installed cpp fails to distinguish those names!  */
-/* Arrange to compile the GNU cpp later on */
-#define NEED_CPP
-/* Cause cc to invoke the cpp that comes with Emacs,
-   which will be in a file named localcpp.  */
-MYCPPFLAG= -Blocal
-/* LOCALCPP is the local one or nothing.
-   CPP is the local one or the standardone.  */
-LOCALCPP= localcpp
-#else
-MYCPPFLAGS=
-LOCALCPP=
-#endif /* ! defined (LONGNAMEBBBARFOOX) */
+quantify_prog  = quantify
+quantify_flags = -windows=no -record-data=no
+quantify_includes = -I/local/include
+quantify_libs = /local/lib/quantify_stubs.a
+#endif /* QUANTIFY */
 
 #ifdef SHORTNAMES
 SHORT= shortnames
-#else
-SHORT=
 #endif
 
 #ifdef HAVE_NATIVE_SOUND
-# if defined (SOLARIS2)
-#   define SOUND_CFLAGS		C_SWITCH_SITE -I/usr/demo/SOUND/include
-#   define SOUND_OBJS		sunplay.o
-# elif defined (SPARC)
-#   define SOUND_CFLAGS	C_SWITCH_SITE -I/usr/demo/SOUND
-#   define SOUND_OBJS		sunplay.o
-# elif defined (IRIX4) || defined (IRIX5) || defined (IRIX6)
-#   define SOUND_CFLAGS
-#   define SOUND_OBJS		sgiplay.o
-# elif defined (hp9000s800)
-#   ifdef USE_GCC
-#     define SOUND_CFLAGS	-Dconst= -Dvolatile= -I/usr/audio/examples
-#   else /* ! USE_GCC */
-#     define SOUND_CFLAGS	+e -I/usr/audio/examples 
-#   endif /* USE_GCC */
-#   define SOUND_OBJS		hpplay.o
-# elif defined (LINUX) || defined(__FreeBSD__) || defined (__bsdi__)
-#   define SOUND_CFLAGS
-#   define SOUND_OBJS		linuxplay.o
-# else
-  ERROR!!  HAVE\_NATIVE\_SOUND can only be defined on Solaris, SunOS, SGI, hp9000s800, or FreeBSD, BSD/I, Linux
-# endif /* OS */
-#else /* !HAVE_NATIVE_SOUND */
-# define SOUND_CFLAGS
-# define SOUND_OBJS
-#endif /* ! HAVE_NATIVE_SOUND */
-
-#ifdef HAVE_NAS_SOUND
-# define NAS_CFLAGS C_SWITCH_SITE 
-# define NAS_LIBS -laudio
-# define NAS_OBJS nas.o
-#else
-# define NAS_CFLAGS
-# define NAS_LIBS
-# define NAS_OBJS
-#endif /* HAVE_NAS_SOUND */
-
-#ifdef ENERGIZE
-CONN_DIR=../connection
-# define ENERGIZE_INCLUDES -I${I_DIR_PREFIX}${CONN_DIR}
-# define ENERGIZE_LDFLAGS -L${CONN_DIR}
-# if defined(ENERGIZE_3)
-#  define ENERGIZE_LIBS -lenergize
-# elif defined (ENERGIZE_2)
-#  define ENERGIZE_LIBS -lconn
-# else
-#  define ENERGIZE_LIBS -lconn
-# endif
-#else /* !ENERGIZE */
-# define ENERGIZE_INCLUDES
-# define ENERGIZE_LDFLAGS
-# define ENERGIZE_LIBS
-#endif /* !ENERGIZE */
-
-#ifdef HAVE_SOCKS
-# define SOCKS_LIBS -lsocks
-#else /* !HAVE_SOCKS */
-# define SOCKS_LIBS
-#endif /* !HAVE_SOCKS */
-
-#ifdef HAVE_GIF
-# define GIF_OBJS dgif_lib.o gif_err.o gifalloc.o
-#else
-# define GIF_OBJS
+sound_cflags=@sound_cflags@
 #endif
 
-#ifdef HAVE_PNG
-# ifdef HAVE_PNG_GNUZ
-PNG_LIBS = -lpng -lgz
-# else
-PNG_LIBS = -lpng -lz
-# endif
-#endif /* HAVE_PNG */
+LWLIB_SRCDIR = ${srcdir}/$(dot)$(dot)/lwlib
 
-#if defined (HAVE_LIBKSTAT) && defined (HAVE_KSTAT_H)
-LIB_KSTAT = -lkstat
-#endif /* KSTAT */
-
-#ifdef HAVE_DATABASE
-
-# define DATABASE_OBJS database.o
+#ifdef HAVE_X_WINDOWS
+LWLIB_BUILDDIR = $(dot)$(dot)/lwlib
 
-# if !defined (DATABASE_DBM_LIBS)
-#  if defined (HAVE_GNU_DBM) && defined (HAVE_LIBGDBM)
-#   define DATABASE_DBM_LIBS -lgdbm
-#  elif defined (HAVE_DBM) && defined (HAVE_LIBDBM)
-#   define DATABASE_DBM_LIBS -ldbm
-#  else
-#   define DATABASE_DBM_LIBS
-#  endif
-# endif
-
-# if !defined (DATABASE_DB_LIBS)
-#  if defined (HAVE_BERKELEY_DB) && defined (HAVE_LIBDB)
-#   define DATABASE_DB_LIBS -ldb
-#  else
-#   define DATABASE_DB_LIBS
-#  endif
-# endif
+LWLIB_LDFLAGS  = -L$(LWLIB_BUILDDIR)
+LWLIB_LIBS     =  -llw
+LWLIB_CPPFLAGS = -I$(LWLIB_SRCDIR)
+LWLIB_DEPS = $(LWLIB_BUILDDIR)/liblw.a
 
-# define DATABASE_LIBS DATABASE_DBM_LIBS DATABASE_DB_LIBS
-
-#else /* not HAVE_DATABASE */
-
-# define DATABASE_OBJS
-# define DATABASE_LIBS
-
-#endif /* not HAVE_DATABASE */
-
-#ifdef HAVE_JPEG
-JPEG_LIBS = -ljpeg
-#endif
-
-#define NO_GNU_LINKER
+x_objs = balloon_help.o balloon-x.o console-x.o device-x.o event-Xt.o frame-x.o \
+	 glyphs-x.o objects-x.o redisplay-x.o xgccache.o xselect.o
 
-#ifdef DYNODUMP
-#ifdef __GNUC__
-#undef NO_GNU_LINKER
-#define NO_GNU_LINKER -fno-gnu-linker
-#endif
-DYNODUMPBUILDDIR = $(dot)$(dot)/dynodump
-#define DYNODUMP_DEPS $(DYNODUMPBUILDDIR)/dynodump.so
-#else
-#define DYNODUMP_DEPS
-#endif
+#ifdef AIX4
+LIBI18N = -li18n
+#endif /* AIX4 */
 
-#ifdef MULE
-#define MULE_INC -I${MULESRCDIR}
-#else
-#define MULE_INC
-#endif
-
-/* If you want to debug, you can add C_DEBUG_SWITCH to this list.
-   If you want to optimize, you can add C_OPTIMIZE_SWITCH to the list.  */
+X11_libs= $(LIBX11_LIBS) $(libx11_intl) $(LIBI18N)
+#endif /* HAVE_X_WINDOWS */
 
 /* -Demacs is needed to make some files produce the correct version
-   for use in Emacs.
-
-   -DHAVE_CONFIG_H is needed for some other files to take advantage of
-   the information in "config.h".  */
-
-/* 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.  */
+   for use in Emacs. */
 
-CPPFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAG) -I. \
-	   -I${srcdir} MULE_INC LCCFLAGS C_SWITCH_MACHINE C_SWITCH_SYSTEM \
-	   C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE \
-	   C_SWITCH_X_SYSTEM $(LIBX11_INCLUDES) QUANTIFY_INCLUDES 
-ALL_CFLAGS=$(CPPFLAGS) ${CFLAGS}
+src_cppflags=-Demacs -I${srcdir} $(LWLIB_CPPFLAGS) $(CPPFLAGS)
+cppflags = -I. $(c_switch_all) $(src_cppflags)
 
-#ifdef NEED_XILDOFF
-#define XILDOFF -xildoff
-#else
-#define XILDOFF
-#endif
+cflags= $(CFLAGS) $(cppflags)
 
-LDFLAGS = LD_SWITCH_SITE LD_SWITCH_X_SITE LD_SWITCH_SYSTEM \
-	  LD_SWITCH_X_SYSTEM LD_SWITCH_MACHINE \
-	  -L. $(LIBX11_LDFLAGS) ENERGIZE_LDFLAGS XILDOFF NO_GNU_LINKER
+ldflags = $(ld_switch_all) -L. $(no_gnu_linker) $(LWLIB_LDFLAGS)
 
 .c.o:
-	$(CC) -c $(ALL_CFLAGS) $<
+	$(CC) -c $(cflags) $<
 
 /* Create preprocessor output (debugging purposes only) */
 .c.i:
-	$(CC) -P $(CPPFLAGS) $<
-
-
-#ifndef LIBX11_MACHINE
-#define LIBX11_MACHINE
-#endif
-
-#ifndef LIBX11_SYSTEM
-#define LIBX11_SYSTEM
-#endif
-
-LWLIBSRCDIR = ${srcdir}/$(dot)$(dot)/lwlib
-
-#ifdef HAVE_X_WINDOWS
-
-#ifdef HAVE_TOOLBARS
-#define TOOLBAR_X_OBJS toolbar-x.o
-#else
-#define TOOLBAR_X_OBJS
-#endif
-
-#ifdef HAVE_MENUBARS
-#define MENUBAR_X_OBJS menubar-x.o
-#else
-#define MENUBAR_X_OBJS
-#endif
-
-#ifdef HAVE_SCROLLBARS
-#define SCROLLBAR_X_OBJS scrollbar-x.o
-#else
-#define SCROLLBAR_X_OBJS
-#endif
-
-#ifdef HAVE_DIALOGS
-#define DIALOG_X_OBJS dialog-x.o
-#else
-#define DIALOG_X_OBJS
-#endif
-
-#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS)
-#define GUI_X_OBJS gui-x.o
-#else
-#define GUI_X_OBJS
-#endif
-
-#ifndef HAVE_XIM
-#define INPUT_METHOD_X_OBJS input-method-xfs.o
-#elif defined(XIM_MOTIF)
-#define INPUT_METHOD_X_OBJS input-method-motif.o
-#else
-#define INPUT_METHOD_X_OBJS input-method-xlib.o
-#endif
-
-#define XOBJS console-x.o device-x.o DIALOG_X_OBJS event-Xt.o frame-x.o \
-	      glyphs-x.o GUI_X_OBJS MENUBAR_X_OBJS objects-x.o redisplay-x.o \
-              SCROLLBAR_X_OBJS TOOLBAR_X_OBJS INPUT_METHOD_X_OBJS xgccache.o \
-	      xselect.o \
-	      balloon_help.o
-#define BALLOONOBJS balloon-x.o
-#ifdef HAVE_XMU
-#define XMU_OBJS
-XMU_LIB = -lXmu
-#else
-#define XMU_OBJS xmu.o
-#endif
-
-/* LWLIBSRCDIR is defined above regardless of X being used or not.
-   This avoids having to conditionalize the dependencies on lwlib.h */
-LWLIBBUILDDIR = $(dot)$(dot)/lwlib
-
-LIBX11_LDFLAGS = -L$(LWLIBBUILDDIR)
-LIBX11_INCLUDES = -I$(LWLIBSRCDIR)
-
-#ifdef HAVE_XPM
-/* Force the Xpm library to be statically linked, always, if at Sun. */
-# ifdef USAGE_TRACKING
-    XPM_LIBS = -Bstatic -lXpm -Bdynamic
-# else
-    XPM_LIBS = -lXpm
-# endif /* at Sun */
-#endif /* HAVE_XPM */
-
-#ifdef HAVE_XFACE
-XFACE_LIBS = -lcompface
-#endif /* HAVE_XFACE */
-
-#ifdef USAGE_TRACKING
-/* Force the ut library to be statically linked, always. */
-# if defined (SOLARIS2) || defined (SUNOS4)
-    USAGE_TRACKING_LIBS = -Bstatic -lut -Bdynamic
-# else
-    USAGE_TRACKING_LIBS = -lut
-# endif /* SOLARIS2 || SUNOS4 */
-#else
-USAGE_TRACKING_LIBS =
-#endif /* USAGE_TRACKING */
-
-
-#ifdef LWLIB_USES_MOTIF
-TOOLKIT_LIBS = -lXm
-#ifdef LWLIB_USES_ATHENA
-TOOLKIT_LIBS = -lXm -lXaw
-#endif /* LWLIB_USES_ATHENA */
-#else /* ! LWLIB_USES_MOTIF */
-TOOLKIT_LIBS = -lXaw
-#endif /* ! LWLIB_USES_MOTIF */
-
-LIBX11_LIBS = -llw $(TOOLKIT_LIBS) $(XPM_LIBS) $(XFACE_LIBS) $(JPEG_LIBS) $(PNG_LIBS) $(USAGE_TRACKING_LIBS) 
-
-#ifdef AIX4
-# define LIBI18N -li18n
-#else
-# define LIBI18N
-#endif /* AIX4 */
-
-#if (defined(LINUX) && defined(HAVE_CDE))
-# define LIBX11_INTL -lXintl
-#else
-# define LIBX11_INTL
-#endif
-
-#ifdef THIS_IS_X11R6
-#ifdef NEED_LIBW
-LIBW= -lw
-#else
-LIBW=
-#endif
-LIBX=  $(LIBX11_LIBS) $(XMU_LIB) -lXt -lSM -lICE $(LIBW) -lXext LIBX11_INTL -lX11 LIBX11_MACHINE LIBX11_SYSTEM LIBI18N
-#else
-LIBX=  $(LIBX11_LIBS) $(XMU_LIB) -lXt -lXext LIBX11_INTL -lX11 LIBX11_MACHINE LIBX11_SYSTEM LIBI18N
-#endif
-
-#else
-# define XOBJS
-# define XMU_OBJS
-# define BALLOONOBJS
-#endif /* HAVE_X_WINDOWS */
-
-/* We should be able to deal with Canna and Wnn in tty mode once MULE is */
-/* ported to tty, right? */
-#ifdef MULE
-
-/* We ignore mule-mcpath.o for the moment. */
-
-# ifdef HAVE_CANNA
-#  define CANNA_OBJS mule-canna.o
-#  define CANNA_OBJ_SRC ${muledirfromsrc}/mule-canna.c
-#  define LIB_CANNA -lcanna -lRKC
-# else
-#  define CANNA_OBJS
-#  define CANNA_OBJ_SRC
-#  define LIB_CANNA
-# endif
-# ifdef HAVE_WNN
-#  define WNN_OBJS mule-wnnfns.o
-#  define WNN_OBJ_SRC ${muledirfromsrc}/mule-wnnfns.c
-#  define LIB_WNN -lwnn
-# else
-#  define WNN_OBJS
-#  define WNN_OBJ_SRC
-#  define LIB_WNN
-# endif
-/* Chuck says that you have to have at least one specified actual
-   object file per line. */
-mule_objs=	mule.o mule-ccl.o CANNA_OBJS \
-		WNN_OBJS mule-charset.o mule-coding.o
-mule_obj_src=	${muledirfromsrc}/mule.c \
-		${muledirfromsrc}/mule-ccl.c CANNA_OBJ_SRC \
-		WNN_OBJ_SRC ${muledirfromsrc}/mule-charset.c \
-		${muledirfromsrc}/mule-coding.c
-
-#else /* not MULE */
-
-mule_objs=
-mule_obj_src=
-#define LIB_CANNA
-#define LIB_WNN
-
-#endif /* not MULE */
+	$(CC) -P $(cppflags) $<
 
 #ifndef ORDINARY_LINK
 /* Fix linking if compiled with GCC.  */
@@ -697,6 +277,13 @@
 GNULIB_VAR =
 #endif /* not ORDINARY_LINK */
 
+/* A macro which other sections of the makefile can redefine to munge the
+   flags before they are passed to LD.  This is helpful if you have
+   redefined LD to something odd, like "gcc".  */
+#ifndef YMF_PASS_LDFLAGS
+#define YMF_PASS_LDFLAGS(flags) flags
+#endif
+
 /* Specify address for ld to start loading at,
    if requested by configuration.  */
 #ifdef LD_TEXT_START_ADDR
@@ -719,13 +306,6 @@
 #endif /* ! defined (COFF_ENCAPSULATE) */
 #endif /* not ORDINARY_LINK */
 
-/* A macro which other sections of the makefile can redefine to munge the
-   flags before they are passed to LD.  This is helpful if you have
-   redefined LD to something odd, like "gcc".  */
-#ifndef YMF_PASS_LDFLAGS
-#define YMF_PASS_LDFLAGS(flags) flags
-#endif
-
 /* Allow config.h to specify a replacement file for unexec.c.  */
 #ifndef UNEXEC
 #define UNEXEC unexec.o
@@ -736,167 +316,58 @@
 
 #ifdef ENERGIZE
 # ifdef EMACS_BTL
-   BTLDIR=$(srcdir)/../btl
-#  define BTLOBJS cadillac-btl.o cadillac-btl-process.o cadillac-btl-asm.o \
-		  cadillac-btl-emacs.o
-# else
-#  define BTLOBJS
-# endif /* BTL */
+BTL_dir=$(srcdir)/../btl
+BTL_objs = cadillac-btl.o cadillac-btl-process.o cadillac-btl-asm.o cadillac-btl-emacs.o
+# endif /* EMACS_BTL */
 # if defined(FREE_CHECKING) || defined(DEBUG_INPUT_BLOCKING) || defined(DEBUG_GCPRO)
-#  define FREECHECKOBJS free-hook.o
-# else  /* !FREE */
-#  define FREECHECKOBJS
-# endif /* !FREE */
-# define ENERGIZE_OBJS energize.o FREECHECKOBJS
-#else /* !ENERGIZE */
-# define ENERGIZE_OBJS
-# define BTLOBJS
-#endif /* !ENERGIZE */
-
-#ifdef HAVE_REALPATH
-#define REALPATH_OBJS
-#else
-#define REALPATH_OBJS realpath.o
-#endif
-
-#ifdef TOOLTALK
-# define TOOLTALK_OBJS tooltalk.o
-# if (defined (IRIX5) || defined (HPUX) || defined (POWERPC) || defined (AIX4) || defined (LINUX) || (defined (OSF1) && defined (DEC_ALPHA)))
-#  define LIB_TOOLTALK -ltt
-# else
-#  if (defined (SPARC) && !defined (USG))
-#    define LIB_TOOLTALK -ltt -lI18N
-#  else
-#    if ((defined (SPARC) || defined(INTEL386)) && defined (USG))
-#      define LIB_TOOLTALK -ltt -lce
-#    else
-#      undef TOOLTALK
-#      define TOOLTALK_OBJS
-#      define LIB_TOOLTALK
-#    endif /* ((SPARC || INTEL386) && USG) */
-#  endif /* ! (SPARC && !USG) */
-# endif /* !IRIX5 */
-#else /* !TOOLTALK */
-# define TOOLTALK_OBJS
-# define LIB_TOOLTALK
-#endif /* !TOOLTALK */
-
-#ifdef HAVE_CDE
-#  if (defined (OSF1) && defined (DEC_ALPHA))
-#    define LIB_CDE -lDtSvc -ltt -lcxx
-#  else
-#    define LIB_CDE -lDtSvc -ltt
-#  endif /* (defined (OSF1) && defined (DEC_ALPHA)) */
-#else
-#  define LIB_CDE
-#endif
-
-#ifdef HAVE_OFFIX_DND
-#  define LIB_OFFIX_DND -lDnd
-#else
-#  define LIB_OFFIX_DND
-#endif
-
-#if (defined(LIB_INTL) && (!(defined(I18N3) || defined(I18N4))))
-  /* this should be defined by s- files, but we should not use it unless
-     I18N3 or I18N4 are defined. */
-# undef LIB_INTL
-#endif
-
-#ifndef LIB_INTL
-# define LIB_INTL
-#endif
+freecheck_objs = free-hook.o
+# endif /* FREE */
+energize_objs = energize.o $(freecheck_objs)
+#endif /* ENERGIZE */
 
 #ifdef MOCKLISP_SUPPORT
-# define MOCKLISPOBJS mocklisp.o
-#else
-# define MOCKLISPOBJS
-#endif
-
-#ifdef DEBUG_XEMACS
-# define DEBUG_OBJS debug.o
-#else
-# define DEBUG_OBJS
-#endif
-
-#ifdef SUNPRO
-# define SUNPRO_OBJS sunpro.o
-#else
-# define SUNPRO_OBJS
+mocklisp_objs = mocklisp.o
 #endif
 
 #ifdef HAVE_TTY
-#define TTY_OBJS console-tty.o device-tty.o event-tty.o frame-tty.o \
+tty_objs = console-tty.o device-tty.o event-tty.o frame-tty.o \
 		 objects-tty.o redisplay-tty.o cm.o
-#else
-#define TTY_OBJS
-#endif
-
-#ifdef HAVE_TOOLBARS
-#define TOOLBAR_OBJS toolbar.o
-#else
-#define TOOLBAR_OBJS
-#endif
-#ifdef HAVE_MENUBARS
-#define MENUBAR_OBJS menubar.o
-#else
-#define MENUBAR_OBJS
-#endif
-#ifdef HAVE_SCROLLBARS
-#define SCROLLBAR_OBJS scrollbar.o
-#else
-#define SCROLLBAR_OBJS
-#endif
-#ifdef HAVE_DIALOGS
-#define DIALOG_OBJS dialog.o
-#else
-#define DIALOG_OBJS
-#endif
-#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS)
-#define GUI_OBJS gui.o
-#else
-#define GUI_OBJS
 #endif
 
 #ifdef HAVE_UNIXOID_EVENT_LOOP
-#define EVENT_UNIXOID_OBJS event-unixoid.o
-#else
-#define EVENT_UNIXOID_OBJS
+event_unixoid_objs = event-unixoid.o
 #endif
 
 /* lastfile must follow all files whose initialized data areas should
-   be dumped as pure by dump-emacs.
- */
+   be dumped as pure by dump-emacs. */
 
 /* NOTE: The last line cannot be all macros, because make will barf
    if they all come out null. */
 
-objs=	abbrev.o alloc.o blocktype.o buffer.o bytecode.o \
-	callint.o callproc.o casefiddle.o casetab.o chartab.o cmdloop.o \
-	cmds.o console.o console-stream.o \
-	data.o DATABASE_OBJS DEBUG_OBJS device.o DIALOG_OBJS dired.o doc.o \
-	doprnt.o dynarr.o \
-	editfns.o elhash.o emacs.o ENERGIZE_OBJS eval.o events.o \
-	event-stream.o EVENT_UNIXOID_OBJS extents.o \
-	faces.o fileio.o filelock.o filemode.o floatfns.o fns.o font-lock.o \
-	frame.o \
-	general.o getloadavg.o GIF_OBJS glyphs.o GUI_OBJS \
-	hash.o \
-	indent.o inline.o insdel.o intl.o \
-	keymap.o $(RTC_PATCH_O) \
-	lread.o lstream.o \
-	macros.o marker.o md5.o MENUBAR_OBJS minibuf.o MOCKLISPOBJS \
-	NAS_OBJS \
+objs =	abbrev.o alloc.o blocktype.o buffer.o bytecode.o \
+	callint.o callproc.o casefiddle.o casetab.o chartab.o \
+	cmdloop.o cmds.o console.o console-stream.o data.o \
+	device.o dired.o \
+	doc.o doprnt.o dynarr.o editfns.o elhash.o emacs.o \
+	$(energize_objs) eval.o events.o $(extra_objs) \
+	event-stream.o $(event_unixoid_objs) extents.o faces.o \
+	fileio.o filelock.o filemode.o floatfns.o fns.o font-lock.o \
+	frame.o general.o getloadavg.o glyphs.o \
+	$(gui_objs) hash.o indent.o inline.o insdel.o intl.o \
+	keymap.o $(RTC_patch_objs) lread.o lstream.o macros.o \
+	marker.o md5.o minibuf.o $(mocklisp_objs) \
 	objects.o opaque.o \
-	print.o process.o profile.o pure.o \
-	rangetab.o REALPATH_OBJS redisplay.o redisplay-output.o regex.o \
-	SCROLLBAR_OBJS search.o signal.o sound.o SOUND_OBJS specifier.o \
-	strftime.o SUNPRO_OBJS symbols.o syntax.o sysdep.o \
-	TOOLBAR_OBJS TOOLTALK_OBJS TTY_OBJS \
-	undo.o UNEXEC \
-	XOBJS XMU_OBJS BALLOONOBJS \
-	window.o
+	print.o process.o profile.o pure.o rangetab.o \
+	redisplay.o redisplay-output.o regex.o \
+	search.o signal.o sound.o \
+	specifier.o strftime.o symbols.o syntax.o \
+	sysdep.o $(tty_objs) undo.o \
+	UNEXEC $(x_objs) window.o
 
+/* The following is being done in configure.in now - mrb */
+#undef LIBS_TERMCAP
+#define LIBS_TERMCAP
+#if 0
 #ifdef HAVE_TTY
 #  ifdef HAVE_NCURSES
 /* If your machine needs -ltermcap, define LIBS_TERMCAP to include
@@ -925,14 +396,11 @@
 #  undef LIBS_TERMCAP
 #  define LIBS_TERMCAP
 #endif /* !HAVE_TTY */
-
+#endif /* 0 */
 
 #ifdef REL_ALLOC
+rallocdocsrc = ralloc.c
 rallocobjs = ralloc.o
-rallocdocsrc = ralloc.c
-#else
-rallocobjs =
-rallocdocsrc =
 #endif
 
 #ifndef SYSTEM_MALLOC
@@ -940,29 +408,23 @@
 #  ifdef ERROR_CHECK_MALLOC
 mallocobjs = gmalloc.o free-hook.o vm-limit.o
 mallocdocsrc = free-hook.c
-#  else
+#  else /* New GNU malloc, sans error checking */
 mallocobjs = gmalloc.o vm-limit.o
 mallocdocsrc =
-#  endif
+#  endif /* ERROR_CHECK_MALLOC */
 # else /* Old GNU malloc */
 mallocobjs = malloc.o
 mallocdocsrc =
 # endif /* Old GNU malloc */
-#else
+#else /* SYSTEM_MALLOC */
 mallocobjs =
 mallocdocsrc =
 #endif /* SYSTEM_MALLOC */
 
-#ifdef FORCE_ALLOCA_H
-allocaobjs = alloca.o
-#else /* !FORCE_ALLOCA_H */
-allocaobjs = @ALLOCA@
-#endif /* !FORCE_ALLOCA_H */
-
 #ifdef HAVE_X_WINDOWS
 
 # ifdef EXTERNAL_WIDGET
-#  define EXTERNAL_WIDGET_OBJS ExternalShell.o extw-Xt-nonshared.o extw-Xlib-nonshared.o
+external_widget_objs = ExternalShell.o extw-Xt-nonshared.o extw-Xlib-nonshared.o
 
 /* Now we try to figure out how to link a shared library.
    If we cannot figure it out, leave EXTW_LINK undefined and a shared
@@ -983,7 +445,7 @@
 #  endif /* not IRIX */
 # else /* not USG5 */
 #  if defined (DEC_ALPHA) && defined (OSF1)
-#   define EXTW_LINK(objs, output) $(LD) $(LDFLAGS) LD_SWITCH_SHARED -d objs -o output $(LIBES)
+#   define EXTW_LINK(objs, output) $(LD) $(ldflags) LD_SWITCH_SHARED -d objs -o output $(LIBES)
 #  else /* !(DEC_ALPHA && OSF1) */
 #   define EXTW_LINK(objs, output) $(LD) -dc objs -assert pure-text -o output
 #  endif /* !(DEC_ALPHA && OSF1) */
@@ -1007,21 +469,14 @@
 #    define OTHER_FILES MOTIF_OTHER_FILES \
 		        libextcli_Xt.a libextcli_Xlib.a
 #  endif
-# else  /* !EXTERNAL_WIDGET */
-#  define EXTERNAL_WIDGET_OBJS
-# endif /* !EXTERNAL_WIDGET */
+# endif /* EXTERNAL_WIDGET */
 
-# define LIBX11_OBJS EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o EXTERNAL_WIDGET_OBJS
-# define LWLIB_DEPS $(LWLIBBUILDDIR)/liblw.a
-
-#else /* !X */
-# define LIBX11_OBJS
-# define LWLIB_DEPS
-#endif
+X11_objs = EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o $(external_widget_objs)
+#endif /* HAVE_X_WINDOWS */
 
 /* define otherobjs as list of object files that make-docfile
    should not be told about.  */
-otherobjs= $(termcapobjs) BTLOBJS lastfile.o $(mallocobjs) $(rallocobjs) $(allocaobjs) LIBX11_OBJS
+otherobjs = $(termcapobjs) $(BTL_objs) lastfile.o $(mallocobjs) $(rallocobjs) $(X11_objs)
 
 #ifdef LISP_FLOAT_TYPE
 #define FLOAT_LISP ${lispdir}prim/float-sup.elc
@@ -1246,12 +701,9 @@
 	   ${lispdir}bytecomp/byte-optimize.elc \
 	   ${lispdir}utils/advice.elc
 
-LIBES = NAS_LIBS ${native_sound_lib} SOCKS_LIBS ENERGIZE_LIBS LIB_CDE LIB_OFFIX_DND \
-	LIB_TOOLTALK $(LIBX) \
-	LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
-	LIB_CANNA LIB_WNN LIB_INTL QUANTIFY_LIBS $(LIB_KSTAT) \
-	DATABASE_LIBS LIBS_DEBUG $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
-	$(GNULIB_VAR)
+LIBES = $(LWLIB_LIBS) $(energize_libs) $(quantify_libs) \
+	LIBS_DEBUG $(GNULIB_VAR) LIB_STANDARD \
+	$(GNULIB_VAR) $(ld_libs_all)
 
 /* Enable recompilation of certain other files depending on system type.  */
 
@@ -1270,20 +722,15 @@
 
 all: xemacs OTHER_FILES
 
-/* "make release" to build "xemacs" with an incremented version number;
-   "make xemacs" to just build "xemacs" without incrementing the version. */
-
 #ifdef I18N3
-modir = ${etcdir}
-# define MOFILE ${modir}emacs.mo
-#else
-# define MOFILE
+mo_dir = ${etcdir}
+mo_file = ${mo_dir}emacs.mo
 #endif
 
 LOADPATH =  EMACSLOADPATH="${lispdir}prim"  
 DUMPENV = $(LOADPATH)
 
-release: temacs ${lisp} ${libsrc}DOC MOFILE OTHER_FILES
+release: temacs ${lisp} ${libsrc}DOC $(mo_file) OTHER_FILES
 #ifdef CANNOT_DUMP
 	ln temacs xemacs
 #else
@@ -1311,7 +758,7 @@
 	touch release
 #endif /* ! defined (CANNOT_DUMP) */
 
-xemacs: temacs ${libsrc}DOC ${lisp} MOFILE OTHER_FILES
+xemacs: temacs ${libsrc}DOC ${lisp} $(mo_file) OTHER_FILES
 	@touch SATISFIED
 	-$(DUMPENV) ./temacs -batch -l loadup.el dump
 	@if [ ! -f SATISFIED ]; then \
@@ -1319,30 +766,29 @@
 	fi
 	@/bin/rm -f SATISFIED
 
-xemacs-no-site-file: temacs ${libsrc}DOC ${lisp} MOFILE OTHER_FILES
+xemacs-no-site-file: temacs ${libsrc}DOC ${lisp} $(mo_file) OTHER_FILES
 	@touch SATISFIED
 	-$(DUMPENV) ./temacs -batch -l loadup.el dump no-site-file
-	@if [ ! -f SATISFIED ]; then \
-		$(MAKE) xemacs-no-site-file; \
-	fi
+	@test ! -f SATISFIED && $(MAKE) xemacs-no-site-file
 	@/bin/rm -f SATISFIED
 
 obj_src = $(objs:.o=.c)
 
 #ifdef DYNODUMP
-$(DYNODUMPBUILDDIR)/dynodump.so: force
-	cd ${DYNODUMPBUILDDIR} && ${MAKE} ${MFLAGS}
-#endif
+dynodump_builddir = $(dot)$(dot)/dynodump
+dynodump_deps = $(dynodump_builddir)/dynodump.so
+$(dynodump_builddir)/dynodump.so: force
+	cd ${dynodump_builddir} && ${MAKE} ${MFLAGS}
+#endif /* DYNODUMP */
 
 #ifdef NO_DOC_FILE
 ${libsrc}DOC: ${libsrc}make-docfile
 #else
-${libsrc}DOC: ${libsrc}make-docfile ${obj_src} ${mule_obj_src} ${lisp}
+${libsrc}DOC: ${libsrc}make-docfile ${obj_src} ${lisp}
 #endif
 	rm -f ${libsrc}DOC
 	${libsrc}make-docfile -d ${srcdir} -i ${libsrc}../site-packages \
-		${obj_src} ${mule_obj_src} \
-	        ${mallocdocsrc} ${rallocdocsrc} ${lispdir}version.el \
+		${obj_src} ${mallocdocsrc} ${rallocdocsrc} ${lispdir}version.el \
 		${lisp} > ${libsrc}DOC
 
 dump_elcs: dump-elcs
@@ -1370,14 +816,14 @@
    msgfmt=		 msgfmt
 #endif
 
-${modir}emacs.po: ${libsrc}make-msgfile ${libsrc}make-po ${objs} ${mule_objs} ${lisp}
-	${libsrc}make-msgfile -o ${libsrc}messages ${objs} ${mule_objs} ${lisp} ${otherlisp}
+${mo_dir}emacs.po: ${libsrc}make-msgfile ${libsrc}make-po ${objs} ${lisp}
+	${libsrc}make-msgfile -o ${libsrc}messages ${objs} ${lisp} ${otherlisp}
 	cd ${libsrc} && ${xgettext} ${xgettext_args}
-	rm -f ${modir}emacs.po
-	cd ${libsrc} && ${libsrc}make-po -a ${modir}emacs.po DOC
+	rm -f ${mo_dir}emacs.po
+	cd ${libsrc} && ${libsrc}make-po -a ${mo_dir}emacs.po DOC
 
-${modir}emacs.mo: ${modir}emacs.po
-	cd ${modir} && ${msgfmt} -o emacs.mo emacs.po
+${mo_dir}emacs.mo: ${mo_dir}emacs.po
+	cd ${mo_dir} && ${msgfmt} -o emacs.mo emacs.po
 
 ${libsrc}make-msgfile:
 	cd ${libsrc} && ${MAKE} ${MFLAGS} make-msgfile
@@ -1393,10 +839,7 @@
 /* Lint Section */
 LINT.c=$(LINT) $(LINTFLAGS) $(LINTINCLUDES) 
 LINTFILES= $(objs:.o=.ln)
-LINTINCLUDES = -Demacs -DHAVE_CONFIG_H $(MYCPPFLAG) -I. \
-	   -I${srcdir} LCCFLAGS C_SWITCH_MACHINE C_SWITCH_SYSTEM \
-	   C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE \
-	   C_SWITCH_X_SYSTEM $(LIBX11_INCLUDES)
+LINTINCLUDES = $(cppflags)
 /* LINTFLAGS= -fd -m -p -s -u -v -x */
 LINTFLAGS= -fd -m -s -u -v -x
 lint: $(LINTFILES)
@@ -1404,36 +847,37 @@
 /* end of Lint Section */
 
 force:
-$(LWLIBBUILDDIR)/liblw.a: force
-	cd ${LWLIBBUILDDIR} && ${MAKE} ${MFLAGS}
+$(LWLIB_BUILDDIR)/liblw.a: force
+	cd ${LWLIB_BUILDDIR} && ${MAKE} ${MFLAGS}
 
 /* Some systems define this to cause parallel Make-ing.  */
 #ifndef MAKE_PARALLEL
 #define MAKE_PARALLEL
 #endif
 
-#define TEMACS_DEPS       MAKE_PARALLEL $(LOCALCPP) $(SHORT) $(STARTFILES) \
-			  ${objs} ${mule_objs} ${otherobjs} OBJECTS_SYSTEM \
-			  OBJECTS_MACHINE LWLIB_DEPS DYNODUMP_DEPS prefix-args
+temacs_deps = \
+	MAKE_PARALLEL $(LOCALCPP) $(SHORT) $(STARTFILES) \
+	${objs} ${otherobjs} OBJECTS_SYSTEM OBJECTS_MACHINE \
+	$(LWLIB_DEPS) $(dynodump_deps) prefix-args
 
-#define TEMACS_LINK_ARGS  YMF_PASS_LDFLAGS \
-		(${STARTFLAGS} ${LDFLAGS} LD_SWITCH_CALL_SHARED) -o $@ \
-		${STARTFILES} ${objs} ${mule_objs} ${otherobjs} OBJECTS_SYSTEM \
-		OBJECTS_MACHINE ${LIBES}
+temacs_link_args = \
+	YMF_PASS_LDFLAGS(${STARTFLAGS} ${ldflags} LD_SWITCH_CALL_SHARED) \
+	-o $@ ${STARTFILES} ${objs} ${otherobjs} \
+	OBJECTS_SYSTEM OBJECTS_MACHINE ${LIBES}
 
-temacs_deps: TEMACS_DEPS
+temacs_deps: $(temacs_deps)
 
-temacs: TEMACS_DEPS
-	$(LD) LCCLINK TEMACS_LINK_ARGS
+temacs: $(temacs_deps)
+	$(LD) $(temacs_link_args)
 
-cemacs: TEMACS_DEPS
-	$(LD) $(ENERGIZEP) TEMACS_LINK_ARGS
+cemacs: $(temacs_deps)
+	$(LD) $(temacs_link_args)
 
 rtc_patch.o:
 	rtc_patch_area -o $@
 
-rtcmacs: TEMACS_DEPS rtc_patch.o
-	rm -f temacs; $(MAKE) $(MAKE_FLAGS) temacs RTC_PATCH_O=rtc_patch.o
+rtcmacs: $(temacs_deps) rtc_patch.o
+	rm -f temacs; $(MAKE) $(MAKE_FLAGS) temacs RTC_patch_objs=rtc_patch.o
 	mv temacs rtcmacs
 
 rtcrun: rtcmacs
@@ -1446,35 +890,34 @@
 	runargs -batch -l loadup.el run-temacs -q; \
 	run' rtcmacs
 
-puremacs: TEMACS_DEPS
-	$(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) TEMACS_LINK_ARGS
+puremacs: $(temacs_deps)
+	$(PURIFY_PROG) $(PURIFY_FLAGS) $(LD) $(temacs_link_args)
 
-quantmacs: TEMACS_DEPS
-	$(QUANTIFY_PROG) $(QUANTIFY_FLAGS) $(LD) TEMACS_LINK_ARGS
+quantmacs: $(temacs_deps)
+	$(quantify_prog) $(quantify_flags) $(LD) $(temacs_link_args)
 
-covmacs: TEMACS_DEPS
-	$(PURECOV_PROG) $(LD) TEMACS_LINK_ARGS
+covmacs: $(temacs_deps)
+	$(PURECOV_PROG) $(LD) $(temacs_link_args)
 
 TopLevelEmacsShell.o : ${srcdir}/EmacsShell-sub.c
-	$(CC) -c $(ALL_CFLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL ${srcdir}/EmacsShell-sub.c
+	$(CC) -c $(cflags) -DDEFINE_TOP_LEVEL_EMACS_SHELL ${srcdir}/EmacsShell-sub.c
 	mv EmacsShell-sub.o TopLevelEmacsShell.o
 
 TransientEmacsShell.o : ${srcdir}/EmacsShell-sub.c TopLevelEmacsShell.o
-	$(CC) -c $(ALL_CFLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c
+	$(CC) -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c
 	mv EmacsShell-sub.o TransientEmacsShell.o
 
+/* Position-independent code for shared library creation */
+#if USE_GCC
+pic_arg = -fpic
+#elif defined (IRIX)
+pic_arg = -KPIC
+# else
+pic_arg = -K pic
+#endif
+
 #ifdef EXTERNAL_WIDGET
 
-#if USE_GCC
-# define PIC_ARG -fpic
-#else
-# ifdef IRIX
-#  define PIC_ARG -KPIC
-# else
-#  define PIC_ARG -K pic
-# endif
-#endif
-
 # define EXTERNAL_CLIENT_MOTIF_OBJS_SHARED ExternalClient-Xm-shared.o extw-Xt-shared.o extw-Xlib-shared.o
 # define EXTERNAL_CLIENT_XT_OBJS_SHARED    ExternalClient-Xt-shared.o extw-Xt-shared.o extw-Xlib-shared.o
 # define EXTERNAL_CLIENT_XLIB_OBJS_SHARED  ExternalClient-Xlib-shared.o extw-Xlib-shared.o
@@ -1484,46 +927,46 @@
 
 /* Add dependencies so things work right with a parallel make */ 
 ExternalClient-Xm-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-shared.o ExternalClient-Xm-nonshared.o
-	$(CC) -c PIC_ARG $(ALL_CFLAGS) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c
+	$(CC) -c $(pic_arg) $(cflags) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c
 	mv ExternalClient.o ExternalClient-Xm-shared.o
 
 ExternalClient-Xt-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-nonshared.o
-	$(CC) -c PIC_ARG $(ALL_CFLAGS) ${srcdir}/ExternalClient.c
+	$(CC) -c $(pic_arg) $(cflags) ${srcdir}/ExternalClient.c
 	mv ExternalClient.o ExternalClient-Xt-shared.o
 
 ExternalClient-Xlib-shared.o: ${srcdir}/ExternalClient-Xlib.c ExternalClient-Xlib-nonshared.o
-	$(CC) -c PIC_ARG $(ALL_CFLAGS) ${srcdir}/ExternalClient-Xlib.c
+	$(CC) -c $(pic_arg) $(cflags) ${srcdir}/ExternalClient-Xlib.c
 	mv ExternalClient-Xlib.o ExternalClient-Xlib-shared.o
 
 ExternalClient-Xm-nonshared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-nonshared.o
-	$(CC) -c $(ALL_CFLAGS) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c
+	$(CC) -c $(cflags) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c
 	mv ExternalClient.o ExternalClient-Xm-nonshared.o
 
 ExternalClient-Xt-nonshared.o: ${srcdir}/ExternalClient.c
-	$(CC) -c $(ALL_CFLAGS) ${srcdir}/ExternalClient.c
+	$(CC) -c $(cflags) ${srcdir}/ExternalClient.c
 	mv ExternalClient.o ExternalClient-Xt-nonshared.o
 
 ExternalClient-Xlib-nonshared.o: ${srcdir}/ExternalClient-Xlib.c
-	$(CC) -c $(ALL_CFLAGS) ${srcdir}/ExternalClient-Xlib.c
+	$(CC) -c $(cflags) ${srcdir}/ExternalClient-Xlib.c
 	mv ExternalClient-Xlib.o ExternalClient-Xlib-nonshared.o
 
 /* We compile the common files twice (once with PIC and once without)
    because on some systems, compiling with PIC but not linking into
    a shared library messes things up. */
 extw-Xt-shared.o: ${srcdir}/extw-Xt.c extw-Xt-nonshared.o
-	$(CC) -c PIC_ARG $(ALL_CFLAGS) ${srcdir}/extw-Xt.c
+	$(CC) -c $(pic_arg) $(cflags) ${srcdir}/extw-Xt.c
 	mv extw-Xt.o extw-Xt-shared.o
 
 extw-Xlib-shared.o: ${srcdir}/extw-Xlib.c extw-Xlib-nonshared.o
-	$(CC) -c PIC_ARG $(ALL_CFLAGS) ${srcdir}/extw-Xlib.c
+	$(CC) -c $(pic_arg) $(cflags) ${srcdir}/extw-Xlib.c
 	mv extw-Xlib.o extw-Xlib-shared.o
 
 extw-Xt-nonshared.o: ${srcdir}/extw-Xt.c
-	$(CC) -c $(ALL_CFLAGS) ${srcdir}/extw-Xt.c
+	$(CC) -c $(cflags) ${srcdir}/extw-Xt.c
 	mv extw-Xt.o extw-Xt-nonshared.o
 
 extw-Xlib-nonshared.o: ${srcdir}/extw-Xlib.c
-	$(CC) -c $(ALL_CFLAGS) ${srcdir}/extw-Xlib.c
+	$(CC) -c $(cflags) ${srcdir}/extw-Xlib.c
 	mv extw-Xlib.o extw-Xlib-nonshared.o
 
 libextcli_Xm.a: EXTERNAL_CLIENT_MOTIF_OBJS_NONSHARED
@@ -1546,19 +989,19 @@
 libextcli_Xlib.so.1: EXTERNAL_CLIENT_XLIB_OBJS_SHARED
 	EXTW_LINK(EXTERNAL_CLIENT_XLIB_OBJS_SHARED, libextcli_Xlib.so.1)
 
-#endif
+#endif /* EXTW_LINK */
 
 #endif /* EXTERNAL_WIDGET */
 
 prefix-args: ${srcdir}/prefix-args.c config.h
-	$(CC) $(ALL_CFLAGS) ${srcdir}/prefix-args.c -o prefix-args
+	$(CC) $(cflags) ${srcdir}/prefix-args.c -o prefix-args
 
 /* These are needed for C compilation, on the systems that need them */
 #ifdef NEED_CPP
 CPP = ./localcpp
 localcpp:
 	cd ${cppdir} && ${MAKE} ${MFLAGS} EMACS=-DEMACS
-	ln ${cppdir}cpp localcpp  /* Name where ALL_CFLAGS will refer to it */
+	ln ${cppdir}cpp localcpp  /* Name where cflags will refer to it */
 /* cc appears to be cretinous and require all of these to exist
    if -B is specified -- we cannot use one local pass and let the
    others be the standard ones.  What a loser.
@@ -1614,8 +1057,7 @@
    whenever emacs was #defined, but that's not appropriate for all
    users of alloca in Emacs.  Check out ../lib-src/getopt.c.  */
 alloca.o : ${srcdir}/alloca.c
-	$(CC) -c $(CPPFLAGS) -Dfree=xfree -Dmalloc=xmalloc \
-	$(ALL_CFLAGS) $<
+	$(CC) -c -Dfree=xfree -Dmalloc=xmalloc $(cflags) $<
 #else
 #ifndef HAVE_ALLOCA
 alloca.o : ${srcdir}/alloca.s config.h
@@ -1626,7 +1068,7 @@
    since some assemblers barf on them.  Use a different basename for the
    output file, since some stupid compilers (Green Hill) use that
    name for the intermediate assembler file. */
-	$(CPP) $(CPPFLAGS) $(ALL_CFLAGS) allocatem.c | \
+	$(CPP) $(cppflags) allocatem.c | \
 	sed -e 's///' -e 's/^#.*//' | \
 	sed -n -e '/^..*$$/p' > allocax.s
 	-rm -f alloca.o
@@ -1637,71 +1079,32 @@
 #endif /* HAVE_ALLOCA */
 #endif /* ! defined (C_ALLOCA) */
 
-#ifdef USE_LCC  /* lcc doesn't do asm() yet */
-ecrt0.o: ${srcdir}/ecrt0.c
-	gcc -c -g -Demacs $<
-#endif /* USE_LCC */
-
 #ifdef EMACS_BTL
-BTL_INCLUDES=-I$(BTLDIR)
-# define BTL_COMPILE \
-	-DEMACS_BTL -D`lucid-arch` -I. $(BTL_INCLUDES) $(BTLDIR)/$(@:.o=.c)
+BTL_includes = -I$(BTL_dir)
+BTL_compile = -DEMACS_BTL -D`lucid-arch` -I. $(BTL_includes) $(BTL_dir)/$(@:.o=.c)
 
 cadillac-btl.o cadillac-btl-process.o cadillac-btl-emacs.o:
-	$(CC) $(CFLAGS) -c BTL_COMPILE
-# ifndef USE_LCC
+	$(CC) $(CFLAGS) -c $(BTL_compile)
 cadillac-btl-asm.o:
-	$(CC) $(CFLAGS) -c BTL_COMPILE
-# else  /* lcc doesn't do asm() yet */
-cadillac-btl-asm.o:
-	gcc -O -g       -c BTL_COMPILE
-# endif /* lcc */
+	$(CC) $(CFLAGS) -c $(BTL_compile)
 #endif /* EMACS_BTL */
 
 #ifdef ENERGIZE
 energize.o: ${srcdir}/energize.c
-	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) ENERGIZE_INCLUDES $(BTL_INCLUDES) $<
+	$(CC) -c $(cppflags) $(cflags) $(BTL_includes) $<
 #endif /* ENERGIZE */
 
 #ifdef HAVE_NATIVE_SOUND
-# if defined (SUNOS4) || defined (SOLARIS2)
 sunplay.o: ${srcdir}/sunplay.c
-	$(CC) -c $(ALL_CFLAGS) SOUND_CFLAGS $<
-# endif /* SUNOS4 or SOLARIS2 */
-# ifdef hp9000s800
+	$(CC) -c  $(sound_cflags) $(cflags) $<
 hpplay.o: ${srcdir}/hpplay.c
-	$(CC) -c -Demacs $(ALL_CFLAGS) SOUND_CFLAGS $<
-# endif /* hp9000s800 */
+	$(CC) -c -Demacs $(sound_cflags) $(cflags) $<
 #endif /* HAVE_NATIVE_SOUND */
 
-#ifdef HAVE_NAS_SOUND
-nas.o: ${srcdir}/nas.c
-	$(CC) -c $(ALL_CFLAGS) NAS_CFLAGS $<
-#endif /* HAVE_NAS_SOUND */
-
-#ifdef MULE
-
-mule-canna.o: ${MULESRCDIR}/mule-canna.c
-	$(CC) -c $(ALL_CFLAGS) ${MULESRCDIR}/mule-canna.c
-mule-wnnfns.o: ${MULESRCDIR}/mule-wnnfns.c
-	$(CC) -c $(ALL_CFLAGS) ${MULESRCDIR}/mule-wnnfns.c
-mule.o: ${MULESRCDIR}/mule.c
-	$(CC) -c $(ALL_CFLAGS) ${MULESRCDIR}/mule.c
-mule-ccl.o: ${MULESRCDIR}/mule-ccl.c
-	$(CC) -c $(ALL_CFLAGS) ${MULESRCDIR}/mule-ccl.c
-mule-charset.o: ${MULESRCDIR}/mule-charset.c
-	$(CC) -c $(ALL_CFLAGS) ${MULESRCDIR}/mule-charset.c
-mule-coding.o: ${MULESRCDIR}/mule-coding.c
-	$(CC) -c $(ALL_CFLAGS) ${MULESRCDIR}/mule-coding.c
-
-#endif
-
 /* System-specific programs to be made.
    OTHER_FILES, OBJECTS_SYSTEM and OBJECTS_MACHINE
    select which of these should be compiled.  */
 
-${libsrc}emacstool: ${libsrc}emacstool.c
-	cd ${libsrc} && ${MAKE} ${MFLAGS} emacstool
 mostlyclean:
 	rm -f temacs puremacs quantmacs prefix-args xmakefile* core depend.* \#* *.o
 	rm -f ${libsrc}DOC
@@ -1733,31 +1136,11 @@
 /*** Dependency processing using GCC ***/
 
 .c.dep:
-	$(CC) -MM $(ALL_CFLAGS) $< > $*.dep
+	$(CC) -MM $(cflags) $< > $*.dep
 
 .SUFFIXES: .dep
 
 obj_dep = $(objs:.o=.dep)
-mule_obj_dep = $(mule_objs:.o=.dep)
-
-#ifdef MULE
-
-/* Ugh, there should be a better way of handling this. */
-
-mule-canna.dep: ${MULESRCDIR}/mule-canna.c
-	$(CC) -MM $(ALL_CFLAGS) ${MULESRCDIR}/mule-canna.c > mule-canna.dep
-mule-wnnfns.dep: ${MULESRCDIR}/mule-wnnfns.c
-	$(CC) -MM $(ALL_CFLAGS) ${MULESRCDIR}/mule-wnnfns.c > mule-wnnfns.dep
-mule.dep: ${MULESRCDIR}/mule.c
-	$(CC) -MM $(ALL_CFLAGS) ${MULESRCDIR}/mule.c > mule.dep
-mule-ccl.dep: ${MULESRCDIR}/mule-ccl.c
-	$(CC) -MM $(ALL_CFLAGS) ${MULESRCDIR}/mule-ccl.c > mule-ccl.dep
-mule-charset.dep: ${MULESRCDIR}/mule-charset.c
-	$(CC) -MM $(ALL_CFLAGS) ${MULESRCDIR}/mule-charset.c > mule-charset.dep
-mule-coding.dep: ${MULESRCDIR}/mule-coding.c
-	$(CC) -MM $(ALL_CFLAGS) ${MULESRCDIR}/mule-coding.c > mule-coding.dep
-
-#endif /* MULE */
 
 gnu-depend: $(obj_dep)
 	/* #### Needs a bit of work: it doesn't see the object files that
@@ -1771,7 +1154,7 @@
 depend:
 	: > depend.tmp
 	makedepend -f depend.tmp -Dsubprocesses -DMOCKLISP_SUPPORT \
-		   -DHAVE_X_WINDOWS -DMULE -- $(CPPFLAGS) $(ALL_CFLAGS) \
+		   -DHAVE_X_WINDOWS -DMULE -- $(cppflags) $(cflags) \
 		   -- *.c
 	sh ${libsrc}process-depends.sh < depend.tmp > depend.out
 	egrep '^mule|[^a-zA-Z]mule' depend.out > /tmp/depend1.$$
@@ -1820,19 +1203,19 @@
 extw-Xt-nonshared.o: config.h
 extw-Xt-nonshared.o: extw-Xlib.h
 extw-Xt-nonshared.o: extw-Xt.h
-#endif
+#endif /* EXTERNAL_WIDGET */
 
 #ifdef EMACS_BTL
-cadillac-btl.o: $(BTLDIR)/cadillac-btl.c
-cadillac-btl.o: $(BTLDIR)/cadillac-btl.h
-cadillac-btl.o: $(BTLDIR)/cadillac-btl-extern.h
-cadillac-btl-asm.o: $(BTLDIR)/cadillac-btl-asm.c
-cadillac-btl-asm.o: $(BTLDIR)/cadillac-btl.h
-cadillac-btl-asm.o: $(BTLDIR)/cadillac-btl-extern.h
-cadillac-btl-emacs.o: $(BTLDIR)/cadillac-btl-extern.h
-cadillac-btl-process.o: $(BTLDIR)/cadillac-btl-process.c
-cadillac-btl-process.o: $(BTLDIR)/cadillac-btl.h
-cadillac-btl-process.o: $(BTLDIR)/cadillac-btl-extern.h
+cadillac-btl.o: $(BTL_dir)/cadillac-btl.c
+cadillac-btl.o: $(BTL_dir)/cadillac-btl.h
+cadillac-btl.o: $(BTL_dir)/cadillac-btl-extern.h
+cadillac-btl-asm.o: $(BTL_dir)/cadillac-btl-asm.c
+cadillac-btl-asm.o: $(BTL_dir)/cadillac-btl.h
+cadillac-btl-asm.o: $(BTL_dir)/cadillac-btl-extern.h
+cadillac-btl-emacs.o: $(BTL_dir)/cadillac-btl-extern.h
+cadillac-btl-process.o: $(BTL_dir)/cadillac-btl-process.c
+cadillac-btl-process.o: $(BTL_dir)/cadillac-btl.h
+cadillac-btl-process.o: $(BTL_dir)/cadillac-btl-extern.h
 #endif /* EMACS_BTL */
 
 /* (makedepend definitely misbehaves on these) */
@@ -1915,12 +1298,14 @@
 menubar-x.o: mule-charset.h
 minibuf.o: mule-charset.h
 mocklisp.o: mule-charset.h
+#ifdef HAVE_CANNA
 mule-canna.o: blocktype.h
 mule-canna.o: buffer.h
 mule-canna.o: bufslots.h
 mule-canna.o: config.h
 mule-canna.o: dynarr.h
 mule-canna.o: mule-charset.h
+#endif /* HAVE_CANNA */
 mule-ccl.o: blocktype.h
 mule-ccl.o: buffer.h
 mule-ccl.o: bufslots.h
@@ -1947,6 +1332,7 @@
 mule-coding.o: lstream.h
 mule-coding.o: mule-charset.h
 mule-coding.o: mule-coding.h
+#if 0
 mule-mcpath.o: blocktype.h
 mule-mcpath.o: buffer.h
 mule-mcpath.o: bufslots.h
@@ -1954,6 +1340,8 @@
 mule-mcpath.o: dynarr.h
 mule-mcpath.o: mule-charset.h
 mule-mcpath.o: sysfile.h
+#endif /* obsolete */
+#ifdef HAVE_WNN
 mule-wnnfns.o: blocktype.h
 mule-wnnfns.o: buffer.h
 mule-wnnfns.o: bufslots.h
@@ -1963,6 +1351,7 @@
 mule-wnnfns.o: redisplay.h
 mule-wnnfns.o: scrollbar.h
 mule-wnnfns.o: window.h
+#endif /* HAVE_WNN */
 mule.o: blocktype.h
 mule.o: config.h
 mule.o: dynarr.h
@@ -1995,7 +1384,7 @@
 xselect.o: mule-charset.h
 #endif /* MULE */
 
-EmacsFrame.o: $(LWLIBSRCDIR)/lwlib.h
+EmacsFrame.o: $(LWLIB_SRCDIR)/lwlib.h
 EmacsFrame.o: EmacsFrame.h
 EmacsFrame.o: EmacsFrameP.h
 EmacsFrame.o: EmacsManager.h
@@ -2283,10 +1672,12 @@
 data.o: config.h
 data.o: dynarr.h
 data.o: sysfloat.h
+#ifdef HAVE_DATABASE
 database.o: blocktype.h
 database.o: config.h
 database.o: database.h
 database.o: dynarr.h
+#endif /* HAVE_DATABASE */
 debug.o: blocktype.h
 debug.o: bytecode.h
 debug.o: config.h
@@ -2314,7 +1705,7 @@
 device-tty.o: systime.h
 device-tty.o: systty.h
 device-tty.o: toolbar.h
-device-x.o: $(LWLIBSRCDIR)/lwlib.h
+device-x.o: $(LWLIB_SRCDIR)/lwlib.h
 device-x.o: blocktype.h
 device-x.o: buffer.h
 device-x.o: bufslots.h
@@ -2367,7 +1758,7 @@
 device.o: window.h
 dgif_lib.o: config.h
 dgif_lib.o: gif_lib.h
-dialog-x.o: $(LWLIBSRCDIR)/lwlib.h
+dialog-x.o: $(LWLIB_SRCDIR)/lwlib.h
 dialog-x.o: EmacsFrame.h
 dialog-x.o: EmacsManager.h
 dialog-x.o: EmacsShell.h
@@ -2480,7 +1871,7 @@
 eval.o: console.h
 eval.o: dynarr.h
 eval.o: opaque.h
-event-Xt.o: $(LWLIBSRCDIR)/lwlib.h
+event-Xt.o: $(LWLIB_SRCDIR)/lwlib.h
 event-Xt.o: Emacs.ad.h
 event-Xt.o: EmacsFrame.h
 event-Xt.o: blocktype.h
@@ -2723,7 +2114,7 @@
 frame-tty.o: specifier.h
 frame-tty.o: systty.h
 frame-tty.o: toolbar.h
-frame-x.o: $(LWLIBSRCDIR)/lwlib.h
+frame-x.o: $(LWLIB_SRCDIR)/lwlib.h
 frame-x.o: EmacsFrame.h
 frame-x.o: EmacsFrameP.h
 frame-x.o: EmacsManager.h
@@ -2794,7 +2185,7 @@
 gif_err.o: gif_lib.h
 gifalloc.o: config.h
 gifalloc.o: gif_lib.h
-glyphs-x.o: $(LWLIBSRCDIR)/lwlib.h
+glyphs-x.o: $(LWLIB_SRCDIR)/lwlib.h
 glyphs-x.o: ${srcdir}/${etcdir}xemacs.xbm
 glyphs-x.o: bitmaps.h
 glyphs-x.o: blocktype.h
@@ -2842,7 +2233,7 @@
 glyphs.o: window.h
 gmalloc.o: config.h
 gmalloc.o: getpagesize.h
-gui-x.o: $(LWLIBSRCDIR)/lwlib.h
+gui-x.o: $(LWLIB_SRCDIR)/lwlib.h
 gui-x.o: blocktype.h
 gui-x.o: buffer.h
 gui-x.o: bufslots.h
@@ -2893,7 +2284,7 @@
 indent.o: specifier.h
 indent.o: toolbar.h
 indent.o: window.h
-inline.o: $(LWLIBSRCDIR)/lwlib.h
+inline.o: $(LWLIB_SRCDIR)/lwlib.h
 inline.o: blocktype.h
 inline.o: buffer.h
 inline.o: bufslots.h
@@ -3053,7 +2444,7 @@
 md5.o: config.h
 md5.o: dynarr.h
 md5.o: insdel.h
-menubar-x.o: $(LWLIBSRCDIR)/lwlib.h
+menubar-x.o: $(LWLIB_SRCDIR)/lwlib.h
 menubar-x.o: EmacsFrame.h
 menubar-x.o: EmacsManager.h
 menubar-x.o: EmacsShell.h
@@ -3282,7 +2673,7 @@
 redisplay-tty.o: systty.h
 redisplay-tty.o: toolbar.h
 redisplay-tty.o: window.h
-redisplay-x.o: $(LWLIBSRCDIR)/lwlib.h
+redisplay-x.o: $(LWLIB_SRCDIR)/lwlib.h
 redisplay-x.o: EmacsFrame.h
 redisplay-x.o: EmacsFrameP.h
 redisplay-x.o: blocktype.h
@@ -3347,7 +2738,7 @@
 regex.o: dynarr.h
 regex.o: regex.h
 regex.o: syntax.h
-scrollbar-x.o: $(LWLIBSRCDIR)/lwlib.h
+scrollbar-x.o: $(LWLIB_SRCDIR)/lwlib.h
 scrollbar-x.o: EmacsFrame.h
 scrollbar-x.o: EmacsManager.h
 scrollbar-x.o: blocktype.h
@@ -3499,7 +2890,7 @@
 termcap.o: device.h
 termcap.o: dynarr.h
 terminfo.o: config.h
-toolbar-x.o: $(LWLIBSRCDIR)/lwlib.h
+toolbar-x.o: $(LWLIB_SRCDIR)/lwlib.h
 toolbar-x.o: EmacsFrame.h
 toolbar-x.o: EmacsFrameP.h
 toolbar-x.o: EmacsManager.h