2.rm sifarsdk code,Makefile will git clone code when build. 3.usb net test ok. 4.compile network tools and link from SifarSDK project.
723 lines
28 KiB
Makefile
Executable File
723 lines
28 KiB
Makefile
Executable File
############################################################################
|
|
#
|
|
# Makefile -- Top level makefile.
|
|
#
|
|
# Copyright (c) 2016, Novatek
|
|
#
|
|
############################################################################
|
|
# common
|
|
MULTI_CORES ?= $(shell grep -c ^processor /proc/cpuinfo)
|
|
SHELL = /bin/bash
|
|
PYTHON := python
|
|
PWD = $(shell pwd)
|
|
|
|
# nvt modelconfig
|
|
$(shell cd ${CONFIG_DIR}; make gen_dtb; make gen_modelcfg > /dev/null 2>&1;)
|
|
include $(NVT_PRJCFG_MODEL_CFG)
|
|
-include $(BUILD_DIR)/definitions.mk
|
|
|
|
# kernel & modules
|
|
CUSTBOARDCONFIG := $(strip $(shell echo $(NVT_PRJCFG_MODEL_CFG) | grep NVT_CFG_KERNEL_CFG | awk -F'=' '{print $$NF;}'))
|
|
ifeq ($(EMBMEM), EMBMEM_SPI_NOR)
|
|
#BOARDCONFIG := $(shell if [ ! -z $(NVT_CFG_KERNEL_CFG) ]; then echo $(NVT_CFG_KERNEL_CFG); else echo $(SDK_CODENAME)_evb_defconfig_nor_debug; fi)
|
|
BOARDCONFIG := $(shell if [ ! -z $(NVT_CFG_KERNEL_CFG) ]; then echo $(NVT_CFG_KERNEL_CFG); else echo $(SDK_CODENAME)_evb_defconfig_nor_release; fi)
|
|
else ifeq ($(EMBMEM), EMBMEM_EMMC)
|
|
#BOARDCONFIG := $(shell if [ ! -z $(NVT_CFG_KERNEL_CFG) ]; then echo $(NVT_CFG_KERNEL_CFG); else echo $(SDK_CODENAME)_evb_defconfig_emmc_debug; fi)
|
|
BOARDCONFIG := $(shell if [ ! -z $(NVT_CFG_KERNEL_CFG) ]; then echo $(NVT_CFG_KERNEL_CFG); else echo $(SDK_CODENAME)_evb_defconfig_emmc_release; fi)
|
|
else
|
|
#BOARDCONFIG := $(shell if [ ! -z $(NVT_CFG_KERNEL_CFG) ]; then echo $(NVT_CFG_KERNEL_CFG); else echo $(SDK_CODENAME)_evb_defconfig_debug; fi)
|
|
BOARDCONFIG := $(shell if [ ! -z $(NVT_CFG_KERNEL_CFG) ]; then echo $(NVT_CFG_KERNEL_CFG); else echo $(SDK_CODENAME)_evb_defconfig_release; fi)
|
|
endif
|
|
|
|
ifeq ($(EMBMEM), EMBMEM_SPI_NAND)
|
|
UBOOT_DEFCONFIG := $(shell if [ ! -z $(NVT_CFG_UBOOT_CFG) ]; then echo $(NVT_CFG_UBOOT_CFG); else echo nvt-$(SDK_CODENAME)_nand_defconfig; fi)
|
|
else ifeq ($(EMBMEM), EMBMEM_SPI_NOR)
|
|
UBOOT_DEFCONFIG := $(shell if [ ! -z $(NVT_CFG_UBOOT_CFG) ]; then echo $(NVT_CFG_UBOOT_CFG); else echo nvt-$(SDK_CODENAME)_nor_defconfig; fi)
|
|
else ifeq ($(EMBMEM), EMBMEM_NONE)
|
|
UBOOT_DEFCONFIG := $(shell if [ ! -z $(NVT_CFG_UBOOT_CFG) ]; then echo $(NVT_CFG_UBOOT_CFG); else echo nvt-$(SDK_CODENAME)_fpga_defconfig; fi)
|
|
else
|
|
UBOOT_DEFCONFIG := $(shell if [ ! -z $(NVT_CFG_UBOOT_CFG) ]; then echo $(NVT_CFG_UBOOT_CFG); else echo nvt-$(SDK_CODENAME)_emmc_defconfig; fi)
|
|
endif
|
|
UBOOT_ENCRYPT_TAG := $(shell echo $(UBOOT_DEFCONFIG) | sed -e 's/nvt-na\(.\{5\}\).*/\1/g')
|
|
|
|
KERNEL_OUTPUT := $(KERNELDIR)
|
|
KERNEL_TARGET := uImage
|
|
KERNEL_IMGNAME := uImage.bin
|
|
KERNEL_RAMDISK_IMGNAME := uImage.ramdisk.bin
|
|
KERNEL_HEADER := linux_header
|
|
ENCRYPT_KERNEL_IMGNAME := uImage.encrypted.bin
|
|
NUTTX_IMGNAME := nuttx.bin
|
|
PINMUX_CONFIG:= nvt-top.dtsi
|
|
GPIO_CONFIG:= nvt-gpio.dtsi
|
|
SDK_CODENAME_SUFFIX = $(subst na,,$(SDK_CODENAME))
|
|
|
|
# optee
|
|
OPTEE_IMGNAME := tee-pager.bin
|
|
ENCRYPT_OPTEE_IMGNAME := tee.encrypted.bin
|
|
|
|
# uboot
|
|
UBOOT_IMGNAME := u-boot.bin
|
|
ENCRYPT_UBOOT_IMGNAME := u-boot.encrypted.bin
|
|
|
|
|
|
# busybox
|
|
BUSYBOX_CFG := busybox_cfg_full
|
|
#BUSYBOX_CFG := busybox_cfg_small
|
|
|
|
# toybox
|
|
TOYBOX_CFG := toybox_cfg_full
|
|
#TOBOX_CFG := toybox_cfg_small
|
|
|
|
# log
|
|
log_stdout = echo -e "\e[1;44m$@: Build start\e[0m"; \
|
|
$(1) 2> >(tee -a $(LOGS_DIR)/$@.log_err) > >(tee -a $(LOGS_DIR)/$@.log); \
|
|
ret=$$PIPESTATUS; \
|
|
echo -e "\e[1;44m$@: Build finish\e[0m"; \
|
|
if [ -e $(LOGS_DIR)/$@.log_err ]; then cat $(LOGS_DIR)/$@.log_err >&2; fi; \
|
|
if [ -z "`cat $(LOGS_DIR)/$@.log_err`" ]; then \
|
|
rm $(LOGS_DIR)/$@.log_err; \
|
|
fi; \
|
|
exit $$ret;
|
|
|
|
log_remove = if [ ! -e $(LOGS_DIR) ]; then mkdir $(LOGS_DIR); fi; if [ -e $(LOGS_DIR)/$@.log ]; then rm $(LOGS_DIR)/$@.log; fi; if [ -e $(LOGS_DIR)/$@.log_err ]; then rm $(LOGS_DIR)/$@.log_err; fi;
|
|
|
|
check_copy = for n in $(1); do if [ -f $$n ]; then cp -av $$n $(2); fi; done;
|
|
|
|
# linux rtc driver
|
|
export CONFIG_NVT_RTC_CLOCK = $(shell echo $(CLOCK))
|
|
|
|
# misc
|
|
BUILD_COMPLETE_STRING ?= $(shell date "+%a, %d %b %Y %T %z")
|
|
UID := $(shell id -u)
|
|
GID := $(shell id -g)
|
|
removeimg = $(foreach a,$(1),$(if $(wildcard $(a)),rm -rf $(a)))
|
|
unexport KBUILD_OUTPUT
|
|
|
|
# make global flags
|
|
MAKE_QUIET_FLAGS = --no-print-directory
|
|
|
|
# check path existing for build all
|
|
BUILD_ALL = cfg
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
BUILD_ALL += busybox linux modules
|
|
CLEAN_ALL += busybox_clean tools_clean
|
|
else ifeq ($(NVT_PRJCFG_CFG), rtos)
|
|
BUILD_ALL += rtos
|
|
CLEAN_ALL += rtos_clean
|
|
endif
|
|
ifneq ($(wildcard $(NVT_VOS_DIR)/source/Makefile),)
|
|
BUILD_ALL += vos
|
|
CLEAN_ALL += vos_clean
|
|
endif
|
|
ifneq ($(wildcard $(NVT_HDAL_DIR)/Makefile),)
|
|
BUILD_ALL += hdal
|
|
CLEAN_ALL += hdal_clean
|
|
endif
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
CLEAN_ALL += linux_clean
|
|
endif
|
|
ifneq ($(wildcard $(NUTTX_DIR)/Makefile),)
|
|
BUILD_ALL += nuttx
|
|
CLEAN_ALL += nuttx_clean
|
|
endif
|
|
ifneq ($(wildcard $(OPTEE_DIR)/optee_client/Makefile),)
|
|
#optee_client clean depends on optee_os's some output mk
|
|
CLEAN_ALL += optee_client_clean
|
|
endif
|
|
ifneq ($(wildcard $(OPTEE_DIR)/optee_os/Makefile),)
|
|
BUILD_ALL += optee_os
|
|
CLEAN_ALL += optee_os_clean
|
|
endif
|
|
ifeq ($(ENCRYPT_OPTEE), ENCRYPT_OPTEE_ON)
|
|
BUILD_ALL += optee_os_encrypt
|
|
CLEAN_ALL += optee_os_encrypt_clean
|
|
endif
|
|
ifneq ($(wildcard $(NVT_DRIVER_DIR)/Makefile),)
|
|
BUILD_ALL += driver
|
|
CLEAN_ALL += driver_clean
|
|
endif
|
|
ifneq ($(wildcard $(LIBRARY_DIR)/Makefile),)
|
|
BUILD_ALL += library
|
|
CLEAN_ALL += library_clean
|
|
endif
|
|
ifneq ($(wildcard $(OPTEE_DIR)/optee_client/Makefile),)
|
|
BUILD_ALL += optee_client
|
|
endif
|
|
ifneq ($(wildcard $(APP_DIR)/Makefile),)
|
|
BUILD_ALL += app
|
|
CLEAN_ALL += app_clean
|
|
endif
|
|
ifeq ($(EMBMEM), EMBMEM_EMMC)
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
BUILD_ALL += mbr
|
|
CLEAN_ALL += mbr_clean
|
|
endif
|
|
endif
|
|
ifneq ($(wildcard $(UBOOT_DIR)/Makefile),)
|
|
BUILD_ALL += uboot
|
|
CLEAN_ALL += uboot_clean
|
|
ifeq ($(ENCRYPT_UBOOT), ENCRYPT_UBOOT_ON)
|
|
BUILD_ALL += uboot_encrypt
|
|
CLEAN_ALL += uboot_encrypt_clean
|
|
endif
|
|
endif
|
|
ifeq ($(ENCRYPT_KERNEL), ENCRYPT_KERNEL_ON)
|
|
BUILD_ALL += linux_encrypt
|
|
CLEAN_ALL += linux_encrypt_clean
|
|
endif
|
|
ifneq ($(wildcard $(SAMPLE_DIR)/Makefile),)
|
|
BUILD_ALL += sample
|
|
CLEAN_ALL += sample_clean
|
|
endif
|
|
BUILD_ALL += post
|
|
CLEAN_ALL += post_clean
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
BUILD_ALL += rootfs
|
|
CLEAN_ALL += rootfs_clean
|
|
endif
|
|
BUILD_ALL += pack
|
|
CLEAN_ALL += pack_clean cfg_clean
|
|
|
|
sifarsdk:
|
|
$(MAKE) -C ./code/application/sifarsdk prepare
|
|
$(MAKE) -C ./code/application/sifarsdk/novatek/S530 sf_cs_app
|
|
@cp ./code/application/sifarsdk/out/bin/quectel-CM-EG915Q code/application/source/sf_app/build/
|
|
@cp ./code/application/sifarsdk/out/bin/quectel-CM-EG91 code/application/source/sf_app/build/
|
|
@cp ./code/application/sifarsdk/out/bin/QLog-EG915Q code/application/source/sf_app/build/QLog
|
|
@cp ./code/application/sifarsdk/out/bin/DownloadCLI-EG915Q code/application/source/sf_app/build/
|
|
@cp ./code/application/sifarsdk/out/bin/QFirehose-EG91 code/application/source/sf_app/build/QFirehose
|
|
|
|
all: sifarsdk $(BUILD_ALL)
|
|
@echo "Finish generating images at $(BUILD_COMPLETE_STRING)"
|
|
@$(call update_modelcfg_to_build)
|
|
|
|
.PHONY: rootfs uboot linux modules tools app sample
|
|
|
|
pack:
|
|
@$(call gen_nvt_pack)
|
|
|
|
checkenv:
|
|
@if [ -z $(LINUX_BUILD_TOP) ]; then \
|
|
echo -e "\r\nERROR :Please source build/envsetup.sh in BSP firstly to have auto copyso function\r\n"; \
|
|
exit 1; \
|
|
fi
|
|
@if [ $(PWD) != $(LINUX_BUILD_TOP) ]; then \
|
|
echo -e "\r\nERROR: Current path is not the same as the environment path ("$(LINUX_BUILD_TOP)")\r\n"; \
|
|
exit 1; \
|
|
fi
|
|
@if [ ! -e $(OUTPUT_DIR) ]; then \
|
|
mkdir $(OUTPUT_DIR); \
|
|
mkdir $(OUTPUT_DIR)/raw; \
|
|
fi
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@# Generate etc link
|
|
make -C ${ROOTFS_DIR} gen_etc
|
|
endif
|
|
|
|
checkrootfs:
|
|
@if [ ! -f $(ROOTFS_DIR)/rootfs/bin/busybox ] || [ ! -f $(ROOTFS_DIR)/rootfs/lib/libc.so.0 ] && [ ! -f $(ROOTFS_DIR)/rootfs/lib/libc.so.6 ]; then \
|
|
echo -e "\r\nERROR :Please make busybox & rootfs firstly\r\n"; \
|
|
exit 1; \
|
|
fi
|
|
|
|
chk_unix: checkenv
|
|
@echo "##### check unix line delimiter format #####"
|
|
@$(BUILD_DIR)/nvt-tools/recursive_dir -t $(LINUX_BUILD_TOP)/code --exclude-ext .o .a .bin .axf .7z .srec .ttl .png .sln .user .filters .vcxproj .sym .bat --exclude-dir .svn .git libxml2-2.9.3 pattern
|
|
|
|
dep:
|
|
@$(call make_dep_by_modelselect)
|
|
|
|
linux: checkenv
|
|
@echo BOARDCONFIG = $(BOARDCONFIG)
|
|
@cp $(KERNELDIR)/arch/$(ARCH)/configs/$(BOARDCONFIG) $(KERNELDIR)/.config
|
|
@echo "##### Build kernel #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(KERNELDIR) $(KERNEL_TARGET) -j$(MULTI_CORES))
|
|
ifeq ($(NVT_LINUX_COMPRESS), NVT_LINUX_COMPRESS_LZMA)
|
|
@$(BUILD_DIR)/nvt-tools/bfc c lzma $(KERNELDIR)/arch/$(ARCH)/boot/Image $(OUTPUT_DIR)/$(KERNEL_IMGNAME) 0 0 -align
|
|
else ifeq ($(NVT_LINUX_COMPRESS), NVT_LINUX_COMPRESS_LZ77)
|
|
@$(BUILD_DIR)/nvt-tools/bfc c lz $(KERNELDIR)/arch/$(ARCH)/boot/Image $(OUTPUT_DIR)/$(KERNEL_IMGNAME) 0 0 -align
|
|
else ifeq ($(NVT_LINUX_COMPRESS), NVT_LINUX_COMPRESS_GZ)
|
|
@$(BUILD_DIR)/nvt-tools/bfc c gz $(KERNELDIR)/arch/$(ARCH)/boot/Image $(OUTPUT_DIR)/$(KERNEL_IMGNAME) 0 0 -align
|
|
else ifeq ($(NVT_LINUX_COMPRESS), NVT_LINUX_COMPRESS_NONE)
|
|
@mkimage -A arm -O linux -C none -T multi -a 0x00008000 -e 0x00008000 -n Linux-$(NVT_LINUX_VER) -d $(KERNELDIR)/arch/$(ARCH)/boot/Image $(OUTPUT_DIR)/$(KERNEL_IMGNAME)
|
|
else
|
|
@cp -afL $(KERNELDIR)/arch/$(ARCH)/boot/$(KERNEL_TARGET) $(OUTPUT_DIR)/$(KERNEL_IMGNAME)
|
|
endif
|
|
|
|
linuxram: checkenv checkrootfs
|
|
@echo BOARDCONFIG = $(BOARDCONFIG)
|
|
@cp $(KERNELDIR)/arch/$(ARCH)/configs/$(BOARDCONFIG) $(KERNELDIR)/.config
|
|
@echo "##### Build kernel #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, cd $(KERNELDIR); sed -i 's/CONFIG_INITRAMFS_SOURCE=\"\"/CONFIG_INITRAMFS_SOURCE=\"$(shell echo $(ROOTFS_DIR)| sed 's/[\/ ]/\\&/g')\/rootfs\"/g' .config)
|
|
@$(call log_stdout, cd $(KERNELDIR); echo -e "CONFIG_INITRAMFS_ROOT_UID=0\nCONFIG_INITRAMFS_ROOT_GID=0" >> .config)
|
|
@$(call log_stdout, make -C $(KERNELDIR) uImage -j$(MULTI_CORES))
|
|
@cp -afL $(KERNELDIR)/arch/$(ARCH)/boot/uImage $(OUTPUT_DIR)/$(KERNEL_RAMDISK_IMGNAME)
|
|
|
|
nuttx: checkenv
|
|
@echo "##### Build secure OS (nuttx) #####"
|
|
@$(call log_remove)
|
|
@make -C $(NUTTX_DIR) 2>&1 | tee -a $(LOGS_DIR)/$@.log; make -C $(NUTTX_DIR) install 2>&1 | tee -a $(LOGS_DIR)/$@.log
|
|
@$(BUILD_DIR)/nvt-tools/encrypt_bin SUM $(NUTTX_DIR)/bin/$(NUTTX_IMGNAME) 0x150 sec$(SDK_CODENAME_SUFFIX)
|
|
@cp -afL $(NUTTX_DIR)/bin/$(NUTTX_IMGNAME) $(OUTPUT_DIR)/
|
|
|
|
#0x16C: bin info (0x100) + crc offset(0x50) + tee header(0x1C)
|
|
optee_os: checkenv
|
|
@echo "##### Build secure OS (optee kernel) na$(SDK_CODENAME_SUFFIX) #####"
|
|
@$(call log_remove)
|
|
@CROSS_PREFIX=${NVT_HOST} PLATFORM=novatek PLATFORM_FLAVOR=na$(SDK_CODENAME_SUFFIX) make -C $(OPTEE_DIR)/optee_os CFG_TEE_CORE_LOG_LEVEL=3 CFG_NS_ENTRY_ADDR=$(BOARD_UBOOT_ADDR) -j$(MULTI_CORES) 2>&1 | tee -a $(LOGS_DIR)/$@.log;
|
|
@$(BUILD_DIR)/nvt-tools/encrypt_bin SUM $(OPTEE_DIR)/optee_os/out/arm-plat-novatek/core/$(OPTEE_IMGNAME) 0x150 te$(SDK_CODENAME_SUFFIX)
|
|
@cp -afL $(OPTEE_DIR)/optee_os/out/arm-plat-novatek/core/$(OPTEE_IMGNAME) $(OUTPUT_DIR)
|
|
|
|
optee_os_encrypt:
|
|
#$(BUILD_DIR)/nvt-tools/encrypt_uboot $(OPTEE_DIR)/optee_os/out/arm-plat-novatek/core/$(OPTEE_IMGNAME) $(OPTEE_DIR)/optee_os/out/arm-plat-novatek/core/$(ENCRYPT_OPTEE_IMGNAME) $(CONFIG_DIR)/cfg_gen/aes.txt $(ENCRYPT_MSG_DISPLAY) 1024
|
|
$(BUILD_DIR)/nvt-tools/encrypt_sign_tool 0 $(CONFIG_DIR)/cfg_gen/public $(CONFIG_DIR)/cfg_gen/private $(CONFIG_DIR)/cfg_gen/aes_key.txt $(OPTEE_DIR)/optee_os/out/arm-plat-novatek/core/$(OPTEE_IMGNAME) $(OPTEE_DIR)/optee_os/out/arm-plat-novatek/core/$(ENCRYPT_OPTEE_IMGNAME)
|
|
@cp -af $(OPTEE_DIR)/optee_os/out/arm-plat-novatek/core/$(ENCRYPT_OPTEE_IMGNAME) $(OUTPUT_DIR)
|
|
|
|
optee_client: checkenv
|
|
@echo "##### Build secure OS (optee client) #####"
|
|
@$(call log_remove)
|
|
@make -C $(OPTEE_DIR)/optee_client 2>&1 | tee -a $(LOGS_DIR)/$@.log; make -C $(OPTEE_DIR)/optee_client install 2>&1 | tee -a $(LOGS_DIR)/$@.log
|
|
|
|
modules: checkenv
|
|
@if [ ! -e $(KERNELDIR)/vmlinux ]; then \
|
|
echo "##### Please run \"make linux\" firstly #####";\
|
|
exit 1;\
|
|
fi
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(KERNELDIR) modules -j$(MULTI_CORES))
|
|
@echo "##### Build modules #####"
|
|
@rm -rf $(KERNELDIR)/_install_modules/
|
|
@$(call log_stdout, make -C $(KERNELDIR) INSTALL_MOD_PATH=$(KERNELDIR)/_install_modules/ modules_install -j$(MULTI_CORES))
|
|
# copy kernel objects to rootfs
|
|
@echo "##### Copy kernel objects to rootFS #####"
|
|
@cp -af $(KERNELDIR)/_install_modules/lib/modules $(ROOTFS_DIR)/rootfs/lib/
|
|
|
|
driver: checkenv
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@if [ ! -e $(KERNELDIR)/_install_modules ]; then \
|
|
echo "##### Please run \"make modules\" firstly #####";\
|
|
exit 1;\
|
|
fi
|
|
endif
|
|
@echo "##### Build drivers #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_DRIVER_DIR) modules $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_DRIVER_DIR) modules_install $(MAKE_QUIET_FLAGS))
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@echo "##### Copy modules to rootFS #####"
|
|
cp -af $(KERNELDIR)/_install_modules/lib/modules $(ROOTFS_DIR)/rootfs/lib/
|
|
endif
|
|
|
|
rtos: checkenv
|
|
@echo "##### Build rtos #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(KERNELDIR)/demos/novatek/$(SDK_CODENAME)/source $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(KERNELDIR)/demos/novatek/$(SDK_CODENAME)/source install $(MAKE_QUIET_FLAGS))
|
|
|
|
vos: checkenv
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@if [ ! -e $(KERNELDIR)/_install_modules ]; then \
|
|
echo "##### Please run \"make modules\" firstly #####";\
|
|
exit 1;\
|
|
fi
|
|
endif
|
|
@echo "##### Build vos #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_VOS_DIR) $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_VOS_DIR) install $(MAKE_QUIET_FLAGS))
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@echo "##### Copy kernel objects to rootFS #####"
|
|
@cp -af $(KERNELDIR)/_install_modules/lib/modules $(ROOTFS_DIR)/rootfs/lib/
|
|
endif
|
|
|
|
hdal: checkenv
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@if [ ! -e $(KERNELDIR)/_install_modules ]; then \
|
|
echo "##### Please run \"make modules\" firstly #####";\
|
|
exit 1;\
|
|
fi
|
|
endif
|
|
@echo "##### Build hdal #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR) $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR) install $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR) sample $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR) sample_install $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR) test $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR) test_install $(MAKE_QUIET_FLAGS))
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@echo "##### Copy kernel objects to rootFS #####"
|
|
@cp -af $(KERNELDIR)/_install_modules/lib/modules $(ROOTFS_DIR)/rootfs/lib/
|
|
endif
|
|
|
|
mbr: checkenv
|
|
@echo "##### Build mbr #####"
|
|
@$(call gen_mbr);
|
|
|
|
alg: checkenv
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@if [ ! -e $(KERNELDIR)/_install_modules ]; then \
|
|
echo "##### Please run \"make modules\" firstly #####";\
|
|
exit 1;\
|
|
fi
|
|
endif
|
|
@echo "##### Build alg #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR)/vendor/alg $(MAKE_QUIET_FLAGS))
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@echo "##### Copy kernel objects to rootFS #####"
|
|
@cp -af $(KERNELDIR)/_install_modules/lib/modules $(ROOTFS_DIR)/rootfs/lib/
|
|
endif
|
|
|
|
dsp: checkenv
|
|
@echo "##### Build dsp #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_DSP_DIR)/FreeRTOS/FreeRTOS_8.1.2_CEVA-XM4/CEVA_FreeRTOS $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C $(NVT_DSP_DIR)/FreeRTOS/FreeRTOS_8.1.2_CEVA-XM4/CEVA_FreeRTOS install $(MAKE_QUIET_FLAGS))
|
|
|
|
uboot: checkenv
|
|
@echo "##### Build u-boot loader$(UBOOT_DEFCONFIG) #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, CROSS_COMPILE=${UBOOT_CROSS_COMPILE} && make -C $(UBOOT_DIR) O="" distclean)
|
|
@$(call log_stdout, CROSS_COMPILE=${UBOOT_CROSS_COMPILE} && make -C $(UBOOT_DIR) O="" $(UBOOT_DEFCONFIG))
|
|
@$(call log_stdout, CROSS_COMPILE=${UBOOT_CROSS_COMPILE} && make -C $(UBOOT_DIR) O="" -j$(MULTI_CORES))
|
|
@$(call log_stdout, CROSS_COMPILE=${UBOOT_CROSS_COMPILE} && make -C $(UBOOT_DIR) O="" env)
|
|
@$(call log_stdout, CROSS_COMPILE=${UBOOT_CROSS_COMPILE} && make -C $(UBOOT_DIR) O="" examples)
|
|
@$(BUILD_DIR)/nvt-tools/encrypt_bin SUM $(UBOOT_DIR)/u-boot.bin 0x350 ub$(UBOOT_ENCRYPT_TAG)
|
|
@$(BUILD_DIR)/nvt-tools/bfc c lz $(UBOOT_DIR)/u-boot.bin $(UBOOT_DIR)/u-boot.lz.bin 0 0
|
|
@$(BUILD_DIR)/nvt-tools/bfc c lzma $(UBOOT_DIR)/u-boot.bin $(UBOOT_DIR)/u-boot.lzma.bin 0 0
|
|
@cp -af $(UBOOT_DIR)/u-boot.bin $(UBOOT_DIR)/u-boot.lz.bin $(UBOOT_DIR)/u-boot.lzma.bin $(OUTPUT_DIR)/
|
|
|
|
|
|
|
|
uboot_encrypt: checkenv
|
|
$(BUILD_DIR)/nvt-tools/encrypt_sign_tool 0 $(CONFIG_DIR)/cfg_gen/public $(CONFIG_DIR)/cfg_gen/private $(CONFIG_DIR)/cfg_gen/aes_key.txt $(UBOOT_DIR)/u-boot.bin $(UBOOT_DIR)/$(ENCRYPT_UBOOT_IMGNAME)
|
|
@cp -af $(UBOOT_DIR)/$(ENCRYPT_UBOOT_IMGNAME) $(OUTPUT_DIR)/
|
|
|
|
linux_encrypt: checkenv
|
|
$(BUILD_DIR)/nvt-tools/encrypt_sign_tool 0 $(CONFIG_DIR)/cfg_gen/public $(CONFIG_DIR)/cfg_gen/private $(CONFIG_DIR)/cfg_gen/aes_key.txt $(OUTPUT_DIR)/$(KERNEL_IMGNAME) $(OUTPUT_DIR)/$(ENCRYPT_KERNEL_IMGNAME)
|
|
|
|
uboot_config: checkenv
|
|
@echo "##### u-boot Menuconfig #####"
|
|
@cp $(UBOOT_DIR)/configs/$(UBOOT_DEFCONFIG) $(UBOOT_DIR)/.config
|
|
make -C $(UBOOT_DIR) O="" menuconfig
|
|
@cp $(UBOOT_DIR)/.config $(UBOOT_DIR)/configs/$(UBOOT_DEFCONFIG)
|
|
|
|
busybox: checkenv
|
|
@echo "##### Build busybox #####"
|
|
cp $(BUSYBOX_DIR)/$(BUSYBOX_CFG) $(BUSYBOX_DIR)/.config
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(BUSYBOX_DIR) -j$(MULTI_CORES))
|
|
@$(call log_stdout, make -C $(BUSYBOX_DIR) -j$(MULTI_CORES) install)
|
|
@cp -af $(BUSYBOX_DIR)/_install/* $(ROOTFS_DIR)/rootfs
|
|
|
|
toybox: checkenv
|
|
@echo "##### Build toybox #####"
|
|
cd $(TOYBOX_DIR)/; if [ ! -f generated/Config.probed ]; then ./scripts/genconfig.sh; fi
|
|
cp $(TOYBOX_DIR)/$(TOYBOX_CFG) $(TOYBOX_DIR)/.config
|
|
@$(call log_remove)
|
|
# $(call removeimg,$(ROOTFS_DIR)/rootfs/bin/busybox)
|
|
$(call remove_lost_symbolic, $(ROOTFS_DIR)/rootfs)
|
|
@$(call log_stdout, CROSS_COMPILE="" make -C $(TOYBOX_DIR) -j$(MULTI_CORES))
|
|
# @$(call log_stdout, cd $(TOYBOX_DIR)/mksh; CC=$(CC) bash ./Build.sh)
|
|
# @$(call log_stdout, CROSS_COMPILE="" PREFIX=$(ROOTFS_DIR)/rootfs make -C $(TOYBOX_DIR) -j$(MULTI_CORES) install)
|
|
# @$(call gen_toybox_symbolic, $(ROOTFS_DIR)/rootfs)
|
|
|
|
library: checkenv
|
|
@echo "##### Build library #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${LIBRARY_DIR})
|
|
@$(call log_stdout, make -C ${LIBRARY_DIR} install)
|
|
|
|
rootfs: checkenv
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@echo "##### Build rootfs #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(ROOTFS_DIR))
|
|
@$(call log_stdout, make -C $(ROOTFS_DIR) install)
|
|
endif
|
|
|
|
sample: checkenv
|
|
@echo "##### Build device driver test #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${SAMPLE_DIR})
|
|
@$(call log_stdout, make -C ${SAMPLE_DIR} install)
|
|
|
|
app: checkenv
|
|
@echo "##### Build app #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${APP_DIR} $(MAKE_QUIET_FLAGS))
|
|
@$(call log_stdout, make -C ${APP_DIR} install $(MAKE_QUIET_FLAGS))
|
|
ifeq ($(NVT_PRJCFG_CFG), rtos)
|
|
@cp ${APP_DIR}/output/*.bin $(OUTPUT_DIR)
|
|
endif
|
|
|
|
tools: checkenv
|
|
@echo "##### Build tools #####"
|
|
@cd ${TOOLS_DIR}; make; make install;
|
|
|
|
cfg: checkenv
|
|
@echo "##### Build config #####"
|
|
@if [ -f build/nvt-tools/nvt_pinctrl_tool/$(PINMUX_CONFIG) ]; then \
|
|
MODEL=`echo $(NVT_PRJCFG_MODEL_CFG) | awk -F'/' '{print $$(NF-1)}' | awk -F'cfg_' '{print $$NF}'`; \
|
|
cp build/nvt-tools/nvt_pinctrl_tool/$(PINMUX_CONFIG) configs/cfg_$$MODEL/; \
|
|
fi
|
|
@if [ -f build/nvt-tools/nvt_pinctrl_tool/$(GPIO_CONFIG) ]; then \
|
|
MODEL=`echo $(NVT_PRJCFG_MODEL_CFG) | awk -F'/' '{print $$(NF-1)}' | awk -F'cfg_' '{print $$NF}'`; \
|
|
cp build/nvt-tools/nvt_pinctrl_tool/$(GPIO_CONFIG) configs/cfg_$$MODEL/; \
|
|
fi
|
|
@$(call log_remove)
|
|
@$(call log_stdout, cd ${CONFIG_DIR}; make; make install)
|
|
|
|
post: checkenv
|
|
@echo "##### run postprocessing script #####";
|
|
@if [ ! -z $(NVT_MAKE_POST) ] && [ -f $(dir $(NVT_PRJCFG_MODEL_CFG))/$(NVT_MAKE_POST) ] ; then \
|
|
sh $(dir $(NVT_PRJCFG_MODEL_CFG))/$(NVT_MAKE_POST); \
|
|
fi
|
|
|
|
publish: checkenv
|
|
@echo "##### remove some sources for publish #####";
|
|
@find $(LINUX_BUILD_TOP) -name publish.json -print0 | xargs -n 1 -0 build/nvt-tools/publish.py -s -j
|
|
|
|
busybox_config: checkenv
|
|
@echo "##### busybox Menuconfig #####"
|
|
cp $(BUSYBOX_DIR)/$(BUSYBOX_CFG) $(BUSYBOX_DIR)/.config
|
|
make -C $(BUSYBOX_DIR) -j$(MULTI_CORES) menuconfig
|
|
cp $(BUSYBOX_DIR)/.config $(BUSYBOX_DIR)/$(BUSYBOX_CFG)
|
|
|
|
toybox_config: checkenv
|
|
@echo "##### toybox Menuconfig #####"
|
|
cd $(TOYBOX_DIR)/; if [ ! -f generated/Config.probed ]; then ./scripts/genconfig.sh; fi
|
|
cp $(TOYBOX_DIR)/$(TOYBOX_CFG) $(TOYBOX_DIR)/.config
|
|
CROSS_COMPILE="" make -C $(TOYBOX_DIR) -j$(MULTI_CORES) menuconfig
|
|
cp $(TOYBOX_DIR)/.config $(TOYBOX_DIR)/$(TOYBOX_CFG)
|
|
|
|
linux_config: checkenv
|
|
@echo "##### linux kernel Menuconfig #####"
|
|
@cp -ap $(KERNELDIR)/arch/$(ARCH)/configs/$(BOARDCONFIG) $(KERNEL_OUTPUT)/.config
|
|
@make -C $(KERNELDIR) menuconfig
|
|
@cp $(KERNEL_OUTPUT)/.config $(KERNELDIR)/arch/$(ARCH)/configs/$(BOARDCONFIG)
|
|
|
|
linux_config_gcov: checkenv
|
|
@echo "##### linux kernel Menuconfig for gcov #####"
|
|
@cd $(KERNELDIR); \
|
|
echo -e "CONFIG_GCOV_KERNEL=y" > gcov.cfg; \
|
|
KCONFIG_CONFIG=./arch/$(ARCH)/configs/$(BOARDCONFIG) \
|
|
./scripts/kconfig/merge_config.sh $(KERNELDIR)/arch/$(ARCH)/configs/$(BOARDCONFIG) gcov.cfg; \
|
|
rm gcov.cfg
|
|
|
|
nuttx_config: checkenv
|
|
@echo "##### nuttx Menuconfig #####"
|
|
@make -C $(NUTTX_DIR) config
|
|
|
|
linux_header: checkenv
|
|
@echo "##### generate linux-kernel out of tree headers #####"
|
|
@cp -ap $(KERNELDIR)/arch/$(ARCH)/configs/$(BOARDCONFIG) $(KERNEL_OUTPUT)/.config
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(KERNELDIR) prepare)
|
|
@$(call log_stdout, make -C $(KERNELDIR) scripts)
|
|
|
|
listpackage:
|
|
make -C ${APP_DIR} listpackage
|
|
|
|
pack_clean:
|
|
@$(call rm_nvt_pack)
|
|
|
|
linux_clean: checkenv
|
|
@echo "##### Clean kernel related objects and config files #####"
|
|
@$(call log_remove)
|
|
@if [ -e $(KERNEL_OUTPUT) ]; then \
|
|
$(call log_stdout, make -C $(KERNELDIR) mrproper -j4) \
|
|
fi
|
|
$(call removeimg,$(OUTPUT_DIR)/$(KERNEL_IMGNAME))
|
|
|
|
nuttx_clean: checkenv
|
|
@echo "##### Clean secure OS (nuttx) #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NUTTX_DIR) clean)
|
|
$(call removeimg,$(OUTPUT_DIR)/$(NUTTX_IMGNAME))
|
|
|
|
optee_os_clean: checkenv
|
|
@echo "##### Clean secure OS (optee_os) #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, CROSS_PREFIX=${NVT_HOST} PLATFORM=novatek PLATFORM_FLAVOR=$(SDK_CODENAME) make -C $(OPTEE_DIR)/optee_os clean)
|
|
$(call removeimg,$(OUTPUT_DIR)/$(OPTEE_IMGNAME))
|
|
|
|
optee_os_encrypt_clean: checkenv
|
|
@echo "##### Clean encrypt optee_os #####"
|
|
$(call removeimg,$(OUTPUT_DIR)/$(ENCRYPT_UBOOT_IMGNAME))
|
|
|
|
optee_client_clean: checkenv
|
|
@echo "##### Clean secure OS (optee_client) #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(OPTEE_DIR)/optee_client clean)
|
|
|
|
rtos_clean: checkenv
|
|
@echo "##### Clean rtos #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(KERNELDIR)/demos/novatek/$(SDK_CODENAME)/source clean $(MAKE_QUIET_FLAGS))
|
|
|
|
vos_clean: checkenv
|
|
@echo "##### Clean vos #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_VOS_DIR) clean $(MAKE_QUIET_FLAGS))
|
|
|
|
hdal_clean: checkenv
|
|
@echo "##### Clean hdal #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR) clean $(MAKE_QUIET_FLAGS))
|
|
|
|
mbr_clean: checkenv
|
|
@echo "##### Clean mbr #####"
|
|
@rm -rf $(OUTPUT_DIR)/MBR*
|
|
|
|
alg_clean: checkenv
|
|
@echo "##### Clean alg #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_HDAL_DIR)/vendor/alg clean $(MAKE_QUIET_FLAGS))
|
|
|
|
dsp_clean: checkenv
|
|
@echo "##### Clean dsp #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_DSP_DIR)/FreeRTOS/FreeRTOS_8.1.2_CEVA-XM4/CEVA_FreeRTOS clean $(MAKE_QUIET_FLAGS))
|
|
|
|
driver_clean: checkenv
|
|
@echo "##### Clean driver modules #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C $(NVT_DRIVER_DIR) clean)
|
|
ifeq ($(NVT_PRJCFG_CFG), Linux)
|
|
@$(call removeimg,$(KERNEL_OUTPUT)/_install_modules/)
|
|
endif
|
|
|
|
uboot_clean: checkenv
|
|
@echo "##### Clean u-boot loader #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${UBOOT_DIR} distclean)
|
|
@$(call removeimg,$(UBOOT_DIR)/u-boot.bin $(UBOOT_DIR)/u-boot.lz.bin $(OUTPUT_DIR)/$(UBOOT_IMGNAME))
|
|
|
|
uboot_encrypt_clean: checkenv
|
|
@echo "##### Clean encrypt u-boot loader #####"
|
|
@$(call removeimg,$(OUTPUT_DIR)/$(ENCRYPT_UBOOT_IMGNAME))
|
|
linux_encrypt_clean: checkenv
|
|
@echo "##### Clean encrypt linux #####"
|
|
@$(call removeimg,$(OUTPUT_DIR)/$(ENCRYPT_RAMDISK_KERNEL_IMGNAME))
|
|
busybox_clean: checkenv
|
|
@echo "##### Clean busybox #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout,make -C ${BUSYBOX_DIR} doc-clean; make -C ${BUSYBOX_DIR} distclean)
|
|
|
|
toybox_clean: checkenv
|
|
@echo "##### Clean toybox #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, CROSS_COMPILE="" make -C $(TOYBOX_DIR) -j$(MULTI_CORES) distclean)
|
|
|
|
library_clean: checkenv
|
|
@echo "##### Clean library #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${LIBRARY_DIR} clean)
|
|
|
|
rootfs_clean: checkenv
|
|
@echo "##### Clean rootfs #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${ROOTFS_DIR} clean)
|
|
|
|
sample_clean: checkenv
|
|
@echo "##### Clean device driver test #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${SAMPLE_DIR} clean)
|
|
|
|
app_clean: checkenv
|
|
@echo "##### Clean applications #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, make -C ${APP_DIR} clean)
|
|
|
|
tools_clean: checkenv
|
|
@echo "##### Clean tools #####"
|
|
@cd ${TOOLS_DIR}; make clean;
|
|
|
|
cfg_clean: checkenv
|
|
@echo "##### Clean config #####"
|
|
@$(call log_remove)
|
|
@$(call log_stdout, cd ${CONFIG_DIR}; make clean)
|
|
|
|
post_clean: checkenv
|
|
@echo "##### run postprocessing clean script #####";
|
|
@if [ ! -z $(NVT_MAKE_POST_CLEAN) ] && [ -f $(dir $(NVT_PRJCFG_MODEL_CFG))/$(NVT_MAKE_POST_CLEAN) ] ; then \
|
|
sh $(dir $(NVT_PRJCFG_MODEL_CFG))/$(NVT_MAKE_POST_CLEAN); \
|
|
fi
|
|
|
|
clean: $(CLEAN_ALL) rm_logs
|
|
@rm -rf $(OUTPUT_DIR)
|
|
@echo "make clean completed"
|
|
|
|
rm_logs:
|
|
$(call removeimg,$(LOGS_DIR))
|
|
|
|
showenv:
|
|
@echo $(PATH)
|
|
|
|
help:
|
|
@echo "====================================================="
|
|
@echo "make help -> show make command info"
|
|
@echo "make all -> build all"
|
|
@echo "make linux -> build linux-kernel"
|
|
@echo "make linuxram -> build linux-kernel with ramdisk support"
|
|
@echo "make modules -> build built-in kernel modules"
|
|
@echo "make driver -> build NVT linux driver modules"
|
|
@echo "make uboot -> build loader(uboot)"
|
|
@echo "make library -> build library"
|
|
@echo "make busybox -> build busybox"
|
|
@echo "make rootfs -> build rootfs"
|
|
@echo "make app -> build applications"
|
|
@echo "make tools -> build tools"
|
|
@echo "make sample -> build sample code"
|
|
@echo "make post -> run postprocessing script"
|
|
@echo "make pack -> Generate nvtpack image"
|
|
@echo "make publish -> remove some sources for publish"
|
|
@echo "====================================================="
|
|
@echo "make linux_config -> config linux-kernel"
|
|
@echo "make linux_config_gcov-> modify kernel config for code coverage tool"
|
|
@echo "make uboot_config -> config uboot"
|
|
@echo "make busybox_config -> config busybox"
|
|
@echo "make linux_header -> generate linux-kernel out of tree headers"
|
|
@echo "====================================================="
|
|
@echo "make clean -> clean all"
|
|
@echo "make linux_clean -> clean linux-kernel & built-in kernel modules"
|
|
@echo "make driver_clean -> clean NVT linux driver modules"
|
|
@echo "make uboot_clean -> clean loader(uboot)"
|
|
@echo "make library_clean -> clean library"
|
|
@echo "make busybox_clean -> clean busybox"
|
|
@echo "make rootfs_clean -> clean rootfs"
|
|
@echo "make app_clean -> clean applications"
|
|
@echo "make tools_clean -> clean tools"
|
|
@echo "make sample_clean -> clean sample code"
|
|
@echo "make post_clean -> run postprocessing clean script"
|
|
@echo "make pack_clean -> Remove nvtpack image"
|
|
@echo "====================================================="
|
|
|
|
header:
|
|
@echo "Create kernel headers for external driver building, please wait..."
|
|
@cd ${KERNELDIR}; \
|
|
mkdir -p ${KERNEL_HEADER}/arch; \
|
|
mkdir -p ${KERNEL_HEADER}/include/config; \
|
|
mkdir -p ${KERNEL_HEADER}/include/generated; \
|
|
cp -rf arch/${ARCH} ${KERNEL_HEADER}/arch; \
|
|
cp -a usr drivers include init Kbuild Makefile $(KERNEL_OUTPUT)/modules.order $(KERNEL_OUTPUT)/Module.symvers scripts $(KERNEL_OUTPUT)/.config ${KERNEL_HEADER}; \
|
|
cp -a $(KERNEL_OUTPUT)/include/config/auto.conf ${KERNEL_HEADER}/include/config/; \
|
|
cp -a $(KERNEL_OUTPUT)/include/generated/autoconf.h ${KERNEL_HEADER}/include/generated/; \
|
|
find ${KERNEL_HEADER} -name "*.o" | xargs rm -rf; \
|
|
find ${KERNEL_HEADER} -name "*.svn" | xargs rm -rf; \
|
|
find ${KERNEL_HEADER}/arch -name "*.c" | xargs rm -rf; \
|
|
find ${KERNEL_HEADER}/drivers -name "*.c" | xargs rm -rf; \
|
|
find ${KERNEL_HEADER}/init -name "*.c" | xargs rm -rf; \
|
|
tar -czvf $(OUTPUT_DIR)/${KERNEL_HEADER}.tgz ${KERNEL_HEADER}; \
|
|
rm -rf ${KERNEL_HEADER}; \
|
|
cd -;
|
|
|
|
header_clean:
|
|
@echo "##### Clean header #####"
|
|
@$(call log_remove)
|
|
@$(call removeimg,$(OUTPUT_DIR)/${KERNEL_HEADER}.tgz)
|