2 # Copyright (C) 2009-2013 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
8 include $(INCLUDE_DIR
)/image.mk
10 NAND_BLOCKSIZE
:= 2048:128k
12 define sanitize_profile_name
13 $(shell echo
$(PROFILE
) | tr
'[:upper:]' '[:lower:]')
16 define Image
/BuildKernel
/Template
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 \
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 \
37 $(CP
) $(LINUX_DIR
)/arch
/arm
/boot
/dts
/kirkwood-
$(1).dtb
$(BIN_DIR
)/$(IMG_PREFIX
)-$(1).dtb
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 \
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 \
59 define Image
/InstallKernel
/Template
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
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
73 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB
),)
74 $(INSTALL_DIR
) $(TARGET_DIR
)/boot
76 $(CP
) $(BIN_DIR
)/$(IMG_PREFIX
)-$(1).dtb
$(TARGET_DIR
)/boot
/
77 ln
-sf
$(IMG_PREFIX
)-$(1).dtb
$(TARGET_DIR
)/boot
/$(1).dtb
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 \
87 define Image
/Build
/squashfs
88 $(call prepare_generic_squashfs
,$(KDIR
)/root.squashfs
)
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
95 define Image
/mkfs
/targz
97 $(TAR
) -czpf
$(BIN_DIR
)/$(IMG_PREFIX
)-$(call sanitize_profile_name
)-rootfs.
tar.gz
--numeric-owner
--owner
=0 --group
=0 -C
$(TARGET_DIR
)/ .
100 define Image
/Build
/ubifs
102 ifneq ($($(PROFILE
)_UBIFS_OPTS
),)
103 $(CP
) $(KDIR
)/root.ubifs
$(BIN_DIR
)/$(IMG_PREFIX
)-$(call sanitize_profile_name
)-rootfs.ubifs
107 define Image
/Build
/ubi
109 ifneq ($($(PROFILE
)_UBI_OPTS
),)
110 $(CP
) $(KDIR
)/root.ubi
$(BIN_DIR
)/$(IMG_PREFIX
)-$(call sanitize_profile_name
)-rootfs.ubi
114 Image
/BuildKernel
/Template
/Generic
=$(call Image
/BuildKernel
/Template
)
115 Image
/InstallKernel
/Template
/Generic
=$(call Image
/InstallKernel
/Template
)
117 Image
/BuildKernel
/Template
/DOCKSTAR
=$(call Image
/BuildKernel
/Template
,dockstar
)
118 Image
/InstallKernel
/Template
/DOCKSTAR
=$(call Image
/InstallKernel
/Template
,dockstar
)
120 Image
/BuildKernel
/Template
/EA4500
=$(call Image
/BuildKernel
/Template
,ea4500
)
121 Image
/InstallKernel
/Template
/EA4500
=$(call Image
/InstallKernel
/Template
,ea4500
)
123 Image
/BuildKernel
/Template
/GOFLEXNET
=$(call Image
/BuildKernel
/Template
,goflexnet
)
124 Image
/InstallKernel
/Template
/GOFLEXNET
=$(call Image
/InstallKernel
/Template
,goflexnet
)
126 Image
/BuildKernel
/Template
/IB62X0
=$(call Image
/BuildKernel
/Template
,ib62x0
)
127 Image
/InstallKernel
/Template
/IB62X0
=$(call Image
/InstallKernel
/Template
,ib62x0
)
129 Image
/BuildKernel
/Template
/ICONNECT
=$(call Image
/BuildKernel
/Template
,iconnect
)
130 Image
/InstallKernel
/Template
/ICONNECT
=$(call Image
/InstallKernel
/Template
,iconnect
)
132 Image
/BuildKernel
/Template
/POGOE02
=$(call Image
/BuildKernel
/Template
,pogo_e02
)
133 Image
/InstallKernel
/Template
/POGOE02
=$(call Image
/InstallKernel
/Template
,pogo_e02
)
135 define Image
/BuildKernel
136 $(call Image
/BuildKernel
/Template
/$(PROFILE
))
139 define Image
/InstallKernel
140 $(call Image
/InstallKernel
/Template
/$(PROFILE
))
144 $(if
$(Image
/Build
/$(1)), \
145 $(call Image
/Build
/$(1),$(1)), \
146 $(CP
) $(KDIR
)/root.
$(1) $(BIN_DIR
)/$(IMG_PREFIX
)-$(call sanitize_profile_name
)-$(1).img \
150 $(eval
$(call BuildImage
))