* Makefile.in (install-arch-indep): There are no more Makefile.c files.
[bpt/emacs.git] / Makefile.in
index a8cdd6a..a8271f0 100644 (file)
@@ -2,7 +2,7 @@
 # DIST: make most of the changes to this file you might want, so try
 # DIST: that first.
 
-# Copyright (C) 1992-201 Free Software Foundation, Inc.
+# Copyright (C) 1992-2012 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -66,6 +66,11 @@ CDPATH=
 
 # ==================== 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@
 CFLAGS=@CFLAGS@
 LDFLAGS=@LDFLAGS@
@@ -117,25 +122,15 @@ sharedstatedir=@sharedstatedir@
 libexecdir=@libexecdir@
 
 # Where to install Emacs's man pages.
-# This used to allow choice of the numeric extension, but this made
-# little sense since the files were always installed in man1/
-# (and they contain cross-references that expect them to be there).
+# Note they contain cross-references that expect them to be in section 1.
 mandir=@mandir@
 man1dir=$(mandir)/man1
-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
-# past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
-# since there are now many packages documented with the texinfo
-# system, it is inappropriate to imply that it is part of Emacs.
+# Where to install and expect the info files describing 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 \
-          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
+# Info files not in the doc/misc directory (we get those via make echo-info).
+INFO_EXT=@INFO_EXT@
+INFO_NONMISC=emacs$(INFO_EXT) eintr$(INFO_EXT) elisp$(INFO_EXT)
 
 # If no makeinfo was found and configured --without-makeinfo, "no"; else "yes".
 HAVE_MAKEINFO=@HAVE_MAKEINFO@
@@ -203,11 +198,8 @@ lisppath=@lisppath@
 # 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
@@ -234,6 +226,11 @@ gamedir=@gamedir@
 # ==================== 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@
@@ -265,7 +262,8 @@ EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'`
 SUBDIR = lib lib-src src lisp
 
 # The subdir makefiles created by config.status.
-SUBDIR_MAKEFILES = lib/Makefile 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 test/automated/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.
@@ -299,16 +297,14 @@ epaths-force: FRC
          -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \
          -e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \
          -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') &&                \
-       ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h
+       ${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
 # running more than 1 process in the leim directory, especially for
 # the $TIT files there.
 leim:   src Makefile FRC
-       (export PARALLEL; PARALLEL=0; cd $@; $(MAKE) all $(MFLAGS) \
-         CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
-         LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
+       cd leim && PARALLEL=0 $(MAKE) all $(MFLAGS)
 
 lib-src src: lib
 
@@ -331,10 +327,16 @@ DOS_gnulib_comp.m4 = gl-comp.m4
 # $(gnulib_srcdir) (relative to $(srcdir) and should have build tools
 # as per $(gnulib_srcdir)/DEPENDENCIES.
 GNULIB_MODULES = \
-  careadlinkat crypto/md5 dtoastr filemode getloadavg getopt-gnu \
-  ignore-value intprops lstat mktime readlink \
-  socklen stdarg stdio strftime strtoumax symlink sys_stat
+  alloca-opt \
+  careadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr \
+  dup2 \
+  filemode getloadavg getopt-gnu ignore-value intprops lstat \
+  manywarnings mktime pthread_sigmask readlink \
+  socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat \
+  warnings
 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)
@@ -346,7 +348,7 @@ sync-from-gnulib: $(gnulib_srcdir)
        cp $(gnulib_srcdir)/build-aux/texinfo.tex $(srcdir)/doc/misc
        cp \
          $(gnulib_srcdir)/build-aux/move-if-change \
-         $(srcdir)
+         $(srcdir)/build-aux
        cd $(srcdir) && autoreconf -i -I m4
 .PHONY: sync-from-gnulib
 
@@ -373,7 +375,7 @@ src: Makefile FRC
              LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"; \
        fi;
        if [ -r .bzr/checkout/dirstate ]; then                  \
-           vcswitness="$$(pwd)/.bzr/checkout/dirstate";        \
+           vcswitness="`pwd`/.bzr/checkout/dirstate";  \
        fi;                                                     \
        cd $@; $(MAKE) all $(MFLAGS)                           \
          CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
@@ -388,19 +390,7 @@ blessmail: Makefile src FRC
 # 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/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)/test/automated/Makefile.in
+          $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN)
        ./config.status
 
 # Don't erase config.status if make is interrupted while refreshing it.
@@ -410,7 +400,7 @@ config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
        if [ -x ./config.status ]; then \
            ./config.status --recheck;  \
        else                            \
-           ./configure;                \
+           ./configure $(CONFIGURE_FLAGS); \
        fi
 
 AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/aclocal.m4
@@ -422,7 +412,7 @@ 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
+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
@@ -480,10 +470,10 @@ install-arch-dep: mkdir
            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-24* ; \
-           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?
@@ -505,9 +495,17 @@ set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \
 
 ## Note that we copy DOC* and then delete DOC
 ## as a workaround for a bug in tar on Ultrix 4.2.
+## Ultrix is no longer supported since 23.1, but the relevant line
+## has another effect.  We copy the entire etc/ directory from the
+## source tree first.  For an in-tree build, this will include
+## any DOC* files there may be.  So rm DOC does have an effect.
+## FIXME When we copy etc we should exclude DOC*, then copy only
+## the relevant one.  We cannot delete DOC* from the destination directory,
+## because that may include pre-existing files from another emacs.
 
 ## We install only the relevant DOC file if possible
 ## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*.
+## (Note "otherwise" is inaccurate since 2009-08-23.)
 
 ## If people complain about the h flag in tar command, take that out.
 ## That flag is also used in leim/Makefile.in
@@ -548,8 +546,7 @@ install-arch-indep: mkdir info install-etc
                rm -f  $${subdir}/*~ ; \
                rm -f  $${subdir}/*.orig ; \
                [ "$${dir}" != "${srcdir}/etc" ] && \
-                rm -f $${subdir}/[mM]akefile*.c $${subdir}/[mM]akefile*[.-]in \
-                  $${subdir}/[mM]akefile ; \
+                rm -f $${subdir}/[mM]akefile*[.-]in $${subdir}/[mM]akefile ; \
                rm -f  $${subdir}/ChangeLog* ; \
              done) ; \
        done
@@ -621,33 +618,27 @@ install-arch-indep: mkdir info install-etc
              ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir; \
              chmod a+r $(DESTDIR)${infodir}/dir); \
           fi; \
+          info_misc=`cd $${thisdir}/doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \
           cd ${srcdir}/info ; \
-          for elt in $(INFO_FILES); do \
-             test "$(HAVE_MAKEINFO)" = "no" && ! test -e $$elt && continue; \
+          for elt in ${INFO_NONMISC} $${info_misc}; do \
+             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; \
+            (cd $${thisdir}; \
+             ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
           done); \
        else true; fi
-       -unset CDPATH; \
-       thisdir=`/bin/pwd`; \
-       if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \
-       then \
-         for elt in $(INFO_FILES); do \
-           test "$(HAVE_MAKEINFO)" = "no" && ! test -e $$elt && continue; \
-           (cd $${thisdir}; \
-            ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
-         done; \
-       else true; fi
        -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS}
        thisdir=`/bin/pwd`; \
        cd ${mansrcdir}; \
-       for page in ${MAN_PAGES}; do \
+       for page in *.1; do \
          (cd $${thisdir}; \
           ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}; \
           chmod a+r $(DESTDIR)${man1dir}/$${page}; \
@@ -672,13 +663,13 @@ install-etc: mkdir
 ### 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
+       cd leim && $(MAKE) $(MFLAGS) install
 
 ### Build Emacs and install it, stripping binaries while installing them.
 install-strip:
-       $(MAKE) INSTALL_STRIP=-s install
+       $(MAKE) $(MFLAGS) INSTALL_STRIP=-s install
 
 ### Build all the directories we're going to install Emacs in. Since
 ### we may be creating several layers of directories (for example,
@@ -696,7 +687,7 @@ mkdir: FRC
        done ; \
        icondirs=`echo "$${icondirs}" | sed 's,$(srcdir)/etc/images/icons,$(DESTDIR)${icondir},g'` ; \
        umask 022 ; \
-       $(srcdir)/install-sh -d $(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 \
@@ -728,14 +719,20 @@ uninstall:
          fi ;                                          \
        done
        -rm -rf $(DESTDIR)${libexecdir}/emacs/${version}
-       (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; \
+       thisdir=`/bin/pwd`; \
+       (info_misc=`cd doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \
+         cd $(DESTDIR)${infodir} && \
+         for elt in ${INFO_NONMISC} $${info_misc}; do \
+           (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 ${mansrcdir} && for page in *.1; do \
+          rm -f $(DESTDIR)${man1dir}/$$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
@@ -829,7 +826,7 @@ bootstrap-clean: FRC
        -(cd doc/lispintro &&   $(MAKE) $(MFLAGS) maintainer-clean)
        (cd leim;     $(MAKE) $(MFLAGS) maintainer-clean)
        (cd lisp;     $(MAKE) $(MFLAGS) bootstrap-clean)
-       [ ! -e config.log ] || mv -f config.log config.log~
+       [ ! -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.
@@ -866,10 +863,15 @@ extraclean:
 # The src subdir knows how to do the right thing
 # even when the build directory and source dir are different.
 TAGS tags: lib lib-src src
-       cd src; $(MAKE) tags
+       cd src; $(MAKE) $(MFLAGS) tags
 
 check:
-       cd test/automated; $(MAKE) check
+       @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
@@ -910,6 +912,7 @@ check-info-dir: info
          case $${file} in \
            *-[0-9]*|COPYING|dir) continue ;; \
          esac ; \
+         file=`echo $${file} | sed 's/\.info//'` ; \
          grep -q -F ": ($${file})." dir || missing="$${missing} $${file}" ; \
        done ; \
        if test -n "$${missing}"; then \
@@ -937,14 +940,14 @@ 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