Makefile
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:4k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. # BK Id: SCCS/s.Makefile 1.16 09/28/01 07:39:37 trini
  2. #
  3. # Makefile for making XCOFF bootable images for booting on PowerMacs
  4. # using Open Firmware.
  5. #
  6. # Paul Mackerras January 1997
  7. #
  8. # Cleaned up, moved into arch/ppc/boot/pmac
  9. # Tom Rini January 2001
  10. OBJCOPY_ARGS = -O aixcoff-rs6000 -R .stab -R .stabstr -R .comment
  11. COFF_LD_ARGS = -e _start -T ld.script -Ttext 500000 -Tdata 510000 -Bstatic
  12. CHRP_LD_ARGS = -Ttext 0x01000000
  13. COMMONOBJS = start.o misc.o ../common/string.o image.o ../common/ofcommon.o
  14. COFFOBJS = ../common/coffcrt0.o $(COMMONOBJS) coffmain.o
  15. CHRPOBJS = ../common/crt0.o $(COMMONOBJS) chrpmain.o
  16. LIBS = $(TOPDIR)/lib/lib.a ../lib/zlib.a
  17. MKNOTE := ../utils/mknote
  18. SIZE := ../utils/size
  19. OFFSET := ../utils/offset
  20. PIGGYBACK := ../utils/piggyback
  21. HACKCOFF := ../utils/hack-coff
  22. ifeq ($(CONFIG_PPC64BRIDGE),y)
  23. MSIZE=.64
  24. else
  25. MSIZE=
  26. endif
  27. ifeq ($(CONFIG_SMP),y)
  28. TFTPIMAGE=/tftpboot/zImage.pmac.smp$(MSIZE)
  29. else
  30. TFTPIMAGE=/tftpboot/zImage.pmac$(MSIZE)
  31. endif
  32. ../common/crt0.o:
  33. $(MAKE) -C ../common crt0.o
  34. ../common/coffcrt0.o:
  35. $(MAKE) -C ../common coffcrt0.o
  36. chrpmain.o: chrpmain.c
  37. $(CC) $(CFLAGS) -DSYSMAP_OFFSET=0 -DSYSMAP_SIZE=0 -c chrpmain.c
  38. znetboot: vmlinux.coff vmlinux.elf-pmac zImage
  39. cp ../images/vmlinux.coff $(TFTPIMAGE)
  40. cp ../images/vmlinux.elf-pmac $(TFTPIMAGE).elf
  41. znetboot.initrd: vmlinux.initrd.coff vmlinux.initrd.elf-pmac
  42. cp ../images/vmlinux.initrd.coff $(TFTPIMAGE)
  43. cp ../images/vmlinux.initrd.elf-pmac $(TFTPIMAGE).elf
  44. #floppy: zImage
  45. # mount -t hfs /dev/fd0 /mnt
  46. # cp vmlinux.coff /mnt
  47. # umount /mnt
  48. miboot.image: dummy.o ../images/vmlinux.gz
  49. $(OBJCOPY) $(OBJCOPY_ARGS) --add-section=image=../images/vmlinux.gz 
  50. dummy.o ../images/$@
  51. miboot.initrd.image: miboot.image ../images/ramdisk.image.gz
  52. $(OBJCOPY) $(OBJCOPY_ARGS) --add-section=initrd=../images/ramdisk.image.gz 
  53. ../images/miboot.image ../images/$@
  54. coffboot: $(COFFOBJS) $(LIBS) ../common/no_initrd.o ld.script ../images/vmlinux.gz
  55. $(LD) -o $@ $(COFF_LD_ARGS) $(COFFOBJS) ../common/no_initrd.o $(LIBS)
  56. coffboot.initrd: $(COFFOBJS) $(LIBS) initrd.o ld.script ../images/vmlinux.gz
  57. $(LD) -o $@ $(COFF_LD_ARGS) $(COFFOBJS) initrd.o $(LIBS)
  58. image.o: $(PIGGYBACK) ../images/vmlinux.gz
  59. $(PIGGYBACK) image < ../images/vmlinux.gz | $(AS) -o $@
  60. initrd.o: ../images/ramdisk.image.gz $(PIGGYBACK)
  61. $(PIGGYBACK) initrd < ../images/ramdisk.image.gz | $(AS) -o $@
  62. vmlinux.coff: coffboot $(HACKCOFF)
  63. $(OBJCOPY) $(OBJCOPY_ARGS) coffboot ../images/$@
  64. $(HACKCOFF) ../images/$@
  65. rm -f coffboot
  66. ln -sf vmlinux.coff ../images/zImage.pmac
  67. vmlinux.initrd.coff: coffboot.initrd $(HACKCOFF)
  68. $(OBJCOPY) $(OBJCOPY_ARGS) coffboot.initrd ../images/$@
  69. $(HACKCOFF) ../images/$@
  70. rm -f coffboot.initrd
  71. ln -sf vmlinux.initrd.coff ../images/zImage.initrd.pmac
  72. vmlinux.elf-pmac: $(CHRPOBJS) $(LIBS) ../common/no_initrd.o $(MKNOTE) ../images/vmlinux.gz
  73. $(LD) $(CHRP_LD_ARGS) -o ../images/$@ $(CHRPOBJS) ../common/no_initrd.o $(LIBS)
  74. $(MKNOTE) > note
  75. $(OBJCOPY) ../images/$@ ../images/$@ --add-section=.note=note 
  76. --add-section=sysmap=$(TOPDIR)/System.map -R .comment
  77. $(CC) $(CFLAGS) chrpmain.c -c -o chrpmain.o 
  78. -DSYSMAP_OFFSET=`sh $(OFFSET) $(OBJDUMP) ../images/$@ sysmap` 
  79. -DSYSMAP_SIZE=`sh $(SIZE) $(OBJDUMP) ../images/$@ sysmap`
  80. $(LD) $(CHRP_LD_ARGS) -o ../images/$@ $(CHRPOBJS) ../common/no_initrd.o $(LIBS)
  81. $(OBJCOPY) ../images/$@ ../images/$@ --add-section=.note=note 
  82. --add-section=sysmap=$(TOPDIR)/System.map -R .comment
  83. rm -f note
  84. vmlinux.initrd.elf-pmac: $(CHRPOBJS) $(LIBS) initrd.o $(MKNOTE) ../images/vmlinux.gz
  85. $(LD) $(CHRP_LD_ARGS) -o ../images/$@ $(CHRPOBJS) initrd.o $(LIBS)
  86. $(MKNOTE) > note
  87. $(OBJCOPY) ../images/$@ ../images/$@ --add-section=.note=note -R .comment
  88. rm -f note
  89. zImage: vmlinux.coff vmlinux.elf-pmac miboot.image
  90. zImage.initrd: vmlinux.initrd.coff vmlinux.initrd.elf-pmac miboot.initrd.image
  91. include $(TOPDIR)/Rules.make