1997-08-16 00:35:53 +08:00
|
|
|
dnl Process this file with autoconf to produce configure. -*-indented-text-*-
|
|
|
|
dnl
|
|
|
|
dnl Copyright (C) 1997 National Center for Supercomputing Applications.
|
|
|
|
dnl All rights reserved.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Initialize configure.
|
|
|
|
dnl
|
|
|
|
AC_REVISION($Id$)
|
|
|
|
AC_INIT(src/H5.c)
|
|
|
|
AC_CONFIG_HEADER(src/H5config.h)
|
|
|
|
AC_CONFIG_AUX_DIR(bin)
|
|
|
|
AC_CANONICAL_HOST
|
1998-02-20 02:19:48 +08:00
|
|
|
AC_SUBST(CPPFLAGS)
|
1997-08-16 00:35:53 +08:00
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Check that the cache file was build on the same host as what we're
|
|
|
|
dnl running on now.
|
|
|
|
dnl
|
|
|
|
AC_CACHE_CHECK(for cached host,hdf5_cv_host,hdf5_cv_host="none");
|
|
|
|
if test $hdf5_cv_host = "none"; then
|
|
|
|
hdf5_cv_host=$host
|
|
|
|
elif test $hdf5_cv_host != $host; then
|
|
|
|
echo "The config.cache file was generated on $hdf5_cv_host but"
|
|
|
|
echo "this is $host. Please remove that file and try again."
|
|
|
|
AC_MSG_ERROR(config.cache file is invalid)
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Source any special files that we need. These files normally aren't
|
|
|
|
dnl present but can be used by the maintainers to fine tune things like
|
1998-02-14 02:11:35 +08:00
|
|
|
dnl turning on debug or profiling flags for the compiler. The search order
|
|
|
|
dnl is:
|
|
|
|
dnl
|
|
|
|
dnl CPU-VENDOR-OS
|
|
|
|
dnl VENDOR-OS
|
|
|
|
dnl CPU-OS
|
|
|
|
dnl CPU-VENDOR
|
|
|
|
dnl OS
|
|
|
|
dnl VENDOR
|
|
|
|
dnl CPU
|
1997-08-16 00:35:53 +08:00
|
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(for site config file)
|
|
|
|
site_config="none"
|
1998-02-14 02:11:35 +08:00
|
|
|
for f in $host \
|
|
|
|
$host_vendor-$host_os \
|
|
|
|
$host_cpu-$host_os \
|
|
|
|
$host_cpu-$host_vendor \
|
|
|
|
$host_os \
|
|
|
|
$host_vendor \
|
|
|
|
$host_cpu ; do
|
1997-08-16 00:35:53 +08:00
|
|
|
if test -f config/$f; then
|
|
|
|
site_config=config/$f
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
AC_MSG_RESULT($site_config)
|
|
|
|
if test $site_config != "none"; then
|
|
|
|
. $site_config
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Check for programs.
|
|
|
|
dnl
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
AC_PROG_RANLIB
|
|
|
|
|
1998-03-06 13:34:36 +08:00
|
|
|
if test "X$AR" = "X"; then
|
|
|
|
AC_CHECK_PROGS(AR,ar xar,:,$PATH)
|
|
|
|
fi
|
|
|
|
AC_SUBST(AR)
|
|
|
|
|
1997-08-16 00:35:53 +08:00
|
|
|
AC_MSG_CHECKING(for GNU Make)
|
|
|
|
if test "`${MAKE-make} --version -f /dev/null 2>/dev/null |\
|
|
|
|
sed -n 1p|cut -c1-8`" = "GNU Make"; then
|
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
GMAKE=yes
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
fi
|
|
|
|
|
1998-04-07 23:34:16 +08:00
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Turn on warning flags for gcc.
|
|
|
|
dnl
|
|
|
|
if test Xyes = "X$GCC"; then
|
1998-04-09 05:43:02 +08:00
|
|
|
CFLAGS="$CFLAGS -Wall -W -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline"
|
1998-04-07 23:34:16 +08:00
|
|
|
fi
|
|
|
|
|
1998-04-03 11:29:38 +08:00
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Production flags?
|
|
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(for production mode)
|
|
|
|
AC_ARG_ENABLE(production,
|
|
|
|
[--enable-production=yes|no Determines how to run the compiler.])
|
|
|
|
|
|
|
|
case "X-$enableval" in
|
|
|
|
X-yes)
|
|
|
|
AC_MSG_RESULT("production")
|
|
|
|
CFLAGS="$CFLAGS $PROD_CFLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS $PROD_CPPFLAGS"
|
|
|
|
;;
|
|
|
|
X-|X-no)
|
|
|
|
AC_MSG_RESULT("development")
|
|
|
|
CFLAGS="$CFLAGS $DEBUG_CFLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS $DEBUG_CPPFLAGS"
|
|
|
|
;;
|
|
|
|
X-pg|X-profile)
|
|
|
|
AC_MSG_RESULT("profile")
|
|
|
|
CFLAGS="$CFLAGS $PROFILE_CFLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS $PROFILE_CPPFLAGS"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_RESULT("user-defined")
|
|
|
|
;;
|
|
|
|
esac
|
1997-08-16 00:35:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Check for libraries. (none required yet)
|
|
|
|
dnl
|
1998-03-06 13:34:36 +08:00
|
|
|
AC_CHECK_LIB(coug, main) dnl ...for ASCI/Red
|
1997-08-16 00:35:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Check for header files.
|
|
|
|
dnl
|
|
|
|
AC_HEADER_STDC
|
1998-03-06 05:27:38 +08:00
|
|
|
AC_CHECK_HEADERS(unistd.h)
|
1997-08-16 00:35:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Data types.
|
|
|
|
dnl
|
|
|
|
AC_TYPE_OFF_T
|
|
|
|
AC_TYPE_SIZE_T
|
|
|
|
|
|
|
|
|
|
|
|
|
1998-02-20 02:19:48 +08:00
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Check for functions.
|
|
|
|
dnl
|
1998-03-17 09:29:54 +08:00
|
|
|
AC_CHECK_FUNCS(getpwuid gethostname system)
|
1998-02-28 04:07:37 +08:00
|
|
|
|
|
|
|
AC_TRY_COMPILE([#include<sys/types.h>],
|
|
|
|
[off64_t n = 0;],
|
|
|
|
AC_CHECK_FUNCS(lseek64 fseek64),
|
|
|
|
AC_MSG_RESULT([skipping test for lseek64() and fseek64()]))
|
1998-02-20 02:19:48 +08:00
|
|
|
|
|
|
|
|
1997-08-16 00:35:53 +08:00
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Check sizes of various integral data types.
|
|
|
|
dnl
|
|
|
|
AC_C_BIGENDIAN
|
|
|
|
AC_CHECK_SIZEOF(short, 2)
|
|
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
|
|
AC_CHECK_SIZEOF(long, 4)
|
|
|
|
AC_CHECK_SIZEOF(long long, 8)
|
|
|
|
AC_CHECK_SIZEOF(float, 4)
|
|
|
|
AC_CHECK_SIZEOF(double, 8)
|
1998-03-06 05:27:38 +08:00
|
|
|
AC_CHECK_SIZEOF(size_t, 4)
|
|
|
|
cat >>confdefs.h <<\EOF
|
|
|
|
#include <sys/types.h> /*for off_t definition*/
|
|
|
|
EOF
|
|
|
|
AC_CHECK_SIZEOF(off_t, 4)
|
1997-08-16 00:35:53 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
1997-10-21 07:14:35 +08:00
|
|
|
dnl Check compiler characteristics
|
|
|
|
dnl
|
|
|
|
|
|
|
|
AC_C_CONST
|
|
|
|
AC_C_INLINE
|
|
|
|
|
|
|
|
AC_MSG_CHECKING(for __attribute__ extension)
|
|
|
|
AC_TRY_COMPILE(,[int __attribute__((unused)) f(void){return 1;}],
|
1997-10-23 06:08:14 +08:00
|
|
|
AC_DEFINE(HAVE_ATTRIBUTE)
|
|
|
|
AC_MSG_RESULT(yes),
|
1997-10-21 07:14:35 +08:00
|
|
|
AC_MSG_RESULT(no))
|
|
|
|
|
|
|
|
AC_MSG_CHECKING(for __FUNCTION__ extension)
|
|
|
|
AC_TRY_COMPILE(,[int f(void){return __FUNCTION__;}],
|
1997-10-23 06:08:14 +08:00
|
|
|
AC_DEFINE(HAVE_FUNCTION)
|
|
|
|
AC_MSG_RESULT(yes),
|
1997-10-21 07:14:35 +08:00
|
|
|
AC_MSG_RESULT(no))
|
1997-08-16 00:35:53 +08:00
|
|
|
|
1998-04-03 11:29:38 +08:00
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Turn on debugging by setting compiler flags
|
|
|
|
dnl
|
|
|
|
AC_MSG_CHECKING(for debug flags);
|
|
|
|
AC_ARG_ENABLE(debug,
|
|
|
|
[--enable-debug=all Turn on debugging in all packages. One may also
|
|
|
|
specify a comma-separated list of package names
|
|
|
|
without the leading H5 or the word no. The default
|
|
|
|
is most packages.],
|
|
|
|
DEBUG_PKG=$enableval)
|
|
|
|
|
|
|
|
all_packages="ac,b,d,e,f,g,hg,hl,i,mf,mm,o,p,s,t,v"
|
|
|
|
if test X = "X$DEBUG_PKG" -o Xyes = "X$DEBUG_PKG"; then
|
1998-04-04 05:11:05 +08:00
|
|
|
DEBUG_PKG=ac,b,d,e,f,g,hg,i,mm,p,s,t,v
|
1998-04-03 11:29:38 +08:00
|
|
|
CPPFLAGS="$CPPFLAGS -UNDEBUG"
|
|
|
|
AC_MSG_RESULT(default ($DEBUG_PKG))
|
|
|
|
elif test Xall = "X$DEBUG_PKG"; then
|
|
|
|
DEBUG_PKG=$all_packages
|
|
|
|
CPPFLAGS="$CPPFLAGS -UNDEBUG"
|
|
|
|
AC_MSG_RESULT(all ($DEBUG_PKG))
|
|
|
|
elif test Xno = "X$DEBUG_PKG" -o Xnone = "X$DEBUG_PKG"; then
|
|
|
|
AC_MSG_RESULT(none)
|
|
|
|
DEBUG_PKG=
|
|
|
|
CPPFLAGS="$CPPFLAGS -DNDEBUG"
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT($DEBUG_PKG)
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test "X" != "X$DEBUG_PKG"; then
|
|
|
|
for pkg in `echo $DEBUG_PKG | tr 'a-z,' 'A-Z '`; do
|
|
|
|
CPPFLAGS="$CPPFLAGS -DH5${pkg}_DEBUG"
|
|
|
|
done
|
|
|
|
fi
|
1997-08-16 00:35:53 +08:00
|
|
|
|
1998-02-04 01:03:13 +08:00
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Check for parallel support
|
|
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(parallel,
|
|
|
|
--enable-parallel=mpio Enable parallel support with MPIO,
|
|
|
|
PARALLEL=$enableval)
|
|
|
|
AC_MSG_CHECKING(for parallel support);
|
|
|
|
AC_SUBST(PARALLEL_SRC)
|
1998-03-24 10:16:03 +08:00
|
|
|
AC_SUBST(RUNTEST)
|
1998-02-04 01:03:13 +08:00
|
|
|
|
|
|
|
case "X-$PARALLEL" in
|
|
|
|
|
|
|
|
X-|X-no)
|
|
|
|
# Parallel support is not enabled
|
|
|
|
AC_MSG_RESULT(disabled)
|
|
|
|
;;
|
|
|
|
|
|
|
|
X-mpio|X-yes)
|
1998-02-26 04:31:17 +08:00
|
|
|
# Use MPIO. Define HAVE_PARALLEL in src/H5config.h (comes from
|
|
|
|
# ./acconfig.h) and augment the include and library search paths
|
|
|
|
# (it doesn't hurt to have extra paths). Then check for header
|
|
|
|
# files and libraries. Some extra source files are added to the
|
|
|
|
# list also so we don't have to ifdef out the whole file.
|
1998-02-04 01:03:13 +08:00
|
|
|
AC_MSG_RESULT(mpio)
|
|
|
|
AC_DEFINE(HAVE_PARALLEL)
|
|
|
|
PARALLEL_SRC='$(PARALLEL_SRC)'
|
1998-02-20 02:19:48 +08:00
|
|
|
CPPFLAGS="$CPPFLAGS $MPI_INC"
|
1998-02-11 14:00:36 +08:00
|
|
|
CFLAGS="$CFLAGS $MPI_LIB"
|
1998-02-04 01:03:13 +08:00
|
|
|
AC_CHECK_LIB(mpi,main) dnl Replace `main' with some function
|
|
|
|
AC_CHECK_LIB(mpio,main) dnl Replace `main' with some function
|
1998-02-11 14:00:36 +08:00
|
|
|
RUNTEST='mpirun -np 1'
|
1998-02-04 01:03:13 +08:00
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR(unknown parallel support: $PARALLEL)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
1997-08-16 00:35:53 +08:00
|
|
|
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
|
|
dnl Build the Makefiles. Almost every Makefile.in will begin with the line
|
|
|
|
dnl `@COMMENCE@' and end with the line `@CONCLUDE@'. These lines insert
|
|
|
|
dnl various files from the config directory into the Makefile.
|
|
|
|
dnl
|
|
|
|
AC_SUBST_FILE(COMMENCE) COMMENCE=config/commence
|
|
|
|
AC_SUBST_FILE(CONCLUDE) CONCLUDE=config/conclude
|
|
|
|
|
|
|
|
if test "X$GCC" = "Xyes" && test "X$GMAKE" = "Xyes"; then
|
1998-03-19 02:09:16 +08:00
|
|
|
AC_SUBST_FILE(DEPEND1) DEPEND1=config/depend
|
|
|
|
AC_SUBST_FILE(DEPEND2) DEPEND2=/dev/null
|
1997-08-16 00:35:53 +08:00
|
|
|
else
|
1998-03-19 02:09:16 +08:00
|
|
|
AC_SUBST_FILE(DEPEND1) DEPEND1=src/.distdep
|
|
|
|
AC_SUBST_FILE(DEPEND2) DEPEND2=test/.distdep
|
1997-08-16 00:35:53 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
dnl We don't need to say when we're entering directories if we're using
|
|
|
|
dnl GNU make becuase make does it for us.
|
|
|
|
if test "X$GMAKE" = "Xyes"; then
|
|
|
|
AC_SUBST(SETX) SETX=":"
|
|
|
|
else
|
|
|
|
AC_SUBST(SETX) SETX="set -x"
|
|
|
|
fi
|
|
|
|
|
1997-08-29 00:36:57 +08:00
|
|
|
dnl Where is the root of the source tree. Give an absolute address so
|
|
|
|
dnl we can find it no matter which directory of the distribution is our
|
|
|
|
dnl current directory. The built-in pwd fails on some systems, but the
|
|
|
|
dnl /bin/pwd version works OK.
|
|
|
|
if test -x /bin/pwd; then
|
|
|
|
pwd=/bin/pwd
|
|
|
|
else
|
|
|
|
pwd=pwd
|
|
|
|
fi
|
|
|
|
AC_SUBST(ROOT) ROOT=`$pwd`
|
|
|
|
|
|
|
|
dnl Touch the time-stamp files for src/H5config.h.in and src/H5config.h
|
|
|
|
dnl before we generate them or the Makefiles.
|
|
|
|
touch ./config/stamp1 ./config/stamp2
|
|
|
|
|
|
|
|
AC_OUTPUT(config/depend config/commence config/conclude \
|
|
|
|
Makefile src/Makefile test/Makefile)
|