123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- # -*- makefile -*- : Force emacs to use Makefile mode
-
- # BIOS-specific directories containing source files
- #
- SRCDIRS += arch/x86/drivers/net
-
- # The i386 linker script
- #
- LDSCRIPT = arch/x86/scripts/pcbios.lds
-
- # Stop ld from complaining about our customised linker script
- #
- LDFLAGS += -N --no-check-sections
-
- # Prefix always starts at address zero
- #
- LDFLAGS += --section-start=.prefix=0
-
- # 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
-
- # Locations of isolinux files
- #
- SYSLINUX_DIR_LIST := \
- /usr/lib/syslinux \
- /usr/lib/syslinux/bios \
- /usr/lib/syslinux/modules/bios \
- /usr/share/syslinux \
- /usr/share/syslinux/bios \
- /usr/share/syslinux/modules/bios \
- /usr/local/share/syslinux \
- /usr/local/share/syslinux/bios \
- /usr/local/share/syslinux/modules/bios \
- /usr/lib/ISOLINUX
- ISOLINUX_BIN_LIST := \
- $(ISOLINUX_BIN) \
- $(patsubst %,%/isolinux.bin,$(SYSLINUX_DIR_LIST))
- LDLINUX_C32_LIST := \
- $(LDLINUX_C32) \
- $(patsubst %,%/ldlinux.c32,$(SYSLINUX_DIR_LIST))
- ISOLINUX_BIN = $(firstword $(wildcard $(ISOLINUX_BIN_LIST)))
- LDLINUX_C32 = $(firstword $(wildcard $(LDLINUX_C32_LIST)))
-
- # rule to make a non-emulation ISO boot image
- NON_AUTO_MEDIA += iso
- %iso: %lkrn util/geniso
- $(QM)$(ECHO) " [GENISO] $@"
- $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) LDLINUX_C32=$(LDLINUX_C32) \
- VERSION="$(VERSION)" bash util/geniso -o $@ $<
-
- # rule to make a floppy emulation ISO boot image
- NON_AUTO_MEDIA += liso
- %liso: %lkrn util/geniso
- $(QM)$(ECHO) " [GENISO] $@"
- $(Q)VERSION="$(VERSION)" bash util/geniso -l -o $@ $<
-
- # rule to make a syslinux floppy image (mountable, bootable)
- NON_AUTO_MEDIA += sdsk
- %sdsk: %lkrn util/gensdsk
- $(QM)$(ECHO) " [GENSDSK] $@"
- $(Q)bash util/gensdsk $@ $<
-
- # 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) -o $@ -e mbr $<
-
- # rule to make a USB disk image
- $(BIN)/usbdisk.tmp : $(BIN)/usbdisk.o
- $(QM)$(ECHO) " [LD] $@"
- $(Q)$(LD) $(LDFLAGS) -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 $@
|