Do not preprocess src/Makefile.in.

* configure.in: Do not preprocess src/Makefile.in.
(cpp_undefs, CPP_NEED_TRADITIONAL): Remove.
(AC_EGREP_CPP): Test no longer needed.
* configure: Regenerate.

* config.bat: Do not preprocess src/Makefile.in.

* make-dist: No more Makefile.c files.

* INSTALL, src/README: Makefiles are not preprocessed.

* src/Makefile.in, src/autodeps.mk, src/deps.mk, src/ns.mk:
Convert comments to Makefile format.

* lib-src/Makefile.in (distclean): No more Makefile.c.
* src/Makefile.in (bootstrap-clean): No more Makefile.c.

* admin/notes/cpp: Remove file.

* admin/quick-install-emacs (AVOID): No more Makefile.c files.

* etc/PROBLEMS, etc/MACHINES: Remove details of cpp problems which can
no longer occur.
This commit is contained in:
Glenn Morris 2010-05-26 22:43:27 -07:00
parent 11e4d8c0d3
commit 81ac4f3536
19 changed files with 248 additions and 407 deletions

View file

@ -1,3 +1,13 @@
2010-05-27 Glenn Morris <rgm@gnu.org>
* config.bat: Do not preprocess src/Makefile.in.
* configure.in: Do not preprocess src/Makefile.in.
(cpp_undefs, CPP_NEED_TRADITIONAL): Remove.
(AC_EGREP_CPP): Test no longer needed.
* make-dist: No more Makefile.c files.
2010-05-26 Glenn Morris <rgm@gnu.org>
* configure.in (YMF_PASS_LDFLAGS): Remove.

26
INSTALL
View file

@ -1,6 +1,7 @@
GNU Emacs Installation Guide
Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
See the end of the file for license conditions.
@ -686,8 +687,8 @@ when running make in the subdirectories.
CONFIGURATION BY HAND
Instead of running the `configure' program, you have to perform the
following steps.
This should not be necessary and is not recommended. Instead of
running the `configure' program, you have to perform the following steps.
1) Copy `./src/config.in' to `./src/config.h'.
@ -701,22 +702,15 @@ the appropriate system and architecture description files.
2) Edit `./src/config.h' to set the right options for your system. If
you need to override any of the definitions in the s/*.h and m/*.h
files for your system and machine, do so by editing config.h, not by
changing the s/*.h and m/*.h files. Occasionally you may need to
redefine parameters used in `./lib-src/movemail.c'.
changing the s/*.h and m/*.h files.
3) Create src/Makefile and lib-src/Makefile from the corresponding
`Makefile.in' files. First copy `Makefile.in' to `Makefile.c',
then edit in appropriate substitutions for the @...@ constructs,
and then copy the shell commands near the end of `configure'
that run cpp to construct `Makefile'.
4) Create `Makefile' files in various other directories
from the corresponding `Makefile.in' files. This isn't so hard,
just a matter of substitution.
3) Create `Makefile' files in various directories from the
corresponding `Makefile.in' files. This isn't so hard, just a matter
of editing in appropriate substitutions for the @...@ constructs.
The `configure' script is built from `configure.in' by the `autoconf'
program. You need version 2.51 or newer of `autoconf' to rebuild
`configure'.
program. You need at least the version of autoconf specified in the
AC_PREREQ(...) command to rebuild `configure' from `configure.in'.
BUILDING GNU EMACS BY HAND

View file

@ -1,3 +1,9 @@
2010-05-27 Glenn Morris <rgm@gnu.org>
* quick-install-emacs (AVOID): No more Makefile.c files.
* notes/cpp: Remove file.
2010-05-15 Ken Raeburn <raeburn@raeburn.org>
* admin.el (set-version, set-copyright): Update emacs.c instead of

View file

@ -1,14 +0,0 @@
ttn 2003-04-09
we use a C preprocesor not only in the normal compilation of .c files
into object files, but also for creating src/Makefile.
(delimited by comment "start of cpp stuff"). some cpp implementations
insert whitespace in between tokens.
during makefile creation, the preprocessor symbol NOT_C_CODE is defined.
this should not be defined for normal .c file compilation.
there has been discussion on eliminating this use of cpp and relying
solely on autoconf processing. rms says to leave it be.
;;; arch-tag: d654291e-9fc8-41b7-ab0c-d3cde842a8e0

View file

@ -1,8 +1,8 @@
#!/bin/sh
### quick-install-emacs --- do a halfway-decent job of installing emacs quickly
## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
## Free Software Foundation, Inc.
## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
## 2010 Free Software Foundation, Inc.
## Author: Miles Bader <miles@gnu.org>
@ -31,7 +31,7 @@
PUBLIC_LIBSRC_BINARIES='b2m emacsclient etags ctags ebrowse'
PUBLIC_LIBSRC_SCRIPTS='grep-changelog rcs-checkin'
AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ Makefile.c$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib"
AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib"
# Prune old binaries lying around in the source tree
PRUNE=no

View file

@ -190,11 +190,10 @@ rem On my system dir.h gets in the way. It's a VMS file so who cares.
if exist dir.h ren dir.h vmsdir.h
rem Create "makefile" from "makefile.in".
rm -f Makefile junk.c junk2.c
sed -e "1,/== start of cpp stuff ==/s@^##*[ ].*$@@" <Makefile.in >junk.c
copy junk.c + deps.mk junk2.c
gcc -E -traditional junk2.c | sed -f ../msdos/sed1v2.inp >Makefile
rm -f junk.c junk2.c
rm -f Makefile makefile.tmp
copy Makefile.in + deps.mk makefile.tmp
sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile
rm -f makefile.tmp
if "%X11%" == "" goto src5
mv Makefile makefile.tmp

75
configure vendored
View file

@ -26694,15 +26694,15 @@ fi
test "x$LINKER" = "x" && LINKER=ld
## FIXME? What setting of YMF_PASS_LDFLAGS should this have?
## FIXME? What setting of EDIT_LDFLAGS should this have?
test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic"
## FIXME? The logic here is not precisely the same as that above
## setting YMF_PASS_LDFLAGS. There is no check here for a pre-defined
## LINKER. Should we only be setting LIB_GCC if LD ~ -nostdlib?
## FIXME? The logic here is not precisely the same as that above.
## There is no check here for a pre-defined LINKER.
## Should we only be setting LIB_GCC if LD ~ -nostdlib?
LIB_GCC=
if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
@ -26848,42 +26848,7 @@ test "${prefix}" != NONE &&
test "${exec_prefix}" != NONE &&
exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
# Now get this: Some word that is part of the ${srcdir} directory name
# or the ${configuration} value might, just might, happen to be an
# identifier like `sun4' or `i386' or something, and be predefined by
# the C preprocessor to some helpful value like 1, or maybe the empty
# string. Needless to say consequent macro substitutions are less
# than conducive to the makefile finding the correct directory.
# src/Makefile.in used to treat X11 as equivalent to HAVE_X11.
# But nothing in Emacs defines X11, and everywhere else uses HAVE_X11,
# so that cannot have been doing anything.
cpp_undefs="`echo $srcdir $configuration $canonical unix mktime register X11 |
sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
-e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'`"
## Check if the C preprocessor will convert `..' to `. .'. If so, set
## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
## from Makefile.c can correctly provide the arg `-traditional' to the
## C preprocessor.
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
yes..yes
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "yes..yes" >/dev/null 2>&1; then
CPP_NEED_TRADITIONAL=no
else
CPP_NEED_TRADITIONAL=yes
fi
rm -f conftest*
ac_config_files="$ac_config_files Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile.c:src/Makefile.in lwlib/Makefile lisp/Makefile leim/Makefile"
ac_config_files="$ac_config_files Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile"
ac_config_commands="$ac_config_commands default"
@ -27470,7 +27435,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"
GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"
_ACEOF
@ -27488,7 +27453,7 @@ do
"doc/misc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/misc/Makefile" ;;
"doc/lispintro/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispintro/Makefile" ;;
"doc/lispref/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispref/Makefile" ;;
"src/Makefile.c") CONFIG_FILES="$CONFIG_FILES src/Makefile.c:src/Makefile.in" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"lwlib/Makefile") CONFIG_FILES="$CONFIG_FILES lwlib/Makefile" ;;
"lisp/Makefile") CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;;
"leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;;
@ -28154,35 +28119,9 @@ for dir in etc lisp ; do
test -d ${dir} || mkdir ${dir}
done
# Build src/Makefile from ${srcdir}/src/Makefile.c
# This must be done after src/config.h is built, since we rely on that file.
echo creating src/epaths.h
${MAKE-make} epaths-force
# As of 2000-11-19, newest development versions of GNU cpp preprocess
# `..' to `. .' unless invoked with -traditional
if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
CPPFLAGS="$CPPFLAGS -traditional"
fi
echo creating src/Makefile
( cd src
rm -f junk.c junk1.c junk2.c
sed -e '/start of cpp stuff/q' \
< Makefile.c > junk1.c
sed -e '1,/start of cpp stuff/d'\
-e 's,/\*\*/#\(.*\)$,/* \1 */,' \
< Makefile.c > junk.c
$CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new
rm -f junk.c junk1.c junk2.c
chmod 444 Makefile.new
mv -f Makefile.new Makefile
)
if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
echo creating src/.gdbinit
echo source $srcdir/src/.gdbinit > src/.gdbinit

View file

@ -3755,32 +3755,9 @@ fi
test "${exec_prefix}" != NONE &&
exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
# Now get this: Some word that is part of the ${srcdir} directory name
# or the ${configuration} value might, just might, happen to be an
# identifier like `sun4' or `i386' or something, and be predefined by
# the C preprocessor to some helpful value like 1, or maybe the empty
# string. Needless to say consequent macro substitutions are less
# than conducive to the makefile finding the correct directory.
# src/Makefile.in used to treat X11 as equivalent to HAVE_X11.
# But nothing in Emacs defines X11, and everywhere else uses HAVE_X11,
# so that cannot have been doing anything.
[cpp_undefs="`echo $srcdir $configuration $canonical unix mktime register X11 |
sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
-e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'`"]
## Check if the C preprocessor will convert `..' to `. .'. If so, set
## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
## from Makefile.c can correctly provide the arg `-traditional' to the
## C preprocessor.
AC_EGREP_CPP(yes..yes,
[yes..yes],
CPP_NEED_TRADITIONAL=no,
CPP_NEED_TRADITIONAL=yes)
AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \
doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
doc/lispref/Makefile src/Makefile \
lwlib/Makefile lisp/Makefile leim/Makefile, [
### Make the necessary directories, if they don't exist.
@ -3788,41 +3765,15 @@ for dir in etc lisp ; do
test -d ${dir} || mkdir ${dir}
done
# Build src/Makefile from ${srcdir}/src/Makefile.c
# This must be done after src/config.h is built, since we rely on that file.
echo creating src/epaths.h
${MAKE-make} epaths-force
# As of 2000-11-19, newest development versions of GNU cpp preprocess
# `..' to `. .' unless invoked with -traditional
if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
CPPFLAGS="$CPPFLAGS -traditional"
fi
echo creating src/Makefile
( cd src
rm -f junk.c junk1.c junk2.c
sed -e '/start of cpp stuff/q' \
< Makefile.c > junk1.c
sed -e '1,/start of cpp stuff/d'\
-e 's,/\*\*/#\(.*\)$,/* \1 */,' \
< Makefile.c > junk.c
$CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
sed -e 's/^ / /' -e '/^#/d' -e '/^[ ]*$/d' > junk2.c
cat junk1.c junk2.c > Makefile.new
rm -f junk.c junk1.c junk2.c
chmod 444 Makefile.new
mv -f Makefile.new Makefile
)
if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
echo creating src/.gdbinit
echo source $srcdir/src/.gdbinit > src/.gdbinit
fi
], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"])
], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"])
m4_if(dnl Do not change this comment
arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e

View file

@ -198,8 +198,7 @@ IBM RS/6000 (rs6000-ibm-aix*)
IBM System/390 running GNU/Linux (s390-*-linux-gnu)
As of Emacs 21.2, a 31-bit only version is supported on this
system.
As of Emacs 21.2, a 31-bit only version is supported on this system.
Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
i386-*-sol2.4, i386-intsys-sysv,
@ -247,11 +246,6 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
do `gmake install MAKE=gmake'. However, more recently it is
reported that using the system Make on NetBSD 1.3.1 works ok.
If you are using System V release 4.2, you may find that `cc -E'
puts spurious spaces in `src/xmakefile'. If that happens,
specify CPP=/lib/cpp as an option when you run make.
There is no problem if you compile with GCC.
Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries
requires the experimental "net 2" network patches (no relation to
Berkeley Net 2). There is a report that (some version of) Linux
@ -491,10 +485,6 @@ System V rel 4.0.3 and 4.0.4 (usg5.4)
If you get compilation errors about wrong number of
arguments to getpgrp, define GETPGRP_NO_ARG.
The standard C preprocessor may generate xmakefile incorrectly. However,
/lib/cpp will work, so use `make CPP=/lib/cpp'. Standard cpp
seems to work OK under Dell 2.2.
Some versions 3 and earlier of V.4, on the Intel 386 and 860, had
problems in the X11 libraries. These prevent Emacs from working
with X. You can use Emacs with X provided your copy of X is based

View file

@ -2373,18 +2373,6 @@ The solution is to tell configure to use the correct C preprocessor
for your C compiler (CPP="/opt/SUNWspro/bin/cc -E" in the above
example).
*** `configure' fails with ``"junk.c", line 660: invalid input token: 8.elc''
The final stage of the Emacs configure process uses the C preprocessor
to generate the Makefiles. Errors of this form can occur if the C
preprocessor inserts extra whitespace into its output. The solution
is to find the switches that stop your preprocessor from inserting extra
whitespace, add them to CPPFLAGS, and re-run configure. For example,
this error can occur on Solaris 10 when using the Sun Studio compiler
``Sun C 5.8'' with its preprocessor CPP="/opt/SUNWspro/bin/cc -E".
The relevant switch in this case is "-Xs" (``compile assuming
(pre-ANSI) K & R C style code'').
** Compilation
*** Building Emacs over NFS fails with ``Text file busy''.
@ -2427,32 +2415,6 @@ you are working on the host called `marvin'. Then an entry in the
The solution is to remove this line from `etc/fstab'.
*** Building Emacs with GCC 2.9x fails in the `src' directory.
This may happen if you use a development version of GNU `cpp' from one
of the GCC snapshots between Oct 2000 and Feb 2001, or from a released
version of GCC newer than 2.95.2 which was prepared around those
dates; similar problems were reported with some snapshots of GCC 3.1
around Sep 30 2001. The preprocessor in those versions is
incompatible with a traditional Unix cpp (e.g., it expands ".." into
". .", which breaks relative file names that reference the parent
directory; or inserts TAB characters before lines that set Make
variables).
The solution is to make sure the preprocessor is run with the
`-traditional' option. The `configure' script does that automatically
when it detects the known problems in your cpp, but you might hit some
unknown ones. To force the `configure' script to use `-traditional',
run the script like this:
CPP='gcc -E -traditional' ./configure ...
(replace the ellipsis "..." with any additional arguments you pass to
the script).
Note that this problem does not pertain to the MS-Windows port of
Emacs, since it doesn't use the preprocessor to generate Makefiles.
*** src/Makefile and lib-src/Makefile are truncated--most of the file missing.
*** Compiling wakeup, in lib-src, says it can't make wakeup.c.

View file

@ -1,3 +1,7 @@
2010-05-27 Glenn Morris <rgm@gnu.org>
* Makefile.in (distclean): No more Makefile.c.
2010-05-22 Jan Djärv <jan.h.d@swipnet.se>
* Makefile.in (STAMP_INST_SCRIPTS, STAMP_SCRIPS): New (Bug #6246).

View file

@ -283,7 +283,7 @@ clean: mostlyclean
distclean: clean
-rm -f TAGS
-rm -f Makefile Makefile.c blessmail
-rm -f Makefile blessmail
maintainer-clean: distclean
true

View file

@ -461,7 +461,7 @@ echo "Making links to \`src'"
ln makefile.w32-in ../${tempdir}/src
ln .gdbinit .dbxinit ../${tempdir}/src
cd ../${tempdir}/src
rm -f config.h epaths.h Makefile Makefile.c
rm -f config.h epaths.h Makefile
rm -f =* TAGS)
echo "Making links to \`src/bitmaps'"
@ -499,7 +499,6 @@ echo "Making links to \`lib-src'"
fi
done
cd ../${tempdir}/lib-src
rm -f Makefile.c
rm -f getopt.h
rm -f =* TAGS)

View file

@ -1,3 +1,10 @@
2010-05-27 Glenn Morris <rgm@gnu.org>
* Makefile.in, autodeps.mk, deps.mk, ns.mk:
Convert comments to Makefile format.
* Makefile.in (bootstrap-clean): No more Makefile.c.
2010-05-26 Glenn Morris <rgm@gnu.org>
* Makefile.in (YMF_PASS_LDFLAGS): Remove.

View file

@ -23,13 +23,6 @@
# script may need modifying in sync with changes made here. Try to
# avoid shell-ism because the DOS build has to use the DOS shell.
# Don't try to replace the cpp processing using autoconf facilities,
# says rms.
# Replacing a particular part of the conditionals to work via autoconf
# is OK.
# 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.
@ -47,7 +40,7 @@ version = @version@
# BSD doesn't have it as a default.
@SET_MAKE@
# Don't use LIBS. configure puts stuff in it that either shouldn't be
# linked with Emacs or is duplicated by the cpp stuff below.
# linked with Emacs or is duplicated by the other stuff below.
# LIBS = @LIBS@
LIBOBJS = @LIBOBJS@
@ -298,24 +291,26 @@ DEPFLAGS=@DEPFLAGS@
## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'.
MKDEPDIR=@MKDEPDIR@
# ========================== start of cpp stuff =======================
/* From here on, comments must be done in C syntax. */
/* 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. */
/* -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_SYSTEM
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}
## 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.
##
## -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_SYSTEM
## since it may have -I options that should override those.
##
## FIXME? 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
@ -327,8 +322,8 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
$(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
/* 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) \
@ -344,8 +339,8 @@ obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
$(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. */
## Object files used on some machine or other.
## 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 \
@ -353,39 +348,38 @@ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_OBJ)
/* gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty. */
## gmalloc.o if !SYSTEM_MALLOC && !DOUG_LEA_MALLOC, else empty.
GMALLOC_OBJ=@GMALLOC_OBJ@
/* vm-limit.o if !SYSTEM_MALLOC, else empty. */
## vm-limit.o if !SYSTEM_MALLOC, else empty.
VMLIMIT_OBJ=@VMLIMIT_OBJ@
/* ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. */
## ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty.
RALLOC_OBJ=@RALLOC_OBJ@
/* Empty on Cygwin, lastfile.o elsewhere. */
## Empty on Cygwin, lastfile.o elsewhere.
PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@
/* lastfile.o on Cygwin, empty elsewhere. */
## lastfile.o on Cygwin, empty elsewhere.
POST_ALLOC_OBJ=@POST_ALLOC_OBJ@
/* List of object files that make-docfile should not be told about. */
## List of object files that make-docfile should not be told about.
otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \
$(POST_ALLOC_OBJ) $(VMLIMIT_OBJ) $(WIDGET_OBJ) $(LIBOBJS)
/* 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.
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.
Files which are loaded unconditionally (i.e., on all platforms) should
also be in shortlisp. Files which are loaded conditionally (i.e., only
on some platforms) should instead be in SOME_MACHINE_LISP. */
/* Place loaddefs.el first, so it gets generated first, since it is on
the critical path (relevant in parallel compilations). */
## 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.
##
## 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.
##
## Files which are loaded unconditionally (i.e., on all platforms) should
## also be in shortlisp. Files which are loaded conditionally (i.e., only
## on some platforms) should instead be in SOME_MACHINE_LISP.
##
## Place loaddefs.el first, so it gets generated first, since it is on
## the critical path (relevant in parallel compilations).
lisp= \
${lispsource}loaddefs.el \
${lispsource}abbrev.elc \
@ -475,11 +469,11 @@ lisp= \
${lispsource}window.elc \
${lispsource}version.el
/* List of relative names for those files from $lisp that are loaded
unconditionally (i.e. on all platforms). Files from $lisp that
are only loaded on some platforms should instead be placed in
SOME_MACHINE_LISP. The only reason this variable exists is to prevent
the make-docfile command-line getting too long for some systems. */
## List of relative names for those files from $lisp that are loaded
## unconditionally (i.e. on all platforms). Files from $lisp that
## are only loaded on some platforms should instead be placed in
## SOME_MACHINE_LISP. The only reason this variable exists is to prevent
## the make-docfile command-line getting too long for some systems.
shortlisp= \
../lisp/loaddefs.el \
../lisp/abbrev.elc \
@ -563,8 +557,8 @@ shortlisp= \
../lisp/window.elc \
../lisp/version.el
/* Like $shortlisp, but includes only those files from $lisp that are loaded
conditionally (i.e., only on some platforms). */
## Like $shortlisp, but includes only those files from $lisp that are loaded
## conditionally (i.e., only on some platforms).
SOME_MACHINE_LISP = ../lisp/mouse.elc \
../lisp/select.elc ../lisp/scroll-bar.elc \
../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
@ -583,11 +577,10 @@ SOME_MACHINE_LISP = ../lisp/mouse.elc \
../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \
../lisp/emacs-lisp/easymenu.elc
/* Construct full set of libraries to be linked.
Note that SunOS needs -lm to come before -lc; otherwise, you get
duplicated symbols. If the standard libraries were compiled
with GCC, we might need LIB_GCC again after them. */
## Construct full set of libraries to be linked.
## Note that SunOS needs -lm to come before -lc; otherwise, you get
## duplicated symbols. If the standard libraries were compiled
## with GCC, we might need LIB_GCC 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} \
@ -596,9 +589,9 @@ LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
all: emacs${EXEEXT} $(OTHER_FILES)
/* Does anyone ever pay attention to the load-path-shadows output here? */
/* The dumped Emacs is as functional and more efficient than
bootstrap-emacs, so we replace the latter with the former. */
## Does anyone ever pay attention to the load-path-shadows output here?
## The dumped Emacs is as functional and more efficient than
## bootstrap-emacs, so we replace the latter with the former.
emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
if test "${CANNOT_DUMP}" = "yes"; then \
ln -f temacs${EXEEXT} emacs${EXEEXT}; \
@ -610,19 +603,19 @@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp}
./emacs -q -batch -f list-load-path-shadows || true; \
fi
/* 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}. */
/* Most of this Makefile refers to Lisp files via ${lispsource}, so
we also use ${lisp} rather than ${shortlisp} for the dependency since
the Makefile uses string equality to decide when we talk about identical
files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile
only in order to reduce the command line length. --Stef */
## 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}.
## Most of this Makefile refers to Lisp files via ${lispsource}, so
## we also use ${lisp} rather than ${shortlisp} for the dependency since
## the Makefile uses string equality to decide when we talk about identical
## files. Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile
## only in order to reduce the command line length. --Stef
${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
-rm -f ${etc}DOC
${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
@ -635,11 +628,11 @@ buildobj.h: Makefile
echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
/* We cannot define variables for PRE_EDIT and POST_EDIT.
If !ORDINARY_LINK && !LINKER && GCC, they add a
\`./prefix-args -Xlinker ... \` wrapper, otherwise they are empty.
One alternative to this approach would be to always call prefix-args,
and have it DTRT in all cases, by testing the above defines. */
## We cannot define variables for PRE_EDIT and POST_EDIT.
## If !ORDINARY_LINK && !LINKER && GCC, they add a
## `./prefix-args -Xlinker ... ` wrapper, otherwise they are empty.
## One alternative to this approach would be to always call prefix-args,
## and have it DTRT in all cases, by testing the above defines.
temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT}
$(LD) @PRE_EDIT_LDFLAGS@ ${TEMACS_LDFLAGS} @POST_EDIT_LDFLAGS@ \
${TEMACS_LDFLAGS2} \
@ -649,27 +642,27 @@ prefix-args${EXEEXT}: prefix-args.o $(config_h)
$(CC) $(LDFLAGS) prefix-args.o -o prefix-args
/* The following oldxmenu-related rules are only (possibly) used if
HAVE_X11 && !USE_GTK, but there is no harm in always defining them
(provided we take a little care that OLDXMENU is never empty). */
## The following oldxmenu-related rules are only (possibly) used if
## HAVE_X11 && !USE_GTK, but there is no harm in always defining them
## (provided we take a little care that OLDXMENU is never empty).
really-lwlib:
cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
@true /* make -t should not create really-lwlib. */
@true # make -t should not create really-lwlib.
.PHONY: really-lwlib
really-oldXMenu:
cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
@true /* make -t should not create really-oldXMenu. */
@true # make -t should not create really-oldXMenu.
.PHONY: really-oldXMenu
/* We don''t really need this when OLDXMENU_DEPS is empty, but as
things stand we need something to satisfy the temacs dependency. */
## We do not really need this when OLDXMENU_DEPS is empty, but as
## things stand we need something to satisfy the temacs dependency.
stamp-oldxmenu: ${OLDXMENU_DEPS}
touch stamp-oldxmenu
/* Supply an ordering for parallel make. */
## Supply an ordering for parallel make.
../src/$(OLDXMENU): ${OLDXMENU}
$(OLDXMENU): $(OLDXMENU_TARGET)
@ -690,7 +683,7 @@ ecrt0.o: ecrt0.c $(config_h)
doc.o: buildobj.h
/* If HAVE_NS, some ns-specific rules (for OTHER_FILES) are inserted here. */
## If HAVE_NS, some ns-specific rules (for OTHER_FILES) are inserted here.
@ns_frag@
@ -704,18 +697,18 @@ clean: mostlyclean
-rm -rf ${DEPDIR}
test "X${ns_appdir}" = "X" || rm -rf ${ns_appdir}
/* bootstrap-clean is used to clean up just before a bootstrap.
It should remove all files generated during a compilation/bootstrap,
but not things like config.status or TAGS. */
## bootstrap-clean is used to clean up just before a bootstrap.
## It should remove all files generated during a compilation/bootstrap,
## but not things like config.status or TAGS.
bootstrap-clean: clean
rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
rm -f epaths.h config.h config.stamp stamp-oldxmenu ../etc/DOC-*
if test -f ./.gdbinit; then \
mv ./.gdbinit ./.gdbinit.save; \
if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
else mv ./.gdbinit.save ./.gdbinit; fi; \
fi
/**/# This is used in making a distribution.
/**/# Do not use it on development directories!
## This is used in making a distribution.
## Do not use it on development directories!
distclean: bootstrap-clean
rm -f Makefile
maintainer-clean: distclean
@ -727,8 +720,8 @@ versionclean:
extraclean: distclean
-rm -f *~ \#* m/?*~ s/?*~
/* Arrange to make a tags table TAGS-LISP for ../lisp,
plus TAGS for the C files, which includes ../lisp/TAGS by reference. */
## Arrange to make a tags table TAGS-LISP for ../lisp,
## plus TAGS for the C files, which includes ../lisp/TAGS by reference.
ctagsfiles1 = [xyzXYZ]*.[hcm]
ctagsfiles2 = [a-wA-W]*.[hcm]
@ -748,49 +741,49 @@ tags: TAGS TAGS-LISP $(lwlibdir)TAGS
.PHONY: tags
/* Bootstrapping. */
/* Bootstrapping right is difficult because of the circular dependencies.
Furthermore, we have to deal with the fact that many compilation targets
such as loaddefs.el or *.elc can typically be produced by any old
Emacs executable, so we would like to avoid rebuilding them whenever
we build a new Emacs executable.
To solve the circularity, we use 2 different Emacs executables,
"emacs" is the main target and "bootstrap-emacs" is the one used
to build the *.elc and loaddefs.el files.
To solve the freshness issue, we used to use a third file "witness-emacs"
which was used to witness the fact that there is a bootstrap-emacs
executable, and then have dependencies on witness-emacs rather than
bootstrap-emacs, but that lead to problems in parallel builds (because
witness-emacs needed to be free from dependencies (to avoid rebuilding
it), so it was compiled in parallel, leading typically to having 2
processes dumping bootstrap-emacs at the same time).
So instead, we replace the witness-emacs dependencies by conditional
bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do
not want to rely on GNU Make features, we have to rely on an external
script to do the conditional part of the dependency
(i.e. see the ${SUBDIR} rule ../Makefile.in). */
### Bootstrapping.
## Bootstrapping right is difficult because of the circular dependencies.
## Furthermore, we have to deal with the fact that many compilation targets
## such as loaddefs.el or *.elc can typically be produced by any old
## Emacs executable, so we would like to avoid rebuilding them whenever
## we build a new Emacs executable.
## To solve the circularity, we use 2 different Emacs executables,
## "emacs" is the main target and "bootstrap-emacs" is the one used
## to build the *.elc and loaddefs.el files.
## To solve the freshness issue, we used to use a third file "witness-emacs"
## which was used to witness the fact that there is a bootstrap-emacs
## executable, and then have dependencies on witness-emacs rather than
## bootstrap-emacs, but that lead to problems in parallel builds (because
## witness-emacs needed to be free from dependencies (to avoid rebuilding
## it), so it was compiled in parallel, leading typically to having 2
## processes dumping bootstrap-emacs at the same time).
## So instead, we replace the witness-emacs dependencies by conditional
## bootstrap-dependencies (via ${BOOTSTRAPEMACS}). Of course, since we do
## not want to rely on GNU Make features, we have to rely on an external
## script to do the conditional part of the dependency
## (i.e. see the ${SUBDIR} rule ../Makefile.in).
.SUFFIXES: .elc .el
/* These suffix rules do not allow additional dependencies, sadly, so
instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
separately below.
With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" */
## These suffix rules do not allow additional dependencies, sadly, so
## instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
## separately below.
## With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)"
.el.elc:
@cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
THEFILE=$< EMACS=${bootstrap_exe}
/* Since the .el.elc rule cannot specify an extra dependency, we do it here. */
## Since the .el.elc rule cannot specify an extra dependency, we do it here.
${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
/* VCSWITNESS points to the file that holds info about the current checkout.
We use it as a heuristic to decide when to rebuild loaddefs.el. */
## VCSWITNESS points to the file that holds info about the current checkout.
## We use it as a heuristic to decide when to rebuild loaddefs.el.
${lispsource}loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS)
cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=${bootstrap_exe}
/* Dump an Emacs executable named bootstrap-emacs containing the
files from loadup.el in source form. */
## Dump an Emacs executable named bootstrap-emacs containing the
## files from loadup.el in source form.
bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
if test "${CANNOT_DUMP}" = "yes"; then \
@ -802,5 +795,8 @@ bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
@: Compile some files earlier to speed up further compilation.
cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=${bootstrap_exe}
/* Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. */
## Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk.
@deps_frag@
### Makefile.in ends here

View file

@ -1,5 +1,5 @@
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010 Free Software Foundation, Inc.
See the end of the file for license conditions.
@ -10,12 +10,10 @@ and installed, if the dumped Emacs (on Unix systems) is copied elsewhere.
See the files ../README and then ../INSTALL for installation instructions.
Under GNU and Unix systems, the file `Makefile.in' is used as a
template by the script `../configure' to produce `Makefile.c'. The
same script then uses `cpp' to produce the machine-dependent
`Makefile' from `Makefile.c'; `Makefile' is the file which actually
controls the compilation of Emacs. Most of this should work
transparently to the user; you should only need to run `../configure',
and then type `make'.
template by the script `../configure' to produce `Makefile'. This
is the file which actually controls the compilation of Emacs.
All of this should work transparently to the user; you should only
need to run `../configure', and then type `make'.
This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
/* autodeps.mk --- src/Makefile fragment for GNU Emacs
### autodeps.mk --- src/Makefile fragment for GNU Emacs
This is inserted in src/Makefile if AUTO_DEPEND=yes. */
## This is inserted in src/Makefile if AUTO_DEPEND=yes.
ALLOBJS=$(START_FILES) ${obj} ${otherobj} prefix-args.o
-include $(ALLOBJS:%.o=${DEPDIR}/%.d)

View file

@ -1,41 +1,41 @@
/* deps.mk --- src/Makefile fragment for GNU Emacs
### deps.mk --- src/Makefile fragment 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.
## Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
## 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
## Free Software Foundation, Inc.
This file is part of GNU Emacs.
## This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
## GNU Emacs is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## GNU Emacs is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
## Commentary:
##
## This file is inserted in src/Makefile if AUTO_DEPEND=no.
## It defines static dependencies between the various source files.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
## 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...
Commentary:
## 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.
This file is inserted in src/Makefile if AUTO_DEPEND=no.
It defines static dependencies between the various source files.
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.
Code: */
### Code:
atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
$(config_h)
@ -245,7 +245,7 @@ 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
@ -267,7 +267,7 @@ lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.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 \
@ -276,4 +276,4 @@ textprop.o: textprop.c buffer.h window.h $(INTERVALS_H) \
lisp.h $(config_h)
/* deps.mk ends here */
### deps.mk ends here

View file

@ -1,29 +1,29 @@
/* autodeps.mk --- src/Makefile fragment for GNU Emacs
### autodeps.mk --- src/Makefile fragment for GNU Emacs
Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
## Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
## This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
## GNU Emacs is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## GNU Emacs is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
### Commentary:
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
## This is inserted in src/Makefile if HAVE_NS.
Commentary:
This is inserted in src/Makefile if HAVE_NS.
The only reason this is in a separate file is because $ns_appdir,
which appears as a target, is empty on non-NS builds. Some makes
do not like empty targets, even if they are never used. */
## The only reason this is in a separate file is because $ns_appdir,
## which appears as a target, is empty on non-NS builds. Some makes
## do not like empty targets, even if they are never used.
${ns_appdir}: ${ns_appsrc}
rm -fr ${ns_appdir}
@ -36,4 +36,4 @@ ${ns_appbindir}Emacs: emacs${EXEEXT}
ns-app: ${ns_appdir} ${ns_appbindir}Emacs
/* ns.mk ends here */
### ns.mk ends here