summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2002-11-11 20:32:02 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2002-11-11 20:32:02 (GMT)
commitb7cd698fcd799c132275f674eb52a29d334cb54b (patch)
treefde5a60fa4ecfabe48a98362caf35924bc85841c
parent58d79169834c8440e2bdac4e457edca976f8e922 (diff)
downloadhdf5-b7cd698fcd799c132275f674eb52a29d334cb54b.zip
hdf5-b7cd698fcd799c132275f674eb52a29d334cb54b.tar.gz
hdf5-b7cd698fcd799c132275f674eb52a29d334cb54b.tar.bz2
[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
-rwxr-xr-xconfigure59
-rw-r--r--configure.in55
-rw-r--r--src/H5config.h.in6
3 files changed, 116 insertions, 4 deletions
diff --git a/configure b/configure
index 471ea0a..9a6dcd1 100755
--- a/configure
+++ b/configure
@@ -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"
diff --git a/configure.in b/configure.in
index 82e210a..b6daa27 100644
--- a/configure.in
+++ b/configure.in
@@ -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],
@@ -1739,6 +1744,53 @@ int main(int argc, char **argv)
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.
dnl
@@ -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"
diff --git a/src/H5config.h.in b/src/H5config.h.in
index f3738eb..7a45f6c 100644
--- a/src/H5config.h.in
+++ b/src/H5config.h.in
@@ -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