#!/bin/sh
#########################################
# Untar the root disk
#########################################
if [ ! -d "rootdiskdir" ]; then
  echo "tar xjf vendors/rootdiskdir.tar.bz2"
  tar xjf vendors/rootdiskdir.tar.bz2
fi
#########################################
# Rebuild the kernel modules
#########################################
(cd kernel; make modules)
#make INSTALL_MOD_PATH="rootdiskdir" -C kernel modules_install
cp kernel/net/bridge/bridge.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/bridge
cp kernel/net/ipv6/ipv6.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv6/
cp kernel/net/ipv4/ah4.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/
cp kernel/net/ipv4/ipcomp.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/
cp kernel/net/ipv4/xfrm4_tunnel.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/
cp kernel/net/ipv4/esp4.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/
#cp kernel/net/xfrm/xfrm_user.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/
cp kernel/net/key/af_key.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/
cp kernel/net/ipv4/netfilter/ipt_ULOG.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_owner.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ip_queue.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_length.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ip_conntrack_irc.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ip_conntrack.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_MARK.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ip_nat_irc.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_tos.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_ttl.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ip_nat_ftp.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_multiport.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/iptable_mangle.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/iptable_filter.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_mac.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_TCPMSS.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_REJECT.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_TOS.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ip_tables.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_tcpmss.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_REDIRECT.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_esp.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_NETMAP.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_limit.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_ah.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_mark.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
#cp kernel/net/ipv4/netfilter/ip_nat_snmp_basic.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_LOG.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/iptable_nat.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
cp kernel/net/ipv4/netfilter/ipt_state.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/netiflter/
#cp kernel/net/ipv4/netfilter/xfrm_user.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/net/ipv4/
cp kernel/fs/nfsd/nfsd.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/net/
#cp kernel/drivers/net/ixp400_eth.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/net/ixp400_eth.ko
cp kernel/drivers/net/bonding/bonding.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/net/
cp kernel/drivers/net/tun.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/net/
cp kernel/fs/exportfs/exportfs.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/net/
cp kernel/drivers/net/wireless/rtlink/rt2500.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/net/
cp kernel/drivers/net/8139too.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/net/8139too.ko
cp kernel/drivers/pcmcia/pcmcia.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/pcmcia/
cp kernel/drivers/pcmcia/yenta_socket.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/pcmcia/
cp kernel/drivers/pcmcia/pcmcia_core.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/pcmcia/
cp kernel/drivers/ide/legacy/ide-cs.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/ide/
cp kernel/drivers/ide/ide-core.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/ide/
cp kernel/drivers/ide/ide-disk.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/ide/
cp kernel/drivers/scsi/scsi_mod.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/scsi/
cp kernel/drivers/scsi/sd_mod.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/scsi/
cp kernel/drivers/scsi/sg.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/scsi/
cp kernel/drivers/isdn/hisax/hisax.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/isdn/
cp kernel/drivers/isdn/i4l/isdn.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/isdn/
cp kernel/drivers/isdn/hisax/avma1_cs.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/isdn/
cp kernel/drivers/usb/storage/usb-storage.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/usb/
cp kernel/drivers/usb/host/ehci-hcd.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/usb/
cp kernel/drivers/usb/serial/usbserial.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/usb/serial/
cp kernel/drivers/usb/serial/sierra.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/usb/serial/
cp kernel/drivers/usb/host/uhci-hcd.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/usb
cp kernel/drivers/usb/host/ohci-hcd.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/usb
cp kernel/drivers/usb/core/usbcore.ko rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/kernel/drivers/usb
# Update /lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/modules.dep
host/module-init-tools-3.4.1/depmod -ae -b rootdiskdir -v 2.6.10_dev-ixdp42x-arm_xscale_be

# Remove the reduncy modules.* files excep modules.dep
rm -f rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/modules.*map
rm -f rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/modules.alias
rm -f rootdiskdir/lib/modules/2.6.10_dev-ixdp42x-arm_xscale_be/modules.symbols
#########################################
# Rebuild kversion program which contain the build time.
#########################################
#ntpdate 220.130.158.52 #time.stdtime.gov.tw
make -C MXUser/kversion/ -f Makefile
make -C MXUser/kversion/ -f Makefile install

#########################################
# Customized for different customers
#########################################
#echo "vendors/${PLATFORM}/${MAJOR}.${MINOR}.${OEM}.${TESTING}/customize_rootdisk.sh"
if [ -f "vendors/${PLATFORM}/${MAJOR}.${MINOR}.${OEM}.${TESTING}/customize_rootdisk.sh" ]; then
 	. "vendors/${PLATFORM}/${MAJOR}.${MINOR}.${OEM}.${TESTING}/customize_rootdisk.sh"
fi

#########################################
# Build the root disk image
#########################################
if [ -d "rootdiskdir" ]; then
	host/mtd-utils/mkfs.jffs2 -b -e 0x20000 -d ./rootdiskdir -o /tftpboot/$ROOTDISK
fi


