#! /bin/sh

# bootstrap (GNU M4) version 2009-03-23
# Written by Gary V. Vaughan  <gary@gnu.org>

# Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software
# Foundation, Inc.

# This file is part of GNU M4.
#
# GNU M4 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 M4 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 this program.  If not, see <http://www.gnu.org/licenses/>.

# Usage: $progname [options]

# -f      --force            bootstrap even when sources are not from git
# -v      --version          print version information
# -h,-?   --help             print short or long help message

# You can also set the following variables to help $progname
# locate the right tools:
#   AUTORECONF, CONFIG_SHELL, GNULIB_SRCDIR, M4, RM, SED

# This script bootstraps a git or CVS checkout of GNU M4 by correctly
# calling out to parts of the GNU Build Platform.  Currently this
# requires GNU Autoconf 2.60, GNU Automake 1.10.1, and bleeding edge
# git or CVS snapshots of GNU Gnulib.

# Report bugs to <bug-m4@gnu.org>

: ${AUTORECONF=autoreconf}
: ${CONFIG_SHELL=/bin/sh}
: ${RM='rm -f'}
: ${SED=sed}

# Ensure file names are sorted consistently across platforms.
LC_ALL=C
export LC_ALL

config_macro_dir=m4

dirname="s,/[^/]*$,,"
basename="s,^.*/,,g"

# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
# is ksh but when the shell is invoked as "sh" and the current value of
# the _XPG environment variable is not equal to 1 (one), the special
# positional parameter $0, within a function call, is the name of the
# function.
progpath="$0"

# The name of this program:
progname=`echo "$progpath" | $SED "$basename"`
PROGRAM=bootstrap

# Detect whether this is a version control system checkout or a tarball
vcs_only_file=HACKING

# func_echo arg...
# Echo program name prefixed message.
func_echo ()
{
    echo $progname: ${1+"$@"}
}


# func_error arg...
# Echo program name prefixed message to standard error.
func_error ()
{
    echo $progname: ${1+"$@"} >&2
}

# func_fatal_error arg...
# Echo program name prefixed message to standard error, and exit.
func_fatal_error ()
{
    func_error ${1+"$@"}
    exit $EXIT_FAILURE
}

# func_verbose arg...
# Echo program name prefixed message in verbose mode only.
func_verbose ()
{
    $opt_verbose && func_error ${1+"$@"}
}

# func_missing_arg argname
# Echo program name prefixed message to standard error and set global
# exit_cmd.
func_missing_arg ()
{
   func_error "missing argument for $1"
   exit_cmd=exit
}

# func_fatal_help arg...
# Echo program name prefixed message to standard error, followed by
# a help hint, and exit.
func_fatal_help ()
{
    func_error ${1+"$@"}
    func_fatal_error "Try \`$progname --help' for more information."
}

# func_missing_arg argname
# Echo program name prefixed message to standard error and set global
# exit_cmd.
func_missing_arg ()
{
   func_error "missing argument for $1"
   exit_cmd=exit
}

# func_usage
# Echo short help message to standard output and exit.
func_usage ()
{
    $SED '/^# Usage:/,/# -h/ {
	s/^# //; s/^# *$//;
	s/\$progname/'$progname'/;
	p;
    }; d' < "$progpath"
    echo
    echo "run \`$progname --help | more' for full usage"
    exit $EXIT_SUCCESS
}

# func_help
# Echo long help message to standard output and exit.
func_help ()
{
    $SED '/^# Usage:/,/# Report bugs to/ {
	s/^# //; s/^# *$//;
	s/\$progname/'$progname'/;
	p;
     }; d' < "$progpath"
    exit $EXIT_SUCCESS
}

# func_version
# Echo version message to standard output and exit.
func_version ()
{
    $SED '/^# '$PROGRAM' (GNU /,/# warranty; / {
	s/^# //; s/^# *$//;
	s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/;
	p;
     }; d' < "$progpath"
     exit $EXIT_SUCCESS
}

# func_update
# Copy $1 to $2 if it is newer.
func_update ()
{
  if test -f "$2" && cmp -s "$1" "$2" ; then
    func_verbose "$2 is up-to-date"
  else
    func_echo "copying $1 -> $2"
    cp "$1" "$2"
  fi
}

