.EXPORT_ALL_VARIABLES:

TEXTADDR	= 0x410c00a0
DATAADDR	= 0x1000

TOPDIR		:= $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)

HPATH		= $(TOPDIR)/include
FINDHPATH	= $(HPATH)/bios

CFLAGS		= -O2 -fomit-frame-pointer -I$(HPATH) -Wall -Wa,-msa110
LDFLAGS		= -N -Ttext $(TEXTADDR) -Tdata $(DATAADDR)

HOSTCC		=gcc
HOSTCFLAGS	=-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer

CC		=$(CROSS_COMPILE)gcc -m6
LD		=$(CROSS_COMPILE)ld
AR		=$(CROSS_COMPILE)ar
STRIP		=$(CROSS_COMPILE)strip

SUBDIRS		= init lib drivers
BIOSOBJS	= init/crt0.o init/init.o
DRIVERS		= drivers/drivers.o drivers/block/block.a drivers/net/net.a \
		  drivers/scsi/scsi.a drivers/char/char.a drivers/isa/isa.a
LIBS		= lib/lib.a `$(CC) --print-libgcc-file-name`

all:		bios scripts/mkboot

depend dep: dep-files

bios:		scripts/mkaif subdirs debug.o
		$(LD) $(LDFLAGS) -o bios.a.out $(BIOSOBJS) debug.o \
		$(DRIVERS) \
		$(LIBS)
		scripts/mkaif bios.a.out $@

clean:
		$(RM) `find . -name '*.[oas]' -print`
		$(RM) `find . -name '.*.flags' -print`
		$(RM) bios bios.a.out

mrproper:	clean
		$(RM) `find . -name '.depend' -print`
		$(RM) scripts/mkaif scripts/mkdep

subdirs:	$(patsubst %, _dir_%,$(SUBDIRS))

$(patsubst %, _dir_%, $(SUBDIRS)) : dummy
		$(MAKE) -C $(patsubst _dir_%, %, $@)

dep-files: scripts/mkdep
		scripts/mkdep `find $(FINDHPATH) -follow -name \*.h -print` > .hdepend
		$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"

scripts/mkdep: scripts/mkdep.c
		$(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c

scripts/mkaif: scripts/mkaif.c
		$(HOSTCC) $(HOSTCFLAGS) -o scripts/mkaif scripts/mkaif.c

scripts/mkboot: scripts/mkboot.c
		$(HOSTCC) $(HOSTCFLAGS) -o scripts/mkboot scripts/mkboot.c

dummy:

include Rules.make
