397a465993a4e726ae79b2719aa4452fe5a5f3c5
[openwrt/svn-archive/archive.git] / target / linux / kirkwood / image / Makefile
1 #
2 # Copyright (C) 2009-2013 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 include $(TOPDIR)/rules.mk
8 include $(INCLUDE_DIR)/image.mk
9
10 NAND_BLOCKSIZE := 2048:128k
11
12 define sanitize_profile_name
13 $(shell echo $(PROFILE) | tr '[:upper:]' '[:lower:]')
14 endef
15
16 define Image/BuildKernel/Template
17
18 $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
19 echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage
20 $(call Image/BuildKernel/MkuImage, \
21 none, 0x8000, 0x8000, \
22 $(BIN_DIR)/$(IMG_PREFIX)-zImage, \
23 $(BIN_DIR)/$(IMG_PREFIX)-uImage \
24 )
25
26 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
27 $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
28 echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
29 $(call Image/BuildKernel/MkuImage, \
30 none, 0x8000, 0x8000, \
31 $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \
32 $(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \
33 )
34 endif
35
36 ifneq ($(1),)
37 $(CP) $(LINUX_DIR)/arch/arm/boot/dts/kirkwood-$(1).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb
38
39 $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-zImage
40 cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-zImage
41 $(call Image/BuildKernel/MkuImage, \
42 none, 0x8000, 0x8000, \
43 $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-zImage, \
44 $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-uImage \
45 )
46
47 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
48 $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-zImage-initramfs
49 cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-zImage-initramfs
50 $(call Image/BuildKernel/MkuImage, \
51 none, 0x8000, 0x8000, \
52 $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-zImage-initramfs, \
53 $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-uImage-initramfs \
54 )
55 endif
56 endif
57 endef
58
59 define Image/InstallKernel/Template
60
61 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_KERNEL),)
62 $(INSTALL_DIR) $(TARGET_DIR)/boot
63 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE),)
64 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/
65 ln -sf $(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/uImage
66 endif
67 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE),)
68 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/
69 ln -sf $(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/zImage
70 endif
71 endif
72
73 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB),)
74 $(INSTALL_DIR) $(TARGET_DIR)/boot
75 ifneq ($(1),)
76 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/
77 ln -sf $(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/$(1).dtb
78 endif
79 endif
80 endef
81
82 define Image/Build/jffs2-nand-2048-128k
83 dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-$(1).img \
84 bs=2048 conv=sync
85 endef
86
87 define Image/Build/squashfs
88 $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
89 ( \
90 dd if=$(KDIR)/zImage bs=4096k conv=sync; \
91 dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \
92 ) > $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-$(1).img
93 endef
94
95 define Image/mkfs/targz
96
97 $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
98 endef
99
100 define Image/Build/ubifs
101
102 ifneq ($($(PROFILE)_UBIFS_OPTS),)
103 $(CP) $(KDIR)/root.ubifs $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs.ubifs
104 endif
105 endef
106
107 define Image/Build/ubi
108
109 ifneq ($($(PROFILE)_UBI_OPTS),)
110 $(CP) $(KDIR)/root.ubi $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-rootfs.ubi
111 endif
112 endef
113
114 Image/BuildKernel/Template/Generic=$(call Image/BuildKernel/Template)
115 Image/InstallKernel/Template/Generic=$(call Image/InstallKernel/Template)
116
117 Image/BuildKernel/Template/IB62X0=$(call Image/BuildKernel/Template,ib62x0)
118 Image/InstallKernel/Template/IB62X0=$(call Image/InstallKernel/Template,ib62x0)
119
120 define Image/BuildKernel
121 $(call Image/BuildKernel/Template/$(PROFILE))
122 endef
123
124 define Image/InstallKernel
125 $(call Image/InstallKernel/Template/$(PROFILE))
126 endef
127
128 define Image/Build
129 $(if $(Image/Build/$(1)), \
130 $(call Image/Build/$(1),$(1)), \
131 $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(call sanitize_profile_name)-$(1).img \
132 )
133 endef
134
135 $(eval $(call BuildImage))