Commit 62bd73fa authored by Glenn Morris's avatar Glenn Morris

Stop keeping info/dir in the repository.

* build-aux/dir_top: Move here from admin/.

* build-aux/make-info-dir: New script.

* Makefile.in (bootstrap-clean): Delete info/.
(info-dir, ${srcdir}/info/dir): New rules.
(info): Also make info-dir.
(check-info): Rename from check-info-dir.
Instead of info/dir entries, check @dircategory in info/*.info.

* make-dist: Use `info' rule rather than `info-real'.
No more info/COPYING (not even the right license for info/ files).

* info/: Remove from repository.

* admin/update_autogen (info_dir):
Use dir_top from build-aux/ rather than admin/.

* .bzrignore: Ignore info/ altogether.

* doc/emacs/Makefile.in: Comment.
parent 397a32c1
2013-12-12 Glenn Morris <rgm@gnu.org>
Stop keeping info/dir in the repository.
* build-aux/dir_top: Move here from admin/.
* build-aux/make-info-dir: New script.
* Makefile.in (bootstrap-clean): Delete info/.
(info-dir, ${srcdir}/info/dir): New rules.
(info): Also make info-dir.
(check-info): Rename from check-info-dir.
Instead of info/dir entries, check @dircategory in info/*.info.
* make-dist: Use `info' rule rather than `info-real'.
No more info/COPYING (not even the right license for info/ files).
* info/: Remove from repository.
2013-12-11 Glenn Morris <rgm@gnu.org>
* info/dir: Add octave-mode.
......
......@@ -639,6 +639,10 @@ 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.
install-info: info
umask 022; ${MKDIR_P} "$(DESTDIR)${infodir}"
-unset CDPATH; \
......@@ -883,6 +887,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 +951,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 +961,20 @@ info-real: $(INFOS)
pdf: $(PDFS)
ps: $(PSS)
info-dir: ${srcdir}/info/dir
## 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
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 +1040,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"| "GNU 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.
......
2013-12-12 Glenn Morris <rgm@gnu.org>
* update_autogen (info_dir):
Use dir_top from build-aux/ rather than admin/.
* update_autogen: Add option to generate info/dir.
(Usage): Add -I.
(info_flag): New variable.
......
......@@ -212,11 +212,11 @@ commit ()
} # function commit
## FIXME use standard tools for this, generate info/dir at build time
## if needed, stop keeping in the repo.
## No longer used since info/dir is now generated at install time if needed,
## and is not in the repository any more.
info_dir ()
{
local basefile=admin/dir_top outfile=info/dir
local basefile=build-aux/dir_top outfile=info/dir
echo "Regenerating info/dir..."
......@@ -247,7 +247,8 @@ EOF
dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file`
## TODO warn about unknown topics.
## TODO warn about unknown topics (check-info in top-level
## Makefile does this).
[ "$dircat" = "$topic" ] || continue
sed -n -e 's/@value{emacsname}/Emacs/' \
......
#!/bin/sh
### make-info-dir - create info/dir, for systems without install-info
## Copyright (C) 2013 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org>
## This file is part of GNU Emacs.
## GNU Emacs is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## GNU Emacs is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
### Commentary:
## Generate info/dir, for systems without install-info.
## Expects to be called from top-level Emacs source directory.
## It only handles the case where info/dir is missing from the
## installation directory. It does not handle info/dir being present
## but missing some entries.
### Code:
if test $# -ne 1; then
echo "Specify destination file"
exit 1
fi
outfile=$1
echo "Creating $outfile..."
if test -f "$outfile"; then
echo "$outfile already present"
exit 1
fi
## Header contains non-printing characters, so this is more
## reliable than using echo.
basefile=build-aux/dir_top
if test ! -f "$basefile"; then
echo "$basefile not found"
exit 1
fi
cp $basefile $outfile
## FIXME inefficient looping.
for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \
"Emacs editing modes" "Emacs network features" "Emacs misc features" \
"Emacs lisp libraries"; do
cat - <<EOF >> $outfile
$topic
EOF
for file in info/*.info; do
## FIXME do not ignore w32 if OS is w32.
case $file in
*-xtra.info|*efaq-w32.info) continue ;;
esac
dircat=`sed -n -e 's/^INFO-DIR-SECTION //p' $file`
## TODO warn about unknown topics.
test "$dircat" = "$topic" || continue
sed -n -e '/^START-INFO-DIR-ENTRY/,/^END-INFO-DIR-ENTRY/ s/^\([^SE]\)/\1/p' \
$file >> $outfile
done
done
echo "Created $outfile"
exit 0
### make-info-dir ends here
......@@ -143,8 +143,7 @@ EMACSSOURCES= \
${srcdir}/kmacro.texi \
$(EMACS_XTRA)
## This seems pointless. The info/ directory exists in both the
## repository and the release tarfiles.
## The info/ directory exists in release tarfiles but not the repository.
mkinfodir = @${MKDIR_P} ${buildinfodir}
.PHONY: info dvi html pdf ps
......
This diff is collapsed.
This is the file .../info/dir, which contains the
topmost node of the Info hierarchy, called (dir)Top.
The first time you invoke Info you start off looking at this node.

File: dir, Node: Top This is the top of the INFO tree
The Info Directory
******************
The Info Directory is the top-level menu of major Info topics.
Type "d" in Info to return to the Info Directory. Type "q" to exit Info.
Type "?" for a list of Info commands, or "h" to visit an Info tutorial.
Type "m" to choose a menu item--for instance,
"mEmacs<Return>" visits the Emacs manual.
In Emacs Info, you can click mouse button 2 on a menu item
or cross reference to follow it to its target.
Each menu line that starts with a * is a topic you can select with "m".
Every third topic has a red * to help pick the right number to type.
* Menu:
Texinfo documentation system
* Info: (info). How to use the documentation browsing system.
Emacs
* Emacs: (emacs). The extensible self-documenting text editor.
* Emacs FAQ: (efaq). Frequently Asked Questions about Emacs.
GNU Emacs Lisp
* Emacs Lisp Intro: (eintr). A simple introduction to Emacs Lisp programming.
* Elisp: (elisp). The Emacs Lisp Reference Manual.
Emacs editing modes
* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code.
* CC Mode: (ccmode). Emacs mode for editing C, C++, Objective-C,
Java, Pike, AWK, and CORBA IDL code.
* IDLWAVE: (idlwave). Major mode and shell for IDL files.
* nXML Mode: (nxml-mode). XML editing mode with RELAX NG support.
* Octave mode: (octave-mode). Emacs mode for editing GNU Octave files.
* Org Mode: (org). Outline-based notes management and organizer.
Emacs network features
* Emacs GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration.
* ERC: (erc). Powerful and extensible IRC client for Emacs.
* EUDC: (eudc). Emacs client for directory servers (LDAP, PH).
* Gnus: (gnus). The newsreader Gnus.
* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer.
* Message: (message). Mail and news composition mode that
goes with Gnus.
* MH-E: (mh-e). Emacs interface to the MH mail system.
* Newsticker: (newsticker). A Newsticker for Emacs.
* PGG: (pgg). Emacs interface to various PGP implementations.
* Rcirc: (rcirc). Internet Relay Chat (IRC) client.
* SASL: (sasl). The Emacs SASL library.
* SC: (sc). Supercite lets you cite parts of messages
you're replying to, in flexible ways.
* Sieve: (sieve). Managing Sieve scripts in Emacs.
* TRAMP: (tramp). Transparent Remote Access, Multiple Protocol
Emacs remote file access via rsh and rcp.
Emacs misc features
* Autotype: (autotype). Convenient features for text that you enter
frequently in Emacs.
* Bovine: (bovine). Semantic bovine parser development.
* Calc: (calc). Advanced desk calculator and mathematical tool.
* Dired-X: (dired-x). Dired Extra Features.
* Ebrowse: (ebrowse). A C++ class browser for Emacs.
* EDE: (ede). The Emacs Development Environment.
* Ediff: (ediff). A visual interface for comparing and
merging programs.
* EDT: (edt). An Emacs emulation of the EDT editor.
* EIEIO: (eieio). An objects system for Emacs Lisp.
* EasyPG Assistant: (epa). An Emacs user interface to GNU Privacy Guard.
* ERT: (ert). Emacs Lisp regression testing tool.
* Eshell: (eshell). A command shell implemented in Emacs Lisp.
* Flymake: (flymake). A universal on-the-fly syntax checker.
* Forms: (forms). Emacs package for editing data bases
by filling in forms.
* Htmlfontify: (htmlfontify). Convert source code to html.
* Ido: (ido). Interactively do things with buffers and files.
* PCL-CVS: (pcl-cvs). Emacs front-end to CVS.
* RefTeX: (reftex). Emacs support for LaTeX cross-references
and citations.
* Remember: (remember). Simple information manager for Emacs.
* Semantic: (semantic). Source code parser library and utilities.
* SES: (ses). Simple Emacs Spreadsheet.
* Speedbar: (speedbar). File/Tag summarizing utility.
* SRecode: (srecode). Semantic template code generator.
* Todo Mode: (todo-mode). Make and maintain todo lists.
* VIP: (vip). An older VI-emulation for Emacs.
* VIPER: (viper). A VI-emulation mode for Emacs.
* Wisent: (wisent). Semantic Wisent parser development.
* WoMan: (woman). Browse UN*X Manual Pages "W.O. (without) Man".
Emacs lisp libraries
* Auth-source: (auth). The Emacs auth-source library.
* CL: (cl). Partial Common Lisp support for Emacs Lisp.
* D-Bus: (dbus). Using D-Bus in Emacs.
* Emacs MIME: (emacs-mime). Emacs MIME de/composition library.
* SMTP: (smtpmail). Emacs library for sending mail via SMTP.
* URL: (url). URL loading package.
* Widget: (widget). The "widget" package used by the Emacs
Customization facility.
......@@ -251,7 +251,7 @@ if [ $update = yes ]; then
echo timestamp > src/stamp-h.in
echo "Updating Info files"
make info-real
make info
echo "Updating finder, custom and autoload data"
(cd lisp && make updates EMACS="$EMACS")
......@@ -505,7 +505,7 @@ echo "Making links to \`doc/man'"
### It would be nice if they could all be symlinks to top-level copy, but
### you're not supposed to have any symlinks in distribution tar files.
echo "Making sure copying notices are all copies of \`COPYING'"
for subdir in . etc info leim lib lib-src lisp lwlib msdos nt src; do
for subdir in . etc leim lib lib-src lisp lwlib msdos nt src; do
rm -f ${tempdir}/${subdir}/COPYING
cp COPYING ${tempdir}/${subdir}
done
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment