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:
parent
11e4d8c0d3
commit
81ac4f3536
19 changed files with 248 additions and 407 deletions
10
ChangeLog
10
ChangeLog
|
@ -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
26
INSTALL
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
75
configure
vendored
|
@ -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
|
||||
|
|
53
configure.in
53
configure.in
|
@ -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
|
||||
|
|
12
etc/MACHINES
12
etc/MACHINES
|
@ -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
|
||||
|
|
38
etc/PROBLEMS
38
etc/PROBLEMS
|
@ -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.
|
||||
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
262
src/Makefile.in
262
src/Makefile.in
|
@ -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
|
||||
|
|
14
src/README
14
src/README
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
68
src/deps.mk
68
src/deps.mk
|
@ -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
|
||||
|
|
42
src/ns.mk
42
src/ns.mk
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue