microblaze: Makefile cleanups
[linux-2.6.git] / arch / microblaze / boot / Makefile
1 #
2 # arch/microblaze/boot/Makefile
3 #
4
5 MKIMAGE := $(srctree)/scripts/mkuboot.sh
6
7 obj-y += linked_dtb.o
8
9 targets := linux.bin linux.bin.gz simpleImage.%
10
11 OBJCOPYFLAGS := -O binary
12
13 # Where the DTS files live
14 dtstree         := $(srctree)/$(src)/dts
15
16 # Ensure system.dtb exists
17 $(obj)/linked_dtb.o: $(obj)/system.dtb
18
19 # Generate system.dtb from $(DTB).dtb
20 ifneq ($(DTB),system)
21 $(obj)/system.dtb: $(obj)/$(DTB).dtb
22         $(call if_changed,cp)
23 endif
24
25 $(obj)/linux.bin: vmlinux FORCE
26         $(call if_changed,objcopy)
27         $(call if_changed,uimage)
28         @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
29
30 $(obj)/linux.bin.gz: $(obj)/linux.bin FORCE
31         $(call if_changed,gzip)
32         @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
33
34 quiet_cmd_cp = CP      $< $@$2
35         cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false)
36
37 quiet_cmd_strip = STRIP   $@
38       cmd_strip = $(STRIP) -K _start -K _end -K __log_buf -K _fdt_start vmlinux -o $@
39
40 quiet_cmd_uimage = UIMAGE  $@.ub
41       cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A microblaze -O linux -T kernel \
42                    -C none -n 'Linux-$(KERNELRELEASE)' \
43                    -a $(CONFIG_KERNEL_BASE_ADDR) -e $(CONFIG_KERNEL_BASE_ADDR) \
44                    -d $@ $@.ub
45
46 $(obj)/simpleImage.%: vmlinux FORCE
47         $(call if_changed,cp,.unstrip)
48         $(call if_changed,objcopy)
49         $(call if_changed,uimage)
50         $(call if_changed,strip)
51         @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'
52
53 # Rule to build device tree blobs
54 DTC = $(objtree)/scripts/dtc/dtc
55
56 # Rule to build device tree blobs
57 quiet_cmd_dtc = DTC     $@
58         cmd_dtc = $(DTC) -O dtb -o $(obj)/$*.dtb -b 0 -p 1024 $(dtstree)/$*.dts
59
60 $(obj)/%.dtb: $(dtstree)/%.dts FORCE
61         $(call if_changed,dtc)
62
63 clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub