AC_CACHE_CHECK([for external module build target], lb_cv_module_target,
[
lb_cv_module_target=""
- MODULE_TARGET="SUBDIRS"
rm -f build/conftest.i
- LB_LINUX_TRY_MAKE([], [],
- [$makerule LUSTRE_KERNEL_TEST=conftest.i],
- [test -s build/conftest.i],
- [lb_cv_module_target="SUBDIRS"],[
MODULE_TARGET="M"
- makerule="$PWD/build/"
+ makerule="$PWD/build"
LB_LINUX_TRY_MAKE([], [],
[$makerule LUSTRE_KERNEL_TEST=conftest.i],
[test -s build/conftest.i],
[test -s build/conftest.i],
[lb_cv_module_target="M58"], [
AC_MSG_ERROR([kernel module make failed; check config.log for details])
- ])])])])
+ ])])])
])
AS_IF([test -z "$lb_cv_module_target"],
[AC_MSG_ERROR([unknown external module build target])],
AC_MSG_CHECKING([for Linux kernel module package directory])
AC_ARG_WITH([kmp-moddir],
- AC_HELP_STRING([--with-kmp-moddir=string],
+ AS_HELP_STRING([--with-kmp-moddir=string],
[set the kmod updates or extra directory]),
[KMP_MODDIR=$withval
IN_KERNEL=''],[
AC_MSG_CHECKING([for Linux sources])
AC_ARG_WITH([linux],
- AC_HELP_STRING([--with-linux=path],
+ AS_HELP_STRING([--with-linux=path],
[set path to Linux source (default=/lib/modules/$(uname -r)/{source,build},/usr/src/linux)]),
[LB_ARG_CANON_PATH([linux], [LINUX])
DEFAULT_LINUX_OBJ=$LINUX],
[LINUX=$DEFAULT_LINUX])
AC_MSG_RESULT([$LINUX])
-AC_SUBST(LINUX)
# -------- check for linux --------
LB_CHECK_FILE([$LINUX], [],
# -------- linux objects (for 2.6) --
AC_MSG_CHECKING([for Linux objects])
AC_ARG_WITH([linux-obj],
- AC_HELP_STRING([--with-linux-obj=path],
+ AS_HELP_STRING([--with-linux-obj=path],
[set path to Linux objects (default=/lib/modules/$(uname -r)/build,/usr/src/linux)]),
[LB_ARG_CANON_PATH([linux-obj], [LINUX_OBJ])],
[LINUX_OBJ=$DEFAULT_LINUX_OBJ])
AC_MSG_RESULT([$LINUX_OBJ])
-AC_SUBST(LINUX_OBJ)
+## -------- with linux should point to <kernel>-common on Debian
+AS_IF([test ${LINUX} == ${LINUX_OBJ} -a ${LINUX} == $(realpath ${LINUX})],[
+ this_arch=$(realpath ${LINUX} | sed 's/-/\n/g' | tail -1)
+ linux_headers_common=$(realpath ${LINUX}|sed "s/-${this_arch}\$/-common/g")
+ AS_IF([test "${this_arch}" != common],[
+ _cah="${linux_headers_common}/include/linux/compiler_attributes.h"
+ _cgh="${linux_headers_common}/include/linux/compiler-gcc.h"
+ AS_IF([test -f "${_cah}" -o -f "${_cgh}"],[
+ AC_MSG_WARN([Setting LINUX to ${linux_headers_common} was ${LINUX}])
+ LINUX=${linux_headers_common}])
+ ])
+ ])
+AC_SUBST(LINUX)
+AC_SUBST(LINUX_OBJ)
# -------- check for .config --------
AC_ARG_WITH([linux-config],
- [AC_HELP_STRING([--with-linux-config=path],
+ [AS_HELP_STRING([--with-linux-config=path],
[set path to Linux .conf (default=$LINUX_OBJ/.config)])],
[LB_ARG_CANON_PATH([linux-config], [LINUX_CONFIG])],
[LINUX_CONFIG=$LINUX_OBJ/.config])
[KERNEL_SOURCE_HEADER='/var/adm/running-kernel.h'])])
AC_ARG_WITH([kernel-source-header],
- AC_HELP_STRING([--with-kernel-source-header=path],
+ AS_HELP_STRING([--with-kernel-source-header=path],
[Use a different kernel version header.]),
[LB_ARG_CANON_PATH([kernel-source-header], [KERNEL_SOURCE_HEADER])])