X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel.m4;fp=config%2Fkernel.m4;h=88590be7af6bba5bf55d5f5ce85b0df84dea6ed2;hb=9b2af9a097c119b818bd584eb89ca51ba475c7f2;hp=9d5aa462152c4f5e7a1ba344d5df8321b5b87287;hpb=775f2d34a3ccd5f866cfa04be76f83cb562f3881;p=zfs.git diff --git a/config/kernel.m4 b/config/kernel.m4 index 9d5aa46..88590be 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -292,45 +292,30 @@ AC_DEFUN([ZFS_AC_SPL], [ [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"], [ @@ -340,11 +325,38 @@ AC_DEFUN([ZFS_AC_SPL], [ ]) 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 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 &&