1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
dnl Process this file with autoconf to produce a configure script.
dnl author: Mike Smith (grimbough@gmail.com)
AC_PREREQ([2.65])
AC_INIT([hdf5Filters], [0.99.3], [grimbough@gmail.com])
AC_CONFIG_SRCDIR([src])
m4_include([tools/ax_gcc_x86_cpu_supports.m4])
m4_include([tools/ax_check_compile_flag.m4])
: ${R_HOME=`R RHOME`}
if test -z "${R_HOME}"; then
echo "could not determine R_HOME"
exit 1
fi
AC_SUBST(CC, `"${R_HOME}/bin/R" CMD config CC`)
AC_SUBST(CFLAGS, `"${R_HOME}/bin/R" CMD config CFLAGS`)
AC_SUBST(CPICFLAGS, `"${R_HOME}/bin/R" CMD config CPICFLAGS`)
AC_SUBST(CXX, `"${R_HOME}/bin/R" CMD config CXX`)
AC_SUBST(CXXFLAGS, `"${R_HOME}/bin/R" CMD config CXXFLAGS`)
AC_SUBST(CXXPICFLAGS, `"${R_HOME}/bin/R" CMD config CXXPICFLAGS`)
AC_SUBST(CPPFLAGS, `"${R_HOME}/bin/R" CMD config CPPFLAGS`)
AC_SUBST(MAKE, `"${R_HOME}/bin/R" CMD config MAKE`)
AC_SUBST(RANLIB, `"${R_HOME}/bin/R" CMD config RANLIB`)
AC_SUBST(LDFLAGS, `"${R_HOME}/bin/R" CMD config LDFLAGS`)
## seems unreliable as to whether this information is available
AR=`"${R_HOME}/bin/R" CMD config AR`
AS_IF([test "x$AR" = "xERROR: no information for variable 'AR'"], [AC_PATH_PROG([AR], [ar])], [])
AC_SUBST(AR)
## determine the location of the Rhdf5lib versions of the HDF5 library
RHDF5_INCLUDE=`"${R_HOME}/bin${R_ARCH_BIN}/Rscript" -e 'cat(system.file("include", package="Rhdf5lib"))' | \
tail -n1`
AC_SUBST(RHDF5_INCLUDE)
echo "configuring the BLOSC filter..."
## check if we have an x86 CPU
machine=`uname -m`
AS_CASE([$machine],
[*86*], [x86_CPU=true],
[x86_CPU=false]
)
echo x86_CPU="$x86_CPU"
## see if -msse2 is a supported flag
AX_CHECK_COMPILE_FLAG([-msse2], [MSSE2=true], [MSSE2=false])
## see if -mavx2 is a supported flag
AX_CHECK_COMPILE_FLAG([-mavx2], [MAVX2=true], [MAVX2=false])
AC_RUN_IFELSE(
[AC_LANG_PROGRAM([#include <stdlib.h>],
[__builtin_cpu_init ();])
],
[ax_cv_gcc_check_x86_cpu_init=true],
[ax_cv_gcc_check_x86_cpu_init=false])
## check CPU supports sse2 and avx2
if [ "$x86_CPU" == true ] && [ "$ax_cv_gcc_check_x86_cpu_init" == true ]; then
AX_GCC_X86_CPU_SUPPORTS(sse2, [SSE2_SUPPORTED=true], [SSE2_SUPPORTED=false])
AX_GCC_X86_CPU_SUPPORTS(avx2, [AVX2_SUPPORTED=true], [AVX2_SUPPORTED=false])
else
SSE2_SUPPORTED=false
AVX2_SUPPORTED=false
fi
if [ "$MSSE2" = true ] && [ "$SSE2_SUPPORTED" = true ] ; then
SSE2="-DSHUFFLE_SSE2_ENABLED"
MSSE2="-msse2"
SSE2_BITSHUFFLE='bitshuffle-sse2.o: bitshuffle-sse2.c
$(CC) $(FLAGS) -c bitshuffle-sse2.c'
SSE2_BITSHUFFLE_OBJ='bitshuffle-sse2.o'
SSE2_SHUFFLE='shuffle-sse2.o: shuffle-sse2.c
$(CC) $(FLAGS) -c shuffle-sse2.c'
SSE2_SHUFFLE_OBJ='shuffle-sse2.o'
SSE2_OBJ_PATH='lib/blosc-1.20.1/'
else
SSE2=""
MSSE2=""
SSE2_BITSHUFFLE=""
SSE2_SHUFFLE=""
SSE2_BITSHUFFLE_OBJ=""
SSE2_SHUFFLE_OBJ=""
SSE2_OBJ_PATH=""
fi
AC_SUBST(SSE2)
AC_SUBST(MSSE2)
AC_SUBST(SSE2_BITSHUFFLE)
AC_SUBST(SSE2_SHUFFLE)
AC_SUBST(SSE2_BITSHUFFLE_OBJ)
AC_SUBST(SSE2_SHUFFLE_OBJ)
AC_SUBST(SSE2_OBJ_PATH)
if [ "$MAVX2" = true ] && [ "$AVX2_SUPPORTED" = true ] ; then
AVX2="-DSHUFFLE_AVX2_ENABLED"
MAVX2="-mavx2"
AVX2_BITSHUFFLE='bitshuffle-avx2.o: bitshuffle-avx2.c
$(CC) $(FLAGS) -c bitshuffle-avx2.c'
AVX2_BITSHUFFLE_OBJ='bitshuffle-avx2.o'
AVX2_SHUFFLE='shuffle-avx2.o: shuffle-avx2.c
$(CC) $(FLAGS) -c shuffle-avx2.c'
AVX2_SHUFFLE_OBJ='shuffle-avx2.o'
AVX2_OBJ_PATH='lib/blosc-1.20.1/'
else
AVX2=""
MAVX2=""
AVX2_BITSHUFFLE=""
AVX2_SHUFFLE=""
AVX2_BITSHUFFLE_OBJ=""
AVX2_SHUFFLE_OBJ=""
AVX2_OBJ_PATH=""
fi
AC_SUBST(AVX2)
AC_SUBST(MAVX2)
AC_SUBST(AVX2_BITSHUFFLE)
AC_SUBST(AVX2_SHUFFLE)
AC_SUBST(AVX2_BITSHUFFLE_OBJ)
AC_SUBST(AVX2_SHUFFLE_OBJ)
AC_SUBST(AVX2_OBJ_PATH)
AC_CONFIG_FILES([src/blosc/Makefile])
AC_OUTPUT
dnl update variables in Makevars
BZIP2_LIB="bzip2/libH5Zbz2.so"
BLOSC_LIB="blosc/libH5Zblosc.so"
LZF_LIB="lzf/libH5Zlzf.so"
AC_SUBST(BZIP2_LIB)
AC_SUBST(BLOSC_LIB)
AC_SUBST(LZF_LIB)
AC_MSG_NOTICE([ BZIP2_LIB=${BZIP2_LIB}])
AC_MSG_NOTICE([ BLOSC_LIB=${BLOSC_LIB}])
AC_MSG_NOTICE([ LZF_LIB=${LZF_LIB}])
AC_CONFIG_FILES([src/Makevars])
AC_OUTPUT
|