X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel.m4;h=d8a7b35839d5094d94286e93aede709a96f0f7f2;hb=1a33036df9de8f95aea38ec0d9e483106d1abaa4;hp=9d5aa462152c4f5e7a1ba344d5df8321b5b87287;hpb=d9b0ebbe824469d178a05b0fb9004e4afce86009;p=zfs.git diff --git a/config/kernel.m4 b/config/kernel.m4 index 9d5aa46..d8a7b35 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -109,7 +109,7 @@ AC_DEFUN([ZFS_AC_MODULE_SYMVERS], [ AS_IF([test ! -f "$LINUX_OBJ/$LINUX_SYMBOLS"], [ AC_MSG_ERROR([ *** Please make sure the kernel devel package for your distribution - *** is installed. If your building with a custom kernel make sure the + *** 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.]) ]) @@ -163,7 +163,7 @@ AC_DEFUN([ZFS_AC_KERNEL], [ AS_IF([test ! -d "$kernelsrc"], [ AC_MSG_ERROR([ *** Please make sure the kernel devel package for your distribution - *** is installed then try again. If that fails you can specify the + *** is installed and then try again. If that fails, you can specify the *** location of the kernel source with the '--with-linux=PATH' option.]) ]) @@ -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 &&