hdf5/bin/reconfigure
James Laird 6b5a918b1e [svn-r12929] Hopefully this really is a fix for the tg-login errors.
The version of libtool used by HDF5 isn't directly affected by the reconfigure
script; instead, libtoolize --force must be used by hand.  Libtool was the
source of the problem, so rolling its version back to 1.5.14 should solve the
issue (at least temporarily).

Reconfigure should still work on both heping and kagiso.

Tested on heping, kagiso, and tg-login3.
2006-11-16 15:44:35 -05:00

148 lines
5.6 KiB
Bash
Executable File

#! /bin/sh
#
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the files COPYING and Copyright.html. COPYING can be found at the root
# of the source code distribution tree; Copyright.html can be found at the
# root level of an installed copy of the electronic HDF5 document set and
# is linked from the top-level documents page. It can also be found at
# http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
# access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
#
# A script to reconfigure autotools for HDF5, and to recreate other
# generated files specifc to HDF5.
# If the paths of the autotools are not specified by the user, they
# are hardcoded to point to their locations in AFS on HDF5 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)!
# HDF5 currently uses the following versions of the autotools:
AUTOCONF_VERSION="autoconf (GNU Autoconf) 2.60"
AUTOMAKE_VERSION="automake (GNU automake) 1.9.6"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.60"
ACLOCAL_VERSION="aclocal (GNU automake) 1.9.6"
LIBTOOL_VERSION="(GNU libtool) 1.5.14"
#
# When upgrading automake's version, don't forget to also update its
# helper utilities, especially depcomp.
# If we're running on kagiso, set up paths to point to the correct autotools here
kagiso=`hostname | grep "^kagiso"`
if test "x${kagiso}" != "x"; then
AUTOCONF=/home1/packages/autoconf/autoconf-2.60/bin/autoconf
AUTOMAKE=/home1/packages/automake/automake-1.9.6/bin/automake-1.9
AUTOHEADER=/home1/packages/autoconf/autoconf-2.60/bin/autoheader
ACLOCAL=/home1/packages/automake/automake-1.9.6/bin/aclocal-1.9
# When using the default settings, add the correct version of autoconf
# binaries to path (otherwise aclocal may find an outdated version of
# autom4ate and complain about an
# "unknown language": Autoconf-without-aclocal-m4.
PATH=/home1/packages/autoconf-2.60/bin:$PATH
# Use the latest version of M4
PATH=/home1/packages/m4/m4-1.4.7/bin:/home1/packages/m4/m4-1.4.7/share:$PATH
# Libtool is used to supply macros that aclocal uses
LIBTOOL=/home1/packages/libtool/libtool-1.5.14/bin/libtool
fi
# If we're on some other machine and automake et. al. aren't specified, guess
# that it's a Linux system connected to NCSA AFS.
# Someday this check could be smarter (e.g. check to make sure that
# 'autoconf' isn't the correct version before replacing it with this
# default.
if test -z ${AUTOCONF}; then
AUTOCONF=/afs/ncsa/projects/hdf/packages/autoconf-2.60/bin/autoconf
fi
if test -z ${AUTOMAKE}; then
AUTOMAKE=/afs/ncsa/projects/hdf/packages/automake-1.9.6/bin/automake-1.9
fi
if test -z ${AUTOHEADER}; then
AUTOHEADER=/afs/ncsa/projects/hdf/packages/autoconf-2.60/bin/autoheader
fi
if test -z ${ACLOCAL}; then
ACLOCAL=/afs/ncsa/projects/hdf/packages/automake-1.9.6/bin/aclocal-1.9
fi
if test -z ${LIBTOOL}; then
LIBTOOL=/afs/ncsa/projects/hdf/packages/libtool_1.5.14/Linux_2.4/bin/libtool
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
# Make sure that the tools are in the path.
AUTOCONF_DIR=`dirname ${AUTOCONF}`
PATH=${AUTOCONF_DIR}:$PATH
LIBTOOL_DIR=`dirname ${LIBTOOL}`
# 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
# Clean up top-level Makefile.in
# pmake wants an argument to be the first non-comment line it encounters
# in the Makefile. Automake wants to reorganize the Makefile.
# To work around this, we post-process the top-level Makefile.in.
sed "s/^#xxx//" Makefile.in > Makefile.in.new
mv Makefile.in.new Makefile.in
# Run trace script
# The trace script adds H5TRACE macros to library source files. It should
# have no effect on files that don't have HDF5 API macros in them.
echo
echo " Running trace script:"
bin/trace src/H5*.c || exit 1
# Run make_error
# make_error automatically generates the H5E headers that create error message
# types for HDF5.
echo
echo " Running error generation script:"
bin/make_err src/H5err.txt || exit 1
exit 0