PageRenderTime 37ms CodeModel.GetById 13ms app.highlight 19ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/ppc/boot/openfirmware/Makefile

https://bitbucket.org/evzijst/gittest
Makefile | 188 lines | 140 code | 34 blank | 14 comment | 6 complexity | b7d548b7a1c1217182504c6e1347a765 MD5 | raw file
  1# Makefile for making bootable images on various OpenFirmware machines.
  2#
  3# Paul Mackerras	January 1997
  4#	XCOFF bootable images for PowerMacs
  5# Geert Uytterhoeven	September 1997
  6#	ELF bootable iamges for CHRP machines.
  7# Tom Rini		January 2001
  8# 	Cleaned up, moved into arch/ppc/boot/pmac
  9# Tom Rini		July/August 2002
 10#	Merged 'chrp' and 'pmac' into 'openfirmware', and cleaned up the
 11#	rules.
 12
 13zImage.initrd znetboot.initrd: del-ramdisk-sec	:= -R .ramdisk
 14zImage.initrd znetboot.initrd: initrd		:= .initrd
 15
 16
 17boot	:= arch/ppc/boot
 18common	:= $(boot)/common
 19utils	:= $(boot)/utils
 20bootlib	:= $(boot)/lib
 21of1275	:= $(boot)/of1275
 22images	:= $(boot)/images
 23
 24OBJCOPY_ARGS	:= -O aixcoff-rs6000 -R .stab -R .stabstr -R .comment
 25COFF_LD_ARGS	:= -T $(srctree)/$(boot)/ld.script -e _start -Ttext 0x00500000 \
 26			-Bstatic
 27CHRP_LD_ARGS	:= -T $(srctree)/$(boot)/ld.script -e _start -Ttext 0x00800000
 28NEWWORLD_LD_ARGS:= -T $(srctree)/$(boot)/ld.script -e _start -Ttext 0x01000000
 29
 30COMMONOBJS	:= start.o misc.o common.o
 31COFFOBJS	:= coffcrt0.o $(COMMONOBJS) coffmain.o
 32CHRPOBJS	:= crt0.o     $(COMMONOBJS) chrpmain.o
 33NEWWORLDOBJS	:= crt0.o     $(COMMONOBJS) newworldmain.o
 34
 35targets 	:= $(COFFOBJS) $(CHRPOBJS) $(NEWWORLDOBJS) dummy.o
 36COFFOBJS	:= $(addprefix $(obj)/, $(COFFOBJS))
 37CHRPOBJS	:= $(addprefix $(obj)/, $(CHRPOBJS))
 38NEWWORLDOBJS	:= $(addprefix $(obj)/, $(NEWWORLDOBJS))
 39
 40LIBS		:= lib/lib.a $(bootlib)/lib.a $(of1275)/lib.a $(common)/lib.a
 41
 42HACKCOFF := $(utils)/hack-coff
 43
 44ifdef CONFIG_SMP
 45END := .smp
 46endif
 47ifdef CONFIG_PPC64BRIDGE
 48END += .64
 49endif
 50
 51
 52$(images)/ramdisk.image.gz:
 53	@echo '  MISSING $@'
 54	@echo '          RAM disk image must be provided separately'
 55	@/bin/false
 56
 57objcpxmon-$(CONFIG_XMON) := --add-section=.sysmap=System.map \
 58	--set-section-flags=.sysmap=contents,alloc,load,readonly,data
 59quiet_cmd_genimage = GEN     $@
 60      cmd_genimage = $(OBJCOPY) -R .comment       \
 61	--add-section=.image=$(images)/vmlinux.gz \
 62	--set-section-flags=.image=contents,alloc,load,readonly,data \
 63	$(objcpxmon-y) $< $@
 64
 65targets += image.o
 66$(obj)/image.o: $(obj)/dummy.o $(images)/vmlinux.gz FORCE
 67	$(call if_changed,genimage)
 68
 69# Place the ramdisk in the initrd image.
 70quiet_cmd_genimage-initrd = GEN     $@
 71      cmd_genimage-initrd = $(OBJCOPY) $< $@ \
 72	--add-section=.ramdisk=$(images)/ramdisk.image.gz \
 73	--set-section-flags=.ramdisk=contents,alloc,load,readonly,data
 74targets += image.initrd.o
 75$(obj)/image.initrd.o: $(obj)/image.o $(images)/ramdisk.image.gz FORCE
 76	$(call if_changed,genimage-initrd)
 77
 78# Create the note section for New-World PowerMacs.
 79quiet_cmd_mknote = MKNOTE  $@
 80     cmd_mknote  = $(utils)/mknote > $@
 81targets		+= note
 82$(obj)/note: $(utils)/mknote FORCE
 83	$(call if_changed,mknote)
 84
 85
 86$(obj)/coffcrt0.o: EXTRA_AFLAGS := -traditional -DXCOFF
 87$(obj)/crt0.o:     EXTRA_AFLAGS := -traditional
 88targets += coffcrt0.o crt0.o
 89$(obj)/coffcrt0.o $(obj)/crt0.o: $(common)/crt0.S FORCE
 90	$(call if_changed_dep,as_o_S)
 91
 92quiet_cmd_gencoffb = COFF    $@
 93      cmd_gencoffb = $(LD) -o $@ $(COFF_LD_ARGS) $(COFFOBJS) $< $(LIBS) && \
 94                     $(OBJCOPY) $@ $@ -R .comment $(del-ramdisk-sec)
 95targets += coffboot
 96$(obj)/coffboot: $(obj)/image.o $(COFFOBJS) $(LIBS) $(srctree)/$(boot)/ld.script FORCE
 97	$(call if_changed,gencoffb)
 98targets += coffboot.initrd
 99$(obj)/coffboot.initrd: $(obj)/image.initrd.o $(COFFOBJS) $(LIBS) \
100			$(srctree)/$(boot)/ld.script FORCE
101	$(call if_changed,gencoffb)
102
103
104quiet_cmd_gen-coff = COFF    $@
105      cmd_gen-coff = $(OBJCOPY) $(OBJCOPY_ARGS) $< $@ && \
106			$(HACKCOFF) $@ && \
107			ln -sf $(notdir $@) $(images)/zImage$(initrd).pmac
108
109$(images)/vmlinux.coff: $(obj)/coffboot
110	$(call cmd,gen-coff)
111
112$(images)/vmlinux.initrd.coff: $(obj)/coffboot.initrd
113	$(call cmd,gen-coff)
114
115quiet_cmd_gen-elf-pmac = ELF     $@
116      cmd_gen-elf-pmac = $(LD) $(NEWWORLD_LD_ARGS) -o $@ \
117				$(NEWWORLDOBJS) $(LIBS) $< && \
118			$(OBJCOPY) $@ $@ --add-section=.note=$(obj)/note \
119					 -R .comment $(del-ramdisk-sec)
120
121$(images)/vmlinux.elf-pmac: $(obj)/image.o $(NEWWORLDOBJS) $(LIBS) \
122			$(obj)/note $(srctree)/$(boot)/ld.script
123	$(call cmd,gen-elf-pmac)
124$(images)/vmlinux.initrd.elf-pmac: $(obj)/image.initrd.o $(NEWWORLDOBJS) \
125				   $(LIBS) $(obj)/note \
126				   $(srctree)/$(boot)/ld.script
127	$(call cmd,gen-elf-pmac)
128
129quiet_cmd_gen-chrp = CHRP    $@
130      cmd_gen-chrp = $(LD) $(CHRP_LD_ARGS) -o $@ $(CHRPOBJS) $< $(LIBS) && \
131			$(OBJCOPY) $@ $@ -R .comment $(del-ramdisk-sec)
132
133$(images)/zImage.chrp: $(obj)/image.o $(CHRPOBJS) $(LIBS) \
134				   $(srctree)/$(boot)/ld.script
135	$(call cmd,gen-chrp)
136$(images)/zImage.initrd.chrp: $(obj)/image.initrd.o $(CHRPOBJS) $(LIBS) \
137				   $(srctree)/$(boot)/ld.script
138	$(call cmd,gen-chrp)
139
140quiet_cmd_addnote = ADDNOTE $@
141      cmd_addnote = cat $< > $@ && $(utils)/addnote $@
142$(images)/zImage.chrp-rs6k $(images)/zImage.initrd.chrp-rs6k: \
143	%-rs6k: %
144	$(call cmd,addnote)
145
146quiet_cmd_gen-miboot = GEN     $@
147      cmd_gen-miboot = $(OBJCOPY) $(OBJCOPY_ARGS) \
148		       --add-section=$1=$(word 2, $^) $< $@
149$(images)/miboot.image: $(obj)/dummy.o $(images)/vmlinux.gz
150	$(call cmd,gen-miboot,image)
151
152$(images)/miboot.initrd.image: $(images)/miboot.image $(images)/ramdisk.image.gz
153	$(call cmd,gen-miboot,initrd)
154
155# The targets used on the make command-line
156
157.PHONY: zImage zImage.initrd
158zImage:		 $(images)/vmlinux.coff 	\
159		 $(images)/vmlinux.elf-pmac	\
160		 $(images)/zImage.chrp		\
161		 $(images)/zImage.chrp-rs6k	\
162		 $(images)/miboot.image
163	@echo '  kernel: $@ is ready ($<)'
164zImage.initrd:	 $(images)/vmlinux.initrd.coff 		\
165		 $(images)/vmlinux.initrd.elf-pmac	\
166		 $(images)/zImage.initrd.chrp		\
167		 $(images)/zImage.initrd.chrp-rs6k	\
168		 $(images)/miboot.initrd.image
169	@echo '  kernel: $@ is ready ($<)'
170
171TFTPIMAGE	:= /tftpboot/zImage
172
173.PHONY: znetboot znetboot.initrd
174znetboot:	$(images)/vmlinux.coff		\
175		$(images)/vmlinux.elf-pmac	\
176		$(images)/zImage.chrp
177	cp $(images)/vmlinux.coff     $(TFTPIMAGE).pmac$(END)
178	cp $(images)/vmlinux.elf-pmac $(TFTPIMAGE).pmac$(END).elf
179	cp $(images)/zImage.chrp      $(TFTPIMAGE).chrp$(END)
180	@echo '  kernel: $@ is ready ($<)'
181znetboot.initrd:$(images)/vmlinux.initrd.coff		\
182		$(images)/vmlinux.initrd.elf-pmac	\
183		$(images)/zImage.initrd.chrp
184	cp $(images)/vmlinux.initrd.coff     $(TFTPIMAGE).pmac$(END)
185	cp $(images)/vmlinux.initrd.elf-pmac $(TFTPIMAGE).pmac$(END).elf
186	cp $(images)/zImage.initrd.chrp      $(TFTPIMAGE).chrp$(END)
187	@echo '  kernel: $@ is ready ($<)'
188