[chore] update cmake api and macros, update makefile for build all case

This commit is contained in:
jzlv 2022-11-25 20:18:36 +08:00
parent 41750c31cf
commit 3c225cace5
3 changed files with 62 additions and 51 deletions

View File

@ -46,11 +46,15 @@ sdk_add_link_options(
-ffunction-sections
-fdata-sections
--specs=nano.specs
-uboard_init
)
sdk_add_link_libraries(c m)
sdk_add_compile_options_ifdef(CONFIG_DEBUG -g3)
if(NOT DEFINED CONFIG_GCC_OPTIMISE_LEVEL)
sdk_add_compile_options(-O2)
else()
sdk_add_compile_options(${CONFIG_GCC_OPTIMISE_LEVEL})
endif()

View File

@ -99,6 +99,12 @@ function(sdk_add_subdirectory_ifdef feature dir)
endif()
endfunction()
macro(sdk_ifndef define val)
if(NOT DEFINED ${define})
set(${define} ${val})
endif()
endmacro()
function(sdk_set_linker_script ld)
if(IS_ABSOLUTE ${ld})
set(path ${ld})

View File

@ -1,51 +1,52 @@
build_dirs += bflog
build_dirs += fatfs
build_dirs += freertos
build_dirs += helloworld
build_dirs += lua
build_dirs += lvgl
build_dirs += shell
build_dirs += peripherals/adc/adc_oneshot_1ch
build_dirs += peripherals/adc/adc_oneshot_1ch_dma
build_dirs += peripherals/adc/adc_oneshot_1ch_int
build_dirs += peripherals/adc/adc_oneshot_multich
build_dirs += peripherals/dac/dac_dma
build_dirs += peripherals/dac/dac_polling
build_dirs += peripherals/dma
build_dirs += peripherals/emac/emac_basic
build_dirs += peripherals/emac/lwip_udp
build_dirs += peripherals/gpio/gpio_interrupt
build_dirs += peripherals/gpio/gpio_output
build_dirs += peripherals/i2c/i2c_eeprom
build_dirs += peripherals/mtimer
build_dirs += peripherals/pwm/pwm_all_channel
build_dirs += peripherals/pwm/pwm_basic
build_dirs += peripherals/pwm/pwm_config_channel
build_dirs += peripherals/pwm/pwm_deadtime
build_dirs += peripherals/pwm/pwm_int
build_dirs += peripherals/rtc
build_dirs += peripherals/sec_eng/sec_eng_aes_sw_key
build_dirs += peripherals/sec_eng/sec_eng_sha
build_dirs += peripherals/sec_eng/trng_random
build_dirs += peripherals/spi/spi_dma
build_dirs += peripherals/spi/spi_poll
build_dirs += peripherals/timer
build_dirs += peripherals/uart/uart_auto_baudrate
build_dirs += peripherals/uart/uart_cts_rts
build_dirs += peripherals/uart/uart_dma
build_dirs += peripherals/uart/uart_error_interrupt
build_dirs += peripherals/uart/uart_feature_control
build_dirs += peripherals/uart/uart_fifo_interrupt
build_dirs += peripherals/uart/uart_lin
build_dirs += peripherals/uart/uart_poll
build_dirs += peripherals/uart/uart_rs485
build_dirs += peripherals/usbdev/usbd_cdc_acm
build_dirs += peripherals/usbdev/usbd_static_video
build_dirs += peripherals/usbhost
all: $(build_dirs)
makefile_files += $(shell find ./ -name 'Makefile' -not -path "*/build/*")
makefile_dirs = $(sort $(dir $(makefile_files)))
$(build_dirs):
make -C $@
filter_out_dirs += ./bflog/%
filter_out_dirs += ./bl808_dualcore/%
filter_out_dirs += ./ble/%
filter_out_dirs += ./lvgl/%
filter_out_dirs += ./fatfs/%
filter_out_dirs += ./membench/%
.PHONY: $(build_dirs)
ifeq ($(CHIP),bl602)
filter_out_dirs += ./peripherals/emac/%
filter_out_dirs += ./peripherals/pwm_v2/%
filter_out_dirs += ./peripherals/iso11898/%
filter_out_dirs += ./peripherals/usbdev/%
endif
ifeq ($(CHIP),bl702)
filter_out_dirs += ./peripherals/emac/%
filter_out_dirs += ./peripherals/pwm_v2/%
filter_out_dirs += ./peripherals/iso11898/%
endif
ifeq ($(CHIP),bl702L)
filter_out_dirs += ./peripherals/emac/%
filter_out_dirs += ./peripherals/pwm_v2/%
filter_out_dirs += ./peripherals/iso11898/%
filter_out_dirs += ./peripherals/usbdev/%
endif
ifeq ($(CHIP),bl616)
filter_out_dirs += ./peripherals/pwm_v1/%
endif
ifeq ($(CHIP),bl808)
filter_out_dirs += ./peripherals/pwm_v1/%
endif
build_dirs = $(filter-out $(filter_out_dirs), $(makefile_dirs))
listall:
@for n in $(build_dirs); do echo $$n ; done
buildall:
@for n in $(build_dirs); do make -C $$n ; done
cleanall:
@for n in $(build_dirs); do make -C $$n clean; done
.PHONY: buildall cleanall