1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-22 18:35:09 +00:00
emacs/build-aux/make-info-dir
Glenn Morris 62bd73fa7a 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.
2013-12-12 00:54:21 -08:00

94 lines
2.3 KiB
Bash
Executable File

#!/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