#!/bin/sh

set -x -e

tmpdir=`pwd`/kernel-packages.$$

kernel_src_tree=$1
kernel_version=$2
package_version=$3

kernel_priority=`echo $kernel_version | sed 's/2.4.//' |  sed 's/2.5.//' | sed 's/-.*$//'`
kernel_priority=`expr $kernel_priority "*" 10`
echo kernel_priority=$kernel_priority

if [ -z "$kernel_version" -o ! -d "$kernel_src_tree" ]; then
	echo "Usage: $0 <kernel_src_tree> <kernel_version> <ipkg_version>"
	exit 1
fi

cp $kernel_src_tree/arch/arm/boot/zImage zImage-$kernel_version-$package_version
cp $kernel_src_tree/System.map System-$kernel_version-$package_version.map

package_srcs=""
mkdir -p $tmpdir

pushd $tmpdir


##
## category_modules <categoryname> <description> <moredepends> <moddir1> <moddir2> ... 
##
category_modules () {
    local category
    local description
    local otherdepends
    category=$1
    shift
    description=$1
    shift
    otherdepends=$1
    shift
    mod_dirs="$*"

    local cm_ipkg_src
    cm_ipkg_src=$tmpdir/$category-modules-$kernel_version

    package_srcs="$package_srcs $cm_ipkg_src"

    mkdir $cm_ipkg_src
    pushd $cm_ipkg_src

    mkdir CONTROL

    moredepends=""
    if [ ! "$otherdepends" = "nodepends" ] ; then
      for od in $otherdepends ; do
        moredepends="$moredepends, $od-modules-$kernel_version"
      done
    fi

    echo moredepends=$moredepends
    cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@KERNELPRIORITY@@/$kernel_priority/g; s/@@CATEGORY@@/$category/g; s/@@MOREDEPENDS@@/$moredepends/g; s/@@PACKAGEVERSION@@/$package_version/g;" > CONTROL/control
Package: @@CATEGORY@@-modules-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: optional
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: kernel-modules-@@KERNELVERSION@@@@MOREDEPENDS@@
Description: @@CATEGORY@@ modules for kernel @@KERNELVERSION@@
EOF
    echo "  " $description >> CONTROL/control

    controldir=$PWD/CONTROL

    mod_base=lib/modules/$kernel_version
    mkdir -p $mod_base
    cd $mod_base

    for mod in $mod_dirs; do
      mod_dir1=`dirname $mod`
      if [ -d $module_source/$mod -o -f $module_source/$mod ] ; then
        mkdir -p $mod_dir1
        mv $module_source/$mod $mod_dir1
      fi
    done

    cat <<EOF > $controldir/postinst
#!/bin/sh

depmod -ae 
EOF
    ## find . -name '*.o' -exec echo  /$mod_base/{} \\ \; >> $controldir/postinst
    ## echo >> $controldir/postinst
    chmod agu+rx $controldir/postinst

    popd
}

############################################################ 

kernel_ipkg_src=$tmpdir/kernel-$kernel_version

mkdir $kernel_ipkg_src
pushd $kernel_ipkg_src

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: kernel-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: required
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: kernel-modules-@@KERNELVERSION@@
Description: kernel for kernel @@KERNELVERSION@@
  This package contains the kernel image built for
  useful within familiar. 
EOF

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@KERNELPRIORITY@@/$kernel_priority/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/postinst
#!/bin/sh

zimage="zImage-@@KERNELVERSION@@"
tmpkernelfile="/boot/$zimage"
if [ -d /boot ] ; then
    update-alternatives --install /boot/zImage zImage /boot/zImage-@@KERNELVERSION@@ @@KERNELPRIORITY@@
else
  cat /proc/mtd | while read mtddev size esize quotedename ; do
    echo $mtddev | sed "s/mtd//" | sed "s/://" | read mtddevnum
    echo $quotedname | sed "s/\"//g" | read name
    if [ "$name" = "kernel" ] ; then
      mknod /tmp/mtdblock$mtddevnum b 31 $mtddevnum
      cat /boot/zImage-@@KERNELVERSION@@ > /dev/mtdblock/$mtddevnum
      rm /boot/zImage-@@KERNELVERSION@@
    fi
  done
fi 
EOF
chmod agu+rx CONTROL/postinst

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@KERNELPRIORITY@@/$kernel_priority/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/postrm
#!/bin/sh

zimage="zImage-@@KERNELVERSION@@"
tmpkernelfile="/boot/$zimage"
if [ -d /boot ] ; then
    update-alternatives --remove zImage /boot/zImage-@@KERNELVERSION@@
fi 
EOF
chmod agu+rx CONTROL/postrm

############################################################

#
# Pull the modules out of the kernel.
#
mkdir boot

cp $kernel_src_tree/arch/arm/boot/zImage boot/zImage-$kernel_version
popd

############################################################ 

km_ipkg_src=$tmpdir/kernel-modules-$kernel_version

mkdir $km_ipkg_src
pushd $km_ipkg_src

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: kernel-modules-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: required
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Alexander Guy <a7r@andern.org>
Depends: modutils
Description: kernel modules for kernel @@KERNELVERSION@@
  This package contains almost all of the kernel modules that might be
  useful within familiar. Eventually I would like to split many of
  these modules off into their own packages that would have dependency
  links from the programs that need them. For example, e2fsprogs could
  depend on e2fs-kernel-modules or something like that. I have already
  split off cpu-scale and the pcmcia modules into their own packages.
EOF

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/postinst
#!/bin/sh

if grep -q h3600-sleeve /etc/modules ; then
    true
else
    echo h3600-sleeve >> /etc/modules
fi
echo "alias usbf usb-eth" >> /etc/modules.conf

EOF
chmod agu+rx CONTROL/postinst


mod_base=lib/modules/$kernel_version


#
# Pull the modules out of the kernel.
#
pushd $kernel_src_tree 

INSTALL_MOD_PATH=$km_ipkg_src
export INSTALL_MOD_PATH

make modules_install

popd

#
# Clean up kernel-modules
# 

module_source=$km_ipkg_src/$mod_base

cd $module_source

rm build

for file in modules.*
do
    rm $file
    ln -s /var/run/$file $file
done

popd

#
# Setup irda-modules
#

category_modules irda "The entire suite of kernel modules required to use both SIR and FIR
  IrDA.  This includes IrCOMM, and IrLAN support." nodepends \
 kernel/drivers/net/irda \
 kernel/net/irda

## category_modules ipv6 "IPV6 networking support." nodepends kernel/net/ipv6


category_modules smbfs "SMB filesystem support." nodepends kernel/fs/smbfs
category_modules nfs "NFS filesystem client support." nodepends kernel/net/sunrpc kernel/fs/nfs kernel/fs/lockd
category_modules nfsd "NFS filesystem server support." nfs kernel/fs/nfsd 
category_modules cramfs "CRAMFS filesystem support." nodepends kernel/fs/cramfs
category_modules isofs "CRAMFS filesystem support." nodepends kernel/fs/isofs
category_modules loopback "Loopback device support." nodepends kernel/drivers/block/loop.o
category_modules mbd "Network block device support." nodepends kernel/drivers/block/nbd.o

category_modules backpaq "Mercury BackPAQ driver support." "pcmcia videodev" \
    kernel/drivers/pcmcia/h3600_backpaq.o \
    kernel/drivers/char/h3600_backpaq_accel.o \
    kernel/arch/arm/mach-sa1100/h3600_backpaq_fpga.o \
    kernel/drivers/char/h3600_backpaq_fpga.o \
    kernel/drivers/char/h3600_backpaq_gasgauge.o \
    kernel/drivers/mtd/h3600_backpaq_flash.o \
    kernel/drivers/media/video/h3600_backpaq_camera.o
cat <<EOF > backpaq-modules-$kernel_version/CONTROL/postinst
#!/bin/sh

if grep -q h3600_backpaq /etc/modules ; then
    true
else
    echo h3600_backpaq >> /etc/modules
fi
EOF

category_modules iptables "ipv4 netfilter and iptables support." nodepends kernel/net/ipv4/netfilter
category_modules iptables-ipv6 "ipv6 netfilter and iptables support." ipv6 kernel/net/ipv6/netfilter
category_modules stowaway "Stowaway keyboard support." nodepends kernel/drivers/char/h3600_stowaway.o
category_modules microkbd "Compaq Microkeyboard support." nodepends kernel/drivers/char/h3600_microkbd.o
category_modules input "Linux input drivers." nodepends kernel/drivers/input kernel/drivers/char/joystick/serio.o kernel/drivers/char/joystick/serport.o
category_modules newtonkbd "Newton keyboard support." input kernel/drivers/char/newtonkbd.o
category_modules ext2 "EXT2 filesystem support." nodepends kernel/fs/ext2
category_modules ext3 "EXT3 filesystem support." nodepends kernel/fs/ext3 kernel/fs/jbd
category_modules reiserfs "Reiser journaling filesystem support" nodepends kernel/fs/reiserfs
category_modules vfat "VFAT filesystem support." nodepends kernel/fs/fat kernel/fs/vfat

category_modules nls-base "NLS codepage for nls-base" nodepends kernel/fs/nls/nls_base.o
category_modules nls-big5 "NLS codepage for nls-big5" nls-base kernel/fs/nls/nls_big5.o
category_modules nls-cp1250 "NLS codepage for nls-cp1250" nls-base kernel/fs/nls/nls_cp1250.o
category_modules nls-cp1251 "NLS codepage for nls-cp1251" nls-base kernel/fs/nls/nls_cp1251.o
category_modules nls-cp1255 "NLS codepage for nls-cp1255" nls-base kernel/fs/nls/nls_cp1255.o
category_modules nls-cp437 "NLS codepage for nls-cp437" nls-base kernel/fs/nls/nls_cp437.o
category_modules nls-cp737 "NLS codepage for nls-cp737" nls-base kernel/fs/nls/nls_cp737.o
category_modules nls-cp775 "NLS codepage for nls-cp775" nls-base kernel/fs/nls/nls_cp775.o
category_modules nls-cp850 "NLS codepage for nls-cp850" nls-base kernel/fs/nls/nls_cp850.o
category_modules nls-cp852 "NLS codepage for nls-cp852" nls-base kernel/fs/nls/nls_cp852.o
category_modules nls-cp855 "NLS codepage for nls-cp855" nls-base kernel/fs/nls/nls_cp855.o
category_modules nls-cp857 "NLS codepage for nls-cp857" nls-base kernel/fs/nls/nls_cp857.o
category_modules nls-cp860 "NLS codepage for nls-cp860" nls-base kernel/fs/nls/nls_cp860.o
category_modules nls-cp861 "NLS codepage for nls-cp861" nls-base kernel/fs/nls/nls_cp861.o
category_modules nls-cp862 "NLS codepage for nls-cp862" nls-base kernel/fs/nls/nls_cp862.o
category_modules nls-cp863 "NLS codepage for nls-cp863" nls-base kernel/fs/nls/nls_cp863.o
category_modules nls-cp864 "NLS codepage for nls-cp864" nls-base kernel/fs/nls/nls_cp864.o
category_modules nls-cp865 "NLS codepage for nls-cp865" nls-base kernel/fs/nls/nls_cp865.o
category_modules nls-cp866 "NLS codepage for nls-cp866" nls-base kernel/fs/nls/nls_cp866.o
category_modules nls-cp869 "NLS codepage for nls-cp869" nls-base kernel/fs/nls/nls_cp869.o
category_modules nls-cp874 "NLS codepage for nls-cp874" nls-base kernel/fs/nls/nls_cp874.o
category_modules nls-cp932 "NLS codepage for nls-cp932" nls-base kernel/fs/nls/nls_cp932.o
category_modules nls-cp936 "NLS codepage for nls-cp936" nls-base kernel/fs/nls/nls_cp936.o
category_modules nls-cp949 "NLS codepage for nls-cp949" nls-base kernel/fs/nls/nls_cp949.o
category_modules nls-cp950 "NLS codepage for nls-cp950" nls-base kernel/fs/nls/nls_cp950.o
category_modules nls-euc-jp "NLS codepage for nls-euc-jp" nls-base kernel/fs/nls/nls_euc-jp.o
category_modules nls-euc-kr "NLS codepage for nls-euc-kr" nls-base kernel/fs/nls/nls_euc-kr.o
category_modules nls-gb2312 "NLS codepage for nls-gb2312" nls-base kernel/fs/nls/nls_gb2312.o
category_modules nls-iso8859-13 "NLS codepage for nls-iso8859-13" nls-base kernel/fs/nls/nls_iso8859-13.o
category_modules nls-iso8859-14 "NLS codepage for nls-iso8859-14" nls-base kernel/fs/nls/nls_iso8859-14.o
category_modules nls-iso8859-15 "NLS codepage for nls-iso8859-15" nls-base kernel/fs/nls/nls_iso8859-15.o
category_modules nls-iso8859-1 "NLS codepage for nls-iso8859-1" nls-base kernel/fs/nls/nls_iso8859-1.o
category_modules nls-iso8859-2 "NLS codepage for nls-iso8859-2" nls-base kernel/fs/nls/nls_iso8859-2.o
category_modules nls-iso8859-3 "NLS codepage for nls-iso8859-3" nls-base kernel/fs/nls/nls_iso8859-3.o
category_modules nls-iso8859-4 "NLS codepage for nls-iso8859-4" nls-base kernel/fs/nls/nls_iso8859-4.o
category_modules nls-iso8859-5 "NLS codepage for nls-iso8859-5" nls-base kernel/fs/nls/nls_iso8859-5.o
category_modules nls-iso8859-6 "NLS codepage for nls-iso8859-6" nls-base kernel/fs/nls/nls_iso8859-6.o
category_modules nls-iso8859-7 "NLS codepage for nls-iso8859-7" nls-base kernel/fs/nls/nls_iso8859-7.o
category_modules nls-iso8859-8 "NLS codepage for nls-iso8859-8" nls-base kernel/fs/nls/nls_iso8859-8.o
category_modules nls-iso8859-9 "NLS codepage for nls-iso8859-9" nls-base kernel/fs/nls/nls_iso8859-9.o
category_modules nls-koi8-r "NLS codepage for nls-koi8-r" nls-base kernel/fs/nls/nls_koi8-r.o
category_modules nls-koi8-ru "NLS codepage for nls-koi8-ru" nls-base kernel/fs/nls/nls_koi8-ru.o
category_modules nls-koi8-u "NLS codepage for nls-koi8-u" nls-base kernel/fs/nls/nls_koi8-u.o
category_modules nls "NLS codepage for nls" nls-base kernel/fs/nls/nls.o
category_modules nls-sjis "NLS codepage for nls-sjis" nls-base kernel/fs/nls/nls_sjis.o
category_modules nls-tis-620 "NLS codepage for nls-tis-620" nls-base kernel/fs/nls/nls_tis-620.o
category_modules nls-utf8 "NLS codepage for nls-utf8" nls-base kernel/fs/nls/nls_utf8.o

category_modules netlink "Netlink support." nodepends kernel/net/netlink
category_modules packet "Raw IP packet support." nodepends kernel/net/packet
category_modules mipv6 "IPv6 mobility support." ipv6 kernel/net/ipv6/mobile_ip6
category_modules ipv6 "IPv6 networking support." nodepends kernel/net/ipv6
category_modules ipsec "ipsec support." nodepends kernel/net/ipsec

category_modules videodev "Video For Linux driver." nodepends kernel/drivers/media/video/videodev.o
category_modules videodevx "Video For Linux 2 driver." nodepends kernel/drivers/media/video/videodevx.o kernel/drivers/media/video/v4l_compat.o
category_modules winnov "Winnov Videum PCMCIA Video For Linux driver." videodevx kernel/drivers/media/video/wnv_cs.o

category_modules lirc "Linux Consumer IR drivers." nodepends kernel/drivers/char/lirc_sir.o

## pcmcia ethernet cards
category_modules 3c589 "3COM 3c589_cs driver." "packet pcmcia" kernel/drivers/net/pcmcia/3c589_cs.o pcmcia/3c589_cs.o
category_modules 3c574 "3COM 3c574_cs driver." "packet pcmcia" kernel/drivers/net/pcmcia/3c574_cs.o pcmcia/3c574_cs.o
category_modules 8390 "8390 network device driver." nodepends kernel/drivers/net/8390.o
category_modules pcnet "pcnet_cs (NE2000 compatible) driver." "packet pcmcia 8390" kernel/drivers/net/pcmcia/pcnet_cs.o pcmcia/pcnet_cs.o
category_modules fmvj18x "fjvj18x_cs driver." "packet pcmcia" kernel/drivers/net/pcmcia/fmvj18x_cs.o pcmcia/fmvj18x_cs.o
category_modules nmclan "nmclan driver" "packet pcmcia" kernel/drivers/net/pcmcia/nmclan_cs.o pcmcia/nmclan_cs.o
category_modules smc91c92 "smc91c92 driver" "packet pcmcia" kernel/drivers/net/pcmcia/smc91c92_cs.o pcmcia/smc91c92_cs.o
category_modules xirc2ps "xirc2ps driver" "packet pcmcia" kernel/drivers/net/pcmcia/xirc2ps_cs.o pcmcia/xirc2ps_cs.o

## pcmcia serial cards
category_modules serial "serial_cs driver" pcmcia kernel/drivers/char/pcmcia/serial_cs.o pcmcia/serial_cs.o
category_modules parport "parport_cs driver" nodepends kernel/drivers/parport

## 802.11b cards 
category_modules wvlan "Lucent 802.11b (wvlan) drivers." "netlink packet pcmcia" kernel/drivers/net/wireless/wvlan_cs.o pcmcia/wvlan_cs.o
category_modules orinoco "802.11b (orinoco) drivers should support both Lucent and Intersil chipsets." "netlink packet pcmcia" \
    kernel/drivers/net/wireless/orinoco_cs.o \
    kernel/drivers/net/wireless/orinoco.o \
    kernel/drivers/net/wireless/hermes.o
category_modules aironet "aironet driver" "packet pcmcia" kernel/drivers/net/wireless/airo.o kernel/drivers/net/wireless/airo_cs.o pcmcia/airo_cs.o
category_modules spectrum24 "spectrum24" "packet pcmcia" kernel/drivers/net/wireless/spectrum24t_cs.o

category_modules bluetooth "bluetooth support" "" \
    kernel/net/bluetooth \
    kernel/drivers/bluetooth

category_modules sound "Sound support" nodepends kernel/drivers/sound
cat <<EOF >> sound-modules-$kernel_version/CONTROL/postinst
#!/bin/sh

if grep -q h3600-uda1341 /etc/modules ; then
    true
else
    echo h3600-uda1341 >> /etc/modules
fi
EOF

category_modules ppp "PPP support" nodepends \
    kernel/drivers/net/ppp_generic.o \
    kernel/drivers/net/slhc.o \
    kernel/drivers/net/ppp_async.o \
    kernel/drivers/net/ppp_deflate.o \
    kernel/drivers/net/bsd_comp.o

category_modules scsi "SCSI support" nodepends kernel/drivers/scsi


## must be after individual pcmcia driver packages
category_modules pcmcia "Miscellaneous PCMCIA drivers." nodepends \
 pcmcia \
 kernel/drivers/pcmcia \
 kernel/drivers/char/pcmcia \
 kernel/drivers/net/pcmcia \
 kernel/drivers/char/serial.o

cat <<EOF >> pcmcia-modules-$kernel_version/CONTROL/postinst
#!/bin/sh

if grep -q sa1100_cs /etc/modules ; then
    true
else
    echo sa1100_cs >> /etc/modules
fi
if grep -q h3600_generic_sleeve /etc/modules ; then
    true
else
    echo h3600_generic_sleeve >> /etc/modules
fi
EOF
## after pcmcia modules
category_modules ide "IDE support" pcmcia kernel/drivers/ide kernel/drivers/cdrom kernel/drivers/ide/ide-cs.o



############################################################

task_n=$tmpdir/task-bootnet-$kernel_version
mkdir $task_n
pushd $task_n 

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: task-bootnet-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: optional
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: task-essential-to-boot, familiar-base, ipkg, ipkg-conf, hostname, kernel-@@KERNELVERSION@@, pcnet-modules-@@KERNELVERSION@@, orinoco-modules-@@KERNELVERSION@@, sound-modules-@@KERNELVERSION@@, pcmcia-cs, wireless-tools, hotplug
Description: kernel and modules required to bootstrap and install more packages via pcmcia/cf/usb HTTP or FTP.  Does not include ext2, or vfat.
EOF

package_srcs="$package_srcs $task_n"
popd 

############################################################

task_b=$tmpdir/task-bootstrap-$kernel_version
mkdir $task_b
pushd $task_b 

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: task-bootstrap-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: optional
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: task-essential-to-boot, familiar-base, ipkg, ipkg-conf, hostname, kernel-@@KERNELVERSION@@, pcnet-modules-@@KERNELVERSION@@, orinoco-modules-@@KERNELVERSION@@, ide-modules-@@KERNELVERSION@@, nfs-modules-@@KERNELVERSION@@, ppp-modules-@@KERNELVERSION@@, sound-modules-@@KERNELVERSION@@, vfat-modules-@@KERNELVERSION@@, pcmcia-cs, wireless-tools, lrzsz, hotplug, ppp
Description: kernel and modules required to bootstrap and install more packages
EOF

package_srcs="$package_srcs $task_b"
popd 

############################################################

task_p=$tmpdir/task-bootppp-$kernel_version
mkdir $task_p
pushd $task_p 

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: task-bootppp-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: optional
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: task-essential-to-boot, familiar-base, ipkg, ipkg-conf, hostname, kernel-@@KERNELVERSION@@, ppp-modules-@@KERNELVERSION@@, sound-modules-@@KERNELVERSION@@, lrzsz, hotplug, ppp, ssh
Description: kernel and modules required to boot and install more packages via pppd.  Does not include PCMCIA/CF support.
EOF

package_srcs="$package_srcs $task_p"
popd 

############################################################

task_i=$tmpdir/task-intimate-modules-$kernel_version
mkdir $task_i
pushd $task_i 

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: task-intimate-modules-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: optional
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: task-bootstrap-@@KERNELVERSION@@, wvlan-modules-@@KERNELVERSION@@, pcnet-modules-@@KERNELVERSION@@, reiserfs-modules-@@KERNELVERSION@@, nfs-modules-@@KERNELVERSION@@, ide-modules-@@KERNELVERSION@@
Description: kernel and modules required to run Intimate
EOF

package_srcs="$package_srcs $task_i"
popd

############################################################

task_i=$tmpdir/task-backpaq-modules-$kernel_version
mkdir $task_i
pushd $task_i 

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: task-backpaq-modules-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: optional
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: task-bootstrap-@@KERNELVERSION@@, backpaq-modules-@@KERNELVERSION@@
Description: kernel and modules required to run the Backpaq
EOF

package_srcs="$package_srcs $task_i"
popd

############################################################

task_m=$tmpdir/task-mipv6-$kernel_version
mkdir $task_m
pushd $task_m 

mkdir CONTROL

cat <<EOF | sed "s/@@KERNELVERSION@@/$kernel_version/g; s/@@PACKAGEVERSION@@/$package_version/;" > CONTROL/control
Package: task-mipv6-@@KERNELVERSION@@
Section: kernel
Essential: no
Priority: optional
Version: @@PACKAGEVERSION@@
Architecture: arm
Maintainer: Jamey Hicks <jamey.hicks@compaq.com>
Depends: task-bootstrap-@@KERNELVERSION@@, mipv6-modules-@@KERNELVERSION@@, task-complete, mipv6-bits, bash, vim, find, procps, psmisc, less 
Description: kernel and modules required to run the IPv6 Mobility Demo
EOF

package_srcs="$package_srcs $task_m"
popd

############################################################
popd

pwd
ipkg-build $kernel_ipkg_src .
ipkg-build $km_ipkg_src .

for package_src in $package_srcs; do
  pwd 
  ipkg-build $package_src .
done

rm -rf $tmpdir

