#! /bin/sh
#
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#

# A script to run the GNU autotools to regenerate files for HDF4.
# If the paths of the autotools are not specified by the user, they
# are hardcoded to point to their locations on HDF4 Linux machines.
# Users can specify the locations of the autotools with the following
# variables:
# AUTOCONF, AUTOMAKE, ACLOCAL, AUTOHEADER should be the path to the
# corresponding tools.
# LIBTOOL_DIR should be the path to the base libtool directory;
# $LIBTOOL_DIR/bin/libtool should invoke libtool, while
# $LIBTOOL_DIR/share/aclocal needs to be included by aclocal.
# Be very careful when specifying these tools manually!  There are a lot
# of versions that can get confused (not even counting the m4 utility)!

# HDF4 currently uses the following versions of the autotools:
AUTOCONF_VERSION="autoconf (GNU Autoconf) 2.69"
AUTOMAKE_VERSION="automake (GNU automake) 1.14.1"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.69"
ACLOCAL_VERSION="aclocal (GNU automake) 1.14.1"
LIBTOOL_VERSION="(GNU libtool) 2.4.2"
M4_VERSION="m4 (GNU M4) 1.4.17"

#
# When upgrading automake's version, don't forget to also update its
# helper utilities, especially depcomp.

# If the user has defined environment variables pointing to the autotools,
# use those (but check their versions first!).  Otherwise, assume that
# we're running on an HDF Group machine with access to the autotools 
# in mnt/hdf/packages.
if test -z ${AUTOCONF}; then
  AUTOCONF=/mnt/hdf/packages/autoconf/autoconf-2.69/bin/autoconf
fi
if test -z ${AUTOMAKE}; then
  AUTOMAKE=/mnt/hdf/packages/automake/automake-1.14.1/bin/automake-1.14
fi
if test -z ${AUTOHEADER}; then
  AUTOHEADER=/mnt/hdf/packages/autoconf/autoconf-2.69/bin/autoheader
fi
if test -z ${ACLOCAL}; then
  ACLOCAL=/mnt/hdf/packages/automake/automake-1.14.1/bin/aclocal-1.14
fi
if test -z ${LIBTOOL}; then
  LIBTOOL=/mnt/hdf/packages/libtool/libtool-2.4.2/bin/libtool
fi
if test -z ${M4}; then
  M4=/mnt/hdf/packages/m4/m4-1.4.17/bin/m4
fi

# Check version numbers of all autotools against the "correct" versions
AC_VERS=`${AUTOCONF} --version 2>&1 | grep "^${AUTOCONF_VERSION}"`
if test -z "${AC_VERS}"; then
   echo "${AUTOCONF} version is not ${AUTOCONF_VERSION}"
   exit 1
fi
AM_VERS=`${AUTOMAKE} --version 2>&1 | grep "^${AUTOMAKE_VERSION}"`
if test -z "${AM_VERS}"; then
   echo "${AUTOMAKE} version is not ${AUTOMAKE_VERSION}"
   exit 1
fi
AH_VERS=`${AUTOHEADER} --version 2>&1 | grep "^${AUTOHEADER_VERSION}"`
if test -z "${AH_VERS}"; then
   echo "${AUTOHEADER} version is not ${AUTOHEADER_VERSION}"
   exit 1
fi
AL_VERS=`${ACLOCAL} --version 2>&1 | grep "^${ACLOCAL_VERSION}"`
if test -z "${AL_VERS}"; then
   echo "${ACLOCAL} version is not ${ACLOCAL_VERSION}"
   exit 1
fi
LT_VERS=`${LIBTOOL} --version 2>&1 | grep "${LIBTOOL_VERSION}"`
if test -z "${LT_VERS}"; then
   echo "${LIBTOOL} version is not ${LIBTOOL_VERSION}"
   exit 1
fi
M4_VERS=`${M4} --version 2>&1 | grep "${M4_VERSION}"`
if test -z "${M4_VERS}"; then
   echo "${M4} version is not ${M4_VERSION}"
   exit 1
fi

# Make sure that the tools are in the path.
AUTOCONF_DIR=`dirname ${AUTOCONF}`
LIBTOOL_DIR=`dirname ${LIBTOOL}`
M4_DIR=`dirname ${M4}`
PATH=${AUTOCONF_DIR}:${M4_DIR}:$PATH

# Run autoconf/automake commands in order
  echo ${ACLOCAL} -I ${LIBTOOL_DIR}/../share/aclocal
  ${ACLOCAL} -I ${LIBTOOL_DIR}/../share/aclocal || exit 1

  echo ${AUTOHEADER}
  ${AUTOHEADER} || exit 1

  echo ${AUTOMAKE} --add-missing
  ${AUTOMAKE} --add-missing || exit 1

  echo ${AUTOCONF}
  ${AUTOCONF} || exit 1

exit 0
