2004-04-14 19:14:13 +00:00
|
|
|
#!/bin/bash
|
|
|
|
#******************************************************************************
|
|
|
|
#
|
|
|
|
# Bash-Script to create Plustek-Scannerdriver modules for Kernel 2.4 & 2.6
|
|
|
|
# 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."
|
|
|
|
|
|
|
|
#
|
2004-07-16 11:32:04 +00:00
|
|
|
# Version checks...
|
2004-04-14 19:14:13 +00:00
|
|
|
#
|
|
|
|
echo -e "\nCheck for kernelversion:"
|
|
|
|
if [ "$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
|
|
|
|
|
2004-07-16 11:32:04 +00:00
|
|
|
#
|
|
|
|
# Setup...
|
|
|
|
#
|
2004-04-14 19:14:13 +00:00
|
|
|
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`
|
|
|
|
|
2004-07-16 11:32:04 +00:00
|
|
|
for F in $C_FILES $H_FILES $SRC_DIR/plustek-pp.h $SRC_DIR/plustek_pp.c; do
|
2004-04-14 19:14:13 +00:00
|
|
|
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."
|
|
|
|
|
2004-07-16 11:32:04 +00:00
|
|
|
#
|
|
|
|
# Building the module...
|
|
|
|
#
|
2004-04-14 19:14:13 +00:00
|
|
|
echo "Making the module..."
|
|
|
|
if [ "$OSMINOR" == "4" ]; then
|
|
|
|
make all $1
|
|
|
|
else
|
|
|
|
make -C /lib/modules/$KERNEL_V/build/ SUBDIRS=$BUILD_DIR modules $1
|
|
|
|
fi
|
2004-07-16 11:32:04 +00:00
|
|
|
RES=$?
|
2004-04-14 19:14:13 +00:00
|
|
|
cd ..
|
2004-07-16 11:32:04 +00:00
|
|
|
if [ $RES != 0 ]; then
|
|
|
|
echo "There were some build errors..."
|
|
|
|
exit -1
|
|
|
|
fi
|
2004-04-14 19:14:13 +00:00
|
|
|
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."
|