#!/bin/bash function usage() { echo "Usage: $0 [option ...]" echo "" echo "Where 'option' can be one of the following:" echo " -kinc Kernel header files." echo " -kpath Kernel sources." echo " -kver Kernel version." echo " -p Prefix for installing the kernel module." } this_dir=`pwd` ARCH="" TARGET="linux" LINUX_KERNEL="/lib/modules/`uname -r`/build" KVER="" LIBPATH="" INSTALL_PREFIX="" CONFIG_FILE="Makefile.config" while (($# > 0)) ; do if [ "$1" == "-help" ] || [ "$1" == "-h" ] ; then usage exit 0 elif [ "$1" == "-kinc" ] ; then if [ "$2" == "" ] ; then usage exit 1 fi LINUX_INCLUDE="$2" shift 2 elif [ "$1" == "-kpath" ] ; then if [ "$2" == "" ] ; then usage exit 1 fi LINUX_KERNEL="$2" shift 2 elif [ "$1" == "-kver" ] ; then if [ "$2" == "" ] ; then usage exit 1 fi KVER="$2" shift 2 elif [ "$1" == "-p" ] ; then if [ "$2" == "" ] ; then usage exit 1 fi INSTALL_PREFIX="$2" shift 2 else echo "ERROR: Unknown option $1" exit 1 fi done if [ "$LINUX_INCLUDE" == "" ] ; then LINUX_INCLUDE="$LINUX_KERNEL/include" fi if [ ! -d "$LINUX_KERNEL" ] ; then echo "ERROR: $LINUX_KERNEL was not found." exit 1 fi if [ ! -d "$LINUX_INCLUDE" ] ; then echo "ERROR: $LINUX_INCLUDE was not found." exit 1 fi if [ "$KVER" == "" ] ; then if [ -f "$LINUX_INCLUDE/linux/version.h" ] ; then KVER=`grep UTS_RELEASE $LINUX_INCLUDE/linux/version.h | awk -- '{ if (FNR==1) { print $3 } }'` KVER=`echo $KVER | sed -e 's/"//g'` else echo "ERROR: $LINUX_INCLUDE/linux/version.h was not found. Configured kernel?" exit 1 fi fi KVER1=`echo $KVER | awk -F . -- '{ print $1 }'` KVER2=`echo $KVER | awk -F . -- '{ print $2 }'` KVER3=`echo $KVER | sed -e "s/$KVER1\\.$KVER2\\.//g"` case $KVER2 in 4) makefile="Makefile24" EXT=".o" ;; 6) makefile="Makefile26" EXT=".ko" ;; esac echo "Kernel version : $KVER1.$KVER2.$KVER3" echo "Module extension : $EXT" echo "Kernel directory : $LINUX_KERNEL" echo "Include directory : $LINUX_INCLUDE" echo "Module install prefix : $INSTALL_PREFIX" rm -f $CONFIG_FILE echo "# Makefile.config" >>$CONFIG_FILE echo "# Automatically generated" >>$CONFIG_FILE echo "KVER1=$KVER1" >>$CONFIG_FILE echo "KVER2=$KVER2" >>$CONFIG_FILE echo "KVER3=$KVER3" >>$CONFIG_FILE echo "EXT=$EXT" >>$CONFIG_FILE echo "LINUX_KERNEL=$LINUX_KERNEL" >>$CONFIG_FILE echo "LINUX_INCLUDE=$LINUX_INCLUDE" >>$CONFIG_FILE echo "INSTALL_PREFIX=$INSTALL_PREFIX" >>$CONFIG_FILE