⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 linux下从网卡远程启动
💻
字号:
ARCH_FORMAT=	elf32-i386LCONFIG+=	-DRELOC=$(RELOCADDR) -DS16SIZE=$(START16_BYTES) -Ui386BUILD_ROMS=	$(ROMS)BUILD_ELFS=	$(patsubst %img, %elf, $(IMGS))BUILD_PXES=	$(patsubst %.img, %.pxe, $(IMGS)) $(patsubst %.img, %.zpxe, $(IMGS))BUILD_COMS=	$(patsubst %.img, %.com, $(IMGS))BUILD_LILOS=	$(patsubst %.img, %.lilo, $(IMGS)) $(patsubst %.img, %.zlilo, $(IMGS))START=	$(BIN)/start32.o $(BIN)/pcbios.o $(BIN)/memsizes.o \	$(BIN)/basemem.o $(BIN)/linuxbios.oSRCS+=	arch/i386/prefix/floppyload.SSRCS+=	arch/i386/prefix/unhuf.SSRCS+=	arch/i386/prefix/unnrv2b.SSRCS+=	arch/i386/firmware/pcbios/memsizes.cSRCS+=	arch/i386/firmware/pcbios/basemem.cSRCS+=	arch/i386/firmware/pcbios/pcbios.SSRCS+=	arch/i386/prefix/liloprefix.SSRCS+=	arch/i386/prefix/elfprefix.SSRCS+=	arch/i386/prefix/lmelf_prefix.SSRCS+=	arch/i386/prefix/comprefix.SSRCS+=	arch/i386/prefix/pxeprefix.SSRCS+=	arch/i386/prefix/loader.SSRCS+=	arch/i386/core/start32.SSRCS+=	arch/i386/core/start16.SSRCS+=	arch/i386/core/pxe.cSRCS+=	arch/i386/core/pci_io.cSRCS+=	arch/i386/core/i386_timer.cSRCS+=	arch/i386/core/elf.cSRCS+=	arch/i386/core/cpu.cSRCS+=	arch/i386/core/video_subr.cSRCS+=	arch/i386/core/pic8259.c# ROM loaders: PCI header version (prefix P)RLOADER=	$(BIN)/rloader.binPRLOADER=	$(BIN)/prloader.binSTART16=	$(BIN)/start16.binDISKLOADER=	$(BIN)/floppyload.binCOMPREFIX=	$(BIN)/comprefix.binLILOPREFIX=	$(BIN)/liloprefix.binPXEPREFIX=	$(BIN)/pxeprefix.binELFPREFIX=	$(BIN)/elfprefix.o# Make sure that the relocation address is acceptable for all ROM sizes.  # The old setting was 0x9400 which left about 45kB of space for Etherboot.# Now we default to 0x20000. Without relocation enabled this means# Etherboot cannot load images that resize in the low 640KB.# (We should see if we can lower this to allow larger images in the low# 640kB but this is not urgent.)# With relocation enabled we Etherboot should be able to load any image.# The size is limited to 320KB to catch really flagrant# abuses, and to ensure there is enough room for etherboot to decompress itself.# This check may need to be updated to ensure the single driver etherboot will# fit in a bootrom.  The check is done based running 'size' on the binary, not# ROM size.  With previous incarnations this meant a ROM of 16kB or a partially# used ROM of 32kB, remembering to take compressed ROM images into account.#ifndef RELOCADDRRELOCADDR:=0x20000endif# Until all of the drivers are updated to be relocatable,# carefully setup loader.S to know start16.bin size#ifndef START16_BYTESSTART16_BYTES:=112endif# Evaluate ROMLIMIT only once - it is constant during the make run.# Under normal situations, 2K of stack are rarely needed.  If you# experience strange behaviour in functions that use many local# variables or that call functions that do, check for stack overrun! # Make sure that the normal case needs no Perl interpreter - if someone uses a# different RELOCADDR, then he has Perl installed anyways (the shell cannot# deal with hex numbers, as test/eval don't support non-decimal integers).ROMLIMIT:=$(shell perl -e 'printf("%d\n", (640*1024 - $(RELOCADDR)));')# We need allroms,allelfs,allpxes,allcoms,alllilos because $(IMGS) is not defined until# the Makefile fragment "Roms" is read.include		$(BIN)/Romsallroms:	$(BUILD_ROMS)allelfs:	$(BUILD_ELFS)allpxes:	$(BUILD_PXES)allcoms:	$(BUILD_COMS)alllilos:	$(BUILD_LILOS)BOBJS+=		$(BIN)/pxe.o $(BIN)/pci_io.o $(BIN)/i386_timer.oBOBJS+=		$(BIN)/elf.o $(BIN)/cpu.o $(BIN)/video_subr.oBOBJS+=		$(BIN)/pic8259.o# Prepended loaders$(BIN)/rloader.bin:	$(BIN)/rloader.o$(BIN)/prloader.bin:	$(BIN)/prloader.o$(BIN)/start16.bin:	$(BIN)/rloader.o$(BIN)/floppyload.bin:	$(BIN)/floppyload.o$(BIN)/comprefix.bin:   $(BIN)/comprefix.o$(BIN)/liloprefix.bin:	$(BIN)/liloprefix.o$(BIN)/pxeprefix.bin:	$(BIN)/pxeprefix.o# ROM loaders$(BIN)/rloader.o:	arch/i386/prefix/loader.S $(MAKEDEPS)	$(CPP) $(LCONFIG) $< | $(AS) $(ASFLAGS) -o $@ $(BIN)/prloader.o:	arch/i386/prefix/loader.S $(MAKEDEPS)	$(CPP) -DPCI_PNP_HEADER $(LCONFIG) $< | $(AS) $(ASFLAGS) -o $@ # 16 to 32bit transition$(BIN)/start16.o:	arch/i386/core/start16.S $(MAKEDEPS)	$(CPP) $(CFLAGS) $(LCONFIG) $< | $(AS) $(ASFLAGS) -o $@# floppy / hard disk loader (not used)$(BIN)/boot1a.bin: arch/i386/prefix/boot1a.s $(MAKEDEPS)	as --defsym FLAGS=0x80 arch/i386/prefix/boot1a.s -o $(BIN)/boot1a.o	ld -nostdlib -static -N -e start -Ttext 0x7c00 -o $(BIN)/boot1a.out $(BIN)/boot1a.o	objcopy -S -O binary $(BIN)/boot1a.out $(BIN)/boot1a.bin	$(RM) $(BIN)/boot1a.o $(BIN)/boot1a.out# floppy loader$(BIN)/floppyload.o: arch/i386/prefix/floppyload.S $(MAKEDEPS)	$(CPP) $< | $(AS) $(ASFLAGS) -o $(BIN)/floppyload.o$(BIN)/floppyload.bin: $(BIN)/floppyload.o	objcopy -O binary $< $(BIN)/floppyload.bin	$(RM) $(BIN)/floppyload.o# PXE prefix$(BIN)/pxeprefix.s:	arch/i386/prefix/pxeprefix.S $(MAKEDEPS)	$(CPP) -o $@ $<$(BIN)/pxeprefix.bin:	$(BIN)/pxeprefix.o	$(LD) -Ttext 0x7c00 $(LDBINARY) -o $@ $<# COM prefix$(BIN)/comprefix.s:	arch/i386/prefix/comprefix.S $(MAKEDEPS)	$(CPP) -o $@ $<# LILO prefix:$(BIN)/liloprefix.s:	arch/i386/prefix/liloprefix.S $(MAKEDEPS)	$(CPP) -o $@ $<$(BIN)/liloprefix.bin:	$(BIN)/liloprefix.o	$(LD) -Ttext 0x7c00 $(LDBINARY) -o $@ $<# Utilities$(BIN)/nrv2b:	util/nrv2b.c	$(HOST_CC) -O2 -DENCODE -DDECODE -DMAIN -DVERBOSE -DNDEBUG -DBITSIZE=32 -DENDIAN=0 -o $@ $<# Pattern Rules# General for compiling/assembly source files$(BIN)/%.o:	arch/i386/core/%.c $(MAKEDEPS)	$(CC) $(CFLAGS) -o $@ -c $<$(BIN)/%.o:	arch/i386/core/%.S $(MAKEDEPS)	$(CPP) $(CFLAGS) -Ui386 -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@$(BIN)/%.o:	arch/i386/firmware/pcbios/%.c $(MAKEDEPS)	$(CC) $(CFLAGS) -o $@ -c $<$(BIN)/%.o:	arch/i386/firmware/pcbios/%.S $(MAKEDEPS)	$(CPP) $(CFLAGS) -Ui386 -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@$(BIN)/%.o:	arch/i386/prefix/%.S $(MAKEDEPS)	$(CPP) $(CFLAGS) -Ui386 -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@# general rule for 16bit .o, may be overridden$(BIN)/%.o:	$(BIN)/%.s	$(AS) $(ASFLAGS) -o $@ $<# general rule for .bin (plain binary loader code), may be overridden$(BIN)/%.bin:	$(BIN)/%.o	$(LD) -Ttext 0x10000 $(LDBINARY) -o $@ $<# general rule for .huf (compressed binary code), may be overridden$(BIN)/%.huf:	$(BIN)/%.img $(BIN)/lzhuf $(MAKEDEPS)	$(BIN)/lzhuf e $< $@$(BIN)/%.hufo: $(BIN)/%.huf arch/i386/prefix/huf.lds $(MAKEDEPS)	$(LD) -T arch/i386/prefix/huf.lds -b binary $< -o $@$(BIN)/%.lzimg: $(BIN)/%.hufo $(BIN)/unhuf.o arch/i386/prefix/unhuf.lds $(MAKEDEPS)	$(LD) -T arch/i386/prefix/unhuf.lds $(BIN)/unhuf.o $< -o $@# general rule for .z (compressed binary code), may be overridden# rule for .z is in top level Makefile# Give the directory name, e.g. use $(BIN)/rtl8139.com as the target.$(BIN)/%.zo:	$(BIN)/%.z arch/i386/prefix/huf.lds $(MAKEDEPS)	$(LD) -T arch/i386/prefix/huf.lds -b binary $< -o $@$(BIN)/%.zimg:	$(BIN)/%.zo $(BIN)/unnrv2b.o arch/i386/prefix/unhuf.lds $(MAKEDEPS)	$(LD) -T arch/i386/prefix/unhuf.lds $(BIN)/unnrv2b.o $< -o $@# general rules for normal/compressed ROM images, may be overridden$(BIN)/%.rom:	$(BIN)/%.img $(RLOADER) $(START16)	cat $(RLOADER) $(START16) $< > $@	$(MAKEROM) $(MAKEROM_FLAGS) $(MAKEROM_$*) -i$(IDENT) $@$(BIN)/%.zrom: $(BIN)/%.zimg $(RLOADER) $(START16)	cat $(RLOADER) $(START16) $< > $@	$(MAKEROM) $(MAKEROM_FLAGS)  $(MAKEROM_$*) -i$(IDENT) $@# general rules for ELF images$(BIN)/elfprefix.tmp:	$(BIN)/elfprefix.o arch/i386/prefix/elfprefix.lds $(MAKEDEPS)	$(LD) -T arch/i386/prefix/elfprefix.lds $< -o $@$(BIN)/elfprefix:	$(BIN)/elfprefix.tmp $(MAKEDEPS)	$(OBJCOPY) -O binary $< $@$(BIN)/%.elf:	$(BIN)/%.img $(BIN)/%.tmp $(BIN)/elfprefix arch/i386/prefix/apply_elf_prefix.pl $(MAKEDEPS)	@$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 bss rest ; echo $$bss )	$(PERL) arch/i386/prefix/apply_elf_prefix.pl $(RELOCADDR) $(BIN)/elfprefix $< `$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 bss rest ; echo $$bss)` > $@$(BIN)/%.zelf:	$(BIN)/%.zimg $(BIN)/%.tmp $(BIN)/elfprefix arch/i386/prefix/apply_elf_prefix.pl $(MAKEDEPS)	@$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 d3 size rest ; echo $$size )	$(PERL) arch/i386/prefix/apply_elf_prefix.pl $(RELOCADDR) $(BIN)/elfprefix $< `$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 d3 size rest ; echo $$size)` > $@# general rules for Long Mode ELF images$(BIN)/lmelf_prefix.tmp:	$(BIN)/lmelf_prefix.o arch/i386/prefix/elfprefix.lds $(MAKEDEPS)	$(LD) -T arch/i386/prefix/elfprefix.lds $< -o $@$(BIN)/lmelf_prefix:	$(BIN)/lmelf_prefix.tmp $(MAKEDEPS)	$(OBJCOPY) -O binary $< $@$(BIN)/%.lmelf:	$(BIN)/%.img $(BIN)/%.tmp $(BIN)/lmelf_prefix arch/i386/prefix/apply_elf_prefix.pl $(MAKEDEPS)	@$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 bss rest ; echo $$bss )	$(PERL) arch/i386/prefix/apply_elf_prefix.pl $(RELOCADDR) $(BIN)/lmelf_prefix $< `$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 bss rest ; echo $$bss)` > $@$(BIN)/%.zlmelf:	$(BIN)/%.zimg $(BIN)/%.tmp $(BIN)/lmelf_prefix arch/i386/prefix/apply_elf_prefix.pl $(MAKEDEPS)	@$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 d3 size rest ; echo $$size )	$(PERL) arch/i386/prefix/apply_elf_prefix.pl $(RELOCADDR) $(BIN)/lmelf_prefix $< `$(SIZE) $(BIN)/$(*).tmp | (read l1; read d1 d2 d3 size rest ; echo $$size)` > $@# rules to generate a DOS loadable .com executable%.com:	%.zimg $(COMPREFIX) $(START16)	cat $(COMPREFIX) $(START16) $< > $@# rules to make a LILO loadable image%.lilo:		%.img $(LILOPREFIX) $(START16)	$(PERL) util/makelilo.pl $(LILOPREFIX) $(START16) $< > $@%.zlilo:	%.zimg $(LILOPREFIX) $(START16)	$(PERL) util/makelilo.pl $(LILOPREFIX) $(START16) $< > $@# rules to generate a PXE loadable image%.pxe:	%.img $(PXEPREFIX) $(START16)	cat $(PXEPREFIX) $(START16) $< > $@%.zpxe:	%.zimg $(PXEPREFIX) $(START16)	cat $(PXEPREFIX) $(START16) $< > $@# rules to generate the .dsk/.zdsk floppy images%.dsk:	%.img $(DISKLOADER) $(START16)	cat $(DISKLOADER) $(START16) $< > $@%.zdsk:	%.zimg $(DISKLOADER) $(START16)	cat $(DISKLOADER) $(START16) $< > $@# rules to write the .img/.zimg image onto a blank floppy%.fd0:	%.img $(DISKLOADER) $(START16)	cat $(DISKLOADER) $(START16) $< > /dev/fd0%.zfd0:	%.zimg $(DISKLOADER) $(START16)	cat $(DISKLOADER) $(START16) $< > /dev/fd0# rule to make a non-emulation ISO boot image%.iso:	%.zimg $(START16)	mkdir -p $*.dir	cat $(START16) $< > $*.dir/$(*F).bin	mkisofs -o $@ -c boot.cat -no-emul-boot -b $(*F).bin $*.dir	rm -fr $*.dir# rule to make a floppy emulation ISO boot imageSUFFIXES +=    liso%.liso: util/genliso %.zlilo	util/genliso $*.liso $*.zlilo

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -