Description:
1) configure now sets LD_LIBRARY_PATH before checking for presence of
SZIP encoder, so user does not need to set this. The path is then
saved and sent to Makefiles, and used when "make check-install" is
invoked, so user doesn't need to set this manually.
2) Upgraded libtool to version 2.2.6a
3) Rearranged tools build order as h5dump depends on existence of h5diff
and h5import. Since h5dump is a sister directory as opposed to a parent
of either, it doesn't know about the build rules of these tools, so
setting any sort of explicit dependency confuses automake as it won't
know how to build the tools. Instead, setting CONFIG = ordered forces
an in-order traversal of each tools subdirectory. (without it will also
traverse in order by default, but this should prevent gmake's -j option
from jumping ahead as well). 'make check install' should now be able to
be invoked after 'configure' without causing a dependency failure.
4) Removed H5_HAVE_LARGE_HSIZET macro from vms/src/h5pubconf.h, as this macro
has now been out of the code for some time. (vms pubconf needs to be
updated manually, which is why it was still hanging around).
Tested: kagiso, smirom, liberty
Note: h5diff looks to be causing failures in h5copy and h5dump tools tests,
though these were present before any of my changes. My changes only
affect build order and configuration setup, and shouldn't prevent
fixes for these failures coming in after this checkin. Other than these,
tests pass fine.
136 lines
4.8 KiB
Bash
Executable File
136 lines
4.8 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://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have
|
|
# access to either file, you may request a copy from help@hdfgroup.org.
|
|
#
|
|
|
|
# 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 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.61"
|
|
AUTOMAKE_VERSION="automake (GNU automake) 1.10.1"
|
|
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.61"
|
|
ACLOCAL_VERSION="aclocal (GNU automake) 1.10.1"
|
|
LIBTOOL_VERSION="(GNU libtool) 2.2.6"
|
|
#
|
|
# When upgrading automake's version, don't forget to also update its
|
|
# helper utilities, especially depcomp.
|
|
|
|
|
|
# If paths to autotools are not specified by the user, assume tools are
|
|
# running on kagiso and set paths accordingly.
|
|
if test -z ${AUTOCONF}; then
|
|
AUTOCONF=/home1/packages/autoconf/autoconf-2.61/bin/autoconf
|
|
fi
|
|
if test -z ${AUTOMAKE}; then
|
|
AUTOMAKE=/home1/packages/automake/automake-1.10.1/bin/automake-1.10
|
|
fi
|
|
if test -z ${AUTOHEADER}; then
|
|
AUTOHEADER=/home1/packages/autoconf/autoconf-2.61/bin/autoheader
|
|
fi
|
|
if test -z ${ACLOCAL}; then
|
|
ACLOCAL=/home1/packages/automake/automake-1.10.1/bin/aclocal-1.10
|
|
fi
|
|
if test -z ${LIBTOOL}; then
|
|
LIBTOOL=/home1/packages/libtool/libtool-2.2.6a/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
|
|
|
|
# Use the latest version of M4
|
|
PATH=/home1/packages/m4/m4-1.4.7/bin:/home1/packages/m4/m4-1.4.7/share:$PATH
|
|
|
|
# Make sure that the tools are in the path.
|
|
AUTOCONF_DIR=`dirname ${AUTOCONF}`
|
|
LIBTOOL_DIR=`dirname ${LIBTOOL}`
|
|
PATH=${AUTOCONF_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
|
|
|
|
# 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_err
|
|
# make_err 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
|
|
|
|
# Run make_vers
|
|
# make_vers automatically generates the public headers that define the API version
|
|
# macros for HDF5.
|
|
echo
|
|
echo " Running API version generation script:"
|
|
bin/make_vers src/H5vers.txt || exit 1
|
|
|
|
exit 0
|