# -*- 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 $@