# Parse options once, thoroughly.  This comes as soon as possible in
# the script to make things like `bootstrap --version' happen quickly.
{
  # sed scripts:
  my_sed_single_opt='1s/^\(..\).*$/\1/;q'
  my_sed_single_rest='1s/^..\(.*\)$/\1/;q'
  my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
  my_sed_long_arg='1s/^--[^=]*=//'

  # this just eases exit handling
  while test $# -gt 0; do
    opt="$1"
    shift
    case $opt in
      # Separate optargs to short options:
      -f|--force)	vcs_only_file=					;;
      -\?|-h)		func_usage					;;
      --help)		func_help					;;
      --version)	func_version					;;
      --)		break						;;
      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
      *)		set -- "$opt" ${1+"$@"};	break		;;
    esac
  done

  # Bail if the options were screwed
  $exit_cmd $EXIT_FAILURE

  if test -n "$vcs_only_file" && test ! -r "$vcs_only_file"; then
    func_fatal_error \
      "Bootstrapping from a non-version-control distribution is risky."
  fi
}

## ---------------- ##
## Version control. ##
## ---------------- ##

# gnulib-tool updates m4/.{git,cvs}ignore and lib/.{git,cvs}ignore, and
# keeping generated files under version control does not make sense.
# Since lib is entirely ignored, we only need to prepopulate the m4 ignore
# files with generated files not tracked by gnulib-tool.
if test -f $config_macro_dir/.gitignore ; then
  :
else
  func_echo "creating initial $config_macro_dir/.cvsignore"
  cat > $config_macro_dir/.cvsignore <<\EOF
# files created by gnulib, but that gnulib doesn't track
*~
.cvsignore
.gitignore
gnulib-comp.m4
# gnulib-tool edits below here
EOF
  func_echo "creating initial $config_macro_dir/.gitignore"
  cp $config_macro_dir/.cvsignore $config_macro_dir/.gitignore
fi

# See if we can use gnulib's git-merge-changelog merge driver.
if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
  if git config merge.merge-changelog.driver >/dev/null ; then
    :
  elif (git-merge-changelog --version) >/dev/null 2>/dev/null ; then
    func_echo "initializing git-merge-changelog driver"
    git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
    git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B'
  else
    func_echo "consider installing git-merge-changelog from gnulib"
  fi
  if git config diff.texinfo.funcname >/dev/null ; then
    :
  else
    func_echo "initializing git texinfo diff driver"
    git config diff.texinfo.funcname '^@node[	 ][	 ]*\\([^,][^,]*\\)'
  fi
fi

## ------------------------------ ##
## Update the gnulib module tree. ##
## ------------------------------ ##

if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
  if test -f gnulib/gnulib-tool ; then
    func_echo "updating gnulib submodule"
    git submodule update \
      || func_fatal_error "Unable to update gnulib"
  else
    # A fresh checkout creates an empty subdirectory gnulib.  However,
    # older git didn't know how to clone into an empty subdir.  If the
    # user provided GNULIB_SRCDIR, then make the initial clone refer
    # to the existing checkout, to save network traffic.
    func_echo "importing gnulib submodule"
    if test -d "$GNULIB_SRCDIR" ; then
      rmdir gnulib 2>/dev/null
      git clone --reference "$GNULIB_SRCDIR" git://git.sv.gnu.org/gnulib.git \
	&& git submodule init && git submodule update \
	|| func_fatal_error "Unable to update gnulib"
    else
      git submodule update --init \
	|| func_fatal_error "Unable to update gnulib"
    fi
  fi
else
  func_echo "git not detected.  If needed, update gnulib subdirectory manually"
fi

## ---------------------- ##
## Import Gnulib modules. ##
## ---------------------- ##

func_echo "running: $CONFIG_SHELL gnulib/gnulib-tool --update"
$CONFIG_SHELL gnulib/gnulib-tool --update \
  || func_fatal_error "gnulib-tool failed"

## ----------- ##
## Autoreconf. ##
## ----------- ##

func_echo "running: $AUTORECONF --verbose --install"
$AUTORECONF --verbose --install || func_fatal_error "autoreconf failed"

exit 0

# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "# bootstrap (GNU M4) version "
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "$"
# End:
