diff options
author | Mark A. Greer <mgreer@mvista.com> | 2007-05-11 20:53:36 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-05-11 21:32:49 -0400 |
commit | 916066d5913c37a6b3907eb6695cc9ecaaa4d8ca (patch) | |
tree | d966b9217ebb21bde240182ae40b3234caf4df64 /arch/powerpc | |
parent | a8de5ce9895367191df9b30804a0c67cfcc9f27a (diff) |
[POWERPC] Add Makefile rules to wrap dts file in zImage
Add 'zImage.dts' and 'zImage.dts_initrd' build rules that automatically
compile and wrap a dts file from arch/powerpc/boot/dts into the zImage file.
The resulting zImage will be arch/powerpc/boot/zImage.dts.<platform> and
arch/powerpc/boot/zImage.dts_initrd.<platform>, respectively.
Having separate rules allows the user to choose whether to include a device
tree--and which device tree--at build time. This is useful when one Makefile
target builds a zImage that runs on several platforms except for differing
device trees. By just setting CONFIG_DEVICE_TREE and running "make zImage.dts"
the exact zImage you want is built without Makefile bloat or manually running
the wrapper script.
The dts file is expected to be arch/powerpc/boot/dts/$(CONFIG_DEVICE_TREE)
Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/Makefile | 2 | ||||
-rw-r--r-- | arch/powerpc/boot/Makefile | 25 |
2 files changed, 25 insertions, 2 deletions
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 81a531d84ff9..d6014a67694b 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
@@ -148,7 +148,7 @@ all: $(KBUILD_IMAGE) | |||
148 | 148 | ||
149 | CPPFLAGS_vmlinux.lds := -Upowerpc | 149 | CPPFLAGS_vmlinux.lds := -Upowerpc |
150 | 150 | ||
151 | BOOT_TARGETS = zImage zImage.initrd uImage | 151 | BOOT_TARGETS = zImage zImage.initrd zImage.dts zImage.dts_initrd uImage |
152 | 152 | ||
153 | PHONY += $(BOOT_TARGETS) | 153 | PHONY += $(BOOT_TARGETS) |
154 | 154 | ||
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 5c384aad1184..01b683987e7d 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -154,9 +154,27 @@ targets += $(image-y) $(initrd-y) | |||
154 | 154 | ||
155 | $(addprefix $(obj)/, $(initrd-y)): $(obj)/ramdisk.image.gz | 155 | $(addprefix $(obj)/, $(initrd-y)): $(obj)/ramdisk.image.gz |
156 | 156 | ||
157 | dts- := $(patsubst zImage%, zImage.dts%, $(image-n) $(image-)) | ||
158 | dts-y := $(patsubst zImage%, zImage.dts%, $(image-y)) | ||
159 | dts-y := $(filter-out $(image-y), $(dts-y)) | ||
160 | targets += $(image-y) $(dts-y) | ||
161 | |||
162 | dts_initrd- := $(patsubst zImage%, zImage.dts_initrd%, $(image-n) $(image-)) | ||
163 | dts_initrd-y := $(patsubst zImage%, zImage.dts_initrd%, $(image-y)) | ||
164 | dts_initrd-y := $(filter-out $(image-y), $(dts_initrd-y)) | ||
165 | targets += $(image-y) $(dts_initrd-y) | ||
166 | |||
167 | $(addprefix $(obj)/, $(dts_initrd-y)): $(obj)/ramdisk.image.gz | ||
168 | |||
157 | # Don't put the ramdisk on the pattern rule; when its missing make will try | 169 | # Don't put the ramdisk on the pattern rule; when its missing make will try |
158 | # the pattern rule with less dependencies that also matches (even with the | 170 | # the pattern rule with less dependencies that also matches (even with the |
159 | # hard dependency listed). | 171 | # hard dependency listed). |
172 | $(obj)/zImage.dts_initrd.%: vmlinux $(wrapperbits) $(dts) $(obj)/ramdisk.image.gz | ||
173 | $(call if_changed,wrap,$*,$(dts),,$(obj)/ramdisk.image.gz) | ||
174 | |||
175 | $(obj)/zImage.dts.%: vmlinux $(wrapperbits) $(dts) | ||
176 | $(call if_changed,wrap,$*,$(dts)) | ||
177 | |||
160 | $(obj)/zImage.initrd.%: vmlinux $(wrapperbits) | 178 | $(obj)/zImage.initrd.%: vmlinux $(wrapperbits) |
161 | $(call if_changed,wrap,$*,,,$(obj)/ramdisk.image.gz) | 179 | $(call if_changed,wrap,$*,,,$(obj)/ramdisk.image.gz) |
162 | 180 | ||
@@ -195,13 +213,18 @@ $(obj)/zImage: $(addprefix $(obj)/, $(image-y)) | |||
195 | @rm -f $@; ln $< $@ | 213 | @rm -f $@; ln $< $@ |
196 | $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) | 214 | $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) |
197 | @rm -f $@; ln $< $@ | 215 | @rm -f $@; ln $< $@ |
216 | $(obj)/zImage.dts: $(addprefix $(obj)/, $(dts-y)) | ||
217 | @rm -f $@; ln $< $@ | ||
218 | $(obj)/zImage.dts_initrd: $(addprefix $(obj)/, $(dts_initrd-y)) | ||
219 | @rm -f $@; ln $< $@ | ||
220 | |||
198 | 221 | ||
199 | install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y)) | 222 | install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y)) |
200 | sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)" $< | 223 | sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)" $< |
201 | 224 | ||
202 | # anything not in $(targets) | 225 | # anything not in $(targets) |
203 | clean-files += $(image-) $(initrd-) zImage zImage.initrd cuImage.* \ | 226 | clean-files += $(image-) $(initrd-) zImage zImage.initrd cuImage.* \ |
204 | treeImage.* | 227 | treeImage.* zImage.dts zImage.dts_initrd |
205 | 228 | ||
206 | # clean up files cached by wrapper | 229 | # clean up files cached by wrapper |
207 | clean-kernel := vmlinux.strip vmlinux.bin | 230 | clean-kernel := vmlinux.strip vmlinux.bin |