Require pkg-config 0.26 or later in autogen.sh only.
[bpt/emacs.git] / Makefile.in
index dae475b..ffee1ec 100644 (file)
@@ -1,6 +1,6 @@
 ### @configure_input@
 
-# Copyright (C) 1992-2013 Free Software Foundation, Inc.
+# Copyright (C) 1992-2014 Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -60,8 +60,8 @@
 
 SHELL = @SHELL@
 
-# This may not work with certain non-GNU make's.  It only matters when
-# inheriting a CDPATH not starting with the current directory.
+# This only matters when inheriting a CDPATH not starting with the
+# current directory.
 CDPATH=
 
 # If Make doesn't predefine MAKE, set it here.
@@ -288,9 +288,9 @@ SUBDIR_MAKEFILES = `echo $(SUBDIR_MAKEFILES_IN:.in=) | sed 's|$(srcdir)/||g'`
 COPYDIR = ${srcdir}/etc ${srcdir}/lisp
 COPYDESTS = "$(DESTDIR)${etcdir}" "$(DESTDIR)${lispdir}"
 
-all: ${SUBDIR}
+all: ${SUBDIR} info
 
-.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 FRC
+.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32
 
 removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g'
 
@@ -298,7 +298,7 @@ removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g'
 # See comments in configure.ac 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
+epaths-force:
        @(standardlisppath=`echo "${standardlisppath}" | ${removenullpaths}` ; \
          locallisppath=`echo "${locallisppath}" | ${removenullpaths}` ; \
          buildlisppath=`echo "${buildlisppath}" | ${removenullpaths}` ; \
@@ -335,7 +335,7 @@ msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g'
 # MS-Windows format (e.g. 'c:/foo/bar'), because temacs is a MinGW
 # program that doesn't support MSYS-style paths (e.g. '/c/foo/bar' or
 # '/foo/bar').
-epaths-force-w32: FRC
+epaths-force-w32:
        @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${srcdir}"`; \
          w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}" N`; \
          w32prefixpattern=`echo "$${w32prefix}" | ${msys_sed_sh_escape}` ; \
@@ -359,7 +359,7 @@ src: lib-src
 lisp: src
 
 # These targets should be "${SUBDIR} without `src'".
-lib lib-src lisp nt: Makefile FRC
+lib lib-src lisp nt: Makefile
        cd $@ && $(MAKE) all $(MFLAGS)                         \
          CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
          LDFLAGS='${LDFLAGS}' MAKE='${MAKE}'
@@ -373,7 +373,12 @@ lib lib-src lisp nt: Makefile FRC
 # file src/foo.c forces dumping a new bootstrap-emacs, then re-byte-compiling
 # all preloaded elisp files, and only then dump the actual src/emacs, which
 # is not wrong, but is overkill in 99.99% of the cases.
-src: Makefile FRC
+#
+# Note the use of single quotes in the value of vcswitness.
+# This passes an unexpanded $srcdir to src's Makefile, which then
+# expands it using its own value of srcdir (which points to the
+# source directory of src/).
+src: Makefile
        dirstate='.bzr/checkout/dirstate';                              \
        vcswitness='$$(srcdir)/../'$$dirstate;                          \
        [ -r "$(srcdir)/$$dirstate" ] || vcswitness='';                 \
@@ -385,7 +390,7 @@ src: Makefile FRC
          LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' BOOTSTRAPEMACS="$$boot"   \
          VCSWITNESS="$$vcswitness"
 
-blessmail: Makefile src FRC
+blessmail: Makefile src
        cd lib-src && $(MAKE) maybe-blessmail $(MFLAGS) \
          MAKE='${MAKE}' archlibdir='$(archlibdir)'
 
@@ -420,9 +425,10 @@ AUTOCONF_INPUTS = $(srcdir)/configure.ac $(srcdir)/aclocal.m4
 $(srcdir)/configure: $(AUTOCONF_INPUTS)
        cd ${srcdir} && autoconf
 
+ACLOCAL_PATH = @ACLOCAL_PATH@
 ACLOCAL_INPUTS = $(srcdir)/configure.ac $(srcdir)/m4/gnulib-comp.m4
 $(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
-       cd $(srcdir) && aclocal -I m4
+       cd $(srcdir) && ACLOCAL_PATH='$(ACLOCAL_PATH)' aclocal -I m4
 
 AUTOMAKE_INPUTS = $(srcdir)/aclocal.m4 $(srcdir)/lib/Makefile.am \
   $(srcdir)/lib/gnulib.mk
@@ -505,6 +511,7 @@ install-nt:
          $(MAKE) install $(MFLAGS) prefix="${prefix}" \
            exec_prefix="${exec_prefix}" bindir="${bindir}" \
            libexecdir="${libexecdir}" archlibdir="${archlibdir}" \
+           datadir="${datadir}" \
            INSTALL_STRIP=${INSTALL_STRIP}
 
 ## In the share directory, we are deleting:
@@ -606,18 +613,12 @@ install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
          ${write_subdir}
        subdir="$(DESTDIR)${datadir}/emacs/site-lisp" ; \
          ${write_subdir} || true
-       [ -z "${GZIP_PROG}" ] || \
-         ( echo "Compressing *.el ..." ; \
-           unset CDPATH; \
-           thisdir=`/bin/pwd`; \
-           for dir in "$(DESTDIR)${lispdir}"; do \
-             cd "$${thisdir}" ; \
-             cd "$${dir}" || exit 1 ; \
-             for f in `find . -name "*.elc" -print`; do \
-               f_el=`echo "$$f" | sed 's/.elc$$/.el/'`; \
-               ${GZIP_PROG} -9n "$$f_el" ; \
-             done ; \
-           done )
+       [ -z "${GZIP_PROG}" ] || { \
+         echo "Compressing *.el ..." && \
+         cd "$(DESTDIR)${lispdir}" && \
+         find . -name '*.elc' -exec $(SHELL) -c \
+           '${GZIP_PROG} -9n `expr "$$1" : "\\(.*\\)c"`' dummy '{}' ';'; \
+       }
        -chmod -R a+r "$(DESTDIR)${datadir}/emacs/${version}" ${COPYDESTS}
 
 ## The above chmods are needed because "umask 022; tar ..." is not
@@ -643,6 +644,9 @@ install-etcdoc: src install-arch-indep
 ## If info/dir is missing, but we have install-info, we should let
 ## that handle it.  If info/dir is present and we do not have install-info,
 ## we should check for missing entries and add them by hand.
+##
+## FIXME:
+## If HAVE_MAKEINFO = no and there are no info files, do not install info/dir.
 install-info: info
        umask 022; ${MKDIR_P} "$(DESTDIR)${infodir}"
        -unset CDPATH; \
@@ -651,10 +655,9 @@ install-info: info
        if [ "`cd ${srcdir}/info && /bin/pwd`" = "$$exp_infodir" ]; then \
          true; \
        else \
-         (cd "$(DESTDIR)${infodir}"; \
-          [ -f dir ] || \
-            (cd "$${thisdir}"; \
-             ${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir") ); \
+          [ -f "$(DESTDIR)${infodir}/dir" ] || \
+             [ ! -f ${srcdir}/info/dir ] || \
+             ${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir"; \
           info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \
           cd ${srcdir}/info ; \
           for elt in ${INFO_NONMISC} $${info_misc}; do \
@@ -789,8 +792,6 @@ uninstall-nt:
            bindir="${bindir}" libexecdir="${libexecdir}" \
            archlibdir="${archlibdir}"
 
-FRC:
-
 # ==================== Cleaning up and miscellanea ====================
 
 .PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean extraclean
@@ -800,7 +801,7 @@ FRC:
 ###      normally don't want to recompile.  For example, the `mostlyclean'
 ###      target for GCC does not delete `libgcc.a', because recompiling it
 ###      is rarely necessary and takes a lot of time.
-mostlyclean: FRC
+mostlyclean:
        cd src      && $(MAKE) $(MFLAGS) mostlyclean
        cd oldXMenu && $(MAKE) $(MFLAGS) mostlyclean
        cd lwlib    && $(MAKE) $(MFLAGS) mostlyclean
@@ -820,7 +821,7 @@ mostlyclean: FRC
 ###      with them.
 ###
 ###      Delete `.dvi' files here if they are not part of the distribution.
-clean: FRC
+clean:
        -rm -f etc/emacs.tmpdesktop
        cd src      && $(MAKE) $(MFLAGS) clean
        cd oldXMenu && $(MAKE) $(MFLAGS) clean
@@ -847,7 +848,7 @@ top_bootclean=\
 top_distclean=\
        ${top_bootclean}; \
        rm -f config.status config.log~ Makefile stamp-h1 ${SUBDIR_MAKEFILES}
-distclean: FRC
+distclean:
        cd src      && $(MAKE) $(MFLAGS) distclean
        cd oldXMenu && $(MAKE) $(MFLAGS) distclean
        cd lwlib    && $(MAKE) $(MFLAGS) distclean
@@ -869,7 +870,7 @@ distclean: FRC
 ### `bootstrap-clean'
 ###      Delete everything that can be reconstructed by `make' and that
 ###      needs to be deleted in order to force a bootstrap from a clean state.
-bootstrap-clean: FRC
+bootstrap-clean:
        cd src      && $(MAKE) $(MFLAGS) bootstrap-clean
        cd oldXMenu && $(MAKE) $(MFLAGS) maintainer-clean
        cd lwlib    && $(MAKE) $(MFLAGS) maintainer-clean
@@ -904,7 +905,7 @@ bootstrap-clean: FRC
 top_maintainer_clean=\
        ${top_distclean}; \
        rm -fr autom4te.cache
-maintainer-clean: bootstrap-clean FRC
+maintainer-clean: bootstrap-clean
        cd src  && $(MAKE) $(MFLAGS) maintainer-clean
        cd leim && $(MAKE) $(MFLAGS) maintainer-clean
        cd lisp && $(MAKE) $(MFLAGS) maintainer-clean
@@ -951,7 +952,7 @@ $(DOCS):
        t=$@; IFS=-; set $$t; IFS=; cd doc/$$1 && $(MAKE) $(MFLAGS) $$2
 
 .PHONY: $(DOCS) docs pdf ps
-.PHONY: info dvi dist check html info-real info-dir force-info check-info
+.PHONY: info dvi dist check html info-real info-dir check-info
 
 ## TODO add etc/refcards.
 docs: $(DOCS)
@@ -963,13 +964,21 @@ ps: $(PSS)
 
 info-dir: ${srcdir}/info/dir
 
+## Not strictly necessary, but speeds things up a bit by stopping
+## the info-dir rule from running when not needed.
+## Hopefully doc/misc/*.texi is not too long for some systems?
+info_dir_deps = ${srcdir}/build-aux/dir_top \
+       ${srcdir}/doc/emacs/emacs.texi \
+       ${srcdir}/doc/lispintro/emacs-lisp-intro.texi \
+       ${srcdir}/doc/lispref/elisp.texi ${srcdir}/doc/misc/*.texi
+
 ## It would be much simpler if info/dir was only created in the
 ## installation location by the install-info rule, but we also
 ## need one in the source directory for people running uninstalled.
-## The dependency on *.texi is not essential, but it keeps
-## this rule from running needlessly when there are no changes.
-${srcdir}/info/dir: ${srcdir}/build-aux/dir_top ${srcdir}/doc/*/*.texi
-       ${MAKE} ${MFLAGS} info-real
+## FIXME it would be faster to use the install-info program if we have it,
+## but then we would need to depend on info-real, which would
+## slow down parallelization.
+${srcdir}/info/dir: ${info_dir_deps}
        tempfile=info-dir.$$$$; \
        rm -f $${tempfile}; \
        thisdir=`pwd`; \
@@ -1024,7 +1033,6 @@ uninstall-pdf: $(UNINSTALL_PDF)
 uninstall-ps: $(UNINSTALL_PS)
 
 
-force-info:
 # Note that man/Makefile knows how to put the info files in $(srcdir),
 # so we can do ok running make in the build dir.
 # This used to have a clause that exited with an error if MAKEINFO = no.
@@ -1036,7 +1044,7 @@ force-info:
 # would require changing every rule in doc/ that builds an info file,
 # and it's not worth it.  This case is only relevant if you download a
 # release, then change the .texi files.
-info: force-info
+info:
        @if test "$(HAVE_MAKEINFO)" = "no"; then \
          echo "Configured --without-makeinfo, not building manuals" ; \
        else \
@@ -1054,7 +1062,7 @@ check-info: info
          esac ; \
          cat=`sed -n 's/^INFO-DIR-SECTION //p' $${file}`; \
          case $${cat} in \
-          "Texinfo documentation system" | "Emacs"| "GNU Emacs Lisp" | \
+          "Texinfo documentation system" | "Emacs"| "Emacs lisp" | \
            "Emacs editing modes" | "Emacs network features" | \
           "Emacs misc features" | "Emacs lisp libraries" ) : ;; \
           *)  bad="$${bad} $${file}" ;; \
@@ -1078,10 +1086,10 @@ check-info: info
 #  * Run autogen.sh.
 #  * Rebuild Makefile, to update the build procedure itself.
 #  * Do the actual build.
-bootstrap: bootstrap-clean FRC
+bootstrap: bootstrap-clean
        cd $(srcdir) && ./autogen.sh
        $(MAKE) $(MFLAGS) MAKEFILE_NAME=force-Makefile force-Makefile
-       $(MAKE) $(MFLAGS) info all
+       $(MAKE) $(MFLAGS) all
 
 .PHONY: check-declare