nt9856x/BSP/root-fs/Makefile
2023-12-25 10:21:56 +08:00

334 lines
17 KiB
Makefile
Executable File

NVT_FS_MTD_CFG_DEFAULT := ${ROOTFS_DIR}/mtd_cfg.txt
NVT_FS_MTD_CFG := ${CONFIG_DIR}/cfg_gen/mtd_cfg.txt
COPYSO_CHK_BIN_PATH =bin sbin usr/bin usr/sbin usr/local/bin usr/local/sbin var/www var/www/onvif var/www/cgi-bin
COPYSO_SCRIPT = $(LINUX_BUILD_TOP)/build/copyso.sh
IMGNAME_RAMDISK="rootfs.ramdisk.bin"
IMGNAME_TARBZ2="rootfs.tar.bz2"
IMGNAME_UBIFS="rootfs.ubifs.bin"
IMGNAME_UBIFS_RW="rootfs_1.rw.ubifs.bin"
IMGNAME_SQUASHFS="rootfs.squash.bin"
IMGNAME_SQUASH_UBI="rootfs.squash_ubi.bin"
IMGNAME_SQUASHFS1="rootfs_1.squash.bin"
IMGNAME_JFFS2="rootfs.jffs2.bin"
IMGNAME_JFFS2_RW="rootfs_1.rw.jffs2.bin"
IMGNAME_EXT4="rootfs.ext4.bin"
IMGNAME_EXT4_RW="rootfs.rw.ext4.bin"
IMGNAME_FAT_CACHE="rootfs_1.cache.vfat.bin"
PARTITION_LABEL_UBIFS = rootfs
PARTITION_LABEL_UBIFS_RW = rootfs1
MODELCFG_PROFILE_PATH="${ROOTFS_DIR}/rootfs/etc/profile_prjcfg"
CLEAR_FILE_LIST="rootfs/etc/profile_prjcfg rootfs/linuxrc rootfs/etc/lib"
GEN_MODULES_DEP_BB_FILE = $(LINUX_BUILD_TOP)/build/nvt-tools/gen_modules_dep_bb
DTBNAME = nvt-evb.dtb
IMGNAME_SQUASHFS1_SORT="${CONFIG_DIR}/cfg_gen/squash1_sort.txt"
# disable python tool generate __pycache__ directory
export PYTHONDONTWRITEBYTECODE=1
KERVER ?= $(NVT_LINUX_VER)
include $(NVT_PRJCFG_MODEL_CFG)
-include $(NVT_FS_MTD_CFG_DEFAULT)
-include $(NVT_FS_MTD_CFG)
ifeq ($(NVT_BINARY_FILE_STRIP), yes)
STRIPDIRS = ${ROOTFS_DIR}/rootfs/bin/* ${ROOTFS_DIR}/rootfs/sbin/* ${ROOTFS_DIR}/rootfs/user/bin/* ${ROOTFS_DIR}/rootfs/usr/sbin/*
STRIPLIBS = ${ROOTFS_DIR}/rootfs/lib/* ${ROOTFS_DIR}/rootfs/usr/lib/*
endif
define gen_rootfs_init
echo -e "\e[1;44mRootfs are generating.....\e[0m"
if [ -z $(LINUX_BUILD_TOP) ]; then \
echo -e "\r\nERROR :Please source build/envsetup.sh in NA51000_Linux firstly to have auto copyso function\r\n"; \
exit 1; \
fi
if [ ! -e $(ROOTFS_DIR)/bin ]; then \
mkdir $(ROOTFS_DIR)/bin; \
else \
if [ -d $(ROOTFS_DIR)/bin/mnt ]; then sudo umount $(ROOTFS_DIR)/bin/mnt; fi; \
rm -rf $(ROOTFS_DIR)/bin/*; \
fi
if [ ! -z $(LINUX_BUILD_TOP) ]; then \
sh $(COPYSO_SCRIPT) "$(ROOTFS_DIR)/rootfs" $(COPYSO_CHK_BIN_PATH); \
fi
if [ -f "$(GEN_MODULES_DEP_BB_FILE)" ]; then \
echo "$(GEN_MODULES_DEP_BB_FILE) $(ROOTFS_DIR)/lib/modules/$(KERVER)"; \
$(GEN_MODULES_DEP_BB_FILE) $(ROOTFS_DIR)/rootfs/lib/modules/$(KERVER); \
else \
echo "WRANING: can not find $(GEN_MODULES_DEP_BB_FILE)"; \
fi
endef
define gen_rootfs_etc_link
if [ ! -z $(NVT_ROOTFS_ETC) ]; then \
cd $(ROOTFS_DIR)/rootfs; rm -rf etc; ln -s etc_Model/etc_$(NVT_ROOTFS_ETC) etc; \
else \
MODEL=`echo $(NVT_PRJCFG_MODEL_CFG) | awk -F'/' '{print $$(NF-1)}' | awk -F'cfg_' '{print $$NF}'`; \
cd $(ROOTFS_DIR)/rootfs; rm -rf etc; ln -s etc_Model/etc_$$MODEL etc; \
echo -e "\e[1;32mYour model is $$MODEL\e[0m"; \
fi
endef
# function: gen_rootfs_ubinize_cfg_param
# $(1) : ubi fs file, e.g. $(IMGNAME_UBIFS).raw
# $(2) : output cfg file, e.g. bin/ubinize.cfg
# $(3) : vol_size, e.g. ROOTFS_UBI_MAX_LEB_COUNT * ROOTFS_UBI_ERASE_BLK_SIZE
gen_rootfs_ubinize_cfg_param = \
echo -e "[ubifs]" > $(2); \
echo -e "mode=ubi" >> $(2); \
echo -e "image=$(1)" >> $(2); \
echo -e "vol_id=0" >> $(2); \
echo -e "vol_size=$(3)" >> $(2); \
echo -e "vol_type=dynamic" >> $(2); \
echo -e "vol_name=rootfs" >> $(2);
define gen_rootfs_tmp
rm -rf $(ROOTFS_DIR)/rootfs.tmp;
if [ "$(NVT_STATIC_DEVNODE)" == "NVT_STATIC_DEVNODE_ON" ]; then \
mkdir $(ROOTFS_DIR)/rootfs.tmp; cd $(ROOTFS_DIR)/rootfs; sudo cp -arf `ls | grep -v etc` $(ROOTFS_DIR)/rootfs.tmp; \
else \
mkdir $(ROOTFS_DIR)/rootfs.tmp; cd $(ROOTFS_DIR)/rootfs; cp -arf `ls | grep -v etc` $(ROOTFS_DIR)/rootfs.tmp; \
fi
@# Generate etc folder
@# List all etc folder files
$(eval etc_files_list=`cd $(ROOTFS_DIR)/rootfs/etc; find .`)
cd $(ROOTFS_DIR)/rootfs/etc/; \
for file in $(etc_files_list); do \
if [ -L $$file ]; then \
mkdir -p $(ROOTFS_DIR)/rootfs.tmp/etc/`dirname $$file`; \
cp -rf $$file $(ROOTFS_DIR)/rootfs.tmp/etc/$$file; \
elif [ -d $$file ]; then \
mkdir -p $(ROOTFS_DIR)/rootfs.tmp/etc/$$file; \
else \
mkdir -p $(ROOTFS_DIR)/rootfs.tmp/etc/`dirname $$file`; \
cp -f $$file $(ROOTFS_DIR)/rootfs.tmp/etc/$$file; \
fi \
done
if [ "$(NVT_ROOTFS_RW_PART_EN)" != "NVT_ROOTFS_RW_PART_EN_OFF" ] || [ -z "$(NVT_ROOTFS_RW_PART_EN)" ]; then \
if [[ ( "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_RAMDISK" && "$(EMBMEM)" != "EMBMEM_NONE" ) \
|| ( "$(EMBMEM)" != "EMBMEM_SPI_NOR" && "$(EMBMEM)" != "EMBMEM_NONE" && "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_SQUASH" ) \
|| ( "$(NVT_ROOTFS_RW_PART_EN)" == "NVT_ROOTFS_RW_PART_EN_ON" ) ]]; then \
rm -rf $(ROOTFS_DIR)/rootfs.tmp/lib/modules/*; \
find $(ROOTFS_DIR)/rootfs.tmp/usr/bin/ -type f -exec rm {} \;; \
find $(ROOTFS_DIR)/rootfs.tmp/usr/lib/ -type f -exec rm {} \;; \
fi; \
fi
endef
define gen_selected_rootfs_ro
echo -e "\e[1;32m$(NVT_ROOTFS_TYPE).....\e[0m"
if [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_NAND_UBI" ]; then \
./verify_leb.py -f $(dir $(NVT_PRJCFG_MODEL_CFG))$(DTBNAME) -l $(PARTITION_LABEL_UBIFS) -b $(ROOTFS_UBI_MAX_LEB_COUNT) && \
if [ $$? -ne 0 ]; then \
exit 1; \
fi; \
cd $(ROOTFS_DIR); mkfs.ubifs --squash-uids -x $(ROOTFS_UBI_COMPRESS_MODE) -m $(ROOTFS_UBI_PAGE_SIZE) -e $(ROOTFS_UBI_ERASE_BLK_SIZE) -c $(ROOTFS_UBI_MAX_LEB_COUNT) -o bin/$(IMGNAME_UBIFS).raw -r rootfs.tmp; \
$(call gen_rootfs_ubinize_cfg_param,bin/$(IMGNAME_UBIFS).raw,bin/ubinize.cfg,$$(($(ROOTFS_UBI_MAX_LEB_COUNT) * $(ROOTFS_UBI_ERASE_BLK_SIZE)))) \
ubinize -m $(ROOTFS_UBI_PAGE_SIZE) -p $(ROOTFS_UBI_BLK_SIZE) -s $(ROOTFS_UBI_PAGE_SIZE) -o bin/$(IMGNAME_UBIFS).ubi.raw bin/ubinize.cfg; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_UBIFS).ubi.raw --packsum-dst=bin/$(IMGNAME_UBIFS) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_SQUASH" ] && [ "$(EMBMEM)" == "EMBMEM_SPI_NAND" ]; then \
cd $(ROOTFS_DIR); mksquashfs rootfs.tmp bin/$(IMGNAME_SQUASH_UBI).raw -comp $(ROOTFS_SQ_COMPRESS_MODE) -b $(ROOTFS_SQ_BLK_SIZE) -root-owned; \
$(call gen_rootfs_ubinize_cfg_param,bin/$(IMGNAME_SQUASH_UBI).raw,bin/ubinize.cfg,$$(($(ROOTFS_UBI_MAX_LEB_COUNT) * $(ROOTFS_UBI_ERASE_BLK_SIZE))))\
ubinize -m $(ROOTFS_UBI_PAGE_SIZE) -p $(ROOTFS_UBI_BLK_SIZE) -s $(ROOTFS_UBI_PAGE_SIZE) -o bin/$(IMGNAME_SQUASH_UBI).ubi.raw bin/ubinize.cfg; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_SQUASH_UBI).ubi.raw --packsum-dst=bin/$(IMGNAME_SQUASH_UBI) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_SQUASH" ]; then \
cd $(ROOTFS_DIR); mksquashfs rootfs.tmp bin/$(IMGNAME_SQUASHFS).raw -comp $(ROOTFS_SQ_COMPRESS_MODE) -b $(ROOTFS_SQ_BLK_SIZE) -root-owned; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_SQUASHFS).raw --packsum-dst=bin/$(IMGNAME_SQUASHFS) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_NAND_JFFS2" ]; then \
cd $(ROOTFS_DIR); mkfs.jffs2 -n -s $(ROOTFS_JFFS2_PAGE_SIZE) -e $(ROOTFS_JFFS2_BLK_SIZE) -r rootfs.tmp -U -X $(ROOTFS_JFFS2_COMPRESS_MODE) -p $(ROOTFS_JFFS2_SIZE) -o bin/$(IMGNAME_JFFS2).raw; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_JFFS2).raw --packsum-dst=bin/$(IMGNAME_JFFS2) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_NOR_JFFS2" ]; then \
cd $(ROOTFS_DIR); mkfs.jffs2 -n -s $(ROOTFS_JFFS2_PAGE_SIZE) -e $(ROOTFS_JFFS2_BLK_SIZE) -r rootfs.tmp -U -X $(ROOTFS_JFFS2_COMPRESS_MODE) -o bin/$(IMGNAME_JFFS2).raw; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_JFFS2).raw --packsum-dst=bin/$(IMGNAME_JFFS2) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_EXT4" ]; then \
cd $(ROOTFS_DIR); make_ext4fs -s -l $(ROOTFS_EXT4_SIZE) bin/$(IMGNAME_EXT4).raw rootfs.tmp; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_EXT4).raw --packsum-dst=bin/$(IMGNAME_EXT4) --packsum-type=0x9; \
else \
cd $(ROOTFS_DIR)/rootfs.tmp; find . | cpio -o -H newc > $(ROOTFS_DIR)/bin/initramfs.cpio; \
if [ "$(NVT_LINUX_COMPRESS)" == "NVT_LINUX_COMPRESS_GZ" ] || [ "$(NVT_LINUX_COMPRESS)" == "NVT_LINUX_COMPRESS_NONE" ]; then \
$(BUILD_DIR)/nvt-tools/bfc c gz $(ROOTFS_DIR)/bin/initramfs.cpio $(ROOTFS_DIR)/bin/$(IMGNAME_RAMDISK).raw 0 0 -align; \
else \
if [ ! -x $( command -v lz4) ]; then \
echo 'Error: lz4 is not installed.'; \
exit 1; \
fi; \
lz4 -l $(ROOTFS_DIR)/bin/initramfs.cpio $(ROOTFS_DIR)/bin/initramfs.cpio.lz4; \
$(ROOTFS_DIR)/tools/mkimage -A arm -T ramdisk -C none -n 'NVT initramfs' -d $(ROOTFS_DIR)/bin/initramfs.cpio.lz4 $(ROOTFS_DIR)/bin/$(IMGNAME_RAMDISK).raw; \
fi; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=$(ROOTFS_DIR)/bin/$(IMGNAME_RAMDISK).raw --packsum-dst=$(ROOTFS_DIR)/bin/$(IMGNAME_RAMDISK) --packsum-type=0x9; \
fi
@# tar.bz2 generate
rm -rf $(ROOTFS_DIR)/bin/$(IMGNAME_TARBZ2); cd $(ROOTFS_DIR)/rootfs.tmp; tar -jcf $(ROOTFS_DIR)/bin/$(IMGNAME_TARBZ2) .
endef
define rm_rootfs_tmp_dir
rm -rf $(ROOTFS_DIR)/rootfs.tmp
endef
define gen_selected_rootfs_rw
if [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_NAND_UBI" ]; then \
./verify_leb.py -f $(dir $(NVT_PRJCFG_MODEL_CFG))$(DTBNAME) -l $(PARTITION_LABEL_UBIFS_RW) -b $(ROOTFS_UBI_RW_MAX_LEB_COUNT) && \
if [ $$? -ne 0 ]; then \
exit 1; \
fi; \
cd $(ROOTFS_DIR); mkfs.ubifs --squash-uids -x $(ROOTFS_UBI_COMPRESS_MODE) -m $(ROOTFS_UBI_PAGE_SIZE) -e $(ROOTFS_UBI_ERASE_BLK_SIZE) -c $(ROOTFS_UBI_RW_MAX_LEB_COUNT) -o bin/$(IMGNAME_UBIFS_RW).raw -r rootfs.tmp; \
$(call gen_rootfs_ubinize_cfg_param,bin/$(IMGNAME_UBIFS_RW).raw,bin/ubinize_rw.cfg,$$(($(ROOTFS_UBI_RW_MAX_LEB_COUNT) * $(ROOTFS_UBI_ERASE_BLK_SIZE)))) \
ubinize -m $(ROOTFS_UBI_PAGE_SIZE) -p $(ROOTFS_UBI_BLK_SIZE) -s $(ROOTFS_UBI_PAGE_SIZE) -o bin/$(IMGNAME_UBIFS_RW).ubi.raw bin/ubinize_rw.cfg; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_UBIFS_RW).ubi.raw --packsum-dst=bin/$(IMGNAME_UBIFS_RW) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_NAND_JFFS2" ]; then \
cd $(ROOTFS_DIR); mkfs.jffs2 -n -s $(ROOTFS_JFFS2_PAGE_SIZE) -e $(ROOTFS_JFFS2_BLK_SIZE) -r rootfs.tmp -U -X $(ROOTFS_JFFS2_COMPRESS_MODE) -p $(ROOTFS_JFFS2_RW_SIZE) -o bin/$(IMGNAME_JFFS2_RW).raw; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_JFFS2_RW).raw --packsum-dst=bin/$(IMGNAME_JFFS2_RW) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_EXT4" ]; then \
cd $(ROOTFS_DIR); $(BUILD_DIR)/gen_vfat_image.sh bin/$(IMGNAME_FAT_CACHE).raw tools/rootfs_recovery `expr $(ROOTFS_FAT_CACHE_SIZE) / 1024 / 1024`; \
$(BUILD_DIR)/nvt-tools/reduce_fat_bin.py bin/$(IMGNAME_FAT_CACHE).raw bin/$(IMGNAME_FAT_CACHE).raw.sparse; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_FAT_CACHE).raw.sparse --packsum-dst=bin/$(IMGNAME_FAT_CACHE) --packsum-type=0x9; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_SQUASH" ] && [ "$(EMBMEM)" != "EMBMEM_NONE" ]; then \
if [ "$(EMBMEM)" == "EMBMEM_EMMC" ]; then \
cd $(ROOTFS_DIR); make_ext4fs -s -l $(ROOTFS_EXT4_SIZE) bin/$(IMGNAME_EXT4_RW).raw rootfs.tmp; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_EXT4_RW).raw --packsum-dst=bin/$(IMGNAME_EXT4_RW) --packsum-type=0x9; \
elif [ "$(EMBMEM)" == "EMBMEM_SPI_NAND" ]; then \
./verify_leb.py -f $(dir $(NVT_PRJCFG_MODEL_CFG))$(DTBNAME) -l $(PARTITION_LABEL_UBIFS_RW) -b $(ROOTFS_UBI_RW_MAX_LEB_COUNT) && \
if [ $$? -ne 0 ]; then \
exit 1; \
fi; \
cd $(ROOTFS_DIR); mkfs.ubifs --squash-uids -x $(ROOTFS_UBI_COMPRESS_MODE) -m $(ROOTFS_UBI_PAGE_SIZE) -e $(ROOTFS_UBI_ERASE_BLK_SIZE) -c $(ROOTFS_UBI_RW_MAX_LEB_COUNT) -o bin/$(IMGNAME_UBIFS_RW).raw -r rootfs.tmp; \
$(call gen_rootfs_ubinize_cfg_param,bin/$(IMGNAME_UBIFS_RW).raw,bin/ubinize_rw.cfg,$$(($(ROOTFS_UBI_RW_MAX_LEB_COUNT) * $(ROOTFS_UBI_ERASE_BLK_SIZE)))) \
ubinize -m $(ROOTFS_UBI_PAGE_SIZE) -p $(ROOTFS_UBI_BLK_SIZE) -s $(ROOTFS_UBI_PAGE_SIZE) -o bin/$(IMGNAME_UBIFS_RW).ubi.raw bin/ubinize_rw.cfg; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_UBIFS_RW).ubi.raw --packsum-dst=bin/$(IMGNAME_UBIFS_RW) --packsum-type=0x9; \
fi; \
elif [ "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_RAMDISK" ] && [ "$(EMBMEM)" != "EMBMEM_NONE" ]; then \
if [ "$(EMBMEM)" == "EMBMEM_SPI_NAND" ]; then \
./verify_leb.py -f $(dir $(NVT_PRJCFG_MODEL_CFG))$(DTBNAME) -l $(PARTITION_LABEL_UBIFS_RW) -b $(ROOTFS_UBI_RW_MAX_LEB_COUNT); \
if [ $$? -ne 0 ]; then \
exit 1; \
fi; \
cd $(ROOTFS_DIR); mkfs.ubifs --squash-uids -x $(ROOTFS_UBI_COMPRESS_MODE) -m $(ROOTFS_UBI_PAGE_SIZE) -e $(ROOTFS_UBI_ERASE_BLK_SIZE) -c $(ROOTFS_UBI_RW_MAX_LEB_COUNT) -o bin/$(IMGNAME_UBIFS_RW).raw -r rootfs.tmp; \
$(call gen_rootfs_ubinize_cfg_param,bin/$(IMGNAME_UBIFS_RW).raw,bin/ubinize_rw.cfg,$$(($(ROOTFS_UBI_RW_MAX_LEB_COUNT) * $(ROOTFS_UBI_ERASE_BLK_SIZE)))) \
ubinize -m $(ROOTFS_UBI_PAGE_SIZE) -p $(ROOTFS_UBI_BLK_SIZE) -s $(ROOTFS_UBI_PAGE_SIZE) -o bin/$(IMGNAME_UBIFS_RW).ubi.raw bin/ubinize_rw.cfg; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_UBIFS_RW).ubi.raw --packsum-dst=bin/$(IMGNAME_UBIFS_RW) --packsum-type=0x9; \
elif [ "$(EMBMEM)" == "EMBMEM_EMMC" ]; then \
cd $(ROOTFS_DIR); make_ext4fs -s -l $(ROOTFS_EXT4_SIZE) bin/$(IMGNAME_EXT4_RW).raw rootfs.tmp; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_EXT4_RW).raw --packsum-dst=bin/$(IMGNAME_EXT4_RW) --packsum-type=0x9; \
else \
if [ -f $(IMGNAME_SQUASHFS1_SORT) ]; then \
cd $(ROOTFS_DIR); mksquashfs rootfs.tmp bin/$(IMGNAME_SQUASHFS1).raw -comp $(ROOTFS_SQ_COMPRESS_MODE) -b $(ROOTFS_SQ_BLK_SIZE) -root-owned -sort $(IMGNAME_SQUASHFS1_SORT); \
else \
cd $(ROOTFS_DIR); mksquashfs rootfs.tmp bin/$(IMGNAME_SQUASHFS1).raw -comp $(ROOTFS_SQ_COMPRESS_MODE) -b $(ROOTFS_SQ_BLK_SIZE) -root-owned; \
fi; \
$(BUILD_DIR)/nvt-tools/nvt-ld-op --packsum-src=bin/$(IMGNAME_SQUASHFS1).raw --packsum-dst=bin/$(IMGNAME_SQUASHFS1) --packsum-type=0x9; \
fi; \
else \
continue; \
fi
endef
define rm_rootfs_tmp_files
rm -rf $(ROOTFS_DIR)/rootfs.tmp/*;
if [[ ( "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_RAMDISK" && "$(EMBMEM)" != "EMBMEM_NONE" ) \
|| ( "$(EMBMEM)" == "EMBMEM_SPI_NAND" && "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_SQUASH" ) \
|| ( "$(EMBMEM)" == "EMBMEM_EMMC" && "$(NVT_ROOTFS_TYPE)" == "NVT_ROOTFS_TYPE_SQUASH" ) ]]; then \
cp -r $(ROOTFS_DIR)/rootfs/lib/modules/* $(ROOTFS_DIR)/rootfs.tmp; \
mkdir -p $(ROOTFS_DIR)/rootfs.tmp/usr; \
cp -arf $(ROOTFS_DIR)/rootfs/usr/bin $(ROOTFS_DIR)/rootfs.tmp/usr; \
cp -arf $(ROOTFS_DIR)/rootfs/usr/lib $(ROOTFS_DIR)/rootfs.tmp/usr; \
fi
endef
define strip_binary_files
if [ "${STRIPDIRS}" != "" ]; then \
STRIPFILES=`file ${STRIPDIRS} 2> /dev/null | grep "not stripped" | awk 'BEGIN {FS=":"}; {print $$1}'`; \
for target_file in $$STRIPFILES; do \
chmod 755 $$target_file; \
${STRIP} $$target_file; \
done; \
fi
if [ "${STRIPLIBS}" != "" ]; then \
STRIPFILES=`for lib in ${STRIPLIBS}; do \
find $$lib -type f -exec file {} \; 2> /dev/null | grep "not stripped" | awk 'BEGIN {FS=":"}; {print $$1}'; \
done;`; \
for target_file in $$STRIPFILES; do \
chmod 755 $$target_file; \
${STRIP} -g --strip-unneeded $$target_file; \
done; \
fi
endef
define install_rootfs
echo -e "\e[1;44mRootfs are installing.....\e[0m"
cd $(ROOTFS_DIR)/bin/; cp rootfs*.bin $(LINUX_BUILD_TOP)/output/; \
RAW_IMAGE_LIST=`ls *.raw 2>/dev/null`; \
for file in $$RAW_IMAGE_LIST; do \
mkdir -p $(LINUX_BUILD_TOP)/output/raw; \
if [ -f $$file ]; then cp $$file $(LINUX_BUILD_TOP)/output/raw; fi; \
done;
endef
define gen_prjcfg_profile_init
echo -e "\e[1;44m To do rootfs/etc/profile_prjcfg is generating .....\e[0m"
if [ -z $(LINUX_BUILD_TOP) ]; then \
echo -e "\r\nERROR :Please source build/envsetup.sh in NA51000_Linux firstly to have auto copyso function\r\n"; \
exit 1; \
fi
echo "export MODEL=`echo ${NVT_PRJCFG_MODEL_CFG} | awk -F'ModelConfig_' '{print $$NF}' | awk -F'.txt' '{print $$1}'`" > $(MODELCFG_PROFILE_PATH);
grep '^[^#][[:alnum:]_]*[[:blank:]]*=[[:blank:]]*[[:alnum:][:blank:]_]*' ${NVT_PRJCFG_MODEL_CFG} | sed 's/\([[:alnum:]_]*\)[[:blank:]]*=[[:blank:]]*\([[:alnum:][:blank:]_\.$$\(\)\-]*\)/export \1="\2"/g' >> $(MODELCFG_PROFILE_PATH);
sed -i '/BIN_NAME/d' $(MODELCFG_PROFILE_PATH);
# echo "export LD_PRELOAD='libnvtlibc.so'" >> $(MODELCFG_PROFILE_PATH);
endef
define clean_specific_files_list
if [ -z $(LINUX_BUILD_TOP) ]; then \
echo -e "\r\nERROR :Please source build/envsetup.sh in NA51000_Linux firstly to have auto copyso function\r\n"; \
exit 1; \
fi
cd ${ROOTFS_DIR}; \
for n in $(CLEAR_FILE_LIST); do \
rm -rf $$n; \
done;
endef
define clean_rootfs
rm -rf ${ROOTFS_DIR}/bin
rm -rf ${ROOTFS_DIR}/rootfs/bin
rm -rf ${ROOTFS_DIR}/rootfs/sbin
rm -rf ${ROOTFS_DIR}/rootfs/lib/*
rm -rf ${ROOTFS_DIR}/rootfs/usr/bin
rm -rf ${ROOTFS_DIR}/rootfs/usr/local
rm -rf ${ROOTFS_DIR}/rootfs/usr/sbin
rm -rf ${ROOTFS_DIR}/rootfs/usr/lib/*
rm -rf ${ROOTFS_DIR}/rootfs/var/www/cgi-bin/*
rm -rf ${ROOTFS_DIR}/rootfs/etc
rm -rf ${ROOTFS_DIR}/rootfs/man
rm -rf ${ROOTFS_DIR}/rootfs/share
if [ -d $(LINUX_BUILD_TOP)/output ]; then cd $(LINUX_BUILD_TOP)/output; rm -rf $(IMGNAME_RAMDISK) $(IMGNAME_UBIFS) $(IMGNAME_EXT4_RW) $(IMGNAME_SQUASH_UBI) $(IMGNAME_TARBZ2); fi
endef
all:
@$(call gen_rootfs_init)
@$(call gen_rootfs_etc_link)
@$(call gen_prjcfg_profile_init)
@$(call strip_binary_files)
@$(call gen_rootfs_tmp)
@$(call gen_selected_rootfs_ro)
@$(call rm_rootfs_tmp_files)
ifneq ($(NVT_ROOTFS_RW_PART_EN), NVT_ROOTFS_RW_PART_EN_OFF)
@$(call gen_selected_rootfs_rw)
endif
@$(call rm_rootfs_tmp_dir)
gen_etc:
@$(call gen_rootfs_etc_link)
install:
@$(call install_rootfs)
clean:
@$(call clean_specific_files_list)
@$(call clean_rootfs)
@$(call rm_rootfs_tmp)