summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2013-12-12 17:41:31 -0500
committerGlenn Morris <rgm@gnu.org>2013-12-12 17:41:31 -0500
commitb55e11bf851ac73e1041a4a24cca3f81d93039e4 (patch)
treeb24425084a1636447ccd57cadedae75737c3dfc2
parent2cc82b9fbc6e67878e89d7006cc69ffb5227daa1 (diff)
downloademacs-b55e11bf851ac73e1041a4a24cca3f81d93039e4.tar.gz
Generate info/dir from .texi files rather than .info files
* Makefile.in (install-info): Handle missing info/dir. (info_dir_deps): New variable. (${srcdir}/info/dir): Depend on .texi files rather than .info files. (check-info): Update topics. * build-aux/make-info-dir: Use .texi files rather than .info files. Update topics. * doc/lispintro/emacs-lisp-intro.texi: * doc/lispref/elisp.texi: Tweak dircategory (all the others use "Emacs" + lower-case).
-rw-r--r--ChangeLog7
-rw-r--r--Makefile.in21
-rwxr-xr-xbuild-aux/make-info-dir22
-rw-r--r--doc/lispintro/ChangeLog2
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi2
-rw-r--r--doc/lispref/ChangeLog4
-rw-r--r--doc/lispref/elisp.texi2
7 files changed, 49 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 09624a6cf96..d1404a0c01c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2013-12-12 Glenn Morris <rgm@gnu.org>
+ * Makefile.in (install-info): Handle missing info/dir.
+ (info_dir_deps): New variable.
+ (${srcdir}/info/dir): Depend on .texi files rather than .info files.
+ (check-info): Update topics.
+ * build-aux/make-info-dir: Use .texi files rather than .info files.
+ Update topics.
+
* Makefile.in (install-info): Remove some useless subshells.
Stop keeping info/dir in the repository.
diff --git a/Makefile.in b/Makefile.in
index 7effadd6479..c2871d6f735 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -643,6 +643,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; \
@@ -652,6 +655,7 @@ install-info: info
true; \
else \
[ -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 ; \
@@ -961,12 +965,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.
-## FIXME Change make-info-dir to use texi files rather than info-files,
-## depend on ${srcdir}/doc/*/*.texi here rather than info-real.
-${srcdir}/info/dir: info-real ${srcdir}/build-aux/dir_top
+## 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`; \
@@ -1051,7 +1064,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}" ;; \
diff --git a/build-aux/make-info-dir b/build-aux/make-info-dir
index 61f3b1a243c..2bac1f89392 100755
--- a/build-aux/make-info-dir
+++ b/build-aux/make-info-dir
@@ -60,7 +60,13 @@ cp $basefile $outfile
## FIXME inefficient looping.
-for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \
+## What we should do is loop once over files, collecting topic and
+## direntry information for each. Then loop over topics and write
+## out the results. But that seems to require associative arrays,
+## and I do not know how to do that with portable sh.
+## Could use Emacs instead of sh, but till now info generation does
+## not require Emacs to have been built.
+for topic in "Texinfo documentation system" "Emacs" "Emacs lisp" \
"Emacs editing modes" "Emacs network features" "Emacs misc features" \
"Emacs lisp libraries"; do
@@ -68,19 +74,25 @@ for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \
$topic
EOF
- for file in info/*.info; do
+ ## Bit faster than doc/*/*.texi.
+ for file in doc/emacs/emacs.texi doc/lispintro/emacs-lisp-intro.texi \
+ doc/lispref/elisp.texi doc/misc/*.texi; do
## FIXME do not ignore w32 if OS is w32.
case $file in
- *-xtra.info|*efaq-w32.info) continue ;;
+ *-xtra.texi|*efaq-w32.texi|*doclicense.texi) continue ;;
esac
- dircat=`sed -n -e 's/^INFO-DIR-SECTION //p' $file`
+ dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file`
## TODO warn about unknown topics.
+ ## (check-info in top-level Makefile does that.)
test "$dircat" = "$topic" || continue
- sed -n -e '/^START-INFO-DIR-ENTRY/,/^END-INFO-DIR-ENTRY/ s/^\([^SE]\)/\1/p' \
+
+ sed -n -e 's/@value{emacsname}/Emacs/' \
+ -e 's/@acronym{\([A-Z]*\)}/\1/' \
+ -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \
$file >> $outfile
done
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index b8c2c93bbb6..57dc740fbfa 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,5 +1,7 @@
2013-12-12 Glenn Morris <rgm@gnu.org>
+ * emacs-lisp-intro.texi: Tweak dircategory.
+
* emacs-lisp-intro.texi: Sync direntry with info/dir version.
2013-12-02 Paul Eggert <eggert@cs.ucla.edu>
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 0111c58ad82..396780408a5 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -96,7 +96,7 @@
@c ----------------------------------------------------
-@dircategory GNU Emacs Lisp
+@dircategory Emacs lisp
@direntry
* Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming.
@end direntry
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index f2b6026fe26..9bdc35a112c 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,7 @@
+2013-12-12 Glenn Morris <rgm@gnu.org>
+
+ * elisp.texi: Tweak dircategory.
+
2013-12-12 Eli Zaretskii <eliz@gnu.org>
* nonascii.texi (Encoding and I/O): Document file-name encoding
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 0e09b1eed2d..d6f7df5fb01 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -117,7 +117,7 @@ developing GNU and promoting software freedom.''
@documentencoding UTF-8
-@dircategory GNU Emacs Lisp
+@dircategory Emacs lisp
@direntry
* Elisp: (elisp). The Emacs Lisp Reference Manual.
@end direntry