new build system for both H5hut and H5Part; preparing 1.6.3 release of H5Part
This commit is contained in:
+1
-2
@@ -1,5 +1,6 @@
|
||||
# Trial by Antino Kim
|
||||
# Top level Makefile.am
|
||||
ACLOCAL_AMFLAGS=-I m4
|
||||
|
||||
SUBDIRS = \
|
||||
doc \
|
||||
@@ -7,8 +8,6 @@ SUBDIRS = \
|
||||
test \
|
||||
tools
|
||||
|
||||
EXTRA_DIST = configure-crayxt
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
config.h \
|
||||
config.log \
|
||||
|
||||
+9
-1
@@ -15,7 +15,6 @@ aclocal $ACLOCAL_FLAGS || {
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
echo "+ running autoheader ... "
|
||||
autoheader || {
|
||||
echo
|
||||
@@ -25,6 +24,15 @@ autoheader || {
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
echo "+ running libtoolize ... "
|
||||
libtoolize --force || {
|
||||
echo
|
||||
echo "libtoolize failed"
|
||||
exit 1
|
||||
}
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
echo "+ running autoconf ... "
|
||||
autoconf || {
|
||||
echo
|
||||
|
||||
+199
-437
@@ -1,18 +1,22 @@
|
||||
# Every configure script must call AC_INIT before doing anything else.
|
||||
# AC_INIT (package, version, [bug-report], [tarname])
|
||||
AC_INIT([H5Part], [1.6.2], [h5part@lists.psi.ch], H5Part)
|
||||
|
||||
AC_INIT([H5Part], [1.6.3], [h5part@lists.psi.ch], H5Part)
|
||||
|
||||
# Ensure that a recent enough version of Autoconf is being used.
|
||||
# If the version of Autoconf being used to create configure is earlier than version,
|
||||
# print an error message to the standard error output and do not create configure.
|
||||
#AC_PREREQ(2.59)
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
|
||||
# should be called right after AC_INIT.
|
||||
# configure scripts can create a C header file containing `#define' directives.
|
||||
# The AC_CONFIG_HEADERS macro selects this kind of output.
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
# AM_INIT_AUTOMAKE is required to use autoconf with automake
|
||||
AM_INIT_AUTOMAKE
|
||||
|
||||
BUILD_LIBS='libH5Part'
|
||||
BUILD_TESTS='test'
|
||||
|
||||
###############################################################################
|
||||
################# --enable-xxx and --with-xxx Argument ########################
|
||||
@@ -21,32 +25,20 @@ AC_CONFIG_HEADER(config.h)
|
||||
AC_ARG_ENABLE(
|
||||
[debug],
|
||||
[AC_HELP_STRING([--enable-debug],
|
||||
[Compile with debug support [default=no]])],
|
||||
[Compile with debug flags [default=no]])],
|
||||
[USE_DEBUG=$enableval])
|
||||
|
||||
AC_ARG_ENABLE(
|
||||
[shared],
|
||||
[AC_HELP_STRING([--enable-shared],
|
||||
[Compile with shared library support [default=no]])],
|
||||
[USE_SHARED=$enableval])
|
||||
|
||||
AC_ARG_ENABLE(
|
||||
[64],
|
||||
[AC_HELP_STRING([--enable-64],
|
||||
[Compile using 64-bit flags [default=no]])],
|
||||
[USE_64=$enableval])
|
||||
|
||||
AC_ARG_ENABLE(
|
||||
[fortran],
|
||||
[AC_HELP_STRING([--enable-fortran],
|
||||
[AC_HELP_STRING([--enable-fortran],
|
||||
[Compile the Fortran interface [default=no]])],
|
||||
[USE_FORTRAN=$enableval])
|
||||
[USE_FORTRAN=$enableval])
|
||||
|
||||
AC_ARG_ENABLE(
|
||||
[parallel],
|
||||
[AC_HELP_STRING([--enable-parallel],
|
||||
[AC_HELP_STRING([--enable-parallel],
|
||||
[Compile the MPI/IO interface [default=no]])],
|
||||
[USE_PARALLEL=$enableval])
|
||||
[USE_PARALLEL=$enableval])
|
||||
|
||||
AC_ARG_ENABLE(
|
||||
[tools],
|
||||
@@ -55,14 +47,8 @@ AC_ARG_ENABLE(
|
||||
[USE_TOOLS=$enableval])
|
||||
|
||||
AC_ARG_WITH(
|
||||
[mpipath],
|
||||
[AC_HELP_STRING([--with-mpipath],
|
||||
[path to MPI installation [default=""]])],
|
||||
[MPIPATH=$withval], [MPIPATH=""])
|
||||
|
||||
AC_ARG_WITH(
|
||||
[hdf5path],
|
||||
[AC_HELP_STRING([--with-hdf5path],
|
||||
[hdf5],
|
||||
[AC_HELP_STRING([--with-hdf5],
|
||||
[path to HDF5 installation [default=""]])],
|
||||
[HDF5PATH=$withval], [HDF5PATH=""])
|
||||
|
||||
@@ -73,16 +59,12 @@ AC_ARG_WITH(
|
||||
SAVE_CC=$CC
|
||||
SAVE_CXX=$CXX
|
||||
SAVE_FC=$FC
|
||||
SAVE_MPICC=$MPICC
|
||||
SAVE_MPICXX=$MPICXX
|
||||
SAVE_MPIFC=$MPIFC
|
||||
SAVE_MPILIB=$MPILIB
|
||||
SAVE_MPIINC=$MPIINC
|
||||
SAVE_CFLAGS=$CFLAGS
|
||||
SAVE_CXXFLAGS=$CXXFLAGS
|
||||
SAVE_FFLAGS=$FFLAGS
|
||||
SAVE_MPIROOT=$MPIROOT
|
||||
SAVE_HDF5ROOT=$HDF5ROOT
|
||||
SAVE_INCLUDES=$INCLUDES
|
||||
SAVE_LDFLAGS=$LDFLAGS
|
||||
SAVE_LIBS=$LIBS
|
||||
|
||||
###############################################################################
|
||||
############### PATH SERACH FUNCTION - to be used later... ####################
|
||||
@@ -96,35 +78,26 @@ SAVE_LDFLAGS=$LDFLAGS
|
||||
# @enddesc
|
||||
#@@*/
|
||||
|
||||
PATH_Search()
|
||||
{
|
||||
eval $1=""
|
||||
if test $# -lt 4 ; then
|
||||
h5part_basedir=""
|
||||
else
|
||||
h5part_basedir="$4/"
|
||||
fi
|
||||
for h5part_place in $2
|
||||
do
|
||||
echo -n "looking in $h5part_place ... $ac_c" #1>&6
|
||||
if test -r "$h5part_basedir$h5part_place/$3" ; then
|
||||
echo "$ac_t"" found" #1>&6
|
||||
eval $1="$h5part_place"
|
||||
break
|
||||
fi
|
||||
if test -d "$h5part_basedir$h5part_place/$3" ; then
|
||||
echo "$ac_t"" found" #1>&6
|
||||
eval $1="$h5part_place"
|
||||
break
|
||||
fi
|
||||
echo "$ac_t"" no" #1>&6
|
||||
done
|
||||
|
||||
return
|
||||
PATH_Search() {
|
||||
eval $1=""
|
||||
if test $# -lt 4 ; then
|
||||
h5part_basedir=""
|
||||
else
|
||||
h5part_basedir="$4/"
|
||||
fi
|
||||
for h5part_place in $2; do
|
||||
AC_MSG_CHECKING([looking in $h5part_place ... ])
|
||||
if test -r "$h5part_basedir$h5part_place/$3" ; then
|
||||
AC_MSG_RESULT([found])
|
||||
eval $1="$h5part_place"
|
||||
break
|
||||
fi
|
||||
AC_MSG_RESULT([no])
|
||||
done
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
############# MISC SETTINGS INCLUDING C & C++ COMPILER SETTING ################
|
||||
###############################################################################
|
||||
@@ -132,81 +105,53 @@ PATH_Search()
|
||||
# individual parts host_cpu, host_vendor, and host_os.
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
uname=`uname -s`
|
||||
if test $uname = "AIX"; then
|
||||
AC_MSG_CHECKING([if system is AIX])
|
||||
AC_MSG_RESULT([OK])
|
||||
|
||||
# If on AIX, define _ALL_SOURCE. Allows the use of some BSD functions.
|
||||
# Should be called before any macros that run the C compiler.
|
||||
AC_AIX
|
||||
fi
|
||||
|
||||
|
||||
# DAVINCI SPECIFIC!!!
|
||||
if test `uname -n` = "davinci"; then
|
||||
echo "DAVINCI SPECIFIC TESTING FOR STDC++ LIBRARY!"
|
||||
PATH_Search STDCXX_CHECK '/usr/lib64 /usr/lib' libstdc++.a
|
||||
|
||||
# if STDCXX_CHECK is set...
|
||||
if test "$STDCXX_CHECK" = "/usr/lib64"; then
|
||||
echo "STDCXX setting ..."
|
||||
echo "STDCXX_CHECK = $STDCXX_CHECK ..."
|
||||
STDCXX="-L/usr/lib64 -lstdc++"
|
||||
echo "STDCXX = $STDCXX ..."
|
||||
elif test "$STDCXX_CHECK" = "/usr/lib"; then
|
||||
echo "STDCXX setting ..."
|
||||
echo "STDCXX_CHECK = $STDCXX_CHECK ..."
|
||||
STDCXX="-L/usr/lib -lstdc++"
|
||||
echo "STDCXX = $STDCXX ..."
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Determine a C compiler to use.
|
||||
# Determine a C/C++ compiler to use.
|
||||
# If CC is not already set in the environment, check for gcc and cc, then
|
||||
# for other C compilers.
|
||||
# Set output variable CC to the name of the compiler found.
|
||||
AC_PROG_CC(pgcc pathcc icc cc_r gcc cc)
|
||||
if test "x$USE_PARALLEL" = "xyes"; then
|
||||
CCOMPILERS="mpicc cc"
|
||||
CXXCOMPILERS="mpic++ mpicxx CC"
|
||||
else
|
||||
CCOMPILERS="pgcc pathcc icc gcc cc_r cc"
|
||||
CXXCOMPILERS="pgCC pathCC icpc g++"
|
||||
fi
|
||||
|
||||
# AC_PROG_CC doesn't pick up cc_r in Bassi. The following AC_PATH_PROGS
|
||||
# is the fix.
|
||||
AC_PATH_PROGS([BAS_CC], [cc_r], [], [$PATH])
|
||||
|
||||
# if BAS_CC not empty
|
||||
if test -n "$BAS_CC"; then
|
||||
echo "CC setting for Bassi ..."
|
||||
CC=$BAS_CC
|
||||
echo "CC = $CC ..."
|
||||
fi
|
||||
|
||||
|
||||
# Determine a C++ compiler to use.
|
||||
# Check if the environment variable CXX or CCC (in that order) is set;
|
||||
# if so, then set output variable CXX to its value.
|
||||
# Otherwise, if the macro is invoked without an argument,
|
||||
# then search for a C++ compiler under the likely names (first g++ and c++
|
||||
# then other names).
|
||||
# If none of those checks succeed, then as a last resort set CXX to g++.
|
||||
AC_PROG_CXX(pgCC pathCC icc cc_r g++ gcc cc)
|
||||
AC_PROG_CC($CCOMPILERS)
|
||||
|
||||
# Only need C++ for some of the tools
|
||||
#if test "x$USE_TOOLS" = "xyes"; then
|
||||
AC_PROG_CXX($CXXCOMPILERS)
|
||||
#fi
|
||||
|
||||
# Set output variable INSTALL to the path of a BSD-compatible install program,
|
||||
# if one is found in the current PATH.
|
||||
# Otherwise, set INSTALL to `dir/install-sh -c`
|
||||
AC_PROG_INSTALL
|
||||
|
||||
AC_PROG_AWK
|
||||
|
||||
# AM_INIT_AUTOMAKE is required to use autoconf with automake
|
||||
AM_INIT_AUTOMAKE()
|
||||
|
||||
|
||||
AC_PROG_RANLIB
|
||||
# Disable shared libraries by default: can be enabled with --enable-shared
|
||||
LT_INIT([disable-shared])
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
# Default prefix for bindir, etc... (eg >> ./build/bin)
|
||||
AC_PREFIX_DEFAULT(`pwd`/build)
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_HEADER_STDBOOL
|
||||
AC_TYPE_INT64_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_SSIZE_T
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_MALLOC
|
||||
AC_CHECK_FUNCS([memset pow strchr strdup])
|
||||
|
||||
# AC_DEFINE_UNQUOTED (variable, value, [description])
|
||||
# Define the C preprocessor variable variable to value
|
||||
@@ -218,7 +163,6 @@ AC_DEFINE_UNQUOTED(MY_GNUNAME, "${host_cpu}-${host_vendor}-${host_os}", "")
|
||||
AC_DEFINE_UNQUOTED(MY_UNAME, "$uname", "")
|
||||
|
||||
|
||||
|
||||
###############################################################################
|
||||
######################## CONFIGURE LINE OPTIONS ###############################
|
||||
###############################################################################
|
||||
@@ -228,216 +172,85 @@ AC_MSG_CHECKING([if debug is enabled])
|
||||
if test "X$USE_DEBUG" = "Xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
CFLAGS="$CFLAGS -g"
|
||||
CXXFLAGS="$CXXFLAGS -g"
|
||||
FFLAGS="$FFLAGS -g"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
# shared library
|
||||
AC_MSG_CHECKING([if shared libraries are enabled])
|
||||
|
||||
if test "X$USE_SHARED" = "Xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
CFLAGS="$CFLAGS -fPIC"
|
||||
FFLAGS="$FFLAGS -fPIC"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
###################### 64-bit compilation enabled #############################
|
||||
AC_MSG_CHECKING([if 64-bit compilation is enabled])
|
||||
|
||||
|
||||
# If --enable-64 is set in the configure line
|
||||
if test "X$USE_64:/f90
|
||||
" = "Xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
if test $uname = "AIX"; then
|
||||
CFLAGS="$CFLAGS -q64"
|
||||
FFLAGS="$FFLAGS -q64"
|
||||
fi
|
||||
|
||||
if test $uname = "IRIX64"; then
|
||||
CFLAGS="$CFLAGS -64"
|
||||
FFLAGS="$FFLAGS -64 -fPIC -fno-second-underscore"
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
|
||||
############################ fortran enabled ##################################
|
||||
AC_MSG_CHECKING([if fortran interface enabled])
|
||||
if test "X$USE_FORTRAN" = "Xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_RESULT([yes])
|
||||
LIB_FORTRAN="libH5hutF.la"
|
||||
BUILD_LIBS="$BUILD_LIBS libH5PartF"
|
||||
BUILD_TESTS="$BUILD_TESTS testF"
|
||||
|
||||
AC_PROG_FC(pgf90 ifort xlf_r pathf90 g95 g90 ftn gfortran)
|
||||
if test -z "$FC" ; then
|
||||
AC_MSG_ERROR([Cannot find a fortran compiler!!!])
|
||||
exit 1
|
||||
fi
|
||||
if test "X$USE_PARALLEL" = "Xyes"; then
|
||||
AC_PROG_FC(mpif90 mpif77)
|
||||
else
|
||||
AC_PROG_FC(pgf90 ifort xlf_r pathf90 g95 g90 ftn gfortran)
|
||||
fi
|
||||
|
||||
if test ! $uname = "AIX"; then
|
||||
FFLAGS="${FFLAGS} -fPIC"
|
||||
fi
|
||||
if test -z "$FC" ; then
|
||||
AC_MSG_ERROR([Cannot find a Fortran compiler!])
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test $FC = "g90"; then
|
||||
FFLAGS="${FFLAGS} -fno-second-underscore"
|
||||
fi
|
||||
if test $FC = "g90"; then
|
||||
FFLAGS="${FFLAGS} -fno-second-underscore"
|
||||
fi
|
||||
|
||||
if test $FC = "g95"; then
|
||||
FFLAGS="${FFLAGS} -fno-second-underscore"
|
||||
fi
|
||||
if test $FC = "g95"; then
|
||||
FFLAGS="${FFLAGS} -fno-second-underscore"
|
||||
fi
|
||||
|
||||
if test $FC = "gfortran"; then
|
||||
FFLAGS="${FFLAGS} -DHAVE_GFORTRAN"
|
||||
fi
|
||||
AC_MSG_CHECKING([symbol convention in object files])
|
||||
`cd src && rm -f TestUnderscore.o TestUnderscoreC.o TestUnderscore`
|
||||
`cd src && ${FC} ${FFLAGS} -c TestUnderscore.f`
|
||||
`cd src && ${CC} ${CFLAGS} -c TestUnderscoreC.c`
|
||||
`cd src && ${FC} ${FFLAGS} -o TestUnderscore TestUnderscore.o TestUnderscoreC.o`
|
||||
|
||||
AC_MSG_CHECKING([symbol convention in object files])
|
||||
`cd src && rm -f TestUnderscore.o TestUnderscoreC.o TestUnderscore`
|
||||
`cd src && ${FC} ${FFLAGS} -c TestUnderscore.f`
|
||||
`cd src && ${CC} ${CFLAGS} -c TestUnderscoreC.c`
|
||||
`cd src && ${FC} ${FFLAGS} -o TestUnderscore TestUnderscore.o TestUnderscoreC.o -lc`
|
||||
if test -f src/TestUnderscore ; then
|
||||
UNDERSCORE_H=Underscore.h
|
||||
`cd src && ./TestUnderscore > Underscore.h`
|
||||
AC_MSG_RESULT([ok])
|
||||
else
|
||||
AC_MSG_RESULT([nok])
|
||||
AC_MSG_ERROR([Cannot determine the symbon convention for Fortran object files!])
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -f src/TestUnderscore ; then
|
||||
UNDERSCORE_H=Underscore.h
|
||||
`cd src && ./TestUnderscore > Underscore.h`
|
||||
AC_MSG_RESULT([ok])
|
||||
else
|
||||
AC_MSG_RESULT([nok])
|
||||
AC_MSG_ERROR([Cannot build fortran executables!!!])
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
|
||||
######################## parallel interface enabled ###########################
|
||||
AC_MSG_CHECKING([if parallel interface enabled])
|
||||
if test "X$USE_PARALLEL" = "Xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_RESULT([yes])
|
||||
|
||||
CFLAGS="${CFLAGS} -DPARALLEL_IO -DH5_HAVE_PARALLEL -DMPICH_IGNORE_CXX_SEEK"
|
||||
CFLAGS="${CFLAGS} -DPARALLEL_IO -DMPICH_IGNORE_CXX_SEEK"
|
||||
|
||||
AC_MSG_CHECKING([if we can compile MPI code without setting flags])
|
||||
AC_TRY_LINK([#include "mpi.h"], [
|
||||
MPI_Comm comm;
|
||||
int n;
|
||||
MPI_Comm_size( comm, &n ); ],
|
||||
[echo 'yes'; r='yes'], [echo "no"; r='no'] )
|
||||
AC_MSG_CHECKING([if we can compile MPI code without setting flags])
|
||||
AC_TRY_LINK([#include "mpi.h"], [
|
||||
MPI_Comm comm;
|
||||
int n;
|
||||
MPI_Comm_size( comm, &n ); ],
|
||||
[AC_MSG_RESULT([yes]); r='yes'], [AC_MSG_RESULT([no]); r='no'] )
|
||||
|
||||
if test "X$r" = "Xno"; then
|
||||
AC_PATH_PROGS([MPICC], [mpicc mpcc_r], [], [$PATH])
|
||||
AC_PATH_PROGS([MPICXX], [mpicxx mpcc_r], [], [$PATH])
|
||||
if test -z "$MPICC" -o -z "$MPICXX"; then
|
||||
AC_MSG_CHECKING([for MPI root ])
|
||||
AC_MSG_RESULT([])
|
||||
if test -n "$MPIROOT"; then
|
||||
P=${MPIROOT}
|
||||
elif test -n "$MPIHOME"; then
|
||||
P=${MPIHOME}
|
||||
elif test -n "$MPIPATH"; then
|
||||
P=${MPIPATH}
|
||||
else
|
||||
P=''
|
||||
P="$P /usr"
|
||||
P="$P /usr/local"
|
||||
P="$P /usr/local/mpi"
|
||||
P="$P /usr/local/packages/mpi"
|
||||
P="$P /usr/local/mpich2"
|
||||
P="$P /usr/local/mpich"
|
||||
P="$P /opt/xt-mpt/default/mpich2-64/P2"
|
||||
fi
|
||||
PATH_Search MPIROOT "$P" include/mpi.h
|
||||
if test ! -n "$MPIROOT"; then
|
||||
AC_MSG_ERROR([Cannot determine MPI root!!!])
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -e "${MPIROOT}/bin/mpicc"; then
|
||||
MPICC=${MPIROOT}/bin/mpicc
|
||||
fi
|
||||
|
||||
if test -e "${MPIROOT}/bin/mpicxx"; then
|
||||
MPICXX=${MPIROOT}/bin/mpicxx
|
||||
fi
|
||||
if test "X$r" = "Xno"; then
|
||||
AC_MSG_ERROR([MPI wrapper can't compile or link MPI program! Please set the INCLUDE and LIBS variables manually.])
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$MPICC" -o -z "$MPICXX"; then
|
||||
MPIINC="${MPIINC} -I${MPIROOT}/include"
|
||||
FFLAGS="${FFLAGS} -I${MPIROOT}/include"
|
||||
AC_MSG_CHECKING([for name of MPI lib ])
|
||||
if test -e ${MPIROOT}/lib/libmpi.a; then
|
||||
MPILIB="-L${MPIROOT}/lib -lmpi"
|
||||
elif test -e ${MPIROOT}/lib/libmpi.so; then
|
||||
MPILIB="-L${MPIROOT}/lib -lmpi"
|
||||
elif test -e ${MPIROOT}/lib/libmpich.a; then
|
||||
MPILIB="-L${MPIROOT}/lib -lmpich"
|
||||
elif test -e ${MPIROOT}/lib/libmpich.so; then
|
||||
MPILIB="-L${MPIROOT}/lib -lmpich"
|
||||
else
|
||||
AC_MSG_RESULT([not found])
|
||||
exit 1
|
||||
fi
|
||||
AC_MSG_RESULT([${MPILIB}])
|
||||
fi
|
||||
|
||||
if test -n "$MPICC"; then
|
||||
CC=${MPICC}
|
||||
fi
|
||||
|
||||
if test -n "$MPICXX"; then
|
||||
CXX=${MPICXX}
|
||||
fi
|
||||
fi
|
||||
|
||||
H5P_LIB_NAME="-lpH5Part"
|
||||
MTARGET="libpH5Part.a"
|
||||
TTARGET="test"
|
||||
|
||||
|
||||
# parallel + fortran
|
||||
if test "X$USE_FORTRAN" = "Xyes"; then
|
||||
AC_PATH_PROGS([MPIFC], [mpxlf_r mpif90], [], [$PATH])
|
||||
|
||||
FFLAGS="${FFLAGS} -DPARALLEL_IO"
|
||||
|
||||
if test -z "${MPIFC}" ; then
|
||||
if test -e "${MPIROOT}/bin/mpif90"; then
|
||||
MPIFC=${MPIROOT}/bin/mpif90
|
||||
fi
|
||||
fi
|
||||
|
||||
# if MPIFC empty
|
||||
if test ! -n "$MPIFC"; then
|
||||
AC_MSG_CHECKING([ No MPIFC detected. Setting MPIFC to FC.])
|
||||
MPIFC=$FC
|
||||
echo "MPIFC = $MPIFC ..."
|
||||
fi
|
||||
|
||||
if test -n "$MPIFC"; then
|
||||
FC=${MPIFC}
|
||||
fi
|
||||
|
||||
H5P_LIB_NAME="-lpH5PartF"
|
||||
MTARGET="${MTARGET} libpH5PartF.a"
|
||||
TTARGET="${TTARGET} testf"
|
||||
fi
|
||||
|
||||
else # --enable-parallel=no
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
H5P_LIB_NAME="-lH5Part"
|
||||
MTARGET="libH5Part.a"
|
||||
TTARGET="test"
|
||||
|
||||
if test "X$USE_FORTRAN" = "Xyes"; then
|
||||
H5P_LIB_NAME="-lH5PartF"
|
||||
MTARGET="${MTARGET} libH5PartF.a"
|
||||
TTARGET="${TTARGET} testf"
|
||||
fi
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
|
||||
######################## tools enabled ###########################
|
||||
AC_MSG_CHECKING([whether tools are enabled])
|
||||
if test "X$USE_TOOLS" = "Xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
@@ -450,76 +263,53 @@ else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
|
||||
###############################################################################
|
||||
######################### PATH CHECKING & SETTING #############################
|
||||
###############################################################################
|
||||
|
||||
AC_MSG_CHECKING([for HDF5 root ])
|
||||
AC_MSG_RESULT([])
|
||||
if test -n "${HDF5ROOT}"; then
|
||||
P=${HDF5ROOT}
|
||||
if test -n "${HDF5PATH}" ; then
|
||||
P=${HDF5PATH}
|
||||
elif test -n "${HDF5ROOT}"; then
|
||||
P=${HDF5ROOT}
|
||||
elif test -n "${HDF5HOME}" ; then
|
||||
P=${HDF5HOME}
|
||||
elif test -n "${HDF5PATH}" ; then
|
||||
P=${HDF5PATH}
|
||||
P=${HDF5HOME}
|
||||
elif test -n "${HDF5_DIR}" ; then
|
||||
P=${HDF5_DIR}
|
||||
else
|
||||
P=''
|
||||
P="$P /usr"
|
||||
P="$P /usr/local"
|
||||
P="$P /usr/local/hdf5"
|
||||
P="$P /usr/local/packages/hdf5"
|
||||
P="$P /apps/hdf5"
|
||||
|
||||
if test "X$USE_PARALLEL" = "Xyes"; then
|
||||
P="$P /usr/local/phdf5"
|
||||
P="$P /usr/local/hdf5/hdf5_par"
|
||||
if test "X$USE_64" = "Xyes"; then
|
||||
P="$P /usr/common/usg/hdf5/64/default/parallel"
|
||||
else
|
||||
P="$P /usr/common/usg/hdf5/32/default/parallel"
|
||||
fi
|
||||
else
|
||||
P="$P /usr/local/hdf5/hdf5_serial"
|
||||
if test "X$USE_64" = "Xyes"; then
|
||||
P="$P /usr/common/usg/hdf5/64/default/serial"
|
||||
else
|
||||
P="$P /usr/common/usg/hdf5/32/default/serial"
|
||||
fi
|
||||
fi
|
||||
P=''
|
||||
P="$P /usr"
|
||||
P="$P /usr/local"
|
||||
P="$P /usr/local/hdf5"
|
||||
P="$P /usr/local/packages/hdf5"
|
||||
P="$P /apps/hdf5"
|
||||
P="$P /opt/hdf5"
|
||||
fi
|
||||
PATH_Search HDF5ROOT "$P" include/hdf5.h
|
||||
if test -z "$HDF5ROOT"; then
|
||||
AC_MSG_ERROR([Cannot determine HDF5 root!!!])
|
||||
exit 1
|
||||
AC_MSG_ERROR([Cannot find an HDF5 library!])
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INCLUDES="$INCLUDES -I$HDF5ROOT/include"
|
||||
LDFLAGS="$LDFLAGS -L$HDF5ROOT/lib"
|
||||
LIBS="$LIBS -lhdf5"
|
||||
|
||||
AC_MSG_CHECKING([if we need to link to libsz ])
|
||||
if test -n "$HDF5ROOT"; then
|
||||
if test -f $HDF5ROOT/lib/libsz.a; then
|
||||
AC_MSG_RESULT([yes])
|
||||
SZLIB="-L$HDF5ROOT/lib/ -lsz"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
SZLIB=""
|
||||
fi
|
||||
if test -f $HDF5ROOT/lib/libsz.a; then
|
||||
AC_MSG_RESULT([yes])
|
||||
LDFLAGS="$LDFLAGS -L$HDF5ROOT/lib"
|
||||
LIBS="$LIBS -lsz"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([for static zlib root ])
|
||||
echo
|
||||
PATH_Search ZLIBROOT '/apps/zlib' lib/libz.a
|
||||
if test -n "$ZLIBROOT"; then
|
||||
LDFLAGS="$LDFLAGS -L$ZLIBROOT/lib"
|
||||
fi
|
||||
LIBS="$LIBS -lz -lm"
|
||||
|
||||
FCFLAGS=${FFLAGS}
|
||||
CXXFLAGS=${CFLAGS}
|
||||
|
||||
|
||||
###############################################################################
|
||||
#################### MISC SETTINGS - path, flags, etc #########################
|
||||
###############################################################################
|
||||
|
||||
H5P_LIB_LOC=`pwd`/src
|
||||
|
||||
###############################################################################
|
||||
################# A SIMPLE WORK AROUND TO USE ENV. VARS #######################
|
||||
@@ -527,94 +317,70 @@ H5P_LIB_LOC=`pwd`/src
|
||||
|
||||
#if there was an external input for the variable...
|
||||
if test -n "$SAVE_CC"; then
|
||||
CC=$SAVE_CC
|
||||
CC="$SAVE_CC"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_CXX"; then
|
||||
CXX=$SAVE_CXX
|
||||
CXX="$SAVE_CXX"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_FC"; then
|
||||
FC=$SAVE_FC
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_MPICC"; then
|
||||
MPICC=$SAVE_MPICC
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_MPICXX"; then
|
||||
MPICXX=$SAVE_MPICXX
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_MPIFC"; then
|
||||
MPIFC=$SAVE_MPIFC
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_MPILIB"; then
|
||||
MPILIB=$SAVE_MPILIB
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_MPIINC"; then
|
||||
MPIINC=$SAVE_MPIINC
|
||||
FC="$SAVE_FC"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_CFLAGS"; then
|
||||
CFLAGS="$SAVE_CFLAGS ${CFLAGS}"
|
||||
CFLAGS="$SAVE_CFLAGS"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_CXXFLAGS"; then
|
||||
CFLAGS="$SAVE_CXXFLAGS"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_FFLAGS"; then
|
||||
FFLAGS=$SAVE_FFLAGS
|
||||
FFLAGS="$SAVE_FFLAGS"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_MPIROOT"; then
|
||||
MPIROOT=$SAVE_MPIROOT
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_HDF5ROOT"; then
|
||||
HDF5ROOT=$SAVE_HDF5ROOT
|
||||
if test -n "$SAVE_INCLUDES"; then
|
||||
INCLUDES="$SAVE_INCLUDES"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_LDFLAGS"; then
|
||||
LDFLAGS=$SAVE_LDFLAGS
|
||||
LDFLAGS="$SAVE_LDFLAGS"
|
||||
fi
|
||||
|
||||
if test -n "$SAVE_LIBS"; then
|
||||
LIBS="$SAVE_LIBS"
|
||||
fi
|
||||
|
||||
###############################################################################
|
||||
############## EXPORTING VARIABLES & CREATING OUTPUT FILES ####################
|
||||
###############################################################################
|
||||
# AC_SUBST (variable, [value])
|
||||
# Create an output variable from a shell variable.
|
||||
# Make AC_OUTPUT substitute the variable variable into output files (typically one or more `Makefile's).
|
||||
# This means that AC_OUTPUT will replace instances of `@variable@' in input files with the value that
|
||||
# the shell variable variable has when AC_OUTPUT is called.
|
||||
# This value of variable should not contain literal newlines.
|
||||
# If value is given, in addition assign it to variable.
|
||||
AC_SUBST(MPIROOT)
|
||||
AC_SUBST(HDF5ROOT)
|
||||
AC_SUBST(MPIINC)
|
||||
AC_SUBST(MPILIB)
|
||||
AC_SUBST(MPICC)
|
||||
AC_SUBST(MPICXX)
|
||||
AC_SUBST(MPIFC)
|
||||
AC_SUBST(MTARGET)
|
||||
AC_SUBST(TTARGET)
|
||||
AC_SUBST(SZLIB)
|
||||
# Create an output variable from a shell variable. Make AC_OUTPUT substitute
|
||||
# the variable variable into output files (typically one or more `Makefile's).
|
||||
# This means that AC_OUTPUT will replace instances of `@variable@' in input
|
||||
# files with the value that the shell variable variable has when AC_OUTPUT is
|
||||
# called. This value of variable should not contain literal newlines. If
|
||||
# value is given, in addition assign it to variable.
|
||||
AC_SUBST(CFLAGS)
|
||||
AC_SUBST(CXXFLAGS)
|
||||
AC_SUBST(FFLAGS)
|
||||
AC_SUBST(STDCXX)
|
||||
AC_SUBST(H5P_LIB_LOC)
|
||||
AC_SUBST(H5P_LIB_NAME)
|
||||
AC_SUBST(UNDERSCORE_H)
|
||||
AC_SUBST(BUILD_TOOLS)
|
||||
AC_SUBST(INCLUDES)
|
||||
AC_SUBST(LDFLAGS)
|
||||
AC_SUBST(LIBS)
|
||||
AC_SUBST(UNDERSCORE_H)
|
||||
AC_SUBST(LIB_FORTRAN)
|
||||
AC_SUBST(BUILD_TESTS)
|
||||
AC_SUBST(BUILD_TOOLS)
|
||||
|
||||
# Make AC_OUTPUT create each `file' by copying an input file (by default `file.in'),
|
||||
# substituting the output variable values.
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
doc/Makefile
|
||||
src/Makefile
|
||||
test/Makefile
|
||||
tools/Makefile
|
||||
Makefile
|
||||
src/Makefile
|
||||
doc/Makefile
|
||||
test/Makefile
|
||||
tools/Makefile
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
@@ -622,27 +388,23 @@ AC_OUTPUT
|
||||
###############################################################################
|
||||
########################## PRINTING SUMMARY ###################################
|
||||
###############################################################################
|
||||
echo
|
||||
echo
|
||||
echo "Summary for `(hostname || uname -n) 2>/dev/null | sed 1q`:"
|
||||
echo
|
||||
echo "Host OS: $host_os"
|
||||
echo "Host CPU: $host_cpu"
|
||||
echo "Host vendor: $host_vendor"
|
||||
echo "Build libraries: $MTARGET"
|
||||
echo "Build test programs: $TTARGET"
|
||||
echo "Build tools: $BUILD_TOOLS"
|
||||
echo "CC = $CC"
|
||||
echo "CXX = $CXX"
|
||||
echo "FC = $FC"
|
||||
echo "MPICC = $MPICC"
|
||||
echo "MPICXX = $MPICXX"
|
||||
echo "MPIFC = $MPIFC"
|
||||
echo "CFLAGS = $CFLAGS"
|
||||
echo "FFLAGS = $FFLAGS"
|
||||
echo "MPILIB = $MPILIB"
|
||||
echo "MPIINC = $MPIINC"
|
||||
echo "MPIROOT = $MPIROOT"
|
||||
echo "HDF5ROOT = $HDF5ROOT"
|
||||
echo "LDFLAGS = $LDFLAGS"
|
||||
echo
|
||||
AC_MSG_RESULT([ ])
|
||||
AC_MSG_RESULT([Summary:])
|
||||
AC_MSG_RESULT([ ])
|
||||
AC_MSG_RESULT([Host OS: $host_os])
|
||||
AC_MSG_RESULT([Host CPU: $host_cpu])
|
||||
AC_MSG_RESULT([Host vendor: $host_vendor])
|
||||
AC_MSG_RESULT([Build libraries: $BUILD_LIBS])
|
||||
AC_MSG_RESULT([Build test programs: $BUILD_TESTS])
|
||||
AC_MSG_RESULT([Build tools: $BUILD_TOOLS])
|
||||
AC_MSG_RESULT([CC = $CC])
|
||||
AC_MSG_RESULT([CXX = $CXX])
|
||||
AC_MSG_RESULT([FC = $FC])
|
||||
AC_MSG_RESULT([CFLAGS = $CFLAGS])
|
||||
AC_MSG_RESULT([CXXFLAGS = $CXXFLAGS])
|
||||
AC_MSG_RESULT([FFLAGS = $FFLAGS])
|
||||
AC_MSG_RESULT([INCLUDES = $INCLUDES])
|
||||
AC_MSG_RESULT([LDFLAGS = $LDFLAGS])
|
||||
AC_MSG_RESULT([LIBS = $LIBS])
|
||||
AC_MSG_RESULT([HDF5ROOT = $HDF5ROOT])
|
||||
AC_MSG_RESULT([ ])
|
||||
|
||||
+2
-2
@@ -16,10 +16,10 @@ extern "C" {
|
||||
#include "H5MultiBlock.h"
|
||||
#endif
|
||||
|
||||
#define H5PART_VER_STRING "1.6.2"
|
||||
#define H5PART_VER_STRING "1.6.3"
|
||||
#define H5PART_VER_MAJOR 1
|
||||
#define H5PART_VER_MINOR 6
|
||||
#define H5PART_VER_RELEASE 2
|
||||
#define H5PART_VER_RELEASE 3
|
||||
|
||||
/* error values */
|
||||
#define H5PART_SUCCESS 0
|
||||
|
||||
+8
-14
@@ -2,8 +2,6 @@
|
||||
|
||||
OBJEXT=o
|
||||
|
||||
INCLUDES = -I@HDF5ROOT@/include @MPIINC@
|
||||
|
||||
EXTRA_HEADERS = H5PartPrivate.h \
|
||||
H5BlockPrivate.h \
|
||||
H5MultiBlockPrivate.h \
|
||||
@@ -25,10 +23,10 @@ EXTRA_DIST = TestUnderscoreC.c \
|
||||
nodist_include_HEADERS = H5PartF.h @UNDERSCORE_H@
|
||||
|
||||
# What to build... Will be determined by configure script.
|
||||
lib_LIBRARIES = @MTARGET@
|
||||
lib_LTLIBRARIES = libH5Part.la @LIB_FORTRAN@
|
||||
|
||||
# Listing of all possible targets that I may build.
|
||||
EXTRA_LIBRARIES = libH5Part.a libH5PartF.a
|
||||
EXTRA_LTLIBRARIES = libH5PartF.la
|
||||
|
||||
# Header files that I wish to install in $(prefix)/include
|
||||
include_HEADERS = H5Part.h \
|
||||
@@ -47,27 +45,23 @@ include_HEADERS = H5Part.h \
|
||||
@UNDERSCORE_H@
|
||||
|
||||
# Listing of sources
|
||||
libH5Part_a_SOURCES = H5Part.c \
|
||||
libH5Part_la_SOURCES = H5Part.c \
|
||||
H5PartAttrib.c \
|
||||
H5Block.c \
|
||||
H5BlockReadWrite.c \
|
||||
H5MultiBlock.c \
|
||||
H5MultiBlockReadWrite.c
|
||||
|
||||
libH5PartF_a_SOURCES = $(libH5Part_a_SOURCES) \
|
||||
libH5Part_la_LDFLAGS = -version-info 0:0:0
|
||||
|
||||
libH5PartF_la_SOURCES = $(libH5Part_la_SOURCES) \
|
||||
H5PartF.c \
|
||||
H5PartAttribF.c \
|
||||
H5BlockF.c \
|
||||
H5BlockReadWriteF.c
|
||||
|
||||
libH5PartF_la_LDFLAGS = -version-info 0:0:0 -rpath '$(libdir)'
|
||||
|
||||
H5PartF.h: H5Part.f90 H5PartAttrib.f90 H5Block.f90 H5BlockReadWrite.f90
|
||||
awk '/INTEGER\*8 FUNCTION/{print "\t" $$1 " " $$3}' $^ >$@
|
||||
|
||||
libpH5Part.a: libH5Part.a
|
||||
$(RM) $@
|
||||
ln -s $^ $@
|
||||
|
||||
libpH5PartF.a: libH5PartF.a
|
||||
$(RM) $@
|
||||
ln -s $^ $@
|
||||
|
||||
|
||||
+5
-6
@@ -2,15 +2,12 @@
|
||||
|
||||
OBJEXT=o
|
||||
|
||||
HDFLIB = -L@HDF5ROOT@/lib -lhdf5 -lz @SZLIB@
|
||||
LIBS = -L@H5P_LIB_LOC@ @H5P_LIB_NAME@ $(HDFLIB) -lm
|
||||
INCLUDES = -I../src
|
||||
|
||||
INCLUDES = -I@H5P_LIB_LOC@ -I@HDF5ROOT@/include @MPIINC@
|
||||
|
||||
noinst_PROGRAMS = @TTARGET@
|
||||
noinst_PROGRAMS = @BUILD_TESTS@
|
||||
|
||||
TESTS_ENVIRONMENT = env LD_LIBRARY_PATH=@HDF5ROOT@/lib:$(LD_LIBRARY_PATH)
|
||||
TESTS = @TTARGET@
|
||||
TESTS = @BUILD_TESTS@
|
||||
|
||||
EXTRA_PROGRAMS = test testf
|
||||
|
||||
@@ -20,8 +17,10 @@ test_SOURCES = test.c \
|
||||
read.c \
|
||||
testframe.h \
|
||||
params.h
|
||||
test_LDADD = ../src/libH5Part.la
|
||||
|
||||
testf_SOURCES = testf.F90
|
||||
testf_LDADD = ../src/libH5PartF.la
|
||||
|
||||
clean: clean-am
|
||||
rm -f *.h5
|
||||
|
||||
+15
-8
@@ -2,10 +2,8 @@
|
||||
|
||||
OBJEXT=o
|
||||
|
||||
HDFLIB = -L@HDF5ROOT@/lib -lhdf5 -lz @SZLIB@
|
||||
LIBS = -L@H5P_LIB_LOC@ @H5P_LIB_NAME@ $(HDFLIB) -lm @STDCXX@
|
||||
|
||||
INCLUDES = -I@H5P_LIB_LOC@ -I@HDF5ROOT@/include @MPIINC@
|
||||
INCLUDES = -I../src
|
||||
LIBS =@LIBS@ -lm @STDCXX@
|
||||
|
||||
# What to build... make install will place these files in the $(prefix)/bin directory.
|
||||
bin_PROGRAMS = @BUILD_TOOLS@
|
||||
@@ -19,8 +17,17 @@ EXTRA_PROGRAMS = h5pAttrib \
|
||||
|
||||
# Listing of sources
|
||||
h5pAttrib_SOURCES = h5pAttrib.cc
|
||||
h5pToGNUplot_SOURCES = h5pToGNUplot.cc
|
||||
homdynToH5p_SOURCES = homdynToH5p.cc
|
||||
H5PartBench_SOURCES = H5PartBench.c
|
||||
H5BlockBench_SOURCES = H5BlockBench.c
|
||||
h5pAttrib_LDADD = ../src/libH5Part.la
|
||||
|
||||
h5pToGNUplot_SOURCES = h5pToGNUplot.cc
|
||||
h5pToGNUplot_LDADD = ../src/libH5Part.la
|
||||
|
||||
homdynToH5p_SOURCES = homdynToH5p.cc
|
||||
homdynToH5p_LDADD = ../src/libH5Part.la
|
||||
|
||||
H5PartBench_SOURCES = H5PartBench.c
|
||||
H5PartBench_LDADD = ../src/libH5Part.la
|
||||
|
||||
H5BlockBench_SOURCES = H5BlockBench.c
|
||||
H5BlockBench_LDADD = ../src/libH5Part.la
|
||||
|
||||
|
||||
Reference in New Issue
Block a user