
HEAD = head.o
SYSTEM = ../tools/zSystem
#LD = gcc
#TEST = -DTEST_DRIVER

zOBJECTS = $(HEAD) inflate.o unzip.o misc.o

CFLAGS = -O2 -DSTDC_HEADERS $(TEST)

ifeq ($(CONFIG_MATH_EMULATION),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/math.o 
endif

ifeq ($(CONFIG_UNIX_SOCK),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../net/unix/unix.o 
endif

ifeq ($(CONFIG_INET),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../net/inet/inet.o  ../drivers/net/net_dev.o
endif

ifeq ($(CONFIG_PRINTER),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/char/lp.o
endif

ifeq ($(CONFIG_FLOPPY),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/floppy.o
endif

ifeq ($(CONFIG_EXT2_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/ext2/ext2.o  
endif

ifeq ($(CONFIG_EXT_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/ext/ext.o 
endif

ifeq ($(CONFIG_MINIX_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/minix/minix.o 
endif

ifeq ($(CONFIG_MSDOS_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/msdos/msdos.o 
endif

ifeq ($(CONFIG_ISO9660_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/isofs/isofs.o
endif

ifeq ($(CONFIG_PROC_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/proc/proc.o
endif

ifeq ($(CONFIG_NFS_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/nfs/nfs.o
endif

ifeq ($(CONFIG_HPFS_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/hpfs/hpfs_fs.o
endif

ifeq ($(CONFIG_XIA_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/xiafs/xiafs.o
endif

ifeq ($(CONFIG_IFS_FS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../fs/ifs/ifs.o
endif

ifeq ($(CONFIG_SCSI),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/dscsi.o
endif

ifeq ($(CONFIG_SCSI_AHA154X),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/aha152x.o
endif

ifeq ($(CONFIG_SCSI_AHA1542),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/aha1542.o
endif

ifeq ($(CONFIG_SCSI_AHA1740),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/aha1740.o
endif

ifeq ($(CONFIG_SCSI_FUTURE_DOMAIN),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/fdomain.o
endif

ifeq ($(CONFIG_SCSI_GENERIC_NCR5380),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/g_NCR5380.o
endif

ifeq ($(CONFIG_SCSI_PAS16),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/pas16.o
endif

ifeq ($(CONFIG_SCSI_SEAGATE),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/seagate.o
endif

ifeq ($(CONFIG_SCSI_T128),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/t128.o
endif

ifeq ($(CONFIG_SCSI_ULTRASTOR),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/ultrastor.o
endif

ifeq ($(CONFIG_SCSI_7000FASST),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/wd7000.o
endif

ifeq ($(CONFIG_SCSI),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/scsi/dsd.o ../drivers/scsi/dsr.o \
../drivers/scsi/dsg.o -a 1 ../drivers/scsi/dst.o
endif

ifeq ($(CONFIG_SOUND),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/sound/sound.o
endif

ifeq ($(CONFIG_PLIP),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/net/plip.o
endif

ifeq ($(CONFIG_WD80x3),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/wd.o
endif

ifeq ($(CONFIG_NE2000),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/ne.o
endif

ifeq ($(CONFIG_ULTRA),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  -m ultra.o ../drivers/net/smc-ultra.o
endif

ifeq ($(CONFIG_HPLAN),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/hp.o
endif

ifeq ($(CONFIG_DEPCA),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/depca.o
endif

ifeq ($(CONFIG_EL1),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  -m el1.o ../drivers/net/3c501.o
endif

ifeq ($(CONFIG_EL2),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  -m el2.o ../drivers/net/3c503.o
endif

ifeq ($(CONFIG_EL3),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  -m el3.o ../drivers/net/3c509.o
endif

ifeq ($(CONFIG_EL16),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  -m el7.o ../drivers/net/3c507.o
endif

ifeq ($(CONFIG_ELPLUS),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  -m elplus.o ../drivers/net/3c506.o
endif

ifeq ($(CONFIG_LANCE),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/lance.o
endif

ifeq ($(CONFIG_AT1700),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/at1700.o
endif

ifeq ($(CONFIG_DE600),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/d_link.o
endif

ifeq ($(CONFIG_ATP),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS)  ../drivers/net/atp.o
endif

ifeq ($(CONFIG_DOUBLE),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/dble.o
endif

ifeq ($(CONFIG_RAMDISK),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/ramdisk.o
endif

ifeq ($(CONFIG_CDU31A),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/cdu31a.o
endif

ifeq ($(CONFIG_CDU535),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/cdu535.o
endif

ifeq ($(CONFIG_MCD),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/mcd.o
endif

ifeq ($(CONFIG_SBPCD),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/sbpcd.o
endif

ifeq ($(CONFIG_LMSCD),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/lmscd.o
endif

ifeq ($(CONFIG_PANASONIC),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/block/panasonic.o
endif

ifeq ($(CONFIG_ISDN_SCOM),BOOT_LOAD)
BOOTLOADS := $(BOOTLOADS) ../drivers/isdn/isdn.o
endif

.c.s:
	$(CC) $(CFLAGS) -S -o $*.s $<
.s.o:
	$(AS) -c -o $*.o $<
.c.o:
	$(CC) $(CFLAGS) -c -o $*.o $<

all:	zSystem mSystem

zSystem:	piggy.o $(zOBJECTS)
		$(LD) $(LDFLAGS) -o zSystem -Ttext 1000 $(zOBJECTS) piggy.o

mSystem:	mpiggy.o $(zOBJECTS)
		$(LD) $(LDFLAGS) -o mSystem -T 1000 $(zOBJECTS) mpiggy.o

head.o:	head.s

head.s: head.S ../include/linux/tasks.h
	$(CPP) -traditional head.S -o head.s

piggy.o:	$(SYSTEM) xtract piggyback
		./xtract $(SYSTEM) | gzip -9 | ./piggyback > piggy.o

mpiggy.o:	$(SYSTEM) xtract piggyback
		./xtract $(SYSTEM) > mSystem.tmp
		insmod -b -v $(BOOTLOADS)
		cat mSystem.tmp modules.head modules.text | gzip -9 | ./piggyback > mpiggy.o

$(SYSTEM):
		$(MAKE) -C .. tools/zSystem
