Do not preprocess lib-src/Makefile.in
* configure.in: Generate lib-src/Makefile directly, do not run cpp. * config.bat: Do not run cpp on lib-src/Makefile.in. * lib-src/Makefile.in: Convert comments to makefile format. * admin/notes/cpp: lib-src/Makefile not preprocessed.
This commit is contained in:
parent
acddf8aec7
commit
d3b23034e8
5 changed files with 39 additions and 63 deletions
|
@ -1,11 +1,7 @@
|
|||
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
|
||||
lib-src/Makefile
|
||||
|
||||
into object files, but also for creating src/Makefile.
|
||||
(delimited by comment "start of cpp stuff"). some cpp implementations
|
||||
insert whitespace in between tokens.
|
||||
|
||||
|
|
|
@ -221,16 +221,12 @@ cd ..
|
|||
rem ----------------------------------------------------------------------
|
||||
Echo Configuring the library source directory...
|
||||
cd lib-src
|
||||
rem Create "makefile" from "makefile.in".
|
||||
sed -e "1,/== start of cpp stuff ==/s@^##*[ ].*$@@" <Makefile.in >junk.c
|
||||
gcc -E -traditional -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ ]*$/d" >makefile.new
|
||||
If "%DJGPP_VER%" == "2" goto libsrc-v2
|
||||
sed -f ../msdos/sed3.inp <makefile.new >Makefile
|
||||
sed -f ../msdos/sed3.inp <Makefile.in >Makefile
|
||||
Goto libsrc2
|
||||
:libsrc-v2
|
||||
sed -f ../msdos/sed3v2.inp <makefile.new >Makefile
|
||||
sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile
|
||||
:libsrc2
|
||||
rm -f makefile.new junk.c
|
||||
if "%X11%" == "" goto libsrc2a
|
||||
mv Makefile makefile.tmp
|
||||
sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile
|
||||
|
|
18
configure.in
18
configure.in
|
@ -3595,7 +3595,7 @@ AC_EGREP_CPP(yes..yes,
|
|||
CPP_NEED_TRADITIONAL=no,
|
||||
CPP_NEED_TRADITIONAL=yes)
|
||||
|
||||
AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
|
||||
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 \
|
||||
lwlib/Makefile lisp/Makefile leim/Makefile, [
|
||||
|
@ -3619,22 +3619,6 @@ if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
|
|||
CPPFLAGS="$CPPFLAGS -traditional"
|
||||
fi
|
||||
|
||||
echo creating lib-src/Makefile
|
||||
( cd lib-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
|
||||
)
|
||||
|
||||
echo creating src/Makefile
|
||||
( cd src
|
||||
rm -f junk.c junk1.c junk2.c
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
2010-05-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* Makefile.in: Convert comments to makefile format.
|
||||
|
||||
* Makefile.in (LIBS_SYSTEM) [MSDOS]: Do not reset.
|
||||
(config.h) [MSDOS]: Do not include.
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ EMACSOPT = -batch --no-site-file --multibyte
|
|||
CC=@CC@
|
||||
CFLAGS=@CFLAGS@
|
||||
version=@version@
|
||||
## Used in $archlibdir.
|
||||
configuration=@configuration@
|
||||
EXEEXT=@EXEEXT@
|
||||
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
|
||||
|
@ -127,8 +128,8 @@ EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
|
|||
# Specify additional -D flags for movemail. Options:
|
||||
# -DMAIL_USE_FLOCK or -DMAIL_USE_LOCKF (use flock or lockf for file locking).
|
||||
# See the comments about locking in movemail.c. Normally the values
|
||||
# in ../src/[ms]/*.h should be correct and you should not need to do anything.
|
||||
# If neither flag is set, blessmail is used.
|
||||
# set by configure should be correct and you should not need to do anything.
|
||||
# If neither flag is set, you need to use blessmail.
|
||||
MOVE_FLAGS=
|
||||
|
||||
## Empty if either MAIL_USE_FLOCK or MAIL_USE_LOCKF, else need-blessmail.
|
||||
|
@ -164,18 +165,15 @@ ALL_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) -DHAVE_CONFIG_H -I. -I../src
|
|||
LINK_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) -DHAVE_CONFIG_H -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CFLAGS}
|
||||
CPP_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) -DHAVE_CONFIG_H -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
|
||||
|
||||
# ========================== start of cpp stuff =======================
|
||||
/* From here on, comments must be done in C syntax. */
|
||||
|
||||
LOADLIBES=$(LIBS_SYSTEM)
|
||||
|
||||
|
||||
.SUFFIXES: .m
|
||||
|
||||
/* This is the default compilation command.
|
||||
But we should never rely on it, because some make version
|
||||
failed to find it for getopt.o.
|
||||
Using an explicit command made it work. */
|
||||
## This is the default compilation command.
|
||||
## But we should never rely on it, because some make version failed to
|
||||
## find it for getopt.o.
|
||||
## Using an explicit command made it work.
|
||||
.c.o:
|
||||
${CC} -c ${CPP_CFLAGS} $<
|
||||
|
||||
|
@ -184,11 +182,10 @@ LOADLIBES=$(LIBS_SYSTEM)
|
|||
|
||||
all: ${DONT_INSTALL} ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
|
||||
|
||||
/* These targets copy the scripts into the build directory
|
||||
so that they can be run from there in an uninstalled Emacs.
|
||||
The "-" is prepended because some versions of cp barf when
|
||||
srcdir is the current directory, and thus the file will be
|
||||
copied into itself. */
|
||||
## These targets copy the scripts into the build directory so that
|
||||
## they can be run from there in an uninstalled Emacs.
|
||||
## The "-" is prepended because some versions of cp barf when srcdir
|
||||
## is the current directory, and thus the file will be copied into itself.
|
||||
rcs2log: $(srcdir)/rcs2log
|
||||
-cp -p $(srcdir)/rcs2log rcs2log
|
||||
|
||||
|
@ -201,16 +198,15 @@ grep-changelog: $(srcdir)/grep-changelog
|
|||
vcdiff: $(srcdir)/vcdiff
|
||||
-cp -p $(srcdir)/vcdiff vcdiff
|
||||
|
||||
/* Only used if we need blessmail, but no harm in always defining.
|
||||
This makes the actual blessmail executable. */
|
||||
## Only used if we need blessmail, but no harm in always defining.
|
||||
## This makes the actual blessmail executable.
|
||||
blessmail:
|
||||
$(EMACS) $(EMACSOPT) -l $(srcdir)/../lisp/mail/blessmail.el
|
||||
chmod +x blessmail
|
||||
|
||||
/* This checks if we need to run blessmail. */
|
||||
## This checks if we need to run blessmail.
|
||||
## Do not charge ahead and do it! Let the installer decide.
|
||||
need-blessmail: blessmail
|
||||
/* Don\'t charge ahead and do it! Let the installer decide.
|
||||
./blessmail $(DESTDIR)${archlibdir}/movemail${EXEEXT} */
|
||||
@if [ `wc -l <blessmail` != 2 ] ; then \
|
||||
dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
|
||||
echo Assuming $$dir is really the mail spool directory, you should; \
|
||||
|
@ -219,11 +215,14 @@ need-blessmail: blessmail
|
|||
echo Do that after running make install.; \
|
||||
fi
|
||||
|
||||
/* This is the target invoked by the top-level Makefile. */
|
||||
## This is the target invoked by the top-level Makefile.
|
||||
maybe-blessmail: $(BLESSMAIL_TARGET)
|
||||
|
||||
/* Install the internal utilities. Until they are installed, we can
|
||||
just run them directly from lib-src. */
|
||||
## Install the internal utilities. Until they are installed, we can
|
||||
## just run them directly from lib-src.
|
||||
## If the chown/chmod commands fail, that is not a big deal.
|
||||
## update-game-score will detect at runtime that it is not setuid,
|
||||
## and handle things accordingly.
|
||||
$(DESTDIR)${archlibdir}: all
|
||||
@echo
|
||||
@echo "Installing utilities run internally by Emacs."
|
||||
|
@ -236,9 +235,6 @@ $(DESTDIR)${archlibdir}: all
|
|||
umask 022; $(top_srcdir)/mkinstalldirs $(DESTDIR)${gamedir}; \
|
||||
touch $(DESTDIR)${gamedir}/snake-scores; \
|
||||
touch $(DESTDIR)${gamedir}/tetris-scores
|
||||
/* If the following commands fail, that is not a big deal.
|
||||
update-game-score will detect at runtime that it is not setuid,
|
||||
and handle things accordingly. */
|
||||
-if chown ${gameuser} $(DESTDIR)${archlibdir}/update-game-score && chmod u+s $(DESTDIR)${archlibdir}/update-game-score; then \
|
||||
chown ${gameuser} $(DESTDIR)${gamedir}; \
|
||||
chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \
|
||||
|
@ -289,7 +285,7 @@ maintainer-clean: distclean
|
|||
extraclean: maintainer-clean
|
||||
-rm -f *~ \#*
|
||||
|
||||
/* Test the contents of the directory. */
|
||||
## Test the contents of the directory.
|
||||
check:
|
||||
@echo "We don't have any tests for GNU Emacs yet."
|
||||
|
||||
|
@ -297,16 +293,16 @@ tags: TAGS
|
|||
TAGS: etags${EXEEXT}
|
||||
etags *.[ch]
|
||||
|
||||
/* This verifies that the non-ASCII characters in the file \`testfile\'
|
||||
have not been clobbered by whatever means were used to copy and
|
||||
distribute Emacs. If they were clobbered, all the .elc files were
|
||||
clobbered too. */
|
||||
## This verifies that the non-ASCII characters in the file \`testfile\'
|
||||
## have not been clobbered by whatever means were used to copy and
|
||||
## distribute Emacs. If they were clobbered, all the .elc files were
|
||||
## clobbered too.
|
||||
test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
|
||||
$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
|
||||
./test-distrib ${srcdir}/testfile
|
||||
|
||||
/* We need the following in order to create a <getopt.h> when the system
|
||||
does not have one that works with the given compiler. */
|
||||
## We need the following in order to create a <getopt.h> when the system
|
||||
## does not have one that works with the given compiler.
|
||||
GETOPT_H = @GETOPT_H@
|
||||
getopt.h: getopt_.h
|
||||
cp $(srcdir)/getopt_.h $@-t
|
||||
|
@ -331,8 +327,8 @@ etags${EXEEXT}: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h
|
|||
ebrowse${EXEEXT}: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h
|
||||
$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/ebrowse.c $(GETOPTOBJS) $(LOADLIBES) -o ebrowse
|
||||
|
||||
/* We depend on etags to assure that parallel makes don\'t write two
|
||||
etags.o files on top of each other. */
|
||||
## We depend on etags to assure that parallel makes do not write two
|
||||
## etags.o files on top of each other.
|
||||
ctags${EXEEXT}: etags${EXEEXT}
|
||||
$(CC) ${ALL_CFLAGS} -DCTAGS -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags
|
||||
|
||||
|
@ -355,7 +351,7 @@ b2m${EXEEXT}: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
|
|||
movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS)
|
||||
$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MOVE) -o movemail
|
||||
|
||||
/* We need to define emacs to get the right version of something (what?). */
|
||||
## We need to define emacs to get the right version of something (what?).
|
||||
movemail.o: ${srcdir}/movemail.c ../src/config.h $(GETOPT_H)
|
||||
$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/movemail.c
|
||||
|
||||
|
@ -379,3 +375,5 @@ update-game-score${EXEEXT}: update-game-score.o $(GETOPTDEPS)
|
|||
update-game-score.o: ${srcdir}/update-game-score.c ../src/config.h $(GETOPT_H)
|
||||
$(CC) -c ${CPP_CFLAGS} ${srcdir}/update-game-score.c \
|
||||
-DHAVE_SHARED_GAME_DIR="\"$(gamedir)\""
|
||||
|
||||
## Makefile ends here.
|
||||
|
|
Loading…
Add table
Reference in a new issue