* lisp/net/eww.el (eww-mode) <eww-current-title>: Make local.
[bpt/emacs.git] / Makefile.in
index aedb9ac..76a0304 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.
 
@@ -373,6 +373,11 @@ 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.
+#
+# 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 FRC
        dirstate='.bzr/checkout/dirstate';                              \
        vcswitness='$$(srcdir)/../'$$dirstate;                          \
@@ -505,6 +510,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 +612,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
@@ -639,6 +639,13 @@ install-etcdoc: src install-arch-indep
             chown $${installuser} "$(DESTDIR)${etcdocdir}/$${docfile}" || true ; \
        else true; fi
 
+## FIXME:
+## 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; \
@@ -647,10 +654,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 \
@@ -883,6 +889,7 @@ bootstrap-clean: FRC
          [ ! -d $$dir ] || (cd $$dir && $(MAKE) $(MFLAGS) bootstrap-clean); \
        done
        [ ! -f config.log ] || mv -f config.log config.log~
+       rm -rf ${srcdir}/info
        ${top_bootclean}
 
 ### `maintainer-clean'
@@ -946,7 +953,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 force-info check-info-dir
+.PHONY: info dvi dist check html info-real info-dir force-info check-info
 
 ## TODO add etc/refcards.
 docs: $(DOCS)
@@ -956,6 +963,28 @@ info-real: $(INFOS)
 pdf: $(PDFS)
 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.
+## 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`; \
+       (cd ${srcdir} && ./build-aux/make-info-dir $${thisdir}/$${tempfile}); \
+       ${srcdir}/build-aux/move-if-change $${tempfile} ${srcdir}/info/dir
 
 INSTALL_DVI = install-emacs-dvi install-lispref-dvi \
        install-lispintro-dvi install-misc-dvi
@@ -1021,28 +1050,31 @@ info: force-info
        @if test "$(HAVE_MAKEINFO)" = "no"; then \
          echo "Configured --without-makeinfo, not building manuals" ; \
        else \
-         $(MAKE) $(MFLAGS) info-real ; \
+         $(MAKE) $(MFLAGS) info-real info-dir; \
        fi
 
-# The info/dir file must be updated by hand when new manuals are added.
-# Cannot add an info/dir entry for efaq-w32 since it is not installed
-# on all platforms.
-check-info-dir: info
+## build-aux/make-info-dir expects only certain dircategories.
+check-info: info
        cd info ; \
-       missing= ; \
+       bad= ; \
        for file in *; do \
          test -f "$${file}" || continue ; \
          case $${file} in \
-           *-[0-9]*|COPYING|dir|efaq-w32*) continue ;; \
+           *-[0-9]*|COPYING|dir) continue ;; \
          esac ; \
-         file=`echo $${file} | sed 's/\.info//'` ; \
-         grep -q -F ": ($${file})." dir || missing="$${missing} $${file}" ; \
+         cat=`sed -n 's/^INFO-DIR-SECTION //p' $${file}`; \
+         case $${cat} in \
+          "Texinfo documentation system" | "Emacs"| "Emacs lisp" | \
+           "Emacs editing modes" | "Emacs network features" | \
+          "Emacs misc features" | "Emacs lisp libraries" ) : ;; \
+          *)  bad="$${bad} $${file}" ;; \
+         esac; \
        done ; \
-       if test -n "$${missing}"; then \
-         echo "Missing info/dir entries: $${missing}" ; \
+       if test -n "$${bad}"; then \
+         echo "Unexpected dircategory in: $${bad}" ; \
          exit 1 ; \
        fi ; \
-       echo "info/dir is OK"
+       echo "info files are OK"
 
 #### Bootstrapping.