[svn-r6070] Purpose:

New feature.

Description:
    Add in '--enable-filters=filter1,filter2' flag to configure script.  This
    can also be used as '--enable-filters=all' or just '--enable-filters' to
    enable all the internal I/O filters in the library.

    This flag can also be set to '--disable-filters' to disable all the internal
    I/O filters.  Individual filters can not be disabled due to the limitations
    of autoconf.

    Additionally, added "H5_HAVE_FILTER_<foo>" macros to H5pubconf.h header
    file, so the presence of each filter can be detected.

    This is in preparation for Kent's shuffling filter to be imported shortly.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    Tested FreeBSD 4.7 (sleipnir) also
This commit is contained in:
Quincey Koziol 2002-11-11 15:32:02 -05:00
parent 58d7916983
commit b7cd698fcd
3 changed files with 116 additions and 4 deletions

59
configure vendored
View File

@ -1019,6 +1019,9 @@ Optional Features:
is disabled.
--enable-parallel=TYPE Search for MPI-IO and MPI support files
--enable-fphdf5 Enable the Flexible Parallel HDF5 interface
--enable-filters=all Turn on all internal I/O filters. One may also
specify a comma-separated list of filters or the
word no. The default is all internal I/O filters.
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@ -4103,7 +4106,7 @@ test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
case $host in
*-*-irix6*)
# Find out which ABI we are using.
echo '#line 4106 "configure"' > conftest.$ac_ext
echo '#line 4109 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@ -4644,7 +4647,7 @@ chmod -w .
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
compiler_c_o=no
if { (eval echo configure:4647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
if { (eval echo configure:4650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
if test -s out/conftest.err; then
@ -6455,7 +6458,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 6458 "configure"
#line 6461 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -6553,7 +6556,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
#line 6556 "configure"
#line 6559 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -23231,6 +23234,11 @@ cat >>confdefs.h <<\_ACEOF
#define HAVE_COMPRESSION 1
_ACEOF
cat >>confdefs.h <<\_ACEOF
#define HAVE_FILTER_GZIP 1
_ACEOF
fi
PABLO=""
@ -30156,6 +30164,45 @@ _ACEOF
fi
fi
echo "$as_me:$LINENO: checking for I/O filters" >&5
echo $ECHO_N "checking for I/O filters... $ECHO_C" >&6
# Check whether --enable-filters or --disable-filters was given.
if test "${enable_filters+set}" = set; then
enableval="$enable_filters"
FILTERS=$enableval
fi;
all_filters="shuffle"
case "X-$FILTERS" in
X-|X-all)
FILTERS=$all_filters
echo "$as_me:$LINENO: result: all ($FILTERS)" >&5
echo "${ECHO_T}all ($FILTERS)" >&6
;;
X-no|X-none)
echo "$as_me:$LINENO: result: none" >&5
echo "${ECHO_T}none" >&6
FILTERS="none"
;;
*)
echo "$as_me:$LINENO: result: $FILTERS" >&5
echo "${ECHO_T}$FILTERS" >&6
;;
esac
if test -n "$FILTERS"; then
for filter in `echo $FILTERS | tr 'a-z,' 'A-Z '`; do
if test $filter = "SHUFFLE"; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_FILTER_SHUFFLE 1
_ACEOF
fi
done
fi
H5_VERSION="`cut -d' ' -f3 $srcdir/README.txt | head -1`"
@ -30950,6 +30997,7 @@ s,@PARALLEL@,$PARALLEL,;t t
s,@RUNSERIAL@,$RUNSERIAL,;t t
s,@RUNPARALLEL@,$RUNPARALLEL,;t t
s,@TESTPARALLEL@,$TESTPARALLEL,;t t
s,@FILTERS@,$FILTERS,;t t
s,@H5_VERSION@,$H5_VERSION,;t t
s,@CONFIG_DATE@,$CONFIG_DATE,;t t
s,@CONFIG_USER@,$CONFIG_USER,;t t
@ -31743,6 +31791,9 @@ PRINT "Features:"
PRINT_N " dmalloc"
IF_YES_NO "$HAVE_DMALLOC"
PRINT_N " internal I/O filters"
PRINT "$FILTERS"
PRINT_N " GASS"
IF_YES_NO "$GASS"

View File

@ -778,6 +778,8 @@ esac
if test "x$HAVE_ZLIB" = "xyes" -a "x$HAVE_ZLIB_H" = "xyes" -a "x$HAVE_COMPRESS2" = "xyes"; then
AC_DEFINE(HAVE_COMPRESSION, 1,
[Define if we have zlib compression support])
AC_DEFINE(HAVE_FILTER_GZIP, 1,
[Define if support for gzip filter is enabled])
fi
dnl ----------------------------------------------------------------------
@ -1723,6 +1725,9 @@ int main(int argc, char **argv)
AC_MSG_RESULT(yes)
CPPFLAGS="$CPPFLAGS -DMPI_GET_COUNT_WORKS",AC_MSG_RESULT(no))
dnl ----------------------------------------------------------------------
dnl Check if they would like the "Flexible parallel" functions compiled in
dnl
AC_MSG_CHECKING([if Flexible Parallel HDF5 interface enabled])
AC_ARG_ENABLE([fphdf5],
[AC_HELP_STRING([--enable-fphdf5],
@ -1738,6 +1743,53 @@ int main(int argc, char **argv)
fi
fi
dnl ----------------------------------------------------------------------
dnl Turn on internal I/O filters by setting macros in header files
dnl Internal I/O filters are contained entirely within the library and do
dnl not depend on external headers or libraries. The shuffle filter is
dnl an example of an internal filter, while the gzip filter is an example of
dnl an external filter. Each external filter is controlled with an
dnl "--with-foo=" configure flag.
dnl
AC_MSG_CHECKING(for I/O filters)
AC_ARG_ENABLE([filters],
[AC_HELP_STRING([--enable-filters=all],
[Turn on all internal I/O filters. One may
also specify a comma-separated list of filters
or the word no. The default is all internal
I/O filters.])],
[FILTERS=$enableval])
AC_SUBST([FILTERS])
dnl Eventually: all_filters="shuffle,foo,bar,baz"
all_filters="shuffle"
case "X-$FILTERS" in
X-|X-all)
FILTERS=$all_filters
AC_MSG_RESULT(all ($FILTERS))
;;
X-no|X-none)
AC_MSG_RESULT(none)
FILTERS="none"
;;
*)
AC_MSG_RESULT($FILTERS)
;;
esac
if test -n "$FILTERS"; then
for filter in `echo $FILTERS | tr 'a-z,' 'A-Z '`; do
dnl ----------------------------------------------------------------------
dnl Have to use separate 'if' construct for each filter, so that autoheader
dnl can detect the AC_DEFINE for each one...
dnl
if test $filter = "SHUFFLE"; then
AC_DEFINE(HAVE_FILTER_SHUFFLE, 1,
[Define if support for shuffle filter is enabled])
fi
done
fi
dnl ----------------------------------------------------------------------
dnl Set some variables for general configuration information to be saved
dnl and installed with the libraries.
@ -2094,6 +2146,9 @@ PRINT "Features:"
PRINT_N " dmalloc"
IF_YES_NO "$HAVE_DMALLOC"
PRINT_N " internal I/O filters"
PRINT "$FILTERS"
PRINT_N " GASS"
IF_YES_NO "$GASS"

View File

@ -24,6 +24,12 @@
/* Define to 1 if you have the <features.h> header file. */
#undef HAVE_FEATURES_H
/* Define if support for gzip filter is enabled */
#undef HAVE_FILTER_GZIP
/* Define if support for shuffle filter is enabled */
#undef HAVE_FILTER_SHUFFLE
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK