diff --git a/Makefile.am b/Makefile.am index d63665e..fdd8acd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/autogen.sh b/autogen.sh index c89e6be..c7e0f6a 100755 --- a/autogen.sh +++ b/autogen.sh @@ -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 diff --git a/configure.ac b/configure.ac index 52cd90a..937eead 100644 --- a/configure.ac +++ b/configure.ac @@ -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([ ]) diff --git a/src/H5Part.h b/src/H5Part.h index b95a05b..724be55 100644 --- a/src/H5Part.h +++ b/src/H5Part.h @@ -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 diff --git a/src/Makefile.am b/src/Makefile.am index d7fd142..9ac8c56 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 $^ $@ - diff --git a/test/Makefile.am b/test/Makefile.am index 38077ed..9b83fa5 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -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 diff --git a/tools/Makefile.am b/tools/Makefile.am index 6cf0cec..a57dbb2 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -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