290 lines
9.4 KiB
Plaintext
290 lines
9.4 KiB
Plaintext
|
|
%%{
|
||
|
|
let component_target_list_string = [];
|
||
|
|
let component_target_private_list_string = [];
|
||
|
|
let component_target_prebuilt_list_string = [];
|
||
|
|
let component_target_clean_list_string = [];
|
||
|
|
let component_target_scrub_list_string = [];
|
||
|
|
let component_target_prebuilt_clean_list_string = [];
|
||
|
|
let component_target_prebuilt_scrub_list_string = [];
|
||
|
|
for (component of args.component_list) {
|
||
|
|
if(component.isSkipTopLevelBuild) {
|
||
|
|
component_target_private_list_string +=` \$(BUILD_COMBO_${component.name})`
|
||
|
|
component_target_clean_list_string +=` \$(BUILD_COMBO_CLEAN_${component.name})`
|
||
|
|
component_target_scrub_list_string +=` \$(BUILD_COMBO_SCRUB_${component.name})`
|
||
|
|
}
|
||
|
|
else if(component.isPrebuilt) {
|
||
|
|
component_target_prebuilt_list_string +=` \$(BUILD_COMBO_${component.name})`
|
||
|
|
component_target_prebuilt_clean_list_string +=` \$(BUILD_COMBO_CLEAN_${component.name})`
|
||
|
|
component_target_prebuilt_scrub_list_string +=` \$(BUILD_COMBO_SCRUB_${component.name})`
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
component_target_list_string +=` \$(BUILD_COMBO_${component.name})`
|
||
|
|
component_target_clean_list_string +=` \$(BUILD_COMBO_CLEAN_${component.name})`
|
||
|
|
component_target_scrub_list_string +=` \$(BUILD_COMBO_SCRUB_${component.name})`
|
||
|
|
}
|
||
|
|
}
|
||
|
|
%%}
|
||
|
|
#
|
||
|
|
# Auto generated makefile
|
||
|
|
#
|
||
|
|
|
||
|
|
all:
|
||
|
|
$(MAKE) -f makefile.`device` libs
|
||
|
|
$(MAKE) -f makefile.`device` examples
|
||
|
|
|
||
|
|
clean: libs-clean examples-clean
|
||
|
|
scrub: libs-scrub examples-scrub
|
||
|
|
|
||
|
|
help:
|
||
|
|
@echo Notes,
|
||
|
|
@echo - Use -j to invoke parallel builds
|
||
|
|
@echo - Use PROFILE=debug or PROFILE=release [default] to build in debug or release profile
|
||
|
|
@echo .
|
||
|
|
@echo Overall build targets,
|
||
|
|
@echo ======================
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` help
|
||
|
|
@echo .
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` all
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` clean # delete's tmp files for current profile
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` scrub # delete's all tmp files and folders for all profiles
|
||
|
|
@echo .
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` libs
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` libs-clean # delete's tmp files for current profile
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` libs-scrub # delete's all tmp files and folders for all profiles
|
||
|
|
@echo .
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` examples
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` examples-clean # delete's tmp files for current profile
|
||
|
|
@echo $(MAKE) -s -f makefile.`device` examples-scrub # delete's all tmp files and folders for all profiles
|
||
|
|
@echo .
|
||
|
|
@echo Library build targets,
|
||
|
|
@echo ======================
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
@echo $(MAKE) -s -f makefile.`device``component.buildTarget`
|
||
|
|
% }
|
||
|
|
@echo .
|
||
|
|
@echo Library clean targets,
|
||
|
|
@echo ======================
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
@echo $(MAKE) -s -f makefile.`device``component.buildTargetClean`
|
||
|
|
% }
|
||
|
|
@echo .
|
||
|
|
@echo Example build targets,
|
||
|
|
@echo ======================
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
@echo $(MAKE) -s -C `example.relpath` [all clean syscfg-gui syscfg]
|
||
|
|
% }
|
||
|
|
@echo .
|
||
|
|
@echo System Example build targets,
|
||
|
|
@echo =============================
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
@echo $(MAKE) -s -C `example.relpath` [all clean syscfg-gui syscfg]
|
||
|
|
% }
|
||
|
|
@echo .
|
||
|
|
|
||
|
|
# Various Component Targets
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
BUILD_COMBO_`component.name` =`component.buildTarget`
|
||
|
|
% }
|
||
|
|
|
||
|
|
# Combine all Components
|
||
|
|
BUILD_COMBO_ALL =`component_target_list_string`
|
||
|
|
|
||
|
|
# Combine all Pre-built Components
|
||
|
|
BUILD_COMBO_PREBUILT_ALL =`component_target_prebuilt_list_string`
|
||
|
|
|
||
|
|
# Combine all Private Components
|
||
|
|
BUILD_COMBO_PRIVATE_ALL =`component_target_private_list_string`
|
||
|
|
|
||
|
|
libs: $(BUILD_COMBO_ALL)
|
||
|
|
|
||
|
|
libs-prebuilt: $(BUILD_COMBO_PREBUILT_ALL)
|
||
|
|
|
||
|
|
libs-private: $(BUILD_COMBO_PRIVATE_ALL)
|
||
|
|
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
$(BUILD_COMBO_`component.name`):
|
||
|
|
$(MAKE) -C `component.relpath` -f makefile`component.tag`.`args.device`.$(subst `component.name`_,,$@) all
|
||
|
|
|
||
|
|
% }
|
||
|
|
|
||
|
|
# Various Component Clean Targets
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
BUILD_COMBO_CLEAN_`component.name` =`component.buildTargetClean`
|
||
|
|
% }
|
||
|
|
|
||
|
|
# Combine all Components Clean
|
||
|
|
BUILD_COMBO_CLEAN_ALL =`component_target_clean_list_string`
|
||
|
|
|
||
|
|
# Combine all Pre-built Components Clean
|
||
|
|
BUILD_COMBO_PREBUILT_CLEAN_ALL =`component_target_prebuilt_clean_list_string`
|
||
|
|
|
||
|
|
libs-clean: $(BUILD_COMBO_CLEAN_ALL)
|
||
|
|
|
||
|
|
libs-prebuilt-clean: $(BUILD_COMBO_PREBUILT_CLEAN_ALL)
|
||
|
|
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
$(BUILD_COMBO_CLEAN_`component.name`):
|
||
|
|
$(MAKE) -C `component.relpath` -f makefile`component.tag`.`args.device`.$(subst `component.name`_,,$(subst _clean,,$@)) clean
|
||
|
|
|
||
|
|
% }
|
||
|
|
|
||
|
|
# Various Component Scrub Targets
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
BUILD_COMBO_SCRUB_`component.name` =`component.buildTargetScrub`_scrub
|
||
|
|
% }
|
||
|
|
|
||
|
|
# Combine all Components Scrub Targets
|
||
|
|
BUILD_COMBO_SCRUB_ALL =`component_target_scrub_list_string`
|
||
|
|
|
||
|
|
# Combine all Pre-built Components Scrub Targets
|
||
|
|
BUILD_COMBO_PREBUILT_SCRUB_ALL =`component_target_prebuilt_scrub_list_string`
|
||
|
|
|
||
|
|
libs-scrub: $(BUILD_COMBO_SCRUB_ALL)
|
||
|
|
|
||
|
|
libs-prebuilt-scrub: $(BUILD_COMBO_PREBUILT_SCRUB_ALL)
|
||
|
|
|
||
|
|
% for (component of args.component_list) {
|
||
|
|
$(BUILD_COMBO_SCRUB_`component.name`):
|
||
|
|
$(MAKE) -C `component.relpath` -f makefile`component.tag`.`args.device`.$(subst `component.name`_,,$(subst _scrub,,$@)) scrub
|
||
|
|
|
||
|
|
% }
|
||
|
|
|
||
|
|
BUILD_COMBO_EXAMPLE_ALL =
|
||
|
|
# Various Example Targets
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
% if(!example.isSkipTopLevelBuild && !example.isBootLoader) {
|
||
|
|
BUILD_COMBO_EXAMPLE_ALL +=`example.buildTarget`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
# Various System Example Targets
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
% if(!example.isSkipTopLevelBuild) {
|
||
|
|
BUILD_COMBO_EXAMPLE_ALL +=`example.buildTarget`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_ALL =
|
||
|
|
# Various Private Example Targets
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
% if(example.isSkipTopLevelBuild && !example.isBootLoader) {
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_ALL +=`example.buildTarget`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
# Various Private System Example Targets
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
% if(example.isSkipTopLevelBuild) {
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_ALL +=`example.buildTarget`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
|
||
|
|
examples: $(BUILD_COMBO_EXAMPLE_ALL)
|
||
|
|
|
||
|
|
examples-private: $(BUILD_COMBO_EXAMPLE_PRIVATE_ALL)
|
||
|
|
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
`example.buildTarget`:
|
||
|
|
$(MAKE) -C `example.relpath` -f makefile all
|
||
|
|
|
||
|
|
% }
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
`example.buildTarget`:
|
||
|
|
$(MAKE) -C `example.relpath` -f makefile all
|
||
|
|
|
||
|
|
% }
|
||
|
|
|
||
|
|
BUILD_COMBO_EXAMPLE_CLEAN_ALL =
|
||
|
|
# Various Example Clean Targets
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
% if(!example.isSkipTopLevelBuild && !example.isBootLoader) {
|
||
|
|
BUILD_COMBO_EXAMPLE_CLEAN_ALL +=`example.buildTargetClean`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
# Various System Example Clean Targets
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
% if(!example.isSkipTopLevelBuild) {
|
||
|
|
BUILD_COMBO_EXAMPLE_CLEAN_ALL +=`example.buildTargetClean`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL =
|
||
|
|
# Various Private Example Targets
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
% if(example.isSkipTopLevelBuild && !example.isBootLoader) {
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL +=`example.buildTargetClean`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
# Various Private System Example Targets
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
% if(example.isSkipTopLevelBuild) {
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL +=`example.buildTargetClean`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
|
||
|
|
examples-clean: $(BUILD_COMBO_EXAMPLE_CLEAN_ALL)
|
||
|
|
|
||
|
|
examples-private-clean: $(BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL)
|
||
|
|
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
`example.buildTargetClean`:
|
||
|
|
$(MAKE) -C `example.relpath` -f makefile clean
|
||
|
|
|
||
|
|
% }
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
`example.buildTargetClean`:
|
||
|
|
$(MAKE) -C `example.relpath` -f makefile clean
|
||
|
|
|
||
|
|
% }
|
||
|
|
|
||
|
|
BUILD_COMBO_EXAMPLE_SCRUB_ALL =
|
||
|
|
# Various Example Scrub Targets
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
% if(!example.isSkipTopLevelBuild && !example.isBootLoader) {
|
||
|
|
BUILD_COMBO_EXAMPLE_SCRUB_ALL +=`example.buildTargetScrub`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
# Various System Example Scrub Targets
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
% if(!example.isSkipTopLevelBuild) {
|
||
|
|
BUILD_COMBO_EXAMPLE_SCRUB_ALL +=`example.buildTargetScrub`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL =
|
||
|
|
# Various Private Example Targets
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
% if(example.isSkipTopLevelBuild && !example.isBootLoader) {
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL +=`example.buildTargetScrub`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
# Various Private System Example Targets
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
% if(example.isSkipTopLevelBuild) {
|
||
|
|
BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL +=`example.buildTargetScrub`
|
||
|
|
% }
|
||
|
|
% }
|
||
|
|
|
||
|
|
examples-scrub: $(BUILD_COMBO_EXAMPLE_SCRUB_ALL)
|
||
|
|
|
||
|
|
examples-scrub-private: $(BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL)
|
||
|
|
|
||
|
|
% for (example of args.example_list) {
|
||
|
|
`example.buildTargetScrub`:
|
||
|
|
$(MAKE) -C `example.relpath` -f makefile scrub
|
||
|
|
|
||
|
|
% }
|
||
|
|
% for (example of args.system_example_list) {
|
||
|
|
`example.buildTargetScrub`:
|
||
|
|
$(MAKE) -C `example.relpath` -f makefile scrub
|
||
|
|
|
||
|
|
% }
|
||
|
|
|
||
|
|
.PHONY: all clean scrub help
|
||
|
|
.PHONY: libs libs-clean libs-scrub
|
||
|
|
.PHONY: libs-private
|
||
|
|
.PHONY: libs-prebuilt libs-prebuilt-clean libs-prebuilt-scrub
|
||
|
|
.PHONY: examples examples-clean examples-scrub
|
||
|
|
.PHONY: examples-private examples-private-clean examples-private-scrub
|
||
|
|
.PHONY: $(BUILD_COMBO_ALL) $(BUILD_COMBO_CLEAN_ALL) $(BUILD_COMBO_SCRUB_ALL)
|
||
|
|
.PHONY: $(BUILD_COMBO_EXAMPLE_ALL) $(BUILD_COMBO_EXAMPLE_CLEAN_ALL) $(BUILD_COMBO_EXAMPLE_SCRUB_ALL)
|
||
|
|
.PHONY: $(BUILD_COMBO_EXAMPLE_PRIVATE_ALL) $(BUILD_COMBO_EXAMPLE_PRIVATE_CLEAN_ALL) $(BUILD_COMBO_EXAMPLE_PRIVATE_SCRUB_ALL)
|