1# -*- makefile -*- : Force emacs to use Makefile mode 2 3# The i386 linker script 4# 5LDSCRIPT = arch/i386/scripts/i386.lds 6 7# Stop ld from complaining about our customised linker script 8# 9LDFLAGS += -N --no-check-sections 10 11# Media types. 12# 13MEDIA += rom 14MEDIA += hrom 15MEDIA += xrom 16MEDIA += pxe 17MEDIA += kpxe 18MEDIA += kkpxe 19MEDIA += lkrn 20MEDIA += dsk 21MEDIA += nbi 22MEDIA += hd 23MEDIA += raw 24 25# Padding rules 26# 27PAD_rom = $(PADIMG) --blksize=512 --byte=0xff $@ 28PAD_hrom = $(PAD_rom) 29PAD_xrom = $(PAD_rom) 30PAD_dsk = $(PADIMG) --blksize=512 $@ 31PAD_hd = $(PADIMG) --blksize=32768 $@ 32 33# rule to make a non-emulation ISO boot image 34NON_AUTO_MEDIA += iso 35%iso: %lkrn util/geniso 36 $(QM)$(ECHO) " [GENISO] $@" 37 $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) bash util/geniso $@ $< 38 39# rule to make a floppy emulation ISO boot image 40NON_AUTO_MEDIA += liso 41%liso: %lkrn util/genliso 42 $(QM)$(ECHO) " [GENLISO] $@" 43 $(Q)bash util/genliso $@ $< 44 45# rule to make a syslinux floppy image (mountable, bootable) 46NON_AUTO_MEDIA += sdsk 47%sdsk: %lkrn util/gensdsk 48 $(QM)$(ECHO) " [GENSDSK] $@" 49 $(Q)bash util/gensdsk $@ $< 50 51# Special target for building Master Boot Record binary 52$(BIN)/mbr.bin : $(BIN)/mbr.o 53 $(QM)$(ECHO) " [OBJCOPY] $@" 54 $(Q)$(OBJCOPY) -O binary $< $@ 55 56# rule to make a USB disk image 57$(BIN)/usbdisk.bin : $(BIN)/usbdisk.o 58 $(QM)$(ECHO) " [OBJCOPY] $@" 59 $(Q)$(OBJCOPY) -O binary $< $@ 60 61NON_AUTO_MEDIA += usb 62%usb: $(BIN)/usbdisk.bin %hd 63 $(QM)$(ECHO) " [FINISH] $@" 64 $(Q)cat $^ > $@ 65 66# Padded floppy image (e.g. for iLO) 67NON_AUTO_MEDIA += pdsk 68%pdsk : %dsk 69 $(Q)cp $< $@ 70 $(Q)$(PADIMG) --blksize=1474560 $@ 71