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 AC_SUBST(CPPFLAGS) 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 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 dnl AC_MSG_CHECKING(for site config file) site_config="none" for f in $host \ $host_vendor-$host_os \ $host_cpu-$host_os \ $host_cpu-$host_vendor \ $host_os \ $host_vendor \ $host_cpu ; do 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 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 dnl ---------------------------------------------------------------------- dnl Check for libraries. (none required yet) dnl dnl ---------------------------------------------------------------------- dnl Check for header files. dnl AC_HEADER_STDC AC_CHECK_HEADERS(unistd.h) dnl ---------------------------------------------------------------------- dnl Data types. dnl AC_TYPE_OFF_T AC_TYPE_SIZE_T dnl ---------------------------------------------------------------------- dnl Check for functions. dnl AC_CHECK_FUNCS(getpwuid gethostname) AC_TRY_COMPILE([#include], [off64_t n = 0;], AC_CHECK_FUNCS(lseek64 fseek64), AC_MSG_RESULT([skipping test for lseek64() and fseek64()])) 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) AC_CHECK_SIZEOF(size_t, 4) cat >>confdefs.h <<\EOF #include /*for off_t definition*/ EOF AC_CHECK_SIZEOF(off_t, 4) dnl ---------------------------------------------------------------------- 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;}], AC_DEFINE(HAVE_ATTRIBUTE) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) AC_MSG_CHECKING(for __FUNCTION__ extension) AC_TRY_COMPILE(,[int f(void){return __FUNCTION__;}], AC_DEFINE(HAVE_FUNCTION) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) 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) AC_SUBST(RUNTEST) RUNTEST="" case "X-$PARALLEL" in X-|X-no) # Parallel support is not enabled AC_MSG_RESULT(disabled) ;; X-mpio|X-yes) # 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. AC_MSG_RESULT(mpio) AC_DEFINE(HAVE_PARALLEL) PARALLEL_SRC='$(PARALLEL_SRC)' CPPFLAGS="$CPPFLAGS $MPI_INC" CFLAGS="$CFLAGS $MPI_LIB" AC_CHECK_LIB(mpi,main) dnl Replace `main' with some function AC_CHECK_LIB(mpio,main) dnl Replace `main' with some function RUNTEST='mpirun -np 1' ;; *) AC_MSG_ERROR(unknown parallel support: $PARALLEL) ;; esac 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 AC_SUBST_FILE(DEPEND) DEPEND=config/depend else AC_SUBST(DEPEND) DEPEND='# Use GNU make/GCC if you want auto dependencies' 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 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)