blob: 3b5cf553caa06fe23db8443ce25f877956fb058f [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001
2include $(ZTE_PS_LINK_SCRIPT)
3-include $(OUTPUT_DIR)/sys_type.mk
4-include $(LINUX_DIR)/.config
5
6.PHONY: help all allclean ps psclean kernel kernelclean app appclean lib libclean check
7
8help: check
9 @echo "=========================Make help start========================="
10 @echo "make [help] this help"
11 @echo "make all[clean] compile all, include recovery and normal system"
12 @echo "make userdata make userdata for normal system"
13 @echo "make normal[clean] compile normal system,include kernel uClibc lib and app"
14 @echo "make normal2 continue to compile normal system"
15 @echo "make normal_rootfs make rootfs for normal system"
16 @echo "make normal_copybin copy bins to project for normal system"
17 @echo "make recovery[clean] compile recovery system,include kernel uClibc lib and app"
18 @echo "make recovery2 continue to compile recovery system"
19 @echo "make recovery_rootfs make rootfs for recovery system"
20 @echo "make recovery_copybin copy bins to project for recovery system"
21 @echo "make kernel[clean] compile linux kernel"
22 @echo "make rootfs make rootfs for normal or recovery automatically based on config"
23 @echo "make copybin copy bins to project for normal or recovery automatically based on config"
24 @echo "make lib[clean] compile lib"
25 @echo "make libc[clean] compile uClibc"
26 @echo "make app[clean] compile app"
27ifeq ($(CONFIG_SINGLECORE),yes)
28 @echo "make ps[clean] compile libps"
29endif
30 @echo "=========================Make help end========================="
31
32check:
33ifeq ($(PRJ_NAME),)
34 $(error ONLY execute the make command in the project/CHIP_NAME/prj_xxx/build directory)
35endif
36 bash $(BUILD_DIR)/env_check.sh
37
38normal_check:
39ifneq ($(AP_BUILD_TYPE),normal)
40 $(error current config is not normal,make normal first)
41endif
42
43recovery_check:
44ifneq ($(AP_BUILD_TYPE),recovery)
45 $(error current config is not recovery,make recovery first)
46endif
47
48copy:
49 @bash $(BUILD_DIR)/modcopy.sh
50
51all:
52ifeq ($(USE_FOTA),yes)
53ifneq ($(USE_FOTA_AB),yes)
54 make recovery
55endif
56endif
57ifeq ($(BUILD_CAP),yes)
58 make cap
59endif
60 make normal
61
62allclean: normalclean
63
64sys: check
65ifeq ($(CONFIG_SINGLECORE),yes)
66ifeq ($(AP_BUILD_TYPE),normal)
67 make ps
68endif
69endif
70 make kernel
71ifeq ($(CONFIG_SINGLECORE),yes)
72ifeq ($(AP_BUILD_TYPE),normal)
73ifeq ($(USE_CPPS_KO),yes)
74 make cpko
75endif
76endif
77endif
78 make libc
79 make lib
80 make app
81 @echo "all modules build done"
82
83sysclean: check
84ifeq ($(CONFIG_SINGLECORE),yes)
85ifeq ($(AP_BUILD_TYPE),normal)
86 make psclean
87endif
88endif
89 make kerneldistclean
90ifeq ($(CONFIG_SINGLECORE),yes)
91ifeq ($(AP_BUILD_TYPE),normal)
92ifeq ($(USE_CPPS_KO),yes)
93 make cpkoclean
94endif
95endif
96endif
97 make libcclean
98 -make libclean
99 -make appclean
100 -@rm -fr $(OUTPUT_DIR) $(STAGEDIR)
101 @echo "all modules clean done"
102
103ps:
104 mkdir -p $(LIBPS_PATH)
105ifeq ($(CONFIG_SINGLECORE),yes)
106 make -j1 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) prepare
107ifneq ($(MK_SDK_VERSION),yes)
108 (cd $(PS_BUILD_DIR) && bash $(LIBPS_BUILD_SHELL) all)
109else
110 (cd $(PS_BUILD_DIR) && bash $(LIBPS_BUILD_SHELL) sdk)
111endif
112else
113 $(error libps in NOT on AP)
114endif
115
116psclean:
117ifeq ($(CONFIG_SINGLECORE),yes)
118ifneq ($(MK_SDK_VERSION),yes)
119 (cd $(PS_BUILD_DIR) && bash $(LIBPS_BUILD_SHELL) allclean)
120 -rm -fr $(LIBPS_PATH)/*
121else
122 (cd $(PS_BUILD_DIR) && bash $(LIBPS_BUILD_SHELL) sdkclean)
123endif
124else
125 $(error libps in NOT on AP)
126endif
127
128kernel:
129 -rm -v $(LINUX_DIR)/arch/arm/boot/*Image
130 -rm -v $(LINUX_DIR)/vmlinux*
131 #make -j1 ARCH=arm KBUILD_VERBOSE=1 CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) all
132 make -j4 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) all
133 make -j1 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) uImage
134ifeq ($(CONFIG_MODULES), y)
135 make -j1 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) modules
136 make -j1 ARCH=arm -C $(LINUX_DIR) INSTALL_MOD_PATH=$(ROOTFS_DIR) modules_install
137endif
138 make -j1 ARCH=arm -C $(LINUX_DIR) INSTALL_HDR_PATH=$(STAGEDIR) headers_install
139 cp -v $(LINUX_DIR)/include/generated/autoconf.h $(LINUX_DIR)/include/linux/
140 -cp -v $(LINUX_DIR)/include/generated/autoconf.h $(LINUX_DIR)/usr/include/linux/
141 mkdir -p $(IMAGE_DIR)
142 cp -v $(LINUX_DIR)/arch/arm/boot/uImage $(IMAGE_DIR)/linux_kernel.img
143 cp -v $(LINUX_DIR)/vmlinux $(IMAGE_DIR)/
144 cp -v $(LINUX_DIR)/System.map $(IMAGE_DIR)/
145 @echo "kernel build done"
146
147kernelclean:
148 make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) clean
149 @echo "kernel clean done"
150
151kernel2:
152 make kernel
153ifeq ($(CONFIG_SINGLECORE),yes)
154ifeq ($(AP_BUILD_TYPE),normal)
155ifeq ($(USE_CPPS_KO),yes)
156 make cpkoclean cpko
157endif
158endif
159endif
160 make rootfs
161 make copybin
162
163kerneldistclean:
164 make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) distclean
165 -rm -f $(LINUX_DIR)/include/linux/autoconf.h
166
167kernel_menuconfig:
168 make ARCH=arm -C $(LINUX_DIR) menuconfig
169
170kernellink:
171 -rm -v $(LINUX_DIR)/arch/arm/boot/*Image
172 -rm -v $(LINUX_DIR)/vmlinux*
173 make -j1 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) uImage
174 cp -v $(LINUX_DIR)/arch/arm/boot/uImage $(IMAGE_DIR)/linux_kernel.img
175ifeq ($(CONFIG_SIGN_IMAGE),yes)
176 chmod a+x $(SIGN)
177 @$(SIGN) -s $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin $(PRIVATE_KEY_PATH)
178else
179 @cp -v $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin
180endif
181
182busybox_menuconfig:
183ifeq ($(AP_BUILD_TYPE),normal)
184 make -C $(APP_DIR)/busybox/src O=$(APP_DIR)/busybox/build menuconfig
185else
186 make -C $(APP_DIR)/busybox/src O=$(APP_DIR)/busybox_recovery/build menuconfig
187endif
188
189cpko:
190 (cd $(LINUX_DIR) && $(CC) -Wp,-MD,drivers/cpko/.cpko_main.o.d -nostdinc -isystem $(CROSS_COMPILE_INCLUDE_PATH) -I$(LINUX_DIR)/arch/arm/include -Iarch/arm/include/generated -Iinclude -include $(LINUX_DIR)/include/linux/kconfig.h -D__KERNEL__ -DDDR_BASE_ADDR_LINUX_VA -mlittle-endian -Iarch/arm/mach-zx297520v3/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -DCONFIG_SINGLECORE -DUSE_CPPS_KO -mlong-calls -marm -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables $(CPKO_EXT_CFLAGS) -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DMODULE -DCPKO -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(cpko_main)" -D"KBUILD_MODNAME=KBUILD_STR(cpko)" -c -o drivers/cpko/cpko_main.o drivers/cpko/cpko_main.c)
191 #(cd $(LINUX_DIR) && $(LD) -EL -r -o drivers/cpko/cpko.o drivers/cpko/cpko_main.o --whole-archive $(libps_libs) --no-whole-archive; scripts/mod/modpost drivers/cpko/cpko.o)
192ifeq ($(USE_ENABLE_LTO),yes)
193 (cd $(LINUX_DIR) && $(LD) -EL -r -o drivers/cpko/cpko.o drivers/cpko/cpko_main.o; scripts/mod/modpost drivers/cpko/cpko.o)
194else
195 (cd $(LINUX_DIR) && $(LD) -EL -r -T $(LINUX_DIR)/scripts/module-cpko.lds -o drivers/cpko/cpko.o drivers/cpko/cpko_main.o --start-group $(libps_libs) --end-group; scripts/mod/modpost drivers/cpko/cpko.o)
196endif
197 (cd $(LINUX_DIR) && $(CC) -Wp,-MD,drivers/cpko/.cpko.mod.o.d -nostdinc -isystem $(CROSS_COMPILE_INCLUDE_PATH) -I$(LINUX_DIR)/arch/arm/include -Iarch/arm/include/generated -Iinclude -include $(LINUX_DIR)/include/linux/kconfig.h -D__KERNEL__ -DDDR_BASE_ADDR_LINUX_VA -mlittle-endian -Iarch/arm/mach-zx297520v3/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -DCONFIG_SINGLECORE -DUSE_CPPS_KO -mlong-calls -marm -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables $(CPKO_EXT_CFLAGS) -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cpko.mod)" -D"KBUILD_MODNAME=KBUILD_STR(cpko)" -DMODULE -c -o drivers/cpko/cpko.mod.o drivers/cpko/cpko.mod.c)
198ifeq ($(USE_ENABLE_LTO),yes)
199 (cd $(LINUX_DIR) && $(CC) -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -DCONFIG_SINGLECORE -DUSE_CPPS_KO -mlong-calls -marm -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -mthumb -Wa,-mimplicit-it=always -Wa,-mno-warn-deprecated -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO $(LTO_CFLAGS) -nostdlib $(LTO_FINAL_CFLAGS) -Wl,-r -Wl,-T $(LINUX_DIR)/scripts/module-common.lds -Wl,--build-id -o drivers/cpko/cpko.ko drivers/cpko/cpko.o drivers/cpko/cpko.mod.o -Wl,--whole-archive $(libps_libs_lto) -Wl,--no-whole-archive -Wl,--start-group $(libps_libs_nolto) -Wl,--end-group)
200else
201# (cd $(LINUX_DIR) && $(LD) -EL -r -T $(LINUX_DIR)/scripts/module-common.lds --build-id -o drivers/cpko/cpko.ko drivers/cpko/cpko.o drivers/cpko/cpko.mod.o)
202 (cd $(LINUX_DIR) && $(LD) -EL -r --build-id -o drivers/cpko/cpko.ko drivers/cpko/cpko.o drivers/cpko/cpko.mod.o)
203endif
204 #(cd $(LINUX_DIR) && scripts/mod/modpost -m -a -o $(LINUX_DIR)/Module.symvers -c -s vmlinux drivers/cpko/cpko.ko)
205 mkdir -p $(ROOTFS_DIR)/lib/cpko
206 $(STRIPTOOL) --strip-debug --strip-unneeded -R .comment -R .ARM.attributes -R .ARM.exidx -R .ARM.extab -R .ARM.extab.ps_static_func -R .ARM.exidx.ps_static_func -R .ARM.extab.ps_comm_func -R .ARM.exidx.ps_comm_func -R .ARM.extab.ps_4g_func -R .ARM.exidx.ps_4g_func -R .ARM.extab.ps_3g_func -R .ARM.exidx.ps_3g_func -R .ARM.extab.ps_2g_func -R .ARM.exidx.ps_2g_func $(LINUX_DIR)/drivers/cpko/cpko.ko -o $(LINUX_DIR)/drivers/cpko/cpko_stripped.ko
207 ko_strip $(LINUX_DIR)/drivers/cpko/cpko_stripped.ko $(LINUX_DIR)/System.map $(ROOTFS_DIR)/lib/cpko/cpko_tmp.ko $(ROOTFS_DIR)/lib/cpko/cpko_secinfo.bin > $(OUTPUT_DIR)/ko_strip.txt 2>&1 \
208 && echo "ko_strip success." || { echo "ko_strip failure!"; cat $(OUTPUT_DIR)/ko_strip.txt; exit 1; }
209 $(STRIPTOOL) -R .symtab -R .strtab $(ROOTFS_DIR)/lib/cpko/cpko_tmp.ko -o $(ROOTFS_DIR)/lib/cpko/cpko.ko
210 rm $(ROOTFS_DIR)/lib/cpko/cpko_tmp.ko
211 chmod a+x $(ROOTFS_DIR)/lib/cpko/*
212
213ifeq ($(USE_DL_CP),no)
214 (cd $(LINUX_DIR) && $(CC) -Wp,-MD,drivers/loadcp/.load_cpko.o.d -nostdinc -isystem $(CROSS_COMPILE_INCLUDE_PATH) -I$(LINUX_DIR)/arch/arm/include -Iarch/arm/include/generated -Iinclude -include $(LINUX_DIR)/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-zx297520v3/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -DCONFIG_SINGLECORE -DUSE_CPPS_KO -mlong-calls -marm -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DMODULE -DLOADCP -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(load_cpko)" -D"KBUILD_MODNAME=KBUILD_STR(loadcp)" -c -o drivers/loadcp/load_cpko.o drivers/loadcp/load_cpko.c)
215 (cd $(LINUX_DIR) && $(LD) -EL -r -o drivers/loadcp/loadcp.o drivers/loadcp/load_cpko.o; scripts/mod/modpost drivers/loadcp/loadcp.o)
216 (cd $(LINUX_DIR) && $(CC) -Wp,-MD,drivers/loadcp/.loadcp.mod.o.d -nostdinc -isystem $(CROSS_COMPILE_INCLUDE_PATH) -I$(LINUX_DIR)/arch/arm/include -Iarch/arm/include/generated -Iinclude -include $(LINUX_DIR)/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-zx297520v3/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -DCONFIG_SINGLECORE -DUSE_CPPS_KO -mlong-calls -marm -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fno-var-tracking-assignments -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(loadcp.mod)" -D"KBUILD_MODNAME=KBUILD_STR(loadcp)" -DMODULE -c -o drivers/loadcp/loadcp.mod.o drivers/loadcp/loadcp.mod.c)
217 (cd $(LINUX_DIR) && $(LD) -EL -r --build-id -o drivers/loadcp/loadcp.ko drivers/loadcp/loadcp.o drivers/loadcp/loadcp.mod.o)
218 #(cd $(LINUX_DIR) && scripts/mod/modpost -m -a -o $(LINUX_DIR)/Module.symvers -c -s vmlinux drivers/loadcp/loadcp.ko)
219 $(STRIPTOOL) --strip-debug --strip-unneeded -R .comment -R .ARM.attributes $(LINUX_DIR)/drivers/loadcp/loadcp.ko -o $(LINUX_DIR)/drivers/loadcp/loadcp_stripped.ko
220 mkdir -p $(ROOTFS_DIR)/lib/loadcp
221 cp -v $(LINUX_DIR)/drivers/loadcp/loadcp_stripped.ko $(ROOTFS_DIR)/lib/loadcp/loadcp.ko > $(OUTPUT_DIR)/ko_strip.txt
222 chmod a+x $(ROOTFS_DIR)/lib/loadcp/*.ko
223 rm -f $(ROOTFS_DIR)/lib/cpko/cpko.ko
224 chmod a+x $(ROOTFS_DIR)/lib/cpko/*.bin
225endif
226ifeq ($(KO_SPLIT_ENABLE),yes)
227 rm -fv $(ROOTFS_DIR)/lib/cpko/*.lzma
228 (cd $(ROOTFS_DIR)/lib/cpko && split -b $(SPLIT_BLOCK_SIZE) cpko.ko -d -a 2 cpko_)
229 (cd $(ROOTFS_DIR)/lib/cpko && ls -1 cpko_?? | xargs -I {} minilzma -t $(LZMA_DICT) {})
230 rm -fv $(ROOTFS_DIR)/lib/cpko/cpko.ko
231endif
232
233cpkoclean:
234 make V=1 -j1 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) M=drivers/cpko clean
235
236app:
237 mkdir -p $(ROOTFS_DIR)/bin $(ROOTFS_DIR)/sbin $(ROOTFS_DIR)/lib $(ROOTFS_DIR)/recovery/bin
238 make -C app
239
240appclean:
241 make -C app clean
242
243lib:
244 mkdir -p $(ROOTFS_DIR)/bin $(ROOTFS_DIR)/sbin $(ROOTFS_DIR)/lib $(ROOTFS_DIR)/recovery/bin
245 make -C lib
246
247libclean:
248 make -C lib clean
249
250libc:
251 make -C $(LIBC_DIR)
252 make -C $(LIBC_DIR) PREFIX=$(STAGEDIR)/uClibc install
253
254libcclean:
255 make -C $(LIBC_DIR) clean
256
257normal_conf:
258 @cp -v $(PRJ_CONF_DIR)/normal/config.linux $(LINUX_DIR)/arch/arm/configs/zte_defconfig
259 make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) zte_defconfig
260 $(BUILD_DIR)/config_check.sh $(PRJ_CONF_DIR)/normal/config.linux $(LINUX_DIR)/.config
261 @cp -v $(PRJ_CONF_DIR)/normal/config.busybox $(APP_DIR)/busybox/src/configs/zte_defconfig
262 @cp -v $(PRJ_CONF_DIR)/normal/config.busybox_recovery $(APP_DIR)/busybox/src/configs/zte_recovery_defconfig
263 @cp -v $(PRJ_CONF_DIR)/normal/config.uClibc $(BUILD_DIR)/uClibc/.config
264 @cp -v $(PRJ_CONF_DIR)/normal/config_lib.mk $(LIB_DIR)/config_lib.mk
265 @cp -v $(PRJ_CONF_DIR)/normal/config_app.mk $(APP_DIR)/config_app.mk
266 mkdir -p $(OUTPUT_DIR)
267 echo "AP_BUILD_TYPE = normal" > $(OUTPUT_DIR)/sys_type.mk
268 echo "AP_BUILD_PRJ = $(PRJ_NAME)" >> $(OUTPUT_DIR)/sys_type.mk
269
270cap_conf:
271 @cp -v $(PRJ_CONF_DIR)/cap/config.linux $(LINUX_DIR)/arch/arm/configs/zte_defconfig
272 make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) zte_defconfig
273 $(BUILD_DIR)/config_check.sh $(PRJ_CONF_DIR)/cap/config.linux $(LINUX_DIR)/.config
274 @cp -v $(PRJ_CONF_DIR)/cap/config.busybox $(APP_DIR)/busybox/src/configs/zte_defconfig
275 @cp -v $(PRJ_CONF_DIR)/cap/config.uClibc $(BUILD_DIR)/uClibc/.config
276 @cp -v $(PRJ_CONF_DIR)/cap/config_lib.mk $(LIB_DIR)/config_lib.mk
277 @cp -v $(PRJ_CONF_DIR)/cap/config_app.mk $(APP_DIR)/config_app.mk
278 mkdir -p $(OUTPUT_DIR)
279 echo "AP_BUILD_TYPE = cap" > $(OUTPUT_DIR)/sys_type.mk
280 echo "AP_BUILD_PRJ = $(PRJ_NAME)" >> $(OUTPUT_DIR)/sys_type.mk
281
282userdata:
283 @echo "=========> Begin to Make userdata FS Image! <==================="
284 rm -rf $(USERDATA_DIR)
285 mkdir -p $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins
286 mkdir -p $(USERDATA_DIR)/cache $(USERDATA_DIR)/etc_rw $(USERDATA_DIR)/var
287 #@cp -afvp $(PRJ_PRODUCT_DIR)/fs/normal/userdata/* $(USERDATA_DIR)
288 #find $(USERDATA_DIR) -type d -name '.gitkeep' -print0 | xargs -0 rm -fr
289ifeq ($(USERDATA_FS_TYPE),ubifs)
290 bash $(BUILD_DIR)/ubifs.sh userdata $(USERDATA_SIZE) $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins/ap_userdata.img
291else
292ifeq ($(PRJ_IS_MIN),yes)
293 bash $(BUILD_DIR)/jffs2_lzma.sh $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins/ap_userdata.img lzma
294else
295 bash $(BUILD_DIR)/jffs2_lzma.sh $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins/ap_userdata.img lzo
296endif
297endif
298
299 #(cd $(USERDATA_DIR) && find . -type f -printf '"/%P" Regular 14 %04m:%4U:%4G\n' > ../userdata_attr.txt)
300 #(cd $(USERDATA_DIR) && find . -type l -printf '"/%P" SymLink 14 %04m:%4U:%4G\n' >> ../userdata_attr.txt)
301 #(cd $(USERDATA_DIR) && find . -type d -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >> ../userdata_attr.txt)
302 #(cd $(USERDATA_DIR)/.. && tar -zcvf $(PRJ_BIN_DIR)/allbins/userdata.tgz userdata userdata_attr.txt)
303 #@rm $(USERDATA_DIR)/../userdata_attr.txt
304 @echo "=========> Make userdata FS Image End! <==================="
305
306capuserdata:
307 @echo "=========> Begin to Make cap userdata FS Image! <==================="
308 rm -rf $(USERDATA_DIR) $(ROOTFS_DIR)
309 mkdir -p $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins
310 mkdir -p $(USERDATA_DIR)/cache $(USERDATA_DIR)/etc_rw $(USERDATA_DIR)/var $(CAP_ROOTFS_DIR)/etc_ro/
311 ln -s $(CAP_ROOTFS_DIR) $(ROOTFS_DIR)
312 #@cp -afvp $(PRJ_PRODUCT_DIR)/fs/normal/userdata/* $(USERDATA_DIR)
313 #find $(USERDATA_DIR) -type d -name '.gitkeep' -print0 | xargs -0 rm -fr
314ifeq ($(USERDATA_FS_TYPE),ubifs)
315 bash $(BUILD_DIR)/ubifs.sh userdata $(CAP_USERDATA_SIZE) $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins/ap_capuserdata.img
316else
317ifeq ($(PRJ_IS_MIN),yes)
318 bash $(BUILD_DIR)/jffs2_lzma.sh $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins/ap_capuserdata.img lzma
319else
320 bash $(BUILD_DIR)/jffs2_lzma.sh $(USERDATA_DIR) $(PRJ_BIN_DIR)/allbins/ap_capuserdata.img lzo
321endif
322endif
323 @echo "=========> Make cap userdata FS Image End! <==================="
324
325resource:
326ifneq ($(USE_RESOURCE),yes)
327 $(error NO USE_RESOURCE)
328endif
329 @echo "=========> Begin to Make resource FS Image! <==================="
330 rm -rf $(RESOURCE_DIR)
331 mkdir -p $(RESOURCE_DIR) $(PRJ_BIN_DIR)/allbins
332 @cp -afvp $(PRJ_PRODUCT_DIR)/fs/normal/resource/* $(RESOURCE_DIR)
333 find $(RESOURCE_DIR) -type d -name '.gitkeep' -print0 | xargs -0 rm -fr
334 for bmpfile in $(LOGO_BMP_FILE); \
335 do \
336 bmp_to_565 $(RESOURCE_DIR)/$$bmpfile.bmp $(RESOURCE_DIR)/$$bmpfile.bin || exit $$?; \
337 rm $(RESOURCE_DIR)/$$bmpfile.bmp || exit $$?; \
338 done
339
340ifeq ($(PRJ_IS_MIN),yes)
341 bash $(BUILD_DIR)/jffs2_lzma.sh $(RESOURCE_DIR) $(PRJ_BIN_DIR)/allbins/ap_resource.img lzma
342else
343 bash $(BUILD_DIR)/jffs2_lzma.sh $(RESOURCE_DIR) $(PRJ_BIN_DIR)/allbins/ap_resource.img lzo
344endif
345
346 (cd $(RESOURCE_DIR) && find . -type f -printf '"/%P" Regular 14 %04m:%4U:%4G\n' > ../resource_attr.txt)
347 (cd $(RESOURCE_DIR) && find . -type l -printf '"/%P" SymLink 14 %04m:%4U:%4G\n' >> ../resource_attr.txt)
348 (cd $(RESOURCE_DIR) && find . -type d -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >> ../resource_attr.txt)
349 (cd $(RESOURCE_DIR)/.. && tar -zcvf $(PRJ_BIN_DIR)/allbins/resource.tgz resource resource_attr.txt)
350 @rm $(RESOURCE_DIR)/../resource_attr.txt
351 @echo "=========> Make resource FS Image End! <==================="
352
353oem_fs:
354ifneq ($(USE_OEM_FS),yes)
355 $(error NO USE_OEM_FS)
356endif
357 @echo "=========> Begin to Make oem FS Image! <==================="
358 rm -rf $(OEM_FS_DIR)
359 mkdir -p $(OEM_FS_DIR) $(PRJ_BIN_DIR)/allbins
360 @cp -afvp $(PRJ_PRODUCT_DIR)/fs/normal/oem/* $(OEM_FS_DIR)
361 find $(OEM_FS_DIR) -type d -name '.gitkeep' -print0 | xargs -0 rm -fr
362ifeq ($(PRJ_IS_MIN),yes)
363 bash $(BUILD_DIR)/jffs2_lzma.sh $(OEM_FS_DIR) $(PRJ_BIN_DIR)/allbins/ap_oem.img lzma
364else
365 bash $(BUILD_DIR)/jffs2_lzma.sh $(OEM_FS_DIR) $(PRJ_BIN_DIR)/allbins/ap_oem.img lzo
366endif
367 @echo "=========> Make oem FS Image End! <==================="
368
369normal:
370 make AP_BUILD_TYPE=normal sysclean
371 make userdata
372ifeq ($(USE_RESOURCE),yes)
373 make resource
374endif
375ifeq ($(USE_OEM_FS),yes)
376 make oem_fs
377endif
378 make normal_conf
379 make AP_BUILD_TYPE=normal sysclean
380 make normal_conf
381 make AP_BUILD_TYPE=normal sys
382 make AP_BUILD_TYPE=normal rootfs
383ifeq ($(VERIFY_APP_IN_KERNEL),yes)
384 bash $(BUILD_DIR)/gen_app_hash.sh $(PRJ_CONF_DIR)/normal/verify_app_list.txt $(ROOTFS_DIR) $(LINUX_DIR)
385 make kernel
386ifeq ($(CONFIG_SINGLECORE),yes)
387ifeq ($(USE_CPPS_KO),yes)
388 make cpko
389endif
390endif
391endif
392 make AP_BUILD_TYPE=normal copybin
393
394normal2:
395 make AP_BUILD_TYPE=normal sys
396 make AP_BUILD_TYPE=normal rootfs
397ifeq ($(VERIFY_APP_IN_KERNEL),yes)
398 bash $(BUILD_DIR)/gen_app_hash.sh $(PRJ_CONF_DIR)/normal/verify_app_list.txt $(ROOTFS_DIR) $(LINUX_DIR)
399 make kernel
400ifeq ($(CONFIG_SINGLECORE),yes)
401ifeq ($(USE_CPPS_KO),yes)
402 make cpko
403endif
404endif
405endif
406 make AP_BUILD_TYPE=normal copybin
407
408normalclean:
409 -make AP_BUILD_TYPE=normal sysclean
410 make normal_conf
411 make AP_BUILD_TYPE=normal sysclean
412
413cap:
414 make AP_BUILD_TYPE=cap sysclean
415 make cap_conf
416 make AP_BUILD_TYPE=cap sysclean
417 make cap_conf
418 make capuserdata
419 make AP_BUILD_TYPE=cap sys
420 make AP_BUILD_TYPE=cap rootfs
421 make AP_BUILD_TYPE=cap copybin
422
423cap2:
424 make AP_BUILD_TYPE=cap sys
425 make AP_BUILD_TYPE=cap rootfs
426 make AP_BUILD_TYPE=cap copybin
427
428capclean:
429 make AP_BUILD_TYPE=cap sysclean
430 make cap_conf
431 make AP_BUILD_TYPE=cap sysclean
432
433recovery_conf:
434 @cp -v $(PRJ_CONF_DIR)/recovery/config.linux $(LINUX_DIR)/arch/arm/configs/zte_defconfig
435 make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) -C $(LINUX_DIR) zte_defconfig
436 $(BUILD_DIR)/config_check.sh $(PRJ_CONF_DIR)/recovery/config.linux $(LINUX_DIR)/.config
437 mkdir -p $(OUTPUT_DIR)
438ifeq ($(USE_RECOVERYFS),yes)
439 @cp -v $(PRJ_CONF_DIR)/recovery/config.busybox $(APP_DIR)/busybox/src/configs/zte_defconfig
440 @cp -v $(PRJ_CONF_DIR)/recovery/config.uClibc $(BUILD_DIR)/uClibc/.config
441 @cp -v $(PRJ_CONF_DIR)/recovery/config_lib.mk $(LIB_DIR)/config_lib.mk
442 @cp -v $(PRJ_CONF_DIR)/recovery/config_app.mk $(APP_DIR)/config_app.mk
443 mkdir -p $(OUTPUT_DIR)/recoveryfs
444 ln -s $(RECOVERYFS_DIR) $(ROOTFS_DIR)
445endif
446 echo "AP_BUILD_TYPE = recovery" > $(OUTPUT_DIR)/sys_type.mk
447 echo "AP_BUILD_PRJ = $(PRJ_NAME)" >> $(OUTPUT_DIR)/sys_type.mk
448
449recovery:
450ifeq ($(USE_RECOVERYFS),yes)
451 make AP_BUILD_TYPE=recovery sysclean
452 make recovery_conf
453 make AP_BUILD_TYPE=recovery sysclean
454 make recovery_conf
455 make AP_BUILD_TYPE=recovery sys
456 make AP_BUILD_TYPE=recovery rootfs
457else
458 make kerneldistclean
459 make recovery_conf
460 make kerneldistclean
461 make recovery_conf
462 make kernel
463endif
464 make AP_BUILD_TYPE=recovery copybin
465
466recovery2:
467ifeq ($(USE_RECOVERYFS),yes)
468 make AP_BUILD_TYPE=recovery sys
469 make AP_BUILD_TYPE=recovery rootfs
470else
471 make kernel
472endif
473 make AP_BUILD_TYPE=recovery copybin
474
475recoveryclean:
476ifeq ($(USE_RECOVERYFS),yes)
477 -make AP_BUILD_TYPE=recovery sysclean
478 make recovery_conf
479 make AP_BUILD_TYPE=recovery sysclean
480else
481 make kerneldistclean
482 make recovery_conf
483 make kerneldistclean
484endif
485
486
487rootfs:
488ifeq ($(AP_BUILD_TYPE),)
489 $(error AP_BUILD_TYPE is NULL)
490endif
491ifeq ($(AP_BUILD_TYPE),normal)
492 make normal_rootfs
493endif
494ifeq ($(AP_BUILD_TYPE),cap)
495 make cap_rootfs
496endif
497ifeq ($(USE_RECOVERYFS),yes)
498ifeq ($(AP_BUILD_TYPE),recovery)
499 make recovery_rootfs
500endif
501endif
502
503copybin:
504ifeq ($(AP_BUILD_TYPE),)
505 $(error AP_BUILD_TYPE is NULL)
506endif
507ifeq ($(AP_BUILD_TYPE),normal)
508 make normal_copybin
509endif
510ifeq ($(AP_BUILD_TYPE),recovery)
511 make recovery_copybin
512endif
513ifeq ($(AP_BUILD_TYPE),cap)
514 make cap_copybin
515endif
516
517normal_rootfs: normal_check
518 mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs
519 rm -fr $(ROOTFS_DIR)/etc_rw
520 cp -afvp $(PRJ_PRODUCT_DIR)/fs/normal/rootfs/* $(ROOTFS_DIR)/
521 cp -v $(PRJ_BIN_DIR)/allbins/ap_userdata.img $(ROOTFS_DIR)/etc_ro/
522 @cd $(BUILD_DIR); bash ./install_libc.sh $(ROOTFS_DIR)
523 @cd $(BUILD_DIR); bash ./fix_userdata_link.sh $(ROOTFS_DIR)
524 @cd $(BUILD_DIR); bash ./check_file_mode.sh $(ROOTFS_DIR)
525 find $(ROOTFS_DIR)/ -name '.gitkeep' -print0 | xargs -0 rm -fr
526 find $(ROOTFS_DIR)/ -name '.git' -print0 | xargs -0 rm -fr
527 find $(ROOTFS_DIR)/ -name '.gitignore' -print0 | xargs -0 rm -fr
528 find $(ROOTFS_DIR)/ -name '.svn' -print0 | xargs -0 rm -fr
529ifneq ($(USE_FOTA),yes)
530 rm -fr $(ROOTFS_DIR)/recovery
531else
532ifeq ($(USE_FOTA_AB),yes)
533 rm -fr $(ROOTFS_DIR)/recovery
534endif
535endif
536
537ifeq ($(ROOT_FS_TYPE),ubifs)
538 bash $(BUILD_DIR)/ubifs.sh rootfs $(ROOTFS_SIZE) $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img
539else
540ifeq ($(ROOT_FS_TYPE),jffs2)
541ifeq ($(PRJ_IS_MIN),yes)
542 bash $(BUILD_DIR)/jffs2_lzma.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img lzma
543else
544 bash $(BUILD_DIR)/jffs2_lzma.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img lzo
545endif
546else
547ifeq ($(ROOT_FS_TYPE),squashfs)
548 bash $(BUILD_DIR)/squashfs.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img
549endif
550endif
551endif
552 (cd $(ROOTFS_DIR) && find . -type f -printf '"/%P" Regular 14 %04m:%4U:%4G\n' > ../rootfs_attr.txt)
553 (cd $(ROOTFS_DIR) && find . -type l -printf '"/%P" SymLink 14 %04m:%4U:%4G\n' >> ../rootfs_attr.txt)
554 (cd $(ROOTFS_DIR) && find . -type d -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >> ../rootfs_attr.txt)
555 (cd $(ROOTFS_DIR)/../ && tar -zcvf $(PRJ_BIN_DIR)/allbins/rootfs.tgz rootfs rootfs_attr.txt)
556 @rm $(ROOTFS_DIR)/../rootfs_attr.txt
557
558recovery_rootfs: recovery_check
559 mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs
560 rm -fr $(RECOVERYFS_DIR)/etc_rw $(RECOVERYFS_DIR)/recovery
561 cp -afvp $(PRJ_PRODUCT_DIR)/fs/recovery/rootfs/* $(RECOVERYFS_DIR)/
562 @cd $(BUILD_DIR); bash ./install_libc.sh $(RECOVERYFS_DIR)
563 @cd $(BUILD_DIR); bash ./fix_userdata_link.sh $(RECOVERYFS_DIR)
564 @cd $(BUILD_DIR); bash ./check_file_mode.sh $(RECOVERYFS_DIR)
565 find $(RECOVERYFS_DIR)/ -name '.gitkeep' -print0 | xargs -0 rm -fr
566 find $(RECOVERYFS_DIR)/ -name '.git' -print0 | xargs -0 rm -fr
567 find $(RECOVERYFS_DIR)/ -name '.gitignore' -print0 | xargs -0 rm -fr
568 find $(RECOVERYFS_DIR)/ -name '.svn' -print0 | xargs -0 rm -fr
569
570ifeq ($(ROOT_FS_TYPE),ubifs)
571 bash $(BUILD_DIR)/ubifs.sh recoveryfs $(RECOVERYFS_SIZE) $(RECOVERYFS_DIR) $(IMAGE_DIR)/recoveryfs.img
572else
573ifeq ($(ROOT_FS_TYPE),jffs2)
574ifeq ($(PRJ_IS_MIN),yes)
575 bash $(BUILD_DIR)/jffs2_lzma.sh $(RECOVERYFS_DIR) $(IMAGE_DIR)/recoveryfs.img lzma
576else
577 bash $(BUILD_DIR)/jffs2_lzma.sh $(RECOVERYFS_DIR) $(IMAGE_DIR)/recoveryfs.img lzo
578endif
579else
580ifeq ($(ROOT_FS_TYPE),squashfs)
581 bash $(BUILD_DIR)/squashfs.sh $(RECOVERYFS_DIR) $(IMAGE_DIR)/recoveryfs.img
582endif
583endif
584endif
585 (cd $(RECOVERYFS_DIR) && find . -type f -printf '"/%P" Regular 14 %04m:%4U:%4G\n' > ../recoveryfs_attr.txt)
586 (cd $(RECOVERYFS_DIR) && find . -type l -printf '"/%P" SymLink 14 %04m:%4U:%4G\n' >> ../recoveryfs_attr.txt)
587 (cd $(RECOVERYFS_DIR) && find . -type d -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >> ../recoveryfs_attr.txt)
588 (cd $(RECOVERYFS_DIR)/../ && tar -zcvf $(PRJ_BIN_DIR)/allbins/recoveryfs.tgz recoveryfs recoveryfs_attr.txt)
589 @rm $(RECOVERYFS_DIR)/../recoveryfs_attr.txt
590
591cap_rootfs:
592 mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs
593 rm -fr $(CAP_ROOTFS_DIR)/etc_rw
594 cp -afvp $(PRJ_PRODUCT_DIR)/fs/cap/rootfs/* $(CAP_ROOTFS_DIR)/
595 cp -v $(PRJ_BIN_DIR)/allbins/ap_capuserdata.img $(CAP_ROOTFS_DIR)/etc_ro/
596 chmod -R a+r $(CAP_ROOTFS_DIR)/etc_ro
597 find $(CAP_ROOTFS_DIR)/bin -type f | xargs chmod a+x
598 -find $(CAP_ROOTFS_DIR)/sbin -type f | xargs chmod a+x
599 chmod a+x $(CAP_ROOTFS_DIR)/etc/rc
600 @cd $(BUILD_DIR); bash ./install_libc.sh $(CAP_ROOTFS_DIR)
601 find $(CAP_ROOTFS_DIR)/ -name '.gitkeep' -print0 | xargs -0 rm -fr
602 find $(CAP_ROOTFS_DIR)/ -name '.git' -print0 | xargs -0 rm -fr
603 find $(CAP_ROOTFS_DIR)/ -name '.gitignore' -print0 | xargs -0 rm -fr
604 find $(CAP_ROOTFS_DIR)/ -name '.svn' -print0 | xargs -0 rm -fr
605
606ifeq ($(ROOT_FS_TYPE),ubifs)
607 bash $(BUILD_DIR)/ubifs.sh rootfs $(CAP_ROOTFS_SIZE) $(CAP_ROOTFS_DIR) $(IMAGE_DIR)/ap_caprootfs.img
608else
609ifeq ($(ROOT_FS_TYPE),jffs2)
610ifeq ($(PRJ_IS_MIN),yes)
611 bash $(BUILD_DIR)/jffs2_lzma.sh $(CAP_ROOTFS_DIR) $(IMAGE_DIR)/ap_caprootfs.img lzma
612else
613 bash $(BUILD_DIR)/jffs2_lzma.sh $(CAP_ROOTFS_DIR) $(IMAGE_DIR)/ap_caprootfs.img lzo
614endif
615endif
616endif
617
618 (cd $(CAP_ROOTFS_DIR) && find . -type f -printf '"/%P" Regular 14 %04m:%4U:%4G\n' > ../caprootfs_attr.txt)
619 (cd $(CAP_ROOTFS_DIR) && find . -type l -printf '"/%P" SymLink 14 %04m:%4U:%4G\n' >> ../caprootfs_attr.txt)
620 (cd $(CAP_ROOTFS_DIR) && find . -type d -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >> ../caprootfs_attr.txt)
621 (cd $(CAP_ROOTFS_DIR)/../ && tar -zcvf $(PRJ_BIN_DIR)/allbins/caprootfs.tgz caprootfs caprootfs_attr.txt)
622 @rm $(CAP_ROOTFS_DIR)/../caprootfs_attr.txt
623
624imagefs:
625 mkdir -p $(IMAGEFS_DIR)
626 rm -frv $(IMAGEFS_DIR)/*
627 cp -v $(PRJ_BIN_DIR)/allbins/evb_cpuphy.bin $(IMAGEFS_DIR)/
628ifeq ($(LARGEFILE_SPLIT_ENABLE),yes)
629 (cd $(IMAGEFS_DIR) && split -b $(SPLIT_BLOCK_SIZE) evb_cpuphy.bin -d -a 2 cpuphy_)
630 (cd $(IMAGEFS_DIR) && ls -1 cpuphy_* | xargs -I {} minilzma -t $(LZMA_DICT) {})
631 rm -fv $(IMAGEFS_DIR)/evb_cpuphy.bin
632endif
633 cp -v $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin $(IMAGEFS_DIR)/
634ifeq ($(BUILD_CAP),yes)
635 cp -v $(PRJ_BIN_DIR)/allbins/ap_cpucap.bin $(IMAGEFS_DIR)/
636ifeq ($(LARGEFILE_SPLIT_ENABLE),yes)
637 (cd $(IMAGEFS_DIR) && split -b $(SPLIT_BLOCK_SIZE) ap_cpucap.bin -d -a 2 cpucap_)
638 (cd $(IMAGEFS_DIR) && ls -1 cpucap_* | xargs -I {} minilzma -t $(LZMA_DICT) {})
639 rm -fv $(IMAGEFS_DIR)/ap_cpucap.bin
640endif
641endif
642
643ifeq ($(LARGEFILE_SPLIT_ENABLE),yes)
644 (cd $(IMAGEFS_DIR) && split -b $(SPLIT_BLOCK_SIZE) ap_cpuap.bin -d -a 2 cpuap_)
645 (cd $(IMAGEFS_DIR) && ls -1 cpuap_* | xargs -I {} minilzma -t $(LZMA_DICT) {})
646 rm -fv $(IMAGEFS_DIR)/ap_cpuap.bin
647endif
648ifeq ($(USE_FOTA),yes)
649ifneq ($(USE_FOTA_AB),yes)
650 cp -v $(PRJ_BIN_DIR)/allbins/ap_recovery.bin $(IMAGEFS_DIR)/
651ifeq ($(LARGEFILE_SPLIT_ENABLE),yes)
652 (cd $(IMAGEFS_DIR) && split -b $(SPLIT_BLOCK_SIZE) ap_recovery.bin -d -a 2 recovery_)
653 (cd $(IMAGEFS_DIR) && ls -1 recovery_* | xargs -I {} minilzma -t $(LZMA_DICT) {})
654 rm -fv $(IMAGEFS_DIR)/ap_recovery.bin
655endif
656endif
657endif
658 cp -v $(PRJ_BIN_DIR)/allbins/evb_cpurpm.img $(IMAGEFS_DIR)/
659 cp -v $(PRJ_BIN_DIR)/allbins/nvrwoall.bin $(IMAGEFS_DIR)/
660 cp -v $(PRJ_BIN_DIR)/allbins/nvrwall.bin $(IMAGEFS_DIR)/
661 md5sum $(IMAGEFS_DIR)/nvrwall.bin | awk '{printf $$1}' > $(IMAGEFS_DIR)/nvrwall.hash
662ifeq ($(USE_FOTA),yes)
663ifneq ($(USE_FOTA_AB),yes)
664 dd if=/dev/zero bs=1024 count=1 2> /dev/null | tr \\000 \\377 > $(IMAGEFS_DIR)/fotaflag
665endif
666endif
667 #minilzma -t $(LZMA_DICT) $(IMAGEFS_DIR)/nvrwall.bin
668ifeq ($(PRJ_IS_MIN),yes)
669 bash $(BUILD_DIR)/jffs2_lzma.sh $(IMAGEFS_DIR) $(IMAGE_DIR)/ap_imagefs.img lzma
670else
671 bash $(BUILD_DIR)/jffs2_lzma.sh $(IMAGEFS_DIR) $(IMAGE_DIR)/ap_imagefs.img lzo
672endif
673 cp -v $(IMAGE_DIR)/ap_imagefs.img $(PRJ_BIN_DIR)/allbins/
674
675 (cd $(IMAGEFS_DIR) && find . -type f -printf '"/%P" Regular 14 %04m:%4U:%4G\n' > ../imagefs_attr.txt)
676 (cd $(IMAGEFS_DIR) && find . -type l -printf '"/%P" SymLink 14 %04m:%4U:%4G\n' >> ../imagefs_attr.txt)
677 (cd $(IMAGEFS_DIR) && find . -type d -printf '"/%P" Regular 14 %04m:%4U:%4G\n' >> ../imagefs_attr.txt)
678 (cd $(IMAGEFS_DIR)/../ && tar -zcvf $(PRJ_BIN_DIR)/allbins/imagefs.tgz imagefs imagefs_attr.txt)
679 @rm $(IMAGEFS_DIR)/../imagefs_attr.txt
680
681nvrofs:
682 mkdir -p $(NVROFS_DIR)
683 cp -v $(PRJ_BIN_DIR)/allbins/nvroall.bin $(NVROFS_DIR)/
684ifeq ($(PRJ_IS_MIN),yes)
685 bash $(BUILD_DIR)/jffs2_lzma.sh $(NVROFS_DIR) $(IMAGE_DIR)/ap_nvrofs.img lzma
686else
687 bash $(BUILD_DIR)/jffs2_lzma.sh $(NVROFS_DIR) $(IMAGE_DIR)/ap_nvrofs.img lzo
688endif
689 cp -v $(IMAGE_DIR)/ap_nvrofs.img $(PRJ_BIN_DIR)/allbins/
690
691normal_copybin: normal_check
692 mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs/normalelfs
693 cp -v $(IMAGE_DIR)/rootfs.img $(PRJ_BIN_DIR)/allbins/ap_rootfs.img
694ifeq ($(CONFIG_SIGN_IMAGE),yes)
695 chmod a+x $(SIGN)
696 @$(SIGN) -s $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin $(PRIVATE_KEY_PATH)
697else
698 @cp -v $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin
699endif
700 cp -v $(IMAGE_DIR)/vmlinux $(PRJ_BIN_DIR)/elfs/
701 cp -v $(IMAGE_DIR)/System.map $(PRJ_BIN_DIR)/elfs/
702 mkdir -p $(PRJ_BIN_DIR)/test_tools/
703 cp -afvp $(APP_DIR)/test_tools/* $(PRJ_BIN_DIR)/test_tools/
704 find $(PRJ_BIN_DIR)/test_tools/ -type f -size +512k -exec ${STRIPTOOL} '{}' ';'
705
706 find $(APP_DIR)/ -name *.elf -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
707 find $(LIB_DIR)/ -name "l*.so*" -type f ! -path "*/.libs/*" -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
708 find $(STAGEDIR)/uClibc/lib -type f -name "*.so*" -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
709 find $(LINUX_DIR) -type f -name "*.ko" -exec cp {} $(PRJ_BIN_DIR)/elfs/normalelfs \;
710
711cap_copybin:
712 mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs/capelfs
713 cp -v $(IMAGE_DIR)/ap_caprootfs.img $(PRJ_BIN_DIR)/allbins/
714ifeq ($(CONFIG_SIGN_IMAGE),yes)
715 chmod a+x $(SIGN)
716 @$(SIGN) -s $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_cpucap.bin $(PRIVATE_KEY_PATH)
717else
718 @cp -v $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_cpucap.bin
719endif
720 cp -v $(IMAGE_DIR)/vmlinux $(PRJ_BIN_DIR)/elfs/vmlinux_cap
721 cp -v $(IMAGE_DIR)/System.map $(PRJ_BIN_DIR)/elfs/System_cap.map
722 mkdir -p $(PRJ_BIN_DIR)/test_tools/
723 cp -afvp $(APP_DIR)/test_tools/* $(PRJ_BIN_DIR)/test_tools/
724 find $(PRJ_BIN_DIR)/test_tools/ -type f -size +512k -exec ${STRIPTOOL} '{}' ';'
725
726 find $(APP_DIR)/ -name *.elf -exec cp {} $(PRJ_BIN_DIR)/elfs/capelfs \;
727 find $(LIB_DIR)/ -type f -name "lib*.so" -exec cp {} $(PRJ_BIN_DIR)/elfs/capelfs \;
728 find $(STAGEDIR)/uClibc/lib -type f -name "*.so" -exec cp {} $(PRJ_BIN_DIR)/elfs/capelfs \;
729 find $(LINUX_DIR) -type f -name "*.ko" -exec cp {} $(PRJ_BIN_DIR)/elfs/capelfs \;
730
731recovery_copybin: recovery_check
732 mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs/recoveryelfs
733ifeq ($(USE_RECOVERYFS),yes)
734 cp -v $(IMAGE_DIR)/recoveryfs.img $(PRJ_BIN_DIR)/allbins/ap_recoveryfs.img
735endif
736ifeq ($(CONFIG_SIGN_IMAGE),yes)
737 chmod a+x $(SIGN)
738 @$(SIGN) -s $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_recovery.bin $(PRIVATE_KEY_PATH)
739else
740 @cp -v $(IMAGE_DIR)/linux_kernel.img $(PRJ_BIN_DIR)/allbins/ap_recovery.bin
741endif
742 cp -v $(IMAGE_DIR)/vmlinux $(PRJ_BIN_DIR)/elfs/vmlinux.recovery
743 cp -v $(IMAGE_DIR)/System.map $(PRJ_BIN_DIR)/elfs/System.map.recovery
744ifeq ($(USE_RECOVERYFS),yes)
745 find $(APP_DIR)/ -name *.elf -exec cp {} $(PRJ_BIN_DIR)/elfs/recoveryelfs \;
746 find $(LIB_DIR)/ -name "l*.so*" -type f ! -path "*/.libs/*" -exec cp {} $(PRJ_BIN_DIR)/elfs/recoveryelfs \;
747 find $(STAGEDIR)/uClibc/lib -type f -name "*.so*" -exec cp {} $(PRJ_BIN_DIR)/elfs/recoveryelfs \;
748 find $(LINUX_DIR) -type f -name "*.ko" -exec cp {} $(PRJ_BIN_DIR)/elfs/recoveryelfs \;
749endif
750
751section_bin:
752 echo $(CROSS_COMPILE)
753 echo $(UIMAGE_LOADADDR)
754 rm -frv $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin
755 rm -frv $(PRJ_BIN_DIR)/allbins/modem_code.bin
756 rm -frv $(ROOTFS_DIR)/bin/modem_code.bin
757 $(CROSS_COMPILE)objcopy -O binary -j .modem.text $(IMAGE_DIR)/vmlinux $(PRJ_BIN_DIR)/allbins/modem_code.bin
758 $(CROSS_COMPILE)objcopy -O binary -R .modem.text $(IMAGE_DIR)/vmlinux $(PRJ_BIN_DIR)/allbins/ap_tmp.bin
759 ./os/linux/linux-3.4.x/scripts/mkuboot.sh -A arm -O linux -C none -T kernel -a 0x205c8000 -e 0x205c8000 -n 'Linux-3.4.110-rt140' -d $(PRJ_BIN_DIR)/allbins/ap_tmp.bin $(PRJ_BIN_DIR)/allbins/uap_tmp.bin
760 @$(SIGN) -s $(PRJ_BIN_DIR)/allbins/uap_tmp.bin $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin $(PRIVATE_KEY_PATH)
761 cp -v $(PRJ_BIN_DIR)/allbins/modem_code.bin $(ROOTFS_DIR)/bin/
762 rm -frv $(PRJ_BIN_DIR)/allbins/uap_tmp.bin
763 rm -frv $(PRJ_BIN_DIR)/allbins/ap_tmp.bin
764
765obfu:
766 bash $(BUILD_DIR)/obfu.sh