+
+
+
+
+# Check whether --with-linux was given.
+if test "${with_linux+set}" = set; then
+ withval=$with_linux; kernelsrc="$withval"
+fi
+
+
+
+# Check whether --with-linux-obj was given.
+if test "${with_linux_obj+set}" = set; then
+ withval=$with_linux_obj; kernelbuild="$withval"
+fi
+
+
+ { $as_echo "$as_me:$LINENO: checking kernel source directory" >&5
+$as_echo_n "checking kernel source directory... " >&6; }
+ if test -z "$kernelsrc"; then
+
+ if test -e "/lib/modules/$(uname -r)/source"; then
+
+ headersdir="/lib/modules/$(uname -r)/source"
+ sourcelink=$(readlink -f "$headersdir")
+
+elif test -e "/lib/modules/$(uname -r)/build"; then
+
+ headersdir="/lib/modules/$(uname -r)/build"
+ sourcelink=$(readlink -f "$headersdir")
+
+else
+
+ sourcelink=$(ls -1d /usr/src/kernels/* \
+ /usr/src/linux-* \
+ 2>/dev/null | grep -v obj | tail -1)
+
+fi
+
+
+ if test -n "$sourcelink" && test -e ${sourcelink}; then
+
+ kernelsrc=`readlink -f ${sourcelink}`
+
+else
+
+ kernelsrc="Not found"
+
+fi
+
+
+else
+
+ if test "$kernelsrc" = "NONE"; then
+
+ kernsrcver=NONE
+
+fi
+
+ withlinux=yes
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: result: $kernelsrc" >&5
+$as_echo "$kernelsrc" >&6; }
+ if test ! -d "$kernelsrc"; then
+
+ { { $as_echo "$as_me:$LINENO: error:
+ *** Please make sure the kernel devel package for your distribution
+ *** is installed and then try again. If that fails, you can specify the
+ *** location of the kernel source with the '--with-linux=PATH' option." >&5
+$as_echo "$as_me: error:
+ *** Please make sure the kernel devel package for your distribution
+ *** is installed and then try again. If that fails, you can specify the
+ *** location of the kernel source with the '--with-linux=PATH' option." >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: checking kernel build directory" >&5
+$as_echo_n "checking kernel build directory... " >&6; }
+ if test -z "$kernelbuild"; then
+
+ if test x$withlinux != xyes -a -e "/lib/modules/$(uname -r)/build"; then
+
+ kernelbuild=`readlink -f /lib/modules/$(uname -r)/build`
+
+elif test -d ${kernelsrc}-obj/${target_cpu}/${target_cpu}; then
+
+ kernelbuild=${kernelsrc}-obj/${target_cpu}/${target_cpu}
+
+elif test -d ${kernelsrc}-obj/${target_cpu}/default; then
+
+ kernelbuild=${kernelsrc}-obj/${target_cpu}/default
+
+elif test -d `dirname ${kernelsrc}`/build-${target_cpu}; then
+
+ kernelbuild=`dirname ${kernelsrc}`/build-${target_cpu}
+
+else
+
+ kernelbuild=${kernelsrc}
+
+fi
+
+
+fi
+
+ { $as_echo "$as_me:$LINENO: result: $kernelbuild" >&5
+$as_echo "$kernelbuild" >&6; }
+
+ { $as_echo "$as_me:$LINENO: checking kernel source version" >&5
+$as_echo_n "checking kernel source version... " >&6; }
+ utsrelease1=$kernelbuild/include/linux/version.h
+ utsrelease2=$kernelbuild/include/linux/utsrelease.h
+ utsrelease3=$kernelbuild/include/generated/utsrelease.h
+ if test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1; then
+
+ utsrelease=linux/version.h
+
+elif test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2; then
+
+ utsrelease=linux/utsrelease.h
+
+elif test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3; then
+
+ utsrelease=generated/utsrelease.h
+
+fi
+
+
+ if test "$utsrelease"; then
+
+ kernsrcver=`(echo "#include <$utsrelease>";
+ echo "kernsrcver=UTS_RELEASE") |
+ cpp -I $kernelbuild/include |
+ grep "^kernsrcver=" | cut -d \" -f 2`
+
+ if test -z "$kernsrcver"; then
+
+ { $as_echo "$as_me:$LINENO: result: Not found" >&5
+$as_echo "Not found" >&6; }
+ { { $as_echo "$as_me:$LINENO: error: *** Cannot determine kernel version." >&5
+$as_echo "$as_me: error: *** Cannot determine kernel version." >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+
+else
+
+ { $as_echo "$as_me:$LINENO: result: Not found" >&5
+$as_echo "Not found" >&6; }
+ if test "x$enable_linux_builtin" != xyes; then
+ { { $as_echo "$as_me:$LINENO: error: *** Cannot find UTS_RELEASE definition." >&5
+$as_echo "$as_me: error: *** Cannot find UTS_RELEASE definition." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { $as_echo "$as_me:$LINENO: error:
+ *** Cannot find UTS_RELEASE definition.
+ *** Please run 'make prepare' inside the kernel source tree." >&5
+$as_echo "$as_me: error:
+ *** Cannot find UTS_RELEASE definition.
+ *** Please run 'make prepare' inside the kernel source tree." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: result: $kernsrcver" >&5
+$as_echo "$kernsrcver" >&6; }
+
+ LINUX=${kernelsrc}
+ LINUX_OBJ=${kernelbuild}
+ LINUX_VERSION=${kernsrcver}
+
+
+
+
+
+
+ modpost=$LINUX/scripts/Makefile.modpost
+ { $as_echo "$as_me:$LINENO: checking kernel file name for module symbols" >&5
+$as_echo_n "checking kernel file name for module symbols... " >&6; }
+ if test "x$enable_linux_builtin" != xyes -a -f "$modpost"; then
+
+ if grep -q Modules.symvers $modpost; then
+
+ LINUX_SYMBOLS=Modules.symvers
+
+else
+
+ LINUX_SYMBOLS=Module.symvers
+
+fi
+
+
+ if test ! -f "$LINUX_OBJ/$LINUX_SYMBOLS"; then
+
+ { { $as_echo "$as_me:$LINENO: error:
+ *** Please make sure the kernel devel package for your distribution
+ *** is installed. If you are building with a custom kernel, make sure the
+ *** kernel is configured, built, and the '--with-linux=PATH' configure
+ *** option refers to the location of the kernel source." >&5
+$as_echo "$as_me: error:
+ *** Please make sure the kernel devel package for your distribution
+ *** is installed. If you are building with a custom kernel, make sure the
+ *** kernel is configured, built, and the '--with-linux=PATH' configure
+ *** option refers to the location of the kernel source." >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+
+else
+
+ LINUX_SYMBOLS=NONE
+
+fi
+
+ { $as_echo "$as_me:$LINENO: result: $LINUX_SYMBOLS" >&5
+$as_echo "$LINUX_SYMBOLS" >&6; }
+
+
+
+
+
+# Check whether --with-spl was given.
+if test "${with_spl+set}" = set; then
+ withval=$with_spl; if test "$withval" = "yes"; then
+ { { $as_echo "$as_me:$LINENO: error: --with-spl=PATH requires a PATH" >&5
+$as_echo "$as_me: error: --with-spl=PATH requires a PATH" >&2;}
+ { (exit 1); exit 1; }; }
+else
+ splsrc="$withval"
+fi
+
+fi
+
+
+
+# Check whether --with-spl-obj was given.
+if test "${with_spl_obj+set}" = set; then
+ withval=$with_spl_obj; splbuild="$withval"
+fi
+
+
+
+# Check whether --with-spl-timeout was given.
+if test "${with_spl_timeout+set}" = set; then
+ withval=$with_spl_timeout; timeout="$withval"
+else
+ timeout=0
+fi
+
+
+ splsrc0="/var/lib/dkms/spl/${VERSION}/build"
+ splsrc1="/usr/local/src/spl-${VERSION}/${LINUX_VERSION}"
+ splsrc2="/usr/local/src/spl-${VERSION}"
+ splsrc3="/usr/src/spl-${VERSION}/${LINUX_VERSION}"
+ splsrc4="/usr/src/spl-${VERSION}"
+ splsrc5="../spl/"
+ splsrc6="$LINUX"
+
+ { $as_echo "$as_me:$LINENO: checking spl source directory" >&5
+$as_echo_n "checking spl source directory... " >&6; }
+ if test -z "${splsrc}"; then
+
+ all_spl_sources="
+ ${splsrc0}
+ ${splsrc1}
+ ${splsrc2}
+ ${splsrc3}
+ ${splsrc4}
+ ${splsrc5}
+ ${splsrc6}",
+ if test -e "${splsrc0}/spl.release.in"; then
+
+ splsrc=${splsrc0}
+
+elif test -e "${splsrc1}/spl.release.in"; then
+
+ splsrc=${splsrc1}
+
+elif test -e "${splsrc2}/spl.release.in"; then
+
+ splsrc=${splsrc2}
+
+elif test -e "${splsrc3}/spl.release.in"; then
+
+ splsrc=$(readlink -f "${splsrc3}")
+
+elif test -e "${splsrc4}/spl.release.in" ; then
+
+ splsrc=${splsrc4}
+
+elif test -e "${splsrc5}/spl.release.in"; then
+
+ splsrc=$(readlink -f "${splsrc5}")
+
+elif test -e "${splsrc6}/spl.release.in" ; then
+
+ splsrc=${splsrc6}
+
+else
+
+ splsrc="Not found"
+
+fi
+
+
+else
+
+ all_spl_sources="$withval",
+ if test "$splsrc" = "NONE"; then
+
+ splbuild=NONE
+ splsrcver=NONE
+
+fi
+
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: result: $splsrc" >&5
+$as_echo "$splsrc" >&6; }
+ if test ! -e "$splsrc/spl.release.in"; then
+
+ { { $as_echo "$as_me:$LINENO: error:
+ *** Please make sure the kmod spl devel package for your distribution
+ *** is installed then try again. If that fails you can specify the
+ *** location of the spl source with the '--with-spl=PATH' option.
+ *** The spl version must match the version of ZFS you are building,
+ *** ${VERSION}. Failed to find spl.release.in in the following:
+ $all_spl_sources" >&5
+$as_echo "$as_me: error:
+ *** Please make sure the kmod spl devel package for your distribution
+ *** is installed then try again. If that fails you can specify the
+ *** location of the spl source with the '--with-spl=PATH' option.
+ *** The spl version must match the version of ZFS you are building,
+ *** ${VERSION}. Failed to find spl.release.in in the following:
+ $all_spl_sources" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: checking spl build directory" >&5
+$as_echo_n "checking spl build directory... " >&6; }
+
+ all_spl_config_locs="${splsrc}/${LINUX_VERSION}
+ ${splsrc}"
+
+ while true; do
+ if test -z "$splbuild"; then
+
+ if test -e "${splsrc}/${LINUX_VERSION}/spl_config.h" ; then
+
+ splbuild="${splsrc}/${LINUX_VERSION}"
+
+elif test -e "${splsrc}/spl_config.h" ; then
+
+ splbuild="${splsrc}"
+
+elif find -L "${splsrc}" -name spl_config.h 2> /dev/null | grep -wq spl_config.h ; then
+
+ splbuild=$(find -L "${splsrc}" -name spl_config.h | sed 's,/spl_config.h,,')
+
+else
+
+ splbuild="Not found"
+
+fi
+
+
+fi
+
+ if test -e "$splbuild/spl_config.h" -o $timeout -le 0; then
+
+ break;
+
+else
+
+ sleep 1
+ timeout=$((timeout-1))
+
+fi
+
+ done
+
+ { $as_echo "$as_me:$LINENO: result: $splbuild" >&5
+$as_echo "$splbuild" >&6; }
+ if ! test -e "$splbuild/spl_config.h"; then
+
+ { { $as_echo "$as_me:$LINENO: error:
+ *** Please make sure the kmod spl devel <kernel> package for your
+ *** distribution is installed then try again. If that fails you
+ *** can specify the location of the spl objects with the
+ *** '--with-spl-obj=PATH' option. Failed to find spl_config.h in
+ *** any of the following:
+ $all_spl_config_locs" >&5
+$as_echo "$as_me: error:
+ *** Please make sure the kmod spl devel <kernel> package for your
+ *** distribution is installed then try again. If that fails you
+ *** can specify the location of the spl objects with the
+ *** '--with-spl-obj=PATH' option. Failed to find spl_config.h in
+ *** any of the following:
+ $all_spl_config_locs" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: checking spl source version" >&5
+$as_echo_n "checking spl source version... " >&6; }
+ if test -r $splbuild/spl_config.h &&
+ fgrep -q SPL_META_VERSION $splbuild/spl_config.h; then
+
+
+ splsrcver=`(echo "#include <spl_config.h>";
+ echo "splsrcver=SPL_META_VERSION-SPL_META_RELEASE") |
+ cpp -I $splbuild |
+ grep "^splsrcver=" | tr -d \" | cut -d= -f2`
+
+fi
+
+
+ if test -z "$splsrcver"; then
+
+ { $as_echo "$as_me:$LINENO: result: Not found" >&5
+$as_echo "Not found" >&6; }
+ { { $as_echo "$as_me:$LINENO: error:
+ *** Cannot determine the version of the spl source.
+ *** Please prepare the spl source before running this script" >&5
+$as_echo "$as_me: error:
+ *** Cannot determine the version of the spl source.
+ *** Please prepare the spl source before running this script" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: result: $splsrcver" >&5
+$as_echo "$splsrcver" >&6; }
+
+ SPL=${splsrc}
+ SPL_OBJ=${splbuild}
+ SPL_VERSION=${splsrcver}
+
+
+
+
+
+ { $as_echo "$as_me:$LINENO: checking spl file name for module symbols" >&5
+$as_echo_n "checking spl file name for module symbols... " >&6; }
+ SPL_SYMBOLS=NONE
+
+ while true; do
+ if test -r $SPL_OBJ/Module.symvers; then
+
+ SPL_SYMBOLS=Module.symvers
+
+elif test -r $SPL_OBJ/Modules.symvers; then
+
+ SPL_SYMBOLS=Modules.symvers
+
+elif test -r $SPL_OBJ/module/Module.symvers; then
+
+ SPL_SYMBOLS=Module.symvers
+
+elif test -r $SPL_OBJ/module/Modules.symvers; then
+
+ SPL_SYMBOLS=Modules.symvers
+
+fi
+
+
+ if test $SPL_SYMBOLS != NONE -o $timeout -le 0; then
+
+ break;
+
+else
+
+ sleep 1
+ timeout=$((timeout-1))
+
+fi
+
+ done
+
+ if test "$SPL_SYMBOLS" = NONE; then
+
+ SPL_SYMBOLS=$LINUX_SYMBOLS
+
+fi
+
+
+ { $as_echo "$as_me:$LINENO: result: $SPL_SYMBOLS" >&5
+$as_echo "$SPL_SYMBOLS" >&6; }
+
+
+
+
+# Check whether --with-qat was given.
+if test "${with_qat+set}" = set; then
+ withval=$with_qat; if test "$withval" = "yes"; then
+ { { $as_echo "$as_me:$LINENO: error: --with-qat=PATH requires a PATH" >&5
+$as_echo "$as_me: error: --with-qat=PATH requires a PATH" >&2;}
+ { (exit 1); exit 1; }; }
+else
+ qatsrc="$withval"
+fi
+
+fi
+
+
+
+# Check whether --with-qat-obj was given.
+if test "${with_qat_obj+set}" = set; then
+ withval=$with_qat_obj; qatbuild="$withval"
+fi
+
+
+ if test ! -z "${qatsrc}"; then
+
+ { $as_echo "$as_me:$LINENO: checking qat source directory" >&5
+$as_echo_n "checking qat source directory... " >&6; }
+ { $as_echo "$as_me:$LINENO: result: $qatsrc" >&5
+$as_echo "$qatsrc" >&6; }
+ QAT_SRC="${qatsrc}/quickassist"
+ if test ! -e "$QAT_SRC/include/cpa.h"; then
+
+ { { $as_echo "$as_me:$LINENO: error:
+ *** Please make sure the qat driver package is installed
+ *** and specify the location of the qat source with the
+ *** '--with-qat=PATH' option then try again. Failed to
+ *** find cpa.h in:
+ ${QAT_SRC}/include" >&5
+$as_echo "$as_me: error:
+ *** Please make sure the qat driver package is installed
+ *** and specify the location of the qat source with the
+ *** '--with-qat=PATH' option then try again. Failed to
+ *** find cpa.h in:
+ ${QAT_SRC}/include" >&2;}
+ { (exit 1); exit 1; }; }