# $5 : $arch
# $6 : $source_tree
# $7 : $dkms_tree
-#
+# $8 : $kmoddir [lustre-client either 'extra|updates']
case $1 in
lustre-client)
- SERVER="--disable-server"
- KERNEL_STUFF=""
+ SERVER="--disable-server --enable-client"
+ ksrc="$(dirname $4)/source"
+ KERNEL_STUFF="--with-linux=$(realpath $ksrc) --with-linux-obj=$(realpath $4)"
+ name=$1
+ kmoddir=$8
+ flavor=$(echo $3 | tr '-' '\n' | tail -1)
+ if [ -f /usr/src/kfabric/${flavor}/Module.symvers ]; then
+ KERNEL_STUFF="${KERNEL_STUFF} --with-kfi=/usr/src/kfabric/${flavor}"
+ elif [ -f /usr/src/kfabric/default/Module.symvers ]; then
+ KERNEL_STUFF="${KERNEL_STUFF} --with-kfi=/usr/src/kfabric/default"
+ fi
+ if [ -d /usr/src/ofa_kernel/${flavor} ]; then
+ O2IBPATH=/usr/src/ofa_kernel/${flavor}
+ elif [ -d /usr/src/ofa_kernel/default ]; then
+ O2IBPATH=/usr/src/ofa_kernel/default
+ else
+ O2IBPATH=yes
+ fi
+ KERNEL_STUFF="${KERNEL_STUFF} --with-o2ib=${O2IBPATH}"
+ if [ -n ${kmoddir} ]; then
+ KERNEL_STUFF="${KERNEL_STUFF} --with-kmp-moddir=${kmoddir}/${name}"
+ fi
+ sh ./autogen.sh
;;
lustre-zfs|lustre-all)
# re-evaluate/create dkms.conf on-target based on local build-time products/dependencies
# (like krb5-devel presence) and also upon configure results/errors before dkms builds
PRE_BUILD="lustre-dkms_pre-build.sh \$module \$module_version \$kernelver \$kernel_source_dir \
- \$arch \$source_tree \$dkms_tree"
+ \$arch \$source_tree \$dkms_tree \$kmoddir"
# to ensure all just built Lustre kernel modules will be saved for further install
POST_BUILD="lustre-dkms_post-build.sh \$module \$module_version \$kernelver \$kernel_source_dir \
- \$arch \$source_tree \$dkms_tree"
+ \$arch \$source_tree \$dkms_tree \$kmoddir"
EOF
if [ $pkgname = "lustre-zfs" -o $pkgname = "lustre-all" ] ; then
cat >>${filename} <<EOF
BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ksocklnd"
BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/socklnd/"
DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"
+# Duplicate logic from PRE_BUILD script for kfi driver
+flavor=\$(echo \$kernelver | tr '-' '\n' | tail -1)
+if [ -f /usr/src/kfabric/\${flavor}/Module.symvers -o -f /usr/src/kfabric/default/Module.symvers ] ; then
+ BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="kkfilnd"
+ BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/kfilnd/"
+ DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"
+fi
+# Guessing if gni packages are installed
+pkg-config --cflags cray-gni cray-gni-headers cray-krca lsb-cray-hss > /dev/null 2>&1
+if [ \$? -eq 0 ] ; then
+ BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="kgnilnd"
+ BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/gnilnd/"
+ DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"
+fi
BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ko2iblnd"
BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/o2iblnd/"
DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"