#!/bin/bash

KERNEL_BOOT_PATH="kernel"

SCSI_DRIVERS="
     53c7,8xx.o AM53C974.o BusLogic.o NCR53c406a.o advansys.o aha152x.o
     aha1542.o aha1740.o aic7xxx.o dtc.o eata_dma.o eata_pio.o fdomain.o
     g_NCR5380.o gdth.o in2000.o initio.o megaraid.o ncr53c8xx.o pas16.o
     qlogicisp.o seagate.o sym53c8xx.o t128.o u14-34f.o wd7000.o ultrastor.o"

# broken network modules: at1700.o
NETWORK_DRIVERS="
     3c501.o 3c503.o 3c505.o 3c507.o 3c509.o 3c59x.o 82596.o 8390.o ac3200.o
     acenic.o epic100.o cs89x0.o de4x5.o de600.o de620.o dgrs.o e2100.o
     eepro.o eepro100.o eexpress.o es3210.o eth16i.o hp-plus.o hp.o
     hp100.o ibmtr.o lance.o lne390.o ne.o ne2k-pci.o ne3210.o ni52.o
     ni5010.o ni65.o plip.o
     pcnet32.o rtl8139.o sktr.o smc9194.o smc-ultra.o
     smc-ultra32.o tlan.o 
     tulip.o via-rhine.o wavelan.o wd.o yellowfin.o

     nfs.o lockd.o sunrpc.o"
#     3c589_cs.o ibmtr_cs.o nmclan_cs.o pcnet_cs.o smc91c92_cs.o wavelan_cs.o
#     fmvj18x_cs.o netwave_cs.o xirc2ps_cs.o 3c574_cs.o"

PCMCIA_DRIVERS="
     3c574_cs.o 3c575_cb.o 3c589_cs.o aha152x_cs.o apa1480_cb.o cb_enabler.o
     dummy_cs.o epic_cb.o fdomain_cs.o fmvj18x_cs.o 
     ibmtr_cs.o ide_cs.o iflash2+_mtd.o iflash2_mtd.o
     netwave_cs.o nmclan_cs.o
     parport_cs.o pcnet_cs.o qlogic_cs.o
     smc91c92_cs.o sram_mtd.o tulip_cb.o wavelan_cs.o xirc2ps_cs.o
     ftl_cs.o memory_cb.o memory_cs.o serial_cb.o serial_cs.o

     8390.o 
     nfs.o lockd.o sunrpc.o"

#     3c589_cs.o ibmtr_cs.o nmclan_cs.o pcnet_cs.o smc91c92_cs.o wavelan_cs.o
#     fmvj18x_cs.o netwave_cs.o xirc2ps_cs.o 3c574_cs.o"


CD_DRIVERS="aztcd.o cm206.o isp16.o mcdx.o sbpcd.o sonycd535.o cdu31a.o gscd.o mcd.o optcd.o sjcd.o"

BLOCK_DRIVERS="DAC960.o cpqarray.o"

MISCMODULES="lp.o parport_pc.o parport.o loop.o"

FSMODULES="vfat.o fat.o"

NETWORK_MODULES="$MISCMODULES $FSMODULES $NETWORK_DRIVERS"
CDROM_MODULES="$MISCMODULES $FSMODULES $SCSI_DRIVERS $CD_DRIVERS isofs.o"
HD_MODULES="$MISCMODULES $FSMODULES $SCSI_DRIVERS $BLOCK_DRIVERS"
PCMCIA_MODULES="$PCMCIA_DRIVERS $MISCMODULES $FSMODULES"

PCMCIA_INSTALLMODULES="pcmcia_core.o tcic.o ds.o i82365.o"

PRISTINE_MODULES="serial.o"

cp -f "$KERNEL_BOOT_PATH"/boot/vmlinuz* vmlinuz
cp -f "$KERNEL_BOOT_PATH"/boot/System.map* System.map

#set 640x480x16 resolution on boot.
/usr/sbin/rdev -v vmlinuz 785

rm -rf modules ; install -d modules
rm -rf install_pcmcia_modules ; install -d install_pcmcia_modules
(cd modules ; 
    cp -f `find ../"$KERNEL_BOOT_PATH"/lib/modules/ -name "*.o"` .
    mkdir pristine ; cp $PRISTINE_MODULES pristine
    /sbin/depmod -m ../System.map -i -e *.o | grep ': ' | sed 's/\.o//g' > modules.dep
    ls *.o              | cpio --quiet -H crc -o | bzip2 -9> modules.cpio.bz2
    ls $NETWORK_MODULES | cpio --quiet -H crc -o | gzip -9 > network_modules.cgz
    ls $CDROM_MODULES   | cpio --quiet -H crc -o | gzip -9 > cdrom_modules.cgz	
    ls $HD_MODULES      | cpio --quiet -H crc -o | gzip -9 > hd_modules.cgz     
    ls $PCMCIA_MODULES  | cpio --quiet -H crc -o | gzip -9 > pcmcia_modules.cgz
    cp $PCMCIA_INSTALLMODULES ../install_pcmcia_modules/
    rm -f $NETWORK_MODULES $CDROM_MODULES $HD_MODULES $PCMCIA_MODULES $PCMCIA_INSTALLMODULES nls_*.o # leave in the directory non-install1 used modules
)