# Makefile for GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+# Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# Some of the conditionals might be dead now. Finding them and
# deleting them would be fine.
+SHELL = /bin/sh
# Here are the things that we expect ../configure to edit.
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
abs_builddir = @abs_builddir@
VPATH = $(srcdir)
CC = @CC@
-CPP = @CPP@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
-LN_S = @LN_S@
EXEEXT = @EXEEXT@
version = @version@
# Substitute an assignment for the MAKE variable, because
bootstrap_exe = ${abs_builddir}/bootstrap-emacs${EXEEXT}
+## ns-app if HAVE_NS, else empty.
OTHER_FILES = @OTHER_FILES@
CRT_DIR=@CRT_DIR@
+## Machine-specific CFLAGS.
+C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
+## System-specific CFLAGS.
+C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
+
+## Currently only set if NS_IMPL_GNUSTEP.
+## C_SWITCH_X_SITE may override this.
+C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@
+
+## Define C_SWITCH_X_SITE to contain any special flags your compiler
+## may need to deal with X Windows. For instance, if you've defined
+## HAVE_X_WINDOWS and your X include files aren't in a place that your
+## compiler can find on its own, you might want to add "-I/..." or
+## something similar. This is normally set by configure.
+## This is used before C_SWITCH_X_SYSTEM and may override it.
+C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
+
+## Define LD_SWITCH_X_SITE to contain any special flags your loader
+## may need to deal with X Windows. For instance, if your X libraries
+## aren't in a place that your loader can find on its own, you might
+## want to add "-L/..." or something similar. Only used if
+## HAVE_X_WINDOWS.
+## FIXME? configure sets a value for this, but it has never been
+## substituted in this or any other Makefile. Cf C_SWITCH_X_SITE.
+LD_SWITCH_X_SITE=
+
+## 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,
+## which are only good with temacs.
+LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYSTEM_TEMACS@
+
+## Next two must come before LD_SWITCH_SYSTEM.
+## If needed, a -R option that says where to find X windows at run time.
+LD_SWITCH_X_SITE_AUX=@LD_SWITCH_X_SITE_AUX@
+## As above, but using -rpath instead.
+LD_SWITCH_X_SITE_AUX_RPATH=@LD_SWITCH_X_SITE_AUX_RPATH@
+
+## System-specific LDFLAGS.
+LD_SWITCH_SYSTEM=@LD_SWITCH_SYSTEM@
+LD_SWITCH_SYSTEM_EXTRA=@LD_SWITCH_SYSTEM_EXTRA@
+
+## Flags to pass to ld only for temacs.
+TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_EXTRA) $(LD_SWITCH_SYSTEM_TEMACS)
+
+## Some systems define this to request special libraries.
+LIBS_SYSTEM=@LIBS_SYSTEM@
+
+## Where to find libgcc.a, if using gcc and necessary.
+LIB_GCC=@LIB_GCC@
+
+## May use $CRT_DIR.
+LIB_STANDARD=@LIB_STANDARD@
+
+## -lm, or empty.
+LIB_MATH=@LIB_MATH@
+
LIBTIFF=@LIBTIFF@
LIBJPEG=@LIBJPEG@
LIBPNG=@LIBPNG@
XFT_LIBS=@XFT_LIBS@
LIBX_EXTRA=$(LIBTIFF) $(LIBJPEG) $(LIBPNG) $(LIBGIF) $(LIBXPM) -lX11 $(XFT_LIBS)
+FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
+FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
+FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
+FREETYPE_LIBS = @FREETYPE_LIBS@
+LIBOTF_CFLAGS = @LIBOTF_CFLAGS@
+LIBOTF_LIBS = @LIBOTF_LIBS@
+M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS@
+M17N_FLT_LIBS = @M17N_FLT_LIBS@
+
DBUS_CFLAGS = @DBUS_CFLAGS@
DBUS_LIBS = @DBUS_LIBS@
DBUS_OBJ = @DBUS_OBJ@
GTK_OBJ=@GTK_OBJ@
+## -ltermcap, or -lncurses, or -lcurses, or "".
+LIBS_TERMCAP=@LIBS_TERMCAP@
+## terminfo.o if TERMINFO, else tparam.o.
+TERMCAP_OBJ=@TERMCAP_OBJ@
+
LIBXMU=@LIBXMU@
LIBXSM=@LIBXSM@
## Only used if HAVE_X_WINDOWS.
LIBXT_OTHER=@LIBXT_OTHER@
+## Only used if HAVE_X11 && !USE_GTK.
+## really-lwlib if USE_X_TOOLKIT, else really-oldxmenu.
+OLDXMENU_TARGET=@OLDXMENU_TARGET@
+
+## If !HAVE_X11 || USE_GTK, empty.
+## Else if USE_X_TOOLKIT, ${lwlibdir}liblw.a.
+## Else ${oldXMenudir}libXMenu11.a.
+OLDXMENU=@OLDXMENU@
+
+## If !HAVE_X11 && HAVE_X_WINDOWS, -lXMenu (this case no longer possible).
+## Else if !HAVE_X11 || USE_GTK, empty.
+## Else $(OLDXMENU).
+LIBXMENU=@LIBXMENU@
+
XMENU_OBJ=@XMENU_OBJ@
XOBJ=@XOBJ@
## sheap.o if CYGWIN, otherwise empty.
CYGWIN_OBJ=@CYGWIN_OBJ@
+## dosfns.o msdos.o w16select.o if MSDOS.
+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 if MSDOS.
+MSDOS_SUPPORT =
+
+ns_appdir=@ns_appdir@/
+ns_appbindir=@ns_appbindir@/
+ns_appsrc=@ns_appsrc@
NS_OBJ=@NS_OBJ@
NS_SUPPORT=@NS_SUPPORT@
-
-## Only used if HAVE_X_WINDOWS and HAVE_WINDOW_SYSTEM.
+## Next two only set if NS_IMPL_GNUSTEP.
+GNU_OBJC_CFLAGS=@GNU_OBJC_CFLAGS@
+GNUSTEP_SYSTEM_LIBRARIES=@GNUSTEP_SYSTEM_LIBRARIES@
+
+## Empty if !HAVE_X_WINDOWS
+## xfont.o ftfont.o xftfont.o ftxfont.o if HAVE_XFT
+## xfont.o ftfont.o ftxfont.o if HAVE_FREETYPE
+## else xfont.o
FONT_OBJ=@FONT_OBJ@
-## ${lispsource}mouse.elc if HAVE_GPM, otherwise empty.
-## Not used if HAVE_MOUSE.
-GPM_MOUSE_SUPPORT=@GPM_MOUSE_SUPPORT@
+## Used if HAVE_MOUSE.
+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
+LIBGPM = @LIBGPM@
+## Either of the two preceding options, or empty.
+MOUSE_SUPPORT=@MOUSE_SUPPORT@
+
+## ${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 \
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.
+WINDOW_SUPPORT=@WINDOW_SUPPORT@
+
+## -lresolv, or empty.
+LIBRESOLV = @LIBRESOLV@
+
LIBSELINUX_LIBS = @LIBSELINUX_LIBS@
INTERVALS_H = dispextern.h intervals.h composite.h
RUN_TEMACS = `/bin/pwd`/temacs
+START_FILES = @START_FILES@
+
+UNEXEC_OBJ = @unexec@
+
# ========================== start of cpp stuff =======================
/* From here on, comments must be done in C syntax. */
-/* just to be sure the sh is used */
-SHELL=/bin/sh
-
-#define THIS_IS_MAKEFILE
#define NOT_C_CODE
#include "config.h"
DEPFLAGS = -MMD -MF deps/$*.d
#endif
-/* Do not let the file name mktime.c get messed up. */
-#ifdef mktime
-#undef mktime
-#endif
-
-/* Use HAVE_X11 as an alias for X11 in this file
- to avoid problems with X11 as a subdirectory name
- in -I and other such options which pass through this file. */
-
-#ifdef X11
-#define HAVE_X11
-#undef X11
-#endif
-
-/* On some machines #define register is done in config;
- do not let it interfere with this file. */
-#undef register
-
-/* Some machines do not find the standard C libraries in the usual place. */
-#ifndef LIB_STANDARD
-#define LIB_STANDARD
-#endif
-
-/* Under GNUstep, putting libc on the link line causes problems. */
-#ifdef NS_IMPL_GNUSTEP
-#undef LIB_STANDARD
-#define LIB_STANDARD
-#endif
-
-/* Some s/SYSTEM.h files define this to request special libraries. */
-#ifndef LIBS_SYSTEM
-#define LIBS_SYSTEM
-#endif
-
-/* Some s/SYSTEM.h files define this to request special switches in ld. */
-#ifndef LD_SWITCH_SYSTEM
-#if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
-#define LD_SWITCH_SYSTEM -X
-#else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
-#define LD_SWITCH_SYSTEM
-#endif /* (defined (BSD_SYSTEM) && !defined (COFF)) */
-#endif /* LD_SWITCH_SYSTEM */
-
-/* This holds special options for linking temacs
- that should be used for linking anything else. */
-#ifndef LD_SWITCH_SYSTEM_TEMACS
-#define LD_SWITCH_SYSTEM_TEMACS
-#endif
-
-/* These macros are for switches specifically related to X Windows. */
-#ifndef LD_SWITCH_X_SITE
-#define LD_SWITCH_X_SITE
-#endif
-
-STARTFILES = START_FILES
-
-
-#ifdef NS_IMPL_GNUSTEP
-/* Pull in stuff from GNUstep-make. */
-FOUNDATION_LIB=gnu
-GUI_LIB=gnu
-include @GNUSTEP_MAKEFILES@/Additional/base.make
-include @GNUSTEP_MAKEFILES@/Additional/gui.make
-shared=no
-#endif
+/* If NS_IMPL_GNUSTEP, some definitions and includes are expanded here. */
+@NS_IMPL_GNUSTEP_INC@
/* 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
- Emacs is dumped for the first time, and never changed again. */
+ Emacs is dumped for the first time, and never changed again. */
/* -Demacs is needed to make some files produce the correct version
for use in Emacs.
the information in ``config.h''. */
/* C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
- since it may have -I options that should override those two. */
-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} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@ ${DEPFLAGS}
-ALL_OBJC_CFLAGS=$(ALL_CFLAGS) @GNU_OBJC_CFLAGS@
+ since it may have -I options that should override those. */
+/* 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} ${DBUS_CFLAGS} ${GCONF_CFLAGS} ${CFLAGS} ${FREETYPE_CFLAGS} ${FONTCONFIG_CFLAGS} ${LIBOTF_CFLAGS} ${M17N_FLT_CFLAGS} ${DEPFLAGS}
+ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
.SUFFIXES: .m
.c.o:
$(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
#ifdef HAVE_X_WINDOWS
-/* This test needs to say in cpp for the time being, since s/ms-w32.h and
- s/msdos.h define HAVE_MENUS, possibly overriding configure. */
-#ifdef HAVE_MENUS
-OLDXMENU=@OLDXMENU@
-LIBXMENU=@LIBXMENU@
-#else /* not HAVE_MENUS */
-OLDXMENU=
-LIBXMENU=
-#endif /* not HAVE_MENUS */
-
LIBXT=$(TOOLKIT_LIBW) $(LIBXT_OTHER)
-LIBX_BASE=$(LIBXMENU) LD_SWITCH_X_SITE
+LIBX_BASE=$(LIBXMENU) $(LD_SWITCH_X_SITE)
+#endif /* HAVE_X_WINDOWS */
+
+/* If HAVE_X11, $(LIBXT) $(LIBX_EXTRA), else empty. */
LIBX_OTHER=@LIBX_OTHER@
-#endif /* not HAVE_X_WINDOWS */
-#ifndef ORDINARY_LINK
-/* Fix linking if compiled with GCC. */
-#ifdef __GNUC__
+/* A macro which other sections of 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".
+ (The YMF prefix is a holdover from the old name "ymakefile".) */
+#define YMF_PASS_LDFLAGS(flags) flags
-#ifdef LINKER
-#define LINKER_WAS_SPECIFIED
-#endif
+#ifdef ORDINARY_LINK
+LD = $(CC)
+
+#else /* not ORDINARY_LINK */
+GNULIB_VAR = $(LIB_GCC)
+
+/* Fix linking if compiled with GCC. */
+#if defined (__GNUC__) && ! defined (LINKER)
/* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
places that are difficult to figure out at make time. Fortunately,
these same versions allow you to pass arbitrary flags on to the
Well, it is not quite perfect. The "-nostdlib" keeps GCC from
searching for libraries in its internal directories, so we have to
ask GCC explicitly where to find libgcc.a. */
-
-#ifndef LINKER
#define LINKER $(CC) -nostdlib
-#endif
-
-#ifndef LIB_GCC
-/* Ask GCC where to find libgcc.a. */
-#define LIB_GCC `$(CC) -print-libgcc-file-name`
-#endif /* not LIB_GCC */
-
-GNULIB_VAR = LIB_GCC
-
-#ifndef LINKER_WAS_SPECIFIED
-/* GCC passes any argument prefixed with -Xlinker directly to the
- linker. See prefix-args.c for an explanation of why we do not do
- this with the shell''s ``for'' construct.
- Note that some people do not have '.' in their paths, so we must
- use ./prefix-args. */
+/* GCC passes any argument prefixed with -Xlinker directly to the linker.
+ See prefix-args.c for an explanation of why we do not do this with the
+ shell''s ``for'' construct. Note that sane people do not have '.' in
+ their paths, so we must use ./prefix-args. */
+#undef YMF_PASS_LDFLAGS
#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
-#else
-#define YMF_PASS_LDFLAGS(flags) flags
-#endif
-
-#else /* not __GNUC__ */
-GNULIB_VAR =
-
-#endif /* not __GNUC__ */
-#endif /* not ORDINARY_LINK */
+#endif /* defined (__GNUC__) && ! defined (LINKER) */
-#ifdef ORDINARY_LINK
-LD = $(CC)
-#else
#ifdef LINKER
LD=LINKER
#else /* not LINKER */
LD=ld
#endif /* not LINKER */
-#endif /* not ORDINARY_LINK */
-/* Flags to pass to LD only for temacs. */
-/* Do not split this line with a backslash. That can cause trouble with
- some cpps. */
-TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS
-
-/* A macro which other sections of 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".
- (The YMF prefix is a holdover from the old name "ymakefile".)
- */
-#ifndef YMF_PASS_LDFLAGS
-#define YMF_PASS_LDFLAGS(flags) flags
-#endif
-
-#ifdef MSDOS
-#ifdef HAVE_X_WINDOWS
-MSDOS_OBJ = dosfns.o msdos.o xmenu.o
-#else
-MSDOS_OBJ = dosfns.o msdos.o w16select.o xmenu.o termcap.o
-#endif
-#endif
-
-#ifdef HAVE_NS
-ns_appdir=@ns_appdir@/
-ns_appbindir=@ns_appbindir@/
-ns_appresdir=@ns_appresdir@/
-ns_appsrc=@ns_appsrc@
-#endif /* HAVE_NS */
-
-#ifdef HAVE_WINDOW_SYSTEM
-#ifdef HAVE_X_WINDOWS
-FONT_DRIVERS=$(FONT_OBJ)
-#endif /* HAVE_X_WINDOWS */
-#endif /* HAVE_WINDOW_SYSTEM */
+#endif /* not ORDINARY_LINK */
-/* lastfile must follow all files
- whose initialized data areas should be dumped as pure by dump-emacs. */
+/* 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 \
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) \
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@ bytecode.o \
+ syntax.o $(UNEXEC_OBJ) bytecode.o \
process.o callproc.o \
region-cache.o sound.o atimer.o \
doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
- $(MSDOS_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_DRIVERS)
+ $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ)
/* Object files used on some machine or other.
- These go in the DOC file on all machines
- in case they are needed there. */
+ These go in the DOC file on all machines in case they are needed. */
SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
fontset.o dbusbind.o \
nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
- w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)
-
-
-#ifdef TERMINFO
-/* Used to be -ltermcap here. If your machine needs that,
- define LIBS_TERMCAP in the m/MACHINE.h file. */
-#ifndef LIBS_TERMCAP
-#define LIBS_TERMCAP -lcurses
-#endif /* LIBS_TERMCAP */
-termcapobj = terminfo.o
-#else /* ! defined (TERMINFO) */
-#ifndef LIBS_TERMCAP
-#define LIBS_TERMCAP
-#endif /* LIBS_TERMCAP */
-termcapobj = tparam.o
-#endif /* ! defined (TERMINFO) */
+ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ)
gmallocobj =
rallocobj =
vmlimitobj = vm-limit.o
#endif /* !SYSTEM_MALLOC */
-## Empty on Cygwin, lastfile.o elsewhere.
+/* Empty on Cygwin, lastfile.o elsewhere. */
PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@
-## lastfile.o vm-limit.o on Cygwin, $vmlimitobj elsewhere.
+/* lastfile.o vm-limit.o on Cygwin, $vmlimitobj elsewhere. */
POST_ALLOC_OBJ=@POST_ALLOC_OBJ@
/* List of object files that make-docfile should not be told about. */
-otherobj= $(termcapobj) $(PRE_ALLOC_OBJ) $(gmallocobj) $(rallocobj) \
+otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(gmallocobj) $(rallocobj) \
$(POST_ALLOC_OBJ) $(WIDGET_OBJ) $(LIBOBJS)
-#ifdef HAVE_MOUSE
-#define MOUSE_SUPPORT ${lispsource}mouse.elc \
- ${lispsource}select.elc ${lispsource}scroll-bar.elc
-#else
-#define MOUSE_SUPPORT $(GPM_MOUSE_SUPPORT)
-#endif
-
-#ifdef MSDOS
-#define MSDOS_SUPPORT ${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
-
-#else
-#define MSDOS_SUPPORT
-#endif
-
-#ifdef HAVE_WINDOW_SYSTEM
-#ifdef HAVE_X_WINDOWS
-#define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT) $(X_WINDOW_SUPPORT)
-#else
-#define WINDOW_SUPPORT $(BASE_WINDOW_SUPPORT)
-#endif
-#else
-#define WINDOW_SUPPORT
-#endif
-
-#ifdef WINDOWSNT
-#define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
- ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
- ${lispsource}w32-fns.elc ${lispsource}term/common-win.elc \
- ${lispsource}term/w32-win.elc
-#else
-#define WINNT_SUPPORT
-#endif
-
-#ifdef HAVE_WINDOW_SYSTEM
-#define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
-#else
-#define TOOLTIP_SUPPORT
-#endif
-
/* This is the platform-specific list of Lisp files loaded into the
dumped Emacs. It is arranged like this because it is easier to generate
it semi-mechanically from loadup.el this way.
${lispsource}files.elc \
${lispsource}format.elc \
${lispsource}facemenu.elc \
- MOUSE_SUPPORT \
+ ${MOUSE_SUPPORT} \
${lispsource}emacs-lisp/float-sup.elc \
${lispsource}frame.elc \
${lispsource}help.elc \
${lispsource}vc-hooks.elc \
${lispsource}ediff-hook.elc \
${lispsource}epa-hook.elc \
- TOOLTIP_SUPPORT \
- MSDOS_SUPPORT \
- WINNT_SUPPORT \
- WINDOW_SUPPORT \
+ ${TOOLTIP_SUPPORT} \
+ ${MSDOS_SUPPORT} \
+ ${WINDOW_SUPPORT} \
${NS_SUPPORT} \
${lispsource}widget.elc \
${lispsource}window.elc \
with GCC, we might need gnulib again after them. */
LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
- $(RSVG_LIBS) $(DBUS_LIBS) @LIBGPM@ @LIBRESOLV@ LIBS_SYSTEM LIBS_TERMCAP \
- $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
- @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
- $(GNULIB_VAR) @LIB_MATH@ LIB_STANDARD $(GNULIB_VAR)
+ $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
+ $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
+ $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
+ $(GNULIB_VAR) $(LIB_MATH) $(LIB_STANDARD) $(GNULIB_VAR)
all: emacs${EXEEXT} $(OTHER_FILES)
+/* Does anyone ever pay attention to the load-path-shadows output here? */
emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
#ifdef CANNOT_DUMP
rm -f emacs${EXEEXT}
buildobj.h: Makefile
echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
-temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT}
+/* FIXME LOCALCPP not defined or mentioned anywhere. */
+temacs${EXEEXT}: $(LOCALCPP) $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT}
#ifdef NS_IMPL_GNUSTEP
$(CC) -rdynamic YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \
- -L@GNUSTEP_SYSTEM_LIBRARIES@ -lgnustep-gui -lgnustep-base \
+ -L$(GNUSTEP_SYSTEM_LIBRARIES) -lgnustep-gui -lgnustep-base \
-lobjc $(CONFIG_SYSTEM_LIBS) -lpthread ) -o temacs \
${obj} ${otherobj} ${LIBES}
#else
$(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
- -o temacs ${STARTFILES} ${obj} ${otherobj} \
+ -o temacs ${START_FILES} ${obj} ${otherobj} \
${LIBES}
#endif
-/* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM
- often contains options that have to do with using Emacs''s crt0,
- which are only good with temacs. */
prefix-args${EXEEXT}: prefix-args.o $(config_h)
$(CC) $(LDFLAGS) prefix-args.o -o prefix-args
-#if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)
-
-/* 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. */
-stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
- touch stamp-oldxmenu
-/* Supply an ordering for parallel make. */
-../src/$(OLDXMENU): ${OLDXMENU}
-
-#ifdef USE_X_TOOLKIT
-$(OLDXMENU): really-lwlib
+/* Only (possibly) used if HAVE_X11 && !USE_GTK, but no harm in always
+ defining. */
really-lwlib:
cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
@true /* make -t should not create really-lwlib. */
.PHONY: really-lwlib
-#else /* not USE_X_TOOLKIT */
-$(OLDXMENU): really-oldXMenu
really-oldXMenu:
cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
@true /* make -t should not create really-oldXMenu. */
.PHONY: really-oldXMenu
-#endif /* not USE_X_TOOLKIT */
-#else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
+/* HAVE_X11 implies HAVE_X_WINDOWS and HAVE_MENUS. */
+#if defined (HAVE_X11) && ! defined (USE_GTK)
+/* 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. */
+stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
+ touch stamp-oldxmenu
+/* Supply an ordering for parallel make. */
+../src/$(OLDXMENU): ${OLDXMENU}
+
+$(OLDXMENU): $(OLDXMENU_TARGET)
+
+#else /* !HAVE_X11 || USE_GTK */
/* We don''t really need this, but satisfy the dependency. */
stamp-oldxmenu:
touch stamp-oldxmenu
-#endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */
+#endif /* HAVE_X11 && !USE_GTK */
../config.status:: epaths.in
@echo "The file epaths.h needs to be set up from epaths.in."
#ifndef AUTO_DEPEND
-## FIXME some of these dependencies are platform-specific.
-## Eg callproc.c only depends on w32.h for WINDOWSNT builds.
-## One way to fix this would be to replace w32.h (etc) by $(W32_H),
-## a variable set by configure. Doesn't seem worth the trouble.
+/* FIXME some of these dependencies are platform-specific.
+Eg callproc.c only depends on w32.h for WINDOWSNT builds.
+One way to fix this would be to replace w32.h (etc) by $(W32_H),
+a variable set by configure. Does not seem worth the trouble.
+Since the w32 build does not even use this file, you might ask
+why these dependencies are here at all...
-## nsgui.h: In fact, every .o file depends directly or indirectly on
-## dispextern.h and hence nsgui.h under NS. But the ones that actually
-## use stuff there are more limited.
+nsgui.h: In fact, every .o file depends directly or indirectly on
+dispextern.h and hence nsgui.h under NS. But the ones that actually
+use stuff there are more limited. */
atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
$(config_h)
bidi.o: bidi.c buffer.h character.h dispextern.h lisp.h $(config_h)
keymap.h blockinput.h atimer.h systime.h $(INTERVALS_H) \
xterm.h w32term.h nsterm.h nsgui.h lisp.h $(config_h)
xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
- coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
+ coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
charset.h lisp.h $(config_h) keyboard.h $(INTERVALS_H) region-cache.h \
xterm.h w32term.h nsterm.h nsgui.h msdos.h composite.h fontset.h ccl.h \
blockinput.h atimer.h systime.h keymap.h font.h
xsettings.o: xterm.h xsettings.h lisp.h frame.h termhooks.h $(config_h) \
dispextern.h keyboard.h systime.h coding.h composite.h blockinput.h atimer.h \
termopts.h
-/* The files of Lisp proper */
+/* The files of Lisp proper. */
alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h \
keyboard.h blockinput.h atimer.h systime.h character.h lisp.h $(config_h) \
$(INTERVALS_H) termhooks.h
charset.h lisp.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h \
systime.h frame.h blockinput.h atimer.h
-/* Text properties support */
+/* Text properties support. */
composite.o: composite.c buffer.h character.h coding.h font.h ccl.h \
frame.h termhooks.h $(INTERVALS_H) window.h lisp.h $(config_h)
intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \
#endif /* ! AUTO_DEPEND */
/* System-specific programs to be made.
- OTHER_FILES
- select which of these should be compiled. */
+ OTHER_FILES select which of these should be compiled. */
#ifdef HAVE_NS
${ns_appdir}: ${ns_appsrc}
rm -fr ${ns_appdir}
mkdir -p ${ns_appdir}
- ( cd ${ns_appsrc} ; tar cfh - . ) | ( cd ${ns_appdir} ; tar xf - )
- ( cd ${ns_appdir} ; for subdir in `find . -type d ! -name CVS -print` ; do \
- chmod a+rx $${subdir} ; \
- rm -rf $${subdir}/CVS ; \
- rm -f $${subdir}/.cvsignore ; done ; )
+ ( cd ${ns_appsrc} ; tar cfh - . ) | ( cd ${ns_appdir} ; umask 022; tar xf - )
${ns_appbindir}Emacs: emacs${EXEEXT}
mkdir -p ${ns_appbindir}
cp -f emacs${EXEEXT} ${ns_appbindir}Emacs
ns-app: ${ns_appdir} ${ns_appbindir}Emacs
-
#endif /* HAVE_NS */
mostlyclean:
cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe}
#ifdef AUTO_DEPEND
-ALLOBJS=$(STARTFILES) ${obj} ${otherobj} prefix-args.o
+ALLOBJS=$(START_FILES) ${obj} ${otherobj} prefix-args.o
-include $(ALLOBJS:%.o=deps/%.d)
#endif