diff options
Diffstat (limited to 'doc/plustek/MakeModule.sh')
-rw-r--r-- | doc/plustek/MakeModule.sh | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/doc/plustek/MakeModule.sh b/doc/plustek/MakeModule.sh new file mode 100644 index 0000000..b684f0d --- /dev/null +++ b/doc/plustek/MakeModule.sh @@ -0,0 +1,116 @@ +#!/bin/bash +#****************************************************************************** +# +# Bash-Script to create Plustek-Scannerdriver modules for Kernel 2.4, 2.6 and 3.x +# out of the backend sources... +# + +BUILD_DIR=$PWD/build +SRC_DIR=$PWD/../../backend +MAKEFILE=$PWD/Makefile.kernel26 +KERNEL_V=`uname -r` +OSMINOR=`uname -r | cut -b 3` +OSMAJOR=`uname -r | cut -b 1` + +# +# some intro ;-) +# +echo "This script will try and build a suitable kernel-module for your system." +echo "If you'd like to make the module WITH debug output, restart this script" +echo "with as follows:" +echo "./MakeModule.sh DEBUG=y" +echo "Press <ENTER> to continue or <CTRL><C> to cancel." +read + +# +# we need to be root user... +# +echo -n "Check for root..." +if [ $EUID -ne 0 ]; then + echo -e "\b\b\b - failed" + echo "Please retry as root user." + exit -1 +fi +echo -e "\b\b\b - done." + +# +# Version checks... +# +echo -e "\nCheck for kernelversion:" +if [ "$OSMAJOR" == "3" ];then + echo "Using makefile for kernel 2.6.x - okay for kernel 3 as well..." + MAKEFILE=$PWD/Makefile.kernel26 +elif [ "$OSMINOR" == "6" ]; then + echo "Using makefile for kernel 2.6.x" + MAKEFILE=$PWD/Makefile.kernel26 +elif [ "$OSMINOR" == "4" ]; then + echo "Using makefile for kernel 2.4.x" + MAKEFILE=$PWD/Makefile.kernel24 +else + echo "Your kernelversion >"$OSMAJOR"."$OSMINOR"< is probably not supported" + exit -2 +fi + +# +# Setup... +# +echo -e "Build-directory: \n"$BUILD_DIR +echo -n "Removing build-directory..." +rm -rf $BUILD_DIR +echo -e "\b\b\b - done." + +echo -n "Creating build-directory..." +mkdir $BUILD_DIR +cd $BUILD_DIR +echo -e "\b\b\b - done.\n" + +echo -n "Linking source files..." +C_FILES=`ls $SRC_DIR/plustek-pp_*.c` +H_FILES=`ls $SRC_DIR/plustek-pp_*.h` + +for F in $C_FILES $H_FILES $SRC_DIR/plustek-pp.h $SRC_DIR/plustek_pp.c; do + ln -s $F . +done +echo -e "\b\b\b - done." + +echo -n "Copying Makefile to build-directory..." +cp $MAKEFILE Makefile +echo -e "\b\b\b - done." + +# +# Building the module... +# +echo "Making the module..." +if [ "$OSMAJOR" == "2" -a "$OSMINOR" == "4" ]; then + make all $1 +else + make -C /lib/modules/$KERNEL_V/build/ SUBDIRS=$BUILD_DIR modules $1 +fi +RES=$? +cd .. +if [ $RES != 0 ]; then + echo "There were some build errors..." + exit -1 +fi +echo "done." + +echo "Should I install the module?" +echo "Press <ENTER> to continue or <CTRL><C> to cancel." +read + +make -C $BUILD_DIR install + +echo "Should I try and load the module?" +echo "If this step fails, check the kernel-log." +echo "Press <ENTER> to continue or <CTRL><C> to cancel." +read + +make -C $BUILD_DIR load +echo "done." + +echo "Should I remove the build directory?" +echo "Press <ENTER> to continue or <CTRL><C> to cancel." +read + +rm -rf $BUILD_DIR +echo "done." |