# -*- makefile -*- : Force emacs to use Makefile mode

# BIOS-specific directories containing source files
#
SRCDIRS		+= arch/x86/drivers/net

# The linker scripts
#
LDSCRIPT	= arch/x86/scripts/pcbios.lds
LDSCRIPT_PREFIX	= arch/x86/scripts/prefixonly.lds

# Stop ld from complaining about our customised linker script
#
LDFLAGS		+= -N --no-check-sections

# Do not warn about RWX segments (required by most prefixes)
#
WRWX_TEST	= $(LD) --warn-rwx-segments --version 2>&1 > /dev/null
WRWX_FLAGS	:= $(shell [ -z "`$(WRWX_TEST)`" ] && \
		     $(ECHO) '--no-warn-rwx-segments')
LDFLAGS		+= $(WRWX_FLAGS)

# Media types.
#
MEDIA		+= rom
MEDIA		+= mrom
MEDIA		+= pcirom
MEDIA		+= isarom
MEDIA		+= pxe
MEDIA		+= kpxe
MEDIA		+= kkpxe
MEDIA		+= kkkpxe
MEDIA		+= lkrn
MEDIA		+= dsk
MEDIA		+= nbi
MEDIA		+= hd
MEDIA		+= raw
MEDIA		+= exe

# Padding rules
#
PAD_rom		= $(PERL) $(PADIMG) --blksize=512 --byte=0xff
PAD_mrom	= $(PAD_rom)
PAD_pcirom	= $(PAD_rom)
PAD_isarom	= $(PAD_rom)
PAD_dsk		= $(PERL) $(PADIMG) --blksize=512
PAD_hd		= $(PERL) $(PADIMG) --blksize=32768
PAD_exe		= $(PERL) $(PADIMG) --blksize=512

# Finalisation rules
#
FINALISE_rom	= $(PERL) $(FIXROM)
FINALISE_mrom	= $(FINALISE_rom)
FINALISE_pcirom	= $(FINALISE_rom)
FINALISE_isarom	= $(FINALISE_rom)

# Use $(ROMS) rather than $(DRIVERS) for "allroms", "allmroms", etc.
#
LIST_NAME_rom := ROMS
LIST_NAME_mrom := ROMS
LIST_NAME_pcirom := ROMS
LIST_NAME_isarom := ROMS

# ISO images
NON_AUTO_MEDIA	+= iso
$(BIN)/%.iso : $(BIN)/%.lkrn util/genfsimg
	$(QM)$(ECHO) "  [GENFSIMG] $@"
	$(Q)util/genfsimg -o $@ $<

# FAT filesystem images (via syslinux)
NON_AUTO_MEDIA	+= sdsk
$(BIN)/%.sdsk : $(BIN)/%.lkrn util/genfsimg
	$(QM)$(ECHO) "  [GENFSIMG] $@"
	$(Q)util/genfsimg -o $@ $<

# rule to write disk images to /dev/fd0
NON_AUTO_MEDIA	+= fd0
%fd0 : %dsk
	$(QM)$(ECHO) "  [DD] $@"
	$(Q)dd if=$< bs=512 conv=sync of=/dev/fd0
	$(Q)sync

# Special target for building Master Boot Record binary
$(BIN)/mbr.tmp : $(BIN)/mbr.o
	$(QM)$(ECHO) "  [LD] $@"
	$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT_PREFIX) -o $@ -e mbr $<

# rule to make a USB disk image
$(BIN)/usbdisk.tmp : $(BIN)/usbdisk.o
	$(QM)$(ECHO) "  [LD] $@"
	$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT_PREFIX) -o $@ -e mbr $<

NON_AUTO_MEDIA	+= usb
%usb: $(BIN)/usbdisk.bin %hd
	$(QM)$(ECHO) "  [FINISH] $@"
	$(Q)cat $^ > $@

NON_AUTO_MEDIA	+= vhd
%vhd: %usb
	$(QM)$(ECHO) "  [FINISH] $@"
	$(Q)$(QEMUIMG) convert -f raw -O vpc $< $@

# Padded floppy image (e.g. for iLO)
NON_AUTO_MEDIA += pdsk
%pdsk : %dsk
	$(Q)cp $< $@
	$(Q)$(PADIMG) --blksize=1474560 $@
