#! /bin/sh

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

# Copyright (C) 2004, 2005, 2006, 2007, 2008 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, GNULIB_TOOL, 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}
: ${GNULIB_TOOL=gnulib-tool}
: ${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
fi

## ---------------------------- ##
## Find the gnulib module tree. ##
## ---------------------------- ##

case $GNULIB_TOOL in
    /*  )  gnulibdir=$GNULIB_TOOL ;;		# absolute
    */* )  gnulibdir=`pwd`/$GNULIB_TOOL ;;	# relative
    *   )  gnulibdir=`which "$GNULIB_TOOL"` ;;	# PATH search
esac

# Follow symlinks
while test -h "$gnulibdir"; do

    # Resolve symbolic link.
    sedexpr1='s, -> ,#%%#,'
    sedexpr2='s,^.*#%%#\(.*\)$,\1,p'
    linkval=`ls -l "$gnulibdir" | $SED "$sedexpr1" | $SED -n "$sedexpr2"`
    test -n "$linkval" || break

    case "$linkval" in
	/* ) gnulibdir="$linkval" ;;
	* )  gnulibdir=`echo "$gnulibdir" | sed -e 's,/[^/]*$,,'`/"$linkval" ;;
    esac

done

gnulibdir=`echo "$gnulibdir" | $SED "$dirname"`

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

func_echo "running: $GNULIB_TOOL --update"
$GNULIB_TOOL --update || func_fatal_error "gnulib-tool failed"

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

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

## ---------------------------------------- ##
## Gnulib is more up-to-date than automake. ##
## ---------------------------------------- ##

func_update "$gnulibdir"/build-aux/config.guess build-aux/config.guess
func_update "$gnulibdir"/build-aux/config.sub build-aux/config.sub
func_update "$gnulibdir"/build-aux/depcomp build-aux/depcomp
func_update "$gnulibdir"/build-aux/install-sh build-aux/install-sh
func_update "$gnulibdir"/build-aux/mdate-sh build-aux/mdate-sh
func_update "$gnulibdir"/build-aux/missing build-aux/missing
func_update "$gnulibdir"/build-aux/texinfo.tex build-aux/texinfo.tex
func_update "$gnulibdir"/doc/COPYINGv3 COPYING
func_update "$gnulibdir"/doc/INSTALL INSTALL

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:
