]> code.delx.au - gnu-emacs/blobdiff - autogen/update_autogen
Remove the autogen/ directory
[gnu-emacs] / autogen / update_autogen
diff --git a/autogen/update_autogen b/autogen/update_autogen
deleted file mode 100755 (executable)
index 264d8d8..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/bin/bash
-### update_autogen - update the generated files in Emacs autogen/ directory
-
-## Copyright (C) 2011-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:
-
-## This is a helper script to update the pre-built generated files in
-## the autogen/ directory.  This is suitable for running from cron.
-## Only Emacs maintainers need use this, so it uses bash features.
-##
-## With the -l option, it also updates the versioned loaddefs-like
-## files in lisp/.  These include ldefs-boot, cl-loaddefs, rmail, etc.
-
-### Code:
-
-die ()                 # write error to stderr and exit
-{
-    [ $# -gt 0 ] && echo "$PN: $@" >&2
-    exit 1
-}
-
-PN=${0##*/}                     # basename of script
-PD=${0%/*}
-
-[ "$PD" = "$0" ] && PD=.        # if PATH includes PWD
-
-## This should be the autogen directory.
-cd $PD
-cd ../
-[ -d autogen ] || die "Could not locate autogen directory"
-
-
-usage ()
-{
-    cat 1>&2 <<EOF
-Usage: ${PN} [-f] [-c] [-q] [-l [-L]] [-C] [-- make-flags]
-Update the generated files in the Emacs autogen/ directory.
-Options:
--f: force an update even if the source files are locally modified.
--c: if the update succeeds and the generated files are modified,
-    commit them (caution).
--q: be quiet; only give error messages, not status messages.
--l: also update the versioned loaddefs-like files in lisp/.
-This requires a build.  Passes any non-option args to make (eg -- -j2).
--L: also update ldefs-boot.el.
--C: start from a clean state.  Slower, but more correct.
-EOF
-    exit 1
-}
-
-
-## Defaults.
-
-force=
-commit=
-quiet=
-clean=
-ldefs_flag=
-lboot_flag=
-
-## Parameters.
-ldefs_in=lisp/loaddefs.el
-ldefs_out=lisp/ldefs-boot.el
-sources="configure.ac lib/Makefile.am"
-genfiles="
-  configure aclocal.m4 src/config.in lib/Makefile.in
-  build-aux/compile build-aux/config.guess build-aux/config.sub
-  build-aux/depcomp build-aux/install-sh build-aux/missing
-"
-
-for g in $genfiles; do
-    basegen="$basegen ${g##*/}"
-done
-
-[ "$basegen" ] || die "internal error"
-
-tempfile=/tmp/$PN.$$
-
-trap "rm -f $tempfile 2> /dev/null" EXIT
-
-
-while getopts ":hcflqCL" option ; do
-    case $option in
-        (h) usage ;;
-
-        (c) commit=1 ;;
-
-        (f) force=1 ;;
-
-        (l) ldefs_flag=1 ;;
-
-        (q) quiet=1 ;;
-
-        (C) clean=1 ;;
-
-        (L) lboot_flag=1 ;;
-
-        (\?) die "Bad option -$OPTARG" ;;
-
-        (:) die "Option -$OPTARG requires an argument" ;;
-
-        (*) die "getopts error" ;;
-    esac
-done
-shift $(( --OPTIND ))
-OPTIND=1
-
-
-## Does not work 100% because a lot of Emacs batch output comes on stderr (?).
-[ "$quiet" ] && exec 1> /dev/null
-
-
-echo "Running bzr status..."
-
-bzr status -S $sources ${ldefs_flag:+lisp} >| $tempfile || \
-    die "bzr status error for sources"
-
-## The lisp portion could be more permissive, eg only care about .el files.
-while read stat file; do
-
-    case $stat in
-        M)
-            echo "Locally modified: $file"
-            [ "$force" ] || die "There are local modifications"
-            ;;
-
-        *) die "Unexpected status ($stat) for $file" ;;
-    esac
-done < $tempfile
-
-
-## Probably this is overkill, and there's no need to "bootstrap" just
-## for making autoloads.
-[ "$clean" ] && {
-
-    echo "Running 'make maintainer-clean'..."
-
-    make maintainer-clean #|| die "Cleaning error"
-
-    rm -f $ldefs_in
-}
-
-
-echo "Running autoreconf..."
-
-autoreconf ${clean:+-f} -i -I m4 2>| $tempfile
-
-retval=$?
-
-## Annoyingly, autoreconf puts the "installing `./foo' messages on stderr.
-if [ "$quiet" ]; then
-    grep -v 'installing `\.' $tempfile 1>&2
-else
-    cat "$tempfile" 1>&2
-fi
-
-[ $retval -ne 0 ] && die "autoreconf error"
-
-
-cp $genfiles autogen/
-
-
-cd autogen
-
-echo "Checking status of generated files..."
-
-bzr status -S $basegen >| $tempfile || \
-    die "bzr status error for generated files"
-
-
-modified=
-
-while read stat file; do
-
-    [ "$stat" != "M" ] && die "Unexpected status ($stat) for generated $file"
-
-    modified="$modified $file"
-
-done < $tempfile
-
-
-cd ../
-
-
-## Uses global $commit.
-commit ()
-{
-    local type=$1
-    shift
-
-    [ $# -gt 0 ] || {
-        echo "No files were modified"
-        return 0
-    }
-
-    echo "Modified file(s): $@"
-
-    [ "$commit" ] || return 0
-
-    echo "Committing..."
-
-    ## bzr status output is always relative to top-level, not PWD.
-    bzr commit -m "Auto-commit of $type files." "$@" || return $?
-
-    echo "Committed files: $@"
-}                               # function commit
-
-
-commit "generated" $modified || die "bzr commit error"
-
-
-[ "$ldefs_flag" ] || exit 0
-
-
-echo "Finding loaddef targets..."
-
-sed -n -e '/^AUTOGEN_VCS/,/^$/ s/\\//p' lisp/Makefile.in | \
-    sed '/AUTOGEN_VCS/d' >| $tempfile || die "sed error"
-
-genfiles=
-
-while read genfile; do
-
-    [ -r lisp/$genfile ] || die "Unable to read $genfile"
-
-    genfiles="$genfiles $genfile"
-done < $tempfile
-
-
-[ "$genfiles" ] || die "Error setting genfiles"
-
-
-[ -e Makefile ] || {
-    echo "Running ./configure..."
-
-    ## Minimize required packages.
-    ./configure --without-x || die "configure error"
-}
-
-
-## Build the minimum needed to get the autoloads.
-echo "Running lib/ make..."
-
-make -C lib "$@" all || die "make lib error"
-
-
-echo "Running src/ make..."
-
-make -C src "$@" bootstrap-emacs || die "make src error"
-
-
-echo "Running lisp/ make..."
-
-make -C lisp "$@" autoloads EMACS=../src/bootstrap-emacs || die "make src error"
-
-
-## Ignore comment differences.
-[ ! "$lboot_flag" ] || \
-    diff -q -I '^;' $ldefs_in $ldefs_out || \
-    cp $ldefs_in $ldefs_out || die "cp ldefs_boot error"
-
-
-cd lisp
-
-echo "Checking status of loaddef files..."
-
-## It probably would be fine to just check+commit lisp/, since
-## making autoloads should not effect any other files.  But better
-## safe than sorry.
-bzr status -S $genfiles ${ldefs_out#lisp/} >| $tempfile || \
-    die "bzr status error for generated files"
-
-
-modified=
-
-while read stat file; do
-
-    [ "$stat" != "M" ] && die "Unexpected status ($stat) for generated $file"
-    modified="$modified $file"
-
-done < $tempfile
-
-
-cd ../
-
-
-commit "loaddefs" $modified || die "bzr commit error"
-
-
-exit 0
-
-### update_autogen ends here