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).
This commit is contained in:
parent
2cc82b9fbc
commit
b55e11bf85
7 changed files with 49 additions and 11 deletions
|
@ -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.
|
||||
|
|
21
Makefile.in
21
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}" ;; \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue