nt9856x/loader/MakeCommon/Makefile

126 lines
3.0 KiB
Makefile
Executable File

include MakeOption.txt
module_Common := $(dir $(wildcard ../Common/Makefile))
module_Drv := $(dir $(wildcard ../Drv/Makefile))
module_DrvExt := $(dir $(wildcard ../DrvExt/Makefile))
module_Lib := $(dir $(wildcard ../Lib/Makefile))
module_LibExt := $(dir $(wildcard ../LibExt/Makefile))
module_App := $(dir $(wildcard ../App/Makefile))
module_AppExt := $(dir $(wildcard ../AppExt/Makefile))
module_Alg := $(dir $(wildcard ../Alg/Makefile))
-include ../Project/ProjectConfig.txt
ifneq "$(ACTIVE_PROJECT)" ""
module_Prj := ../Project/$(ACTIVE_PROJECT)/
else
# Find the first folder in ../Project/ that contains "Makefile"
ifeq "$(shell uname)" "Linux"
module_Prj := $(dir $(firstword $(sort $(shell find ../Project -name 'Makefile'))))
else
module_Prj := $(dir $(firstword $(sort $(shell find ../Project -name \'Makefile\'))))
endif
endif
test_if_unix_file_fmt = $(shell cd $(1); ret=`if [ "$(OS)" == "Linux" ]; then tools/recursive_dir -t . --exclude-ext .o .a .bin .axf .7z --exclude-dir .svn .git; else tools/recursive_dir.exe -t . --exclude-ext .o .a .bin .axf .7z --exclude-dir .svn .git; fi`; echo "$$ret";)
module_all := \
$(module_Common) \
$(module_Drv) \
$(module_DrvExt) \
$(module_Lib) \
$(module_LibExt) \
$(module_App) \
$(module_AppExt) \
$(module_Alg)
ifeq "$(LOG_ERR)" "ON"
define copy_log
@-cp \
$(module_Common)log*.txt \
$(module_Drv)log*.txt \
$(module_DrvExt)log*.txt \
$(module_Lib)log*.txt \
$(module_LibExt)log*.txt \
$(module_App)log*.txt \
$(module_AppExt)log*.txt \
$(module_Alg)log*.txt \
$(module_Prj)log*.txt \
.
endef
else
define copy_log
endef
endif
ifeq "$(ISOLATE_DEP)" "ON"
.PHONY: all rm_log $(module_all) $(module_Prj) clean rebuild debug release dep
all: rm_log
@make dep
@make debug
@make release
$(call copy_log)
else
.PHONY: all rm_log $(module_all) $(module_Prj) clean rebuild debug release
all: rm_log $(module_all) $(module_Prj)
$(call copy_log)
endif
$(module_all):
ifeq ($(OS),Linux)
@$(MAKE) --directory=$@ $(MAKECMDGOALS)
else
@$(MAKE) --directory=$@ $(MAKECMDGOALS) $(JOB_FLAGS)
endif
$(module_Prj):$(module_all)
@$(MAKE) --directory=$@ $(MAKECMDGOALS)
rm_log:
@-rm -f log*.txt
clean: rm_log $(module_all) $(module_Prj)
ifeq "$(ISOLATE_DEP)" "ON"
rebuild:
@make clean
@make dep
@make debug
@make release
$(call copy_log)
dep: $(module_all) $(module_Prj)
else
rebuild: rm_log $(module_all) $(module_Prj)
$(call copy_log)
endif
debug: rm_log $(module_Prj)
$(call copy_log)
release: rm_log $(module_Prj)
$(call copy_log)
rm_chk_log:
@-rm -f chk*.txt
chk: rm_chk_log $(module_all) $(module_Prj)
chkclean: $(module_all) $(module_Prj)
rm_lint_log:
@-rm -f lint*.txt
lint: rm_lint_log $(module_all) $(module_Prj)
lintclean: $(module_all) $(module_Prj)
chk_unix:
@result="$(call test_if_unix_file_fmt, ../)"; if [ ! -z "$$result" ]; then \
echo -e "\e[1;31mUNIX file format check failed:\e[0m" >&2; \
for n in $$result; do \
echo -e "\t$$n" >&2; \
done; \
exit 1; \
fi