#!/bin/bash # # Copyright(c) 2012-2019 Intel Corporation # SPDX-License-Identifier: BSD-3-Clause-Clear # MODULE_FILE=test_mod.c OBJ_MOD=test_mod.o KERN_VER=`uname -r` PWD=`pwd` NPROC=`nproc` DEFINE_FILE=modules/generated_defines.h add_define() { echo -n "#define " >> $DEFINE_FILE for arg in "$@"; do echo -e "$arg" >> $DEFINE_FILE done } add_function() { for arg in "$@"; do echo -e "$arg" >> $DEFINE_FILE done } compile_module(){ if [ $# -gt 1 ] then INCLUDE="#include <$2>" else INCLUDE="" fi ############# TEST MODULE ############# cat > $MODULE_FILE << EOF #include #include $INCLUDE int init_module(void) { $1; return 0; } void cleanup_module(void) {}; EOF ####################################### make -C /lib/modules/$KERN_VER/build M=$PWD modules\ obj-m=$OBJ_MOD -j$NPROC &> /dev/null local ret=$? if [ $ret -eq 0 ]; then make -j$NPROC -C /lib/modules/$KERN_VER/build M=$PWD clean\ obj-m=test.o &> /dev/null fi return $ret } kernel_not_supp_fail() { echo "Current kernel is not supported!" rm $DEFINE_FILE exit 1 } rm -f $DEFINE_FILE