# DIST: make most of the changes to this file you might want, so try
# DIST: that first.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-# Free Software Foundation, Inc.
+# Copyright (C) 1992-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# ==================== Things `configure' Might Edit ====================
+MAINTAINER_MODE_FLAG = --disable-maintainer-mode
+@MAINT@MAINTAINER_MODE_FLAG = --enable-maintainer-mode
+cache_file = @cache_file@
+CONFIGURE_FLAGS = --cache-file=$(cache_file) $(MAINTAINER_MODE_FLAG)
+
CC=@CC@
-CPP=@CPP@
-C_SWITCH_SYSTEM=@c_switch_system@
-ALLOCA=@ALLOCA@
-LN_S=@LN_S@
CFLAGS=@CFLAGS@
LDFLAGS=@LDFLAGS@
CPPFLAGS=@CPPFLAGS@
-C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
-LD_SWITCH_X_SITE=@LD_SWITCH_X_SITE@
EXEEXT=@EXEEXT@
-MAKEINFO=@MAKEINFO@
### These help us choose version- and architecture-specific directories
### to install files in.
# (and they contain cross-references that expect them to be there).
mandir=@mandir@
man1dir=$(mandir)/man1
-MAN_PAGES=b2m.1 ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
+MAN_PAGES=ctags.1 ebrowse.1 emacs.1 emacsclient.1 etags.1 \
grep-changelog.1 rcs-checkin.1
# Where to install and expect the info files describing Emacs. In the
# system, it is inappropriate to imply that it is part of Emacs.
infodir=@infodir@
INFO_FILES=ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse \
- ede ediff edt eieio efaq eintr elisp emacs emacs-mime epa erc \
- eshell eudc flymake forms gnus idlwave info mairix-el \
+ ede ediff edt eieio efaq eintr elisp emacs emacs-gnutls emacs-mime epa erc \
+ ert eshell eudc flymake forms gnus idlwave info mairix-el \
message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc \
reftex remember sasl sc semantic ses sieve smtpmail speedbar \
tramp url vip viper widget woman
+# If no makeinfo was found and configured --without-makeinfo, "no"; else "yes".
+HAVE_MAKEINFO=@HAVE_MAKEINFO@
+
# Directory for local state files for all programs.
localstatedir=@localstatedir@
x_default_search_path=@x_default_search_path@
# Location to install Emacs.app under NeXT/Open/GNUstep / Cocoa
-ns_appdir=@ns_appdir@
ns_appbindir=@ns_appbindir@
ns_appresdir=@ns_appresdir@
# building. This is only used during the process of
# compiling Emacs, to help Emacs find its lisp files
# before they've been installed in their final location.
-# It's usually identical to lisppath, except that
-# it does not include locallisppath, and the
-# entry for the directory containing the installed lisp
-# files has been replaced with ../lisp. This should be a
-# colon-separated list of directories.
+# This should be a colon-separated list of directories.
+# Normally it points to the lisp/ directory in the sources.
buildlisppath=${srcdir}/lisp
# Where to install the other architecture-independent
# ==================== Utility Programs for the Build ====================
# Allow the user to specify the install program.
+# Note that if the system does not provide a suitable install,
+# configure will use build-aux/install-sh. Annoyingly, it does
+# not use an absolute path. So we must take care to always run
+# INSTALL-type commands from the top-level directory.
+# This explains (I think) the cd thisdir seen in several install rules.
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
# We use gzip to compress installed .el files.
GZIP_PROG = @GZIP_PROG@
+# If non-nil, gzip the installed Info and man pages.
+GZIP_INFO = @GZIP_INFO@
# ============================= Targets ==============================
# Subdirectories to make recursively. `lisp' is not included
# because the compiled lisp files are part of the distribution.
# leim is not included because it needs special handling.
-#
+#
# Actually, we now include `lisp' as well, since the compiled files
# are not included any more in case of bootstrap or in case Emacs was
# checked out from a VCS.
-SUBDIR = lib-src src lisp
+SUBDIR = lib lib-src src lisp
# The subdir makefiles created by config.status.
-SUBDIR_MAKEFILES = lib-src/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispref/Makefile doc/lispintro/Makefile src/Makefile oldXMenu/Makefile lwlib/Makefile leim/Makefile lisp/Makefile
+SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@
+SUBDIR_MAKEFILES = `echo $(SUBDIR_MAKEFILES_IN:.in=) | sed 's|$(srcdir)/||g'`
# Subdirectories to install, and where they'll go.
# lib-src's makefile knows how to install it, so we don't do that here.
removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
# Generate epaths.h from epaths.in. This target is invoked by `configure'.
+# See comments in configure.in for why it is done this way, as opposed
+# to just letting configure generate epaths.h from epaths.in in a
+# similar way to how Makefile is made from Makefile.in.
epaths-force: FRC
@(lisppath=`echo ${lisppath} | ${removenullpaths}` ; \
buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ; \
-e 's;\(#.*PATH_BITMAPS\).*$$;\1 "${bitmapdir}";' \
-e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
-e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \
- -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";' \
- -e 's;/[*] *arch-tag:.*;/*;') && \
- ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
+ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') && \
+ ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h
# For parallel make, src should be built before leim.
# "export PARALLEL=0" is for SGI's Make, to prevent it from
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
+lib-src src: lib
+
src: lib-src FRC
.RECURSIVE: ${SUBDIR} leim
# We need to build `emacs' in `src' to compile the *.elc files in `lisp'.
lisp: src
+# Maintainers can put a copy of gnulib into $(gnulib_srcdir).
+gnulib_srcdir = ../gnulib
+$(gnulib_srcdir):
+ git clone git://git.savannah.gnu.org/gnulib.git $@
+
+# A shorter name that satisfies MS-DOS 8+3 constraints.
+DOS_gnulib_comp.m4 = gl-comp.m4
+
+# Update modules from gnulib, for maintainers, who should have it in
+# $(gnulib_srcdir) (relative to $(srcdir) and should have build tools
+# as per $(gnulib_srcdir)/DEPENDENCIES.
+GNULIB_MODULES = \
+ alloca-opt \
+ careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr \
+ dup2 \
+ filemode getloadavg getopt-gnu ignore-value intprops lstat \
+ mktime pthread_sigmask readlink \
+ socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat
+GNULIB_TOOL_FLAGS = \
+ --avoid=msvc-inval --avoid=msvc-nothrow \
+ --avoid=raise --avoid=threadlib \
+ --conditional-dependencies --import --no-changelog --no-vc-files \
+ --makefile-name=gnulib.mk
+sync-from-gnulib: $(gnulib_srcdir)
+ -cd $(srcdir)/m4 && cp $(DOS_gnulib_comp.m4) gnulib-comp.m4
+ cd $(srcdir) && \
+ $(gnulib_srcdir)/gnulib-tool $(GNULIB_TOOL_FLAGS) $(GNULIB_MODULES)
+ cd $(srcdir)/m4 && rm gnulib-cache.m4 warn-on-use.m4
+ cd $(srcdir)/m4 && mv gnulib-comp.m4 $(DOS_gnulib_comp.m4)
+ cp $(gnulib_srcdir)/build-aux/texinfo.tex $(srcdir)/doc/misc
+ cp \
+ $(gnulib_srcdir)/build-aux/move-if-change \
+ $(srcdir)/build-aux
+ cd $(srcdir) && autoreconf -i -I m4
+.PHONY: sync-from-gnulib
+
# These targets should be "${SUBDIR} without `src'".
-lib-src lisp: Makefile FRC
+lib lib-src lisp: Makefile FRC
cd $@; $(MAKE) all $(MFLAGS) \
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"; \
fi;
+ if [ -r .bzr/checkout/dirstate ]; then \
+ vcswitness="`pwd`/.bzr/checkout/dirstate"; \
+ fi; \
cd $@; $(MAKE) all $(MFLAGS) \
CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
- LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS=""
+ LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="" \
+ VCSWITNESS="$$vcswitness"
blessmail: Makefile src FRC
cd lib-src; $(MAKE) maybe-blessmail $(MFLAGS) \
# conditions with parallel makes, so let's assume that the time stamp on
# ./Makefile is representative of the time stamp on all the other Makefiles.
Makefile: config.status $(srcdir)/src/config.in \
- $(srcdir)/Makefile.in \
- $(srcdir)/src/Makefile.in \
- $(srcdir)/lib-src/Makefile.in \
- $(srcdir)/doc/emacs/Makefile.in \
- $(srcdir)/doc/misc/Makefile.in \
- $(srcdir)/doc/lispref/Makefile.in \
- $(srcdir)/doc/lispintro/Makefile.in \
- $(srcdir)/oldXMenu/Makefile.in \
- $(srcdir)/lwlib/Makefile.in \
- $(srcdir)/leim/Makefile.in \
- $(srcdir)/lisp/Makefile.in
+ $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
./config.status
+# Don't erase config.status if make is interrupted while refreshing it.
+.PRECIOUS: config.status
+
config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
- ./config.status --recheck
+ if [ -x ./config.status ]; then \
+ ./config.status --recheck; \
+ else \
+ ./configure $(CONFIGURE_FLAGS); \
+ fi
-AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/m4/getopt.m4
+AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/aclocal.m4
$(srcdir)/configure: $(AUTOCONF_INPUTS)
cd ${srcdir} && autoconf
+ACLOCAL_INPUTS = @MAINT@ $(srcdir)/m4/$(DOS_gnulib_comp.m4)
+$(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
+ cd $(srcdir) && aclocal -I m4
+
+AUTOMAKE_INPUTS = @MAINT@ $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am $(srcdir)/lib/gnulib.mk
+$(srcdir)/lib/Makefile.in: $(AUTOMAKE_INPUTS)
+ cd $(srcdir) && automake --gnu -a -c lib/Makefile
+am--refresh: $(srcdir)/aclocal.m4 $(srcdir)/configure $(srcdir)/src/config.in
+.PHONY: am--refresh
+
$(srcdir)/src/config.in: $(srcdir)/src/stamp-h.in
- @true
+ @ # Usually, there's no need to rebuild src/config.in just
+ @ # because stamp-h.in has changed (since building stamp-h.in
+ @ # refreshes config.in as well), but if config.in is missing
+ @ # then we really need to do something more.
+ [ -r "$@" ] || ( cd ${srcdir} && autoheader )
$(srcdir)/src/stamp-h.in: $(AUTOCONF_INPUTS)
cd ${srcdir} && autoheader
rm -f $(srcdir)/src/stamp-h.in
-chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL)
rm -f $(DESTDIR)${bindir}/$(EMACS)
-ln $(DESTDIR)${bindir}/$(EMACSFULL) $(DESTDIR)${bindir}/$(EMACS)
- -unset CDPATH; \
- for f in `cd lib-src && echo fns-*.el`; do \
- if test -r lib-src/$$f ; then \
- ${INSTALL_DATA} lib-src/$$f $(DESTDIR)${archlibdir}/$$f; \
- else true; fi ; \
- done
- if test "${ns_appdir}" != ""; then \
+ if test "${ns_appresdir}" != ""; then \
( cd ${ns_appresdir} ; \
if test -d share/emacs ; then dir=share/emacs/*/*; $(MV_DIRS); fi;\
if test -d share/info ; then dir=share/info; $(MV_DIRS) ; fi ; \
rm -fr share ) ; \
- ( cd ${ns_appbindir}/libexec ; dir=emacs/*/*/* ; $(MV_DIRS); \
- rm -fr emacs ) ; \
- ( cd ${ns_appbindir}/bin ; rm -f emacs emacs-23* ; \
- ln -sf ../libexec/* .) ; \
+ ( cd ${ns_appbindir} ; \
+ if cd libexec ; then dir=emacs/*/*/* ; $(MV_DIRS); \
+ rm -fr emacs; if cd ../bin; then rm -f emacs emacs-24*; \
+ ln -sf ../libexec/* . ; fi ; fi ) ; \
else true ; fi
+## FIXME is the emacs-24* bit above really necessary and correct?
+## What if I have 24.1 and 24.2 installed at the same time?
+## In any case, it should use something like echo $version | sed 's/\..*//'
+## instead of hard-coding a version.
+
## http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg01672.html
## Needs to be the user running install, so configure can't set it.
set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
| (cd $${dest}; umask 022; \
tar -xvf - && cat > /dev/null) || exit 1; \
find $${dest} -exec chown $${installuser} {} ';' ;\
- for subdir in `find $${dest} -type d ! -name RCS ! -name CVS -print` ; do \
+ for subdir in `find $${dest} -type d -print` ; do \
chmod a+rx $${subdir} ; \
- rm -rf $${subdir}/RCS ; \
- rm -rf $${subdir}/CVS ; \
- rm -f $${subdir}/.cvsignore ; \
rm -f $${subdir}/.gitignore ; \
rm -f $${subdir}/.arch-inventory ; \
rm -f $${subdir}/.DS_Store ; \
rm -f $${subdir}/[mM]akefile*.c $${subdir}/[mM]akefile*[.-]in \
$${subdir}/[mM]akefile ; \
rm -f $${subdir}/ChangeLog* ; \
- rm -f $${subdir}/dired.todo ; \
done) ; \
done
-rm -f $(DESTDIR)${lispdir}/subdirs.el
fi; \
cd ${srcdir}/info ; \
for elt in $(INFO_FILES); do \
- test "$(MAKEINFO)" = "off" && ! test -e $$elt && continue; \
+ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \
for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
- ${INSTALL_DATA} $$f $(DESTDIR)${infodir}/$$f; \
+ (cd $${thisdir}; \
+ ${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \
chmod a+r $(DESTDIR)${infodir}/$$f; \
+ if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
+ rm -f $(DESTDIR)${infodir}/$$f.gz; \
+ ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \
+ else true; fi; \
done; \
done); \
else true; fi
if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
then \
for elt in $(INFO_FILES); do \
- test "$(MAKEINFO)" = "off" && ! test -e $$elt && continue; \
+ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \
(cd $${thisdir}; \
${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
done; \
for page in ${MAN_PAGES}; do \
(cd $${thisdir}; \
${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}; \
- chmod a+r $(DESTDIR)${man1dir}/$${page}); \
+ chmod a+r $(DESTDIR)${man1dir}/$${page}; \
+ if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
+ rm -f $(DESTDIR)${man1dir}/$${page}.gz; \
+ ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${page}; \
+ else true; fi ); \
done
## Install those items from etc/ that need to end up elsewhere.
### Install LEIM files. Although they are machine-independent, we
### have separate target here instead of including it in
### `install-arch-indep'. People who extracted LEIM files after they
-### insalled Emacs itself can install only LEIM files by this target.
+### installed Emacs itself can install only LEIM files by this target.
install-leim: leim/Makefile mkdir
cd leim; $(MAKE) install
### Build all the directories we're going to install Emacs in. Since
### we may be creating several layers of directories (for example,
-### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use mkinstalldirs
+### /usr/local/lib/emacs/19.0/mips-dec-ultrix4.2), we use install-sh -d
### instead of mkdir. Not all systems' mkdir programs have the `-p' flag.
### We set the umask so that any created directories are world-readable.
### FIXME it would be good to warn about non-standard permissions of
done ; \
icondirs=`echo "$${icondirs}" | sed 's,$(srcdir)/etc/images/icons,$(DESTDIR)${icondir},g'` ; \
umask 022 ; \
- $(srcdir)/mkinstalldirs $(DESTDIR)${datadir} ${COPYDESTS} \
+ $(srcdir)/build-aux/install-sh -d $(DESTDIR)${datadir} ${COPYDESTS} \
$(DESTDIR)${infodir} $(DESTDIR)${man1dir} \
$(DESTDIR)${bindir} $(DESTDIR)${docdir} $(DESTDIR)${libexecdir} \
$(DESTDIR)${datadir}/emacs/site-lisp \
esac ; \
fi ; \
done
- (cd $(DESTDIR)${archlibdir} && rm -f fns-*)
-rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
+ thisdir=`/bin/pwd`; \
(cd $(DESTDIR)${infodir} && \
for elt in $(INFO_FILES); do \
- $(INSTALL_INFO) --remove --info-dir=. $$elt; \
- for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
- rm -f $$f; \
- done; \
+ (cd $${thisdir}; \
+ $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
+ if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
+ ext=.gz; else ext=; fi; \
+ rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \
done;)
- (cd $(DESTDIR)${man1dir} && rm -f $(MAN_PAGES))
+ (if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
+ ext=.gz; else ext=; fi; \
+ cd $(DESTDIR)${man1dir} && for page in ${MAN_PAGES}; do \
+ rm -f $$page$$ext; done )
(cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS))
(cd $(DESTDIR)${icondir} && rm -f hicolor/*x*/apps/emacs.png hicolor/*x*/apps/emacs22.png hicolor/scalable/apps/emacs.svg hicolor/scalable/mimetypes/emacs-document.svg )
-rm -f $(DESTDIR)${desktopdir}/emacs.desktop
(cd src; $(MAKE) $(MFLAGS) mostlyclean)
(cd oldXMenu; $(MAKE) $(MFLAGS) mostlyclean)
(cd lwlib; $(MAKE) $(MFLAGS) mostlyclean)
+ (cd lib; $(MAKE) $(MFLAGS) mostlyclean)
(cd lib-src; $(MAKE) $(MFLAGS) mostlyclean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) mostlyclean)
-(cd doc/misc && $(MAKE) $(MFLAGS) mostlyclean)
(cd src; $(MAKE) $(MFLAGS) clean)
(cd oldXMenu; $(MAKE) $(MFLAGS) clean)
(cd lwlib; $(MAKE) $(MFLAGS) clean)
+ (cd lib; $(MAKE) $(MFLAGS) clean)
(cd lib-src; $(MAKE) $(MFLAGS) clean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) clean)
-(cd doc/misc && $(MAKE) $(MFLAGS) clean)
### distribution.
top_distclean=\
${top_bootclean}; \
- rm -f config.status Makefile ${SUBDIR_MAKEFILES}
+ rm -f config.status config.log~ Makefile stamp-h1 ${SUBDIR_MAKEFILES}
distclean: FRC
(cd src; $(MAKE) $(MFLAGS) distclean)
(cd oldXMenu; $(MAKE) $(MFLAGS) distclean)
(cd lwlib; $(MAKE) $(MFLAGS) distclean)
+ (cd lib; $(MAKE) $(MFLAGS) distclean)
(cd lib-src; $(MAKE) $(MFLAGS) distclean)
(cd doc/emacs && $(MAKE) $(MFLAGS) distclean)
(cd doc/misc && $(MAKE) $(MFLAGS) distclean)
(cd src; $(MAKE) $(MFLAGS) bootstrap-clean)
(cd oldXMenu; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lwlib; $(MAKE) $(MFLAGS) maintainer-clean)
+ (cd lib; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lib-src; $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/emacs && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/misc && $(MAKE) $(MFLAGS) maintainer-clean)
-(cd doc/lispintro && $(MAKE) $(MFLAGS) maintainer-clean)
(cd leim; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean)
+ [ ! -f config.log ] || mv -f config.log config.log~
${top_bootclean}
+## configure; make bootstrap replaces the real config.log from configure
+## with the truncated one from config.status. The former is more useful.
### `maintainer-clean'
### Delete everything from the current directory that can be
### Makefile. More generally, `make maintainer-clean' should not delete
### anything that needs to exist in order to run `configure' and then
### begin to build the program.
+top_maintainer_clean=\
+ ${top_distclean}; \
+ rm -fr autom4te.cache
maintainer-clean: bootstrap-clean FRC
(cd src; $(MAKE) $(MFLAGS) maintainer-clean)
(cd lisp; $(MAKE) $(MFLAGS) maintainer-clean)
- ${top_distclean}
+ ${top_maintainer_clean}
### This doesn't actually appear in the coding standards, but Karl
### says GCC supports it, and that's where the configuration part of
### it deletes backup and autosave files too.
extraclean:
for i in ${SUBDIR} leim; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done
- ${top_distclean}
+ ${top_maintainer_clean}
-rm -f config-tmp-*
-rm -f *~ \#*
# The src subdir knows how to do the right thing
# even when the build directory and source dir are different.
-TAGS tags: lib-src src
- cd src; $(MAKE) tags
+TAGS tags: lib lib-src src
+ cd src; $(MAKE) $(MFLAGS) tags
check:
- @echo "We don't have any tests for GNU Emacs yet."
+ @if test ! -d test/automated; then \
+ echo "You do not seem to have the test/ directory."; \
+ echo "Maybe you are using a release tarfile, rather than a repository checkout."; \
+ else \
+ cd test/automated && $(MAKE) $(MFLAGS) check; \
+ fi
dist:
cd ${srcdir}; ./make-dist
.PHONY: info dvi dist check html
-info-real:
+info-real:
(cd doc/emacs; $(MAKE) $(MFLAGS) info)
(cd doc/misc; $(MAKE) $(MFLAGS) info)
(cd doc/lispref; $(MAKE) $(MFLAGS) info)
# and it's not worth it. This case is only relevant if you download a
# release, then change the .texi files.
info: force-info
- @if test "$(MAKEINFO)" = "off"; then \
+ @if test "$(HAVE_MAKEINFO)" = "no"; then \
echo "Configured --without-makeinfo, not building manuals" ; \
else \
$(MAKE) $(MFLAGS) info-real ; \
.PHONY: bootstrap
+## configure; make bootstrap replaces the real config.log from configure
+## with the truncated one from config.status. The former is more useful.
bootstrap: bootstrap-clean FRC
if [ -x ./config.status ]; then \
./config.status; \
else \
- ./configure --enable-maintainer-mode; \
+ ./configure $(CONFIGURE_FLAGS); \
fi
$(MAKE) $(MFLAGS) info all
.PHONY: check-declare
check-declare:
- @if [ ! -e $(srcdir)/src/emacs ]; then \
+ @if [ ! -f $(srcdir)/src/emacs ]; then \
echo "You must build Emacs to use this command"; \
exit 1; \
fi