#!/bin/bash
#Copyright 2001-2002 William Stearns <wstearns@pobox.com>
#Released under the GPL.

#WARNING - not even basically coded yet.
if false ; then

#FIXME - where to make clean?

#http://walbran.org/sean/linux/stodolsk/ltmodem-5.78d.tar.gz
#ftp'ed ltmodem-5.78d from http://walbran.org/sean/linux/stodolsk
#compiled without error on 2.4.1-pre2, but "ltinst" failed to install on 2.4
#You'll have to fix ltinst for 2.4 by modifying this line ...
#cp ltmodem.o /lib/modules/`uname -r`/kernel/drivers/char

if [ -z "$LTMODEMVERSION" ]; then
	echo LTMODEMVERSION unset, skipping ltmodem.
	exit
fi

exec 2>&1
PROJECT="ltmodem"
BKLIBDIR="${BKLIBDIR:-/var/lib/buildkernel}/"
THISSCRIPT="$BKLIBDIR/bkrun-$PROJECT"   #We can't use $0 as this script is sourced; $0=/usr/bin/buildkernel

if [ -f $BKLIBDIR/${PROJECT}-options ]; then
	echo $PROJECT loading options
	. $BKLIBDIR/${PROJECT}-options
fi
echo $PROJECT \(Version $LTMODEMVERSION\) $1 called from Buildkernel

LTMODEMSOURCEDIR=${LTMODEMSOURCEDIR:-"/usr/src/pctel"}
if [ -f "$BKSOURCEDIR/LTMODEM.ZIP" ]; then
	LTMODEMTAR=${LTMODEMTAR:-"$BKSOURCEDIR/LTMODEM.ZIP"}
else
	LTMODEMTAR=${LTMODEMTAR:-"$BKSOURCEDIR/pctel.zip"}
fi
LTMODEMTESTFILE=${LTMODEMTESTFILE:-"$LTMODEMSOURCEDIR/src/module/Makefile"}

case $1 in
POSTLOADVARS)		:		;;
POSTGETSOURCE)
	cd $BKSOURCEDIR
	if [ ! -f "$LTMODEMTAR" ]; then
		echo Getting the Ltmodem driver \"source\".
		bkgetfile ftp www.pcchips.com.tw anonymous "$USER@$HOSTNAME" driver/Linux/MODEM LTMODEM.ZIP
		LTMODEMTAR="$BKSOURCEDIR/LTMODEM.ZIP"
	fi
	;;
POSTOPENSOURCE)
	if [ ! -f "$LTMODEMTESTFILE" ]; then	#Open up source
		if [ -f "$LTMODEMTAR" ]; then
			echo Opening $PROJECT source.
			mkdir --parents $LTMODEMSOURCEDIR
			cd $LTMODEMSOURCEDIR
			if [ -d include ]; then
				rm -rf $LTMODEMSOURCEDIR/include
				rmdir include
			elif [ -f include ]; then
				rm -f include
			fi
			ln -sf /usr/src/linux/include include
			case $LTMODEMTAR in
			#FIXME - what if unzip isn't there?
			*.zip|*.ZIP)	unzip $LTMODEMTAR												;;
			*)			echo Don\'t know how to open $LTMODEMTAR \! ; bkbeep ; sleep 30		;;
			esac
			if [ ! -f "$LTMODEMTESTFILE" ]; then
				echo Still no $LTMODEMTESTFILE after attempting to open \! ; bkbeep ; sleep 30
			fi
		else
			echo Ltmodem \"source\" is not yet opened and we don\'t have $LTMODEMTAR \! ; bkbeep ; sleep 30
		fi
	fi
	;;
POSTCONFIGURE)
	if [ -n "$LTMODEMSOURCEDIR" ]; then
		cd $LTMODEMSOURCEDIR/src/module >/dev/null
		if [ `pwd` != "$LTMODEMSOURCEDIR/src/module" ]; then
			echo can\'t change directory to src/module, exiting.
		else
			if [ -z "`cat ptmodule.c 2>/dev/null | grep IntrOpen`" ]; then
				echo >>ptmodule.c
				echo 'void IntrOpen(void) { }' >>ptmodule.c
				echo 'void IntrClose(void) { }' >>ptmodule.c
				echo 'void IntrWrite(void) { }' >>ptmodule.c
			fi		
			if [ -f ptmodule.o ]; then
				rm -f ptmodule.o
			fi
		fi
		cd $LTMODEMSOURCEDIR/lib >/dev/null
		if [ `pwd` != "$LTMODEMSOURCEDIR/lib" ]; then
			echo can\'t change directory to lib, exiting.
		else
			if [ -f pctel.o ]; then
				rm -f pctel.o
			fi
		fi
		cd $LTMODEMSOURCEDIR/src/module >/dev/null
		if [ `pwd` != "$LTMODEMSOURCEDIR/src/module" ]; then
			echo can\'t change directory, exiting.
		else
			make all_targets
		fi
	fi
	;;
POSTKERNELBUILD)	:		;;
POSTMODULEBUILD)	:		;;
POSTINSTALL)
	if [ -f "$LTMODEMSOURCEDIR/lib/pctel.o" ]; then
		echo Installing Pctel Kernel module.
		if [ ! -d /lib/modules/$BKKERNELTOBUILD/net ]; then
			mkdir --parents /lib/modules/$BKKERNELTOBUILD/net
		fi
		cp -p $LTMODEMSOURCEDIR/lib/pctel.o /lib/modules/$BKKERNELTOBUILD/net
	else
		echo No Pctel kernel module was created.
	fi
	;;
POSTCLEAN)			:		;;
''|ALL)
	. $THISSCRIPT POSTLOADVARS
	. $THISSCRIPT POSTGETSOURCE
	. $THISSCRIPT POSTOPENSOURCE
	. $THISSCRIPT POSTCONFIGURE
	. $THISSCRIPT POSTKERNELBUILD
	. $THISSCRIPT POSTMODULEBUILD
	. $THISSCRIPT POSTINSTALL
	. $THISSCRIPT POSTCLEAN
	;;
*)	echo unrecognized phase $1 ;;
esac

fi
