一个2.4.21版本的嵌入式linux内核
源代码在线查看: makefile
# # Makefile for making XCOFF bootable images for booting on PowerMacs # using Open Firmware. # # Paul Mackerras January 1997 # # Cleaned up, moved into arch/ppc/boot/pmac # Tom Rini January 2001 OBJCOPY_ARGS = -O aixcoff-rs6000 -R .stab -R .stabstr -R .comment COFF_LD_ARGS = -T ../ld.script -e _start -Ttext 0x00500000 -Bstatic CHRP_LD_ARGS = -T ../ld.script -Ttext 0x01000000 COMMONOBJS = start.o misc.o ../common/string.o ../common/ofcommon.o COFFOBJS = ../common/coffcrt0.o $(COMMONOBJS) coffmain.o CHRPOBJS = ../common/crt0.o $(COMMONOBJS) chrpmain.o LIBS = $(TOPDIR)/lib/lib.a ../lib/zlib.a MKNOTE := ../utils/mknote SIZE := ../utils/size OFFSET := ../utils/offset HACKCOFF := ../utils/hack-coff ifdef CONFIG_SMP END := .smp endif ifdef CONFIG_PPC64BRIDGE END += .64 endif TFTPIMAGE=/tftpboot/zImage.pmac$(END) AFLAGS_../common/crt0.o += -I$(TOPDIR)/arch/$(ARCH)/kernel ../common/coffcrt0.o: $(MAKE) -C ../common coffcrt0.o image.o: ../images/vmlinux.gz ../common/dummy.o $(OBJCOPY) ../common/dummy.o $@ -R .comment \ --add-section=.image=../images/vmlinux.gz \ --set-section-flags=.image=contents,alloc,load,readonly,data ifdef CONFIG_XMON $(OBJCOPY) $@ $@ \ --add-section=.sysmap=$(TOPDIR)/System.map \ --set-section-flags=.sysmap=contents,alloc,load,readonly,data endif znetboot: vmlinux.coff vmlinux.elf-pmac zImage cp ../images/vmlinux.coff $(TFTPIMAGE) cp ../images/vmlinux.elf-pmac $(TFTPIMAGE).elf znetboot.initrd: vmlinux.initrd.coff vmlinux.initrd.elf-pmac cp ../images/vmlinux.initrd.coff $(TFTPIMAGE) cp ../images/vmlinux.initrd.elf-pmac $(TFTPIMAGE).elf miboot.image: ../common/dummy.o ../images/vmlinux.gz $(OBJCOPY) $(OBJCOPY_ARGS) --add-section=image=../images/vmlinux.gz \ ../common/dummy.o ../images/$@ miboot.initrd.image: miboot.image ../images/ramdisk.image.gz $(OBJCOPY) $(OBJCOPY_ARGS) --add-section=initrd=../images/ramdisk.image.gz \ ../images/miboot.image ../images/$@ coffboot: $(COFFOBJS) image.o $(LIBS) ../ld.script $(LD) -o $@ $(COFF_LD_ARGS) $(COFFOBJS) image.o $(LIBS) $(OBJCOPY) $@ $@ -R .comment coffboot.initrd: $(COFFOBJS) image.o $(LIBS) ../ld.script \ ../images/ramdisk.image.gz $(OBJCOPY) image.o image-coff.o \ --add-section=.ramdisk=../images/ramdisk.image.gz \ --set-section-flags=.ramdisk=contents,alloc,load,readonly,data $(LD) -o $@ $(COFF_LD_ARGS) $(COFFOBJS) image-coff.o $(LIBS) $(OBJCOPY) $@ $@ -R .comment rm -f image-coff.o vmlinux.coff: coffboot $(HACKCOFF) $(OBJCOPY) $(OBJCOPY_ARGS) coffboot ../images/$@ $(HACKCOFF) ../images/$@ rm -f coffboot ln -sf vmlinux.coff ../images/zImage.pmac vmlinux.initrd.coff: coffboot.initrd $(HACKCOFF) $(OBJCOPY) $(OBJCOPY_ARGS) coffboot.initrd ../images/$@ $(HACKCOFF) ../images/$@ rm -f coffboot.initrd ln -sf vmlinux.initrd.coff ../images/zImage.initrd.pmac vmlinux.elf-pmac: $(CHRPOBJS) $(LIBS) $(MKNOTE) image.o $(LD) $(CHRP_LD_ARGS) -o ../images/$@ $(CHRPOBJS) $(LIBS) image.o $(MKNOTE) > note $(OBJCOPY) ../images/$@ ../images/$@ --add-section=.note=note \ -R .comment -R .ramdisk rm -f note vmlinux.initrd.elf-pmac: $(CHRPOBJS) $(LIBS) $(MKNOTE) image.o \ ../images/ramdisk.image.gz $(OBJCOPY) image.o image-elf.o \ --add-section=.ramdisk=../images/ramdisk.image.gz \ --set-section-flags=.ramdisk=contents,alloc,load,readonly,data $(LD) $(CHRP_LD_ARGS) -o ../images/$@ $(CHRPOBJS) $(LIBS) image-elf.o $(MKNOTE) > note $(OBJCOPY) ../images/$@ ../images/$@ --add-section=.note=note \ -R .comment rm -f note image-elf.o zImage: vmlinux.coff vmlinux.elf-pmac miboot.image zImage.initrd: vmlinux.initrd.coff vmlinux.initrd.elf-pmac miboot.initrd.image include $(TOPDIR)/Rules.make