[Path to spl build objects]),
[splbuild="$withval"])
+ dnl #
+ dnl # The existence of spl.release.in is used to identify a valid
+ dnl # source directory. In order of preference:
+ dnl #
+ splsrc0="/var/lib/dkms/spl/${VERSION}/build"
+ splsrc1="/usr/src/spl-${VERSION}/${LINUX_VERSION}"
+ splsrc2="/usr/src/spl-${VERSION}"
+ splsrc3="../spl/"
+ splsrc4="$LINUX"
AC_MSG_CHECKING([spl source directory])
- AS_IF([test -z "$splsrc"], [
- dnl #
- dnl # Look in the standard development package location
- dnl #
- sourcelink=`ls -1d /usr/src/spl-*/${LINUX_VERSION} \
- 2>/dev/null | tail -1`
-
- dnl #
- dnl # Look in the DKMS source location
- dnl #
- AS_IF([test -z "$sourcelink" || test ! -e $sourcelink/spl_config.h], [
- sourcelink=`ls -1d /var/lib/dkms/spl/*/build \
- 2>/dev/null | tail -1`
- ])
-
- dnl #
- dnl # Look in the parent directory
- dnl #
- AS_IF([test -z "$sourcelink" || test ! -e $sourcelink/spl_config.h], [
- sourcelink=../spl
- ])
-
- dnl #
- dnl # Look in the kernel directory
- dnl #
- AS_IF([test -z "$sourcelink" || test ! -e $sourcelink/spl_config.h], [
- sourcelink="$LINUX"
- ])
-
- AS_IF([test -e $sourcelink/spl_config.h], [
- splsrc=`readlink -f ${sourcelink}`
+ AS_IF([test -z "${splsrc}"], [
+ AS_IF([ test -e "${splsrc0}/spl.release.in"], [
+ splsrc=${splsrc0}
+ ], [ test -e "${splsrc1}/spl.release.in"], [
+ splsrc=${splsrc1}
+ ], [ test -e "${splsrc2}/spl.release.in"], [
+ splsrc=${splsrc2}
+ ], [ test -e "${splsrc3}/spl.release.in"], [
+ splsrc=$(readlink -f "${splsrc3}")
+ ], [ test -e "${splsrc4}/spl.release.in" ], [
+ splsrc=${splsrc4}
], [
- AC_MSG_RESULT([Not found])
- AC_MSG_ERROR([
- *** Please make sure the 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.])
+ splsrc="[Not found]"
])
], [
AS_IF([test "$splsrc" = "NONE"], [
])
AC_MSG_RESULT([$splsrc])
+ AS_IF([ test ! -e "$splsrc/spl.release.in"], [
+ AC_MSG_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.])
+ ])
+
+ dnl #
+ dnl # The existence of the spl_config.h is used to identify a valid
+ dnl # spl object directory. In many cases the object and source
+ dnl # directory are the same, however the objects may also reside
+ dnl # is a subdirectory named after the kernel version.
+ dnl #
AC_MSG_CHECKING([spl build directory])
AS_IF([test -z "$splbuild"], [
- splbuild=${splsrc}
+ AS_IF([ test -e "${splsrc}/${LINUX_VERSION}/spl_config.h" ], [
+ splbuild="${splsrc}/${LINUX_VERSION}"
+ ], [ test -e "${splsrc}/spl_config.h" ], [
+ splbuild="${splsrc}"
+ ], [
+ splbuild="[Not found]"
+ ])
])
+
AC_MSG_RESULT([$splbuild])
+ AS_IF([ ! test -e "$splbuild/spl_config.h"], [
+ AC_MSG_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.])
+ ])
AC_MSG_CHECKING([spl source version])
AS_IF([test -r $splbuild/spl_config.h &&