summaryrefslogtreecommitdiffstats
path: root/bin/reconfigure
blob: 5c4a7b1c1b5d845f58f22b0071f66d83eab726a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#! /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"
AUTOHEADER_VERSION="autoheader (GNU Autoconf) 2.61"
ACLOCAL_VERSION="aclocal (GNU automake) 1.10"
LIBTOOL_VERSION="(GNU libtool) 1.5.22"
#
# 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.0/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.0/bin/aclocal-1.10
fi
if test -z ${LIBTOOL}; then
  LIBTOOL=/home1/packages/libtool/libtool-1.5.22/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_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