# Makefile for GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
LDFLAGS=@LDFLAGS@
LN_S=@LN_S@
EXEEXT=@EXEEXT@
+version=@version@
# Substitute an assignment for the MAKE variable, because
# BSD doesn't have it as a default.
@SET_MAKE@
#define NOT_C_CODE
#include "config.h"
-/* We won't really call alloca;
- don't let the file name alloca.c get messed up. */
+/* We will not really call alloca;
+ do not let the file name alloca.c get messed up. */
#ifdef alloca
#undef alloca
#endif
-/* Don't let the file name mktime.c get messed up. */
+/* Do not let the file name mktime.c get messed up. */
#ifdef mktime
#undef mktime
#endif
#endif
/* On some machines #define register is done in config;
- don't let it interfere with this file. */
+ do not let it interfere with this file. */
#undef register
/* On some systems we may not be able to use the system make command. */
#endif
#endif
-/* Some machines don't find the standard C libraries in the usual place. */
+/* Some machines do not find the standard C libraries in the usual place. */
#ifndef ORDINARY_LINK
#ifndef LIB_STANDARD
#define LIB_STANDARD -lc
#endif /* not ORDINARY_LINK */
-/* cc switches needed to make `asm' keyword work.
+/* cc switches needed to make ``asm'' keyword work.
Nothing special needed on most machines. */
#ifndef C_SWITCH_ASM
#define C_SWITCH_ASM
for use in Emacs.
-DHAVE_CONFIG_H is needed for some other files to take advantage of
- the information in `config.h'. */
+ 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. */
-ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS}
+ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(TOOLKIT_DEFINES) $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@
.c.o:
$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
#else /* not HAVE_MENUS */
-/* Otherwise, don't worry about the menu library at all. */
+/* Otherwise, do not worry about the menu library at all. */
LIBXMENU=
#endif /* not HAVE_MENUS */
#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__.) */
+ (Do not forget you need different definitions with and without __GNUC__.) */
LIBXT= STATIC_OPTION $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext DYNAMIC_OPTION
#else /* not LIBXT_STATIC */
LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext
#endif
#endif /* not USE_X_TOOLKIT */
+#if HAVE_XFT
+#undef LIB_X11_LIB
+#define LIB_X11_LIB @XFT_LIBS@
+#endif /* HAVE_XFT */
+
+#if HAVE_XFT
+#undef LIB_X11_LIB /* XFT_LIBS includes -lX11 */
+#define LIB_X11_LIB
+XFT_LIBS=@XFT_LIBS@
+#endif /* HAVE_XFT */
+
#if HAVE_XPM
#ifndef LIBXPM
#define LIBXPM -lXpm
/* LD_SWITCH_X_DEFAULT comes after everything else that specifies
options for where to find X libraries, but before those libraries. */
X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
-LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
+LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM $(XFT_LIBS)
#else /* not HAVE_X11 */
LIBX= $(LIBXMENU) LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM
#endif /* not HAVE_X11 */
#endif /* not HAVE_X_WINDOWS */
LIBSOUND= @LIBSOUND@
+CFLAGS_SOUND= @CFLAGS_SOUND@
#ifndef ORDINARY_LINK
/* Fix linking if compiled with GCC. */
/* 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
- linker, so there's no reason not to use it as a linker.
+ linker, so there is no reason not to use it as a linker.
- Well, it's not quite perfect. The `-nostdlib' keeps GCC from
+ 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_WAS_SPECIFIED
/* GCC passes any argument prefixed with -Xlinker directly to the
- linker. See prefix-args.c for an explanation of why we don't do
- this with the shell's `for' construct.
- Note that some people don't have '.' in their paths, so we must
+ 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. */
#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
#else
#endif /* not ORDINARY_LINK */
/* Flags to pass to LD only for temacs. */
-/* Don't split this line with a backslash. That can cause trouble with
+/* Do not split this line with a backslash. That can cause trouble with
some cpps. */
TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
/* 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 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".)
*/
emacsappsrc = ${srcdir}/../mac/Emacs.app/
#endif
+#ifdef HAVE_WINDOW_SYSTEM
+#ifdef USE_FONT_BACKEND
+FONTSRC = font.h
+#ifdef HAVE_X_WINDOWS
+#if defined (HAVE_XFT)
+FONTOBJ = font.o xfont.o ftfont.o xftfont.o ftxfont.o
+#elif defined (HAVE_FREETYPE)
+FONTOBJ = font.o xfont.o ftfont.o ftxfont.o
+#else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
+FONTOBJ = font.o xfont.o
+#endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
+#else /* ! HAVE_X_WINDOWS */
+FONTOBJ = font.o
+#endif /* ! HAVE_X_WINDOWS */
+#endif /* USE_FONT_BACKEND */
+#endif /* HAVE_WINDOW_SYSTEM */
+
/* 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 $(XMENU_OBJ) window.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) $(MAC_OBJ) $(CYGWIN_OBJ)
+ $(MSDOS_OBJ) $(MAC_OBJ) $(CYGWIN_OBJ) $(FONTOBJ)
/* Object files used on some machine or other.
These go in the DOC file on all machines
xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o \
w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
- w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
+ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONTOBJ)
#ifdef TERMINFO
#define MSDOS_SUPPORT
#endif
+#ifdef HAVE_WINDOW_SYSTEM
+#ifdef HAVE_X_WINDOWS
+#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
+ ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
+ ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
+#else
+#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
+ ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
+ ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
+#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 \
#define TOOLTIP_SUPPORT
#endif
-/* List of Lisp files loaded into the dumped Emacs. It's arranged
- like this because it's easier to generate it semi-mechanically from
+/* 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.
Note that this list should not include lisp files which might not
${lispsource}help.elc \
${lispsource}indent.elc \
${lispsource}isearch.elc \
+ ${lispsource}rfn-eshadow.elc \
${lispsource}loadup.el \
${lispsource}loaddefs.el \
${lispsource}bindings.elc \
${lispsource}subr.elc \
${lispsource}term/tty-colors.elc \
${lispsource}font-core.elc \
+ ${lispsource}emacs-lisp/syntax.elc \
+ ${lispsource}font-lock.elc \
+ ${lispsource}jit-lock.elc \
${lispsource}textmodes/fill.elc \
${lispsource}textmodes/page.elc \
${lispsource}textmodes/paragraphs.elc \
VMS_SUPPORT \
MSDOS_SUPPORT \
WINNT_SUPPORT \
+ WINDOW_SUPPORT \
${lispsource}widget.elc \
${lispsource}window.elc \
${lispsource}version.el
../lisp/help.elc \
../lisp/indent.elc \
../lisp/isearch.elc \
+ ../lisp/rfn-eshadow.elc \
../lisp/loadup.el \
../lisp/loaddefs.el \
../lisp/bindings.elc \
../lisp/subr.elc \
../lisp/term/tty-colors.elc \
../lisp/font-core.elc \
+ ../lisp/emacs-lisp/syntax.elc \
+ ../lisp/font-lock.elc \
+ ../lisp/jit-lock.elc \
../lisp/textmodes/fill.elc \
../lisp/textmodes/page.elc \
../lisp/textmodes/paragraphs.elc \
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. */
+ for the sake of systems which can''t handle large ones. */
SOME_MACHINE_LISP = ${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/w32-fns.elc ${dotdot}/lisp/dos-w32.elc \
${dotdot}/lisp/disp-table.elc ${dotdot}/lisp/dos-vars.elc \
- ${dotdot}/lisp/tooltip.elc \
+ ${dotdot}/lisp/tooltip.elc ${dotdot}/lisp/image.elc \
+ ${dotdot}/lisp/fringe.elc ${dotdot}/lisp/dnd.elc \
+ ${dotdot}/lisp/mwheel.elc ${dotdot}/lisp/tool-bar.elc \
+ ${dotdot}/lisp/x-dnd.elc \
${dotdot}/lisp/international/ccl.elc \
- ${dotdot}/lisp/international/codepage.elc
+ ${dotdot}/lisp/international/codepage.elc \
+ ${dotdot}/lisp/international/fontset.elc
/* Construct full set of libraries to be linked.
Note that SunOS needs -lm to come before -lc; otherwise, you get
LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) \
LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
LIBS_DEBUG $(GETLOADAVG_LIBS) $(GNULIB_VAR) LIB_MATH LIB_STANDARD \
- $(GNULIB_VAR)
+ $(GNULIB_VAR) @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@
/* Enable recompilation of certain other files depending on system type. */
-o temacs ${STARTFILES} ${obj} ${otherobj} \
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,
+/* We do not 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${EXEEXT}: prefix-args.c $(config_h)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
-/* Don't lose if this was not defined. */
+/* Do not lose if this was not defined. */
#ifndef OLDXMENU_OPTIONS
#define OLDXMENU_OPTIONS
#endif
#endif /* not USE_X_TOOLKIT */
#else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
-/* We don\'t really need this, but satisfy the dependency. */
+/* We don''t really need this, but satisfy the dependency. */
stamp-oldxmenu:
touch stamp-oldxmenu
#endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! HAVE_GTK) */
ecrt0.o: ecrt0.c $(config_h)
CRT0_COMPILE ${srcdir}/ecrt0.c
dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h \
- coding.h regex.h systime.h
+ coding.h regex.h systime.h blockinput.h
dispnew.o: dispnew.c systty.h systime.h commands.h process.h frame.h \
window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
disptab.h indent.h intervals.h \
dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
msdos.h dosfns.h dispextern.h charset.h coding.h $(config_h)
editfns.o: editfns.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
- coding.h dispextern.h frame.h $(config_h)
+ coding.h dispextern.h frame.h blockinput.h $(config_h)
emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
termhooks.h buffer.h atimer.h systime.h $(INTERVAL_SRC) $(config_h) \
window.h dispextern.h keyboard.h keymap.h
fileio.o: fileio.c window.h buffer.h systime.h $(INTERVAL_SRC) character.h \
- coding.h msdos.h dispextern.h $(config_h)
+ coding.h msdos.h dispextern.h blockinput.h $(config_h)
filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h \
epaths.h $(config_h)
filemode.o: filemode.c $(config_h)
blockinput.h atimer.h systime.h buffer.h character.h fontset.h \
msdos.h dosfns.h dispextern.h w32term.h macterm.h $(config_h)
fringe.o: fringe.c dispextern.h frame.h window.h buffer.h $(config_h)
+font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
+ font.h $(config_h)
+ftfont.o: dispextern.h frame.h character.h charset.h font.h $(config_h)
fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h \
- charset.h frame.h keyboard.h $(config_h)
+ charset.h frame.h keyboard.h $(FONTSRC) $(config_h)
getloadavg.o: getloadavg.c $(config_h)
image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
systty.h systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
- atimer.h systime.h puresize.h character.h intervals.h $(config_h)
+ atimer.h systime.h puresize.h character.h intervals.h keymap.h window.h \
+ $(config_h)
lastfile.o: lastfile.c $(config_h)
macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
dispextern.h $(config_h)
termcap.o: termcap.c $(config_h)
terminfo.o: terminfo.c $(config_h)
tparam.o: tparam.c $(config_h)
-undo.o: undo.c buffer.h commands.h $(config_h)
+undo.o: undo.c buffer.h commands.h window.h $(config_h)
/* This hack is to discard any space that cpp might put at the beginning
of UNEXEC when substituting it in. */
UNEXEC_ALIAS=UNEXEC
coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h \
charset.h keyboard.h $(INTERVAL_SRC) region-cache.h xterm.h w32term.h \
macterm.h $(config_h) msdos.h composite.h fontset.h blockinput.h atimer.h \
- systime.h keymap.h
+ systime.h keymap.h $(FONTSRC)
xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h \
- systime.h keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) \
- $(config_h)
+ systime.h keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) \
+ $(FONTSRC) $(config_h)
xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
$(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
- character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h
+ character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h \
+ fontset.h $(FONTSRC)
+xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
+ font.h $(config_h)
+xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
+ font.h $(config_h)
+ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
+ font.h $(config_h)
xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
systime.h gtkutil.h msdos.h coding.h $(config_h)
xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
keyboard.h gnu.h character.h charset.h ccl.h fontset.h composite.h \
- coding.h process.h gtkutil.h $(config_h)
+ coding.h process.h gtkutil.h $(FONTSRC) $(config_h)
xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
buffer.h atimer.h systime.h $(config_h)
xrdb.o: xrdb.c $(config_h) epaths.h
frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h termopts.h \
termchar.h gnu.h disptab.h buffer.h window.h keyboard.h $(INTERVAL_SRC) \
process.h coding.h $(config_h)
-macselect.o: blockinput.h macterm.h macgui.h frame.h $(config_h)
+macselect.o: blockinput.h macterm.h macgui.h frame.h keymap.h $(config_h)
${emacsapp}Contents/Resources/English.lproj:
mkdir -p $@
${libsrc}emacstool${EXEEXT}: ${libsrc}emacstool.c
cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool${EXEEXT}
bootstrapclean:
- rm -f bootstrap-emacs${EXEEXT}
+ rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
mostlyclean:
rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
rm -f ../etc/DOC
- rm -f bootstrap-emacs${EXEEXT}
+ rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
rm -f buildobj.lst
clean: mostlyclean
rm -f emacs-*${EXEEXT} emacs${EXEEXT}