aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/STM32/RT-STM32F407-DISCOVERY/halconf.h2
-rw-r--r--demos/STM32/RT-STM32F407-DISCOVERY/mcuconf.h2
-rw-r--r--os/hal/hal.mk114
-rw-r--r--os/hal/ports/STM32/STM32F0xx/platform.mk100
-rw-r--r--os/hal/ports/STM32/STM32F1xx/platform.mk115
-rw-r--r--os/hal/ports/STM32/STM32F1xx/platform_f105_f107.mk114
-rw-r--r--os/hal/ports/STM32/STM32F37x/platform.mk105
-rw-r--r--os/hal/ports/STM32/STM32F3xx/platform.mk105
-rw-r--r--os/hal/ports/STM32/STM32F4xx/platform.mk129
-rw-r--r--os/hal/ports/STM32/STM32L1xx/platform.mk100
-rw-r--r--os/rt/rt.mk92
11 files changed, 729 insertions, 249 deletions
diff --git a/demos/STM32/RT-STM32F407-DISCOVERY/halconf.h b/demos/STM32/RT-STM32F407-DISCOVERY/halconf.h
index 3e61eeaf9..d22a2c474 100644
--- a/demos/STM32/RT-STM32F407-DISCOVERY/halconf.h
+++ b/demos/STM32/RT-STM32F407-DISCOVERY/halconf.h
@@ -160,7 +160,7 @@
* @brief Enables the USB subsystem.
*/
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
-#define HAL_USE_USB FALSE
+#define HAL_USE_USB TRUE
#endif
/*===========================================================================*/
diff --git a/demos/STM32/RT-STM32F407-DISCOVERY/mcuconf.h b/demos/STM32/RT-STM32F407-DISCOVERY/mcuconf.h
index f792eb4b9..4eb313e07 100644
--- a/demos/STM32/RT-STM32F407-DISCOVERY/mcuconf.h
+++ b/demos/STM32/RT-STM32F407-DISCOVERY/mcuconf.h
@@ -309,7 +309,7 @@
/*
* USB driver system settings.
*/
-#define STM32_USB_USE_OTG1 FALSE
+#define STM32_USB_USE_OTG1 TRUE
#define STM32_USB_USE_OTG2 FALSE
#define STM32_USB_OTG1_IRQ_PRIORITY 14
#define STM32_USB_OTG2_IRQ_PRIORITY 14
diff --git a/os/hal/hal.mk b/os/hal/hal.mk
index c0c239228..074970dc6 100644
--- a/os/hal/hal.mk
+++ b/os/hal/hal.mk
@@ -1,28 +1,94 @@
# List of all the ChibiOS/HAL files, there is no need to remove the files
# from this list, you can disable parts of the HAL by editing halconf.h.
-HALSRC = ${CHIBIOS}/os/hal/src/hal.c \
- ${CHIBIOS}/os/hal/src/hal_queues.c \
- ${CHIBIOS}/os/hal/src/hal_mmcsd.c \
- ${CHIBIOS}/os/hal/src/adc.c \
- ${CHIBIOS}/os/hal/src/can.c \
- ${CHIBIOS}/os/hal/src/dac.c \
- ${CHIBIOS}/os/hal/src/ext.c \
- ${CHIBIOS}/os/hal/src/gpt.c \
- ${CHIBIOS}/os/hal/src/i2c.c \
- ${CHIBIOS}/os/hal/src/i2s.c \
- ${CHIBIOS}/os/hal/src/icu.c \
- ${CHIBIOS}/os/hal/src/mac.c \
- ${CHIBIOS}/os/hal/src/mmc_spi.c \
- ${CHIBIOS}/os/hal/src/pal.c \
- ${CHIBIOS}/os/hal/src/pwm.c \
- ${CHIBIOS}/os/hal/src/rtc.c \
- ${CHIBIOS}/os/hal/src/sdc.c \
- ${CHIBIOS}/os/hal/src/serial.c \
- ${CHIBIOS}/os/hal/src/serial_usb.c \
- ${CHIBIOS}/os/hal/src/spi.c \
- ${CHIBIOS}/os/hal/src/st.c \
- ${CHIBIOS}/os/hal/src/uart.c \
- ${CHIBIOS}/os/hal/src/usb.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+HALSRC := $(CHIBIOS)/os/hal/src/hal.c \
+ $(CHIBIOS)/os/hal/src/st.c \
+ $(CHIBIOS)/os/hal/src/hal_queues.c \
+ $(CHIBIOS)/os/hal/src/hal_mmcsd.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/adc.c
+endif
+ifneq ($(findstring HAL_USE_CAN TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/can.c
+endif
+ifneq ($(findstring HAL_USE_DAC TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/dac.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/ext.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/gpt.c
+endif
+ifneq ($(findstring HAL_USE_I2C TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/i2c.c
+endif
+ifneq ($(findstring HAL_USE_I2S TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/i2s.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/icu.c
+endif
+ifneq ($(findstring HAL_USE_MAC TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/mac.c
+endif
+ifneq ($(findstring HAL_USE_MMC_SPI TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/mmc_spi.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/pal.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/pwm.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/rtc.c
+endif
+ifneq ($(findstring HAL_USE_SDC TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/sdc.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/serial.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL_USB TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/serial_usb.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/spi.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/uart.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+HALSRC += $(CHIBIOS)/os/hal/src/usb.c
+endif
+else
+HALSRC = $(CHIBIOS)/os/hal/src/hal.c \
+ $(CHIBIOS)/os/hal/src/hal_queues.c \
+ $(CHIBIOS)/os/hal/src/hal_mmcsd.c \
+ $(CHIBIOS)/os/hal/src/adc.c \
+ $(CHIBIOS)/os/hal/src/can.c \
+ $(CHIBIOS)/os/hal/src/dac.c \
+ $(CHIBIOS)/os/hal/src/ext.c \
+ $(CHIBIOS)/os/hal/src/gpt.c \
+ $(CHIBIOS)/os/hal/src/i2c.c \
+ $(CHIBIOS)/os/hal/src/i2s.c \
+ $(CHIBIOS)/os/hal/src/icu.c \
+ $(CHIBIOS)/os/hal/src/mac.c \
+ $(CHIBIOS)/os/hal/src/mmc_spi.c \
+ $(CHIBIOS)/os/hal/src/pal.c \
+ $(CHIBIOS)/os/hal/src/pwm.c \
+ $(CHIBIOS)/os/hal/src/rtc.c \
+ $(CHIBIOS)/os/hal/src/sdc.c \
+ $(CHIBIOS)/os/hal/src/serial.c \
+ $(CHIBIOS)/os/hal/src/serial_usb.c \
+ $(CHIBIOS)/os/hal/src/spi.c \
+ $(CHIBIOS)/os/hal/src/st.c \
+ $(CHIBIOS)/os/hal/src/uart.c \
+ $(CHIBIOS)/os/hal/src/usb.c
+endif
# Required include directories
-HALINC = ${CHIBIOS}/os/hal/include
+HALINC = $(CHIBIOS)/os/hal/include
diff --git a/os/hal/ports/STM32/STM32F0xx/platform.mk b/os/hal/ports/STM32/STM32F0xx/platform.mk
index bb42d637e..ff8d917e6 100644
--- a/os/hal/ports/STM32/STM32F0xx/platform.mk
+++ b/os/hal/ports/STM32/STM32F0xx/platform.mk
@@ -1,30 +1,76 @@
# List of all the STM32F0xx platform files.
-PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F0xx/stm32_dma.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F0xx/hal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F0xx/adc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/ext_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/adc_lld.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c
+endif
+ifneq ($(findstring "HAL_USE_I2C TRUE",$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
+else
+PLATFORMSRC = $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/adc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
# Required include directories
-PLATFORMINC = ${CHIBIOS}/os/hal/ports/common/ARMCMx \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F0xx \
- ${CHIBIOS}/os/hal/ports/STM32/LLD \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1
+PLATFORMINC = $(CHIBIOS)/os/hal/ports/common/ARMCMx \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F0xx \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1
diff --git a/os/hal/ports/STM32/STM32F1xx/platform.mk b/os/hal/ports/STM32/STM32F1xx/platform.mk
index daff671f2..bef1bea28 100644
--- a/os/hal/ports/STM32/STM32F1xx/platform.mk
+++ b/os/hal/ports/STM32/STM32F1xx/platform.mk
@@ -1,34 +1,89 @@
# List of all the STM32F1xx platform files.
-PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/stm32_dma.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/hal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/adc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/can_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/ext_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/mac_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/sdc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/adc_lld.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
+endif
+ifneq ($(findstring HAL_USE_CAN TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c
+endif
+ifneq ($(findstring HAL_USE_MAC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/mac_lld.c
+endif
+ifneq ($(findstring HAL_USE_SDC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/sdc_lld.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c
+endif
+ifneq ($(findstring "HAL_USE_I2C TRUE",$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
+else
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/adc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/mac_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/sdc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
# Required include directories
-PLATFORMINC = ${CHIBIOS}/os/hal/ports/common/ARMCMx \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx \
- ${CHIBIOS}/os/hal/ports/STM32/LLD \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1
+PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1
diff --git a/os/hal/ports/STM32/STM32F1xx/platform_f105_f107.mk b/os/hal/ports/STM32/STM32F1xx/platform_f105_f107.mk
index 267f78599..2684805b2 100644
--- a/os/hal/ports/STM32/STM32F1xx/platform_f105_f107.mk
+++ b/os/hal/ports/STM32/STM32F1xx/platform_f105_f107.mk
@@ -1,32 +1,88 @@
# List of all the STM32F1xx platform files.
-PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/stm32_dma.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/hal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/adc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/can_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/ext_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/mac_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/sdc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/adc_lld.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
+endif
+ifneq ($(findstring HAL_USE_CAN TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c
+endif
+ifneq ($(findstring HAL_USE_MAC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/mac_lld.c
+endif
+ifneq ($(findstring HAL_USE_SDC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/sdc_lld.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c
+endif
+ifneq ($(findstring "HAL_USE_I2C TRUE",$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
+endif
+else
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/adc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/mac_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/sdc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1/pal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1/rtc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
+endif
# Required include directories
-PLATFORMINC = ${CHIBIOS}/os/hal/ports/common/ARMCMx \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F1xx \
- ${CHIBIOS}/os/hal/ports/STM32/LLD \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/OTGv1
+PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/OTGv1
diff --git a/os/hal/ports/STM32/STM32F37x/platform.mk b/os/hal/ports/STM32/STM32F37x/platform.mk
index 07dcf38af..fb9c957a5 100644
--- a/os/hal/ports/STM32/STM32F37x/platform.mk
+++ b/os/hal/ports/STM32/STM32F37x/platform.mk
@@ -1,31 +1,80 @@
# List of all the STM32F37x platform files.
-PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F37x/stm32_dma.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F37x/hal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F37x/adc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F37x/ext_lld_isr.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/can_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/ext_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/adc_lld.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
+endif
+ifneq ($(findstring HAL_USE_CAN TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c
+endif
+ifneq ($(findstring "HAL_USE_I2C TRUE",$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
+else
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/adc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F37x/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
# Required include directories
-PLATFORMINC = ${CHIBIOS}/os/hal/ports/common/ARMCMx \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F37x \
- ${CHIBIOS}/os/hal/ports/STM32/LLD \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1
+PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F37x \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1
diff --git a/os/hal/ports/STM32/STM32F3xx/platform.mk b/os/hal/ports/STM32/STM32F3xx/platform.mk
index 5851cf65b..fbee8d6d9 100644
--- a/os/hal/ports/STM32/STM32F3xx/platform.mk
+++ b/os/hal/ports/STM32/STM32F3xx/platform.mk
@@ -1,31 +1,80 @@
# List of all the STM32F3xx platform files.
-PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/stm32_dma.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/hal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/adc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/can_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/ext_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/adc_lld.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
+endif
+ifneq ($(findstring HAL_USE_CAN TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c
+endif
+ifneq ($(findstring "HAL_USE_I2C TRUE",$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
+else
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/adc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2/i2c_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2/spi_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/serial_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/uart_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
# Required include directories
-PLATFORMINC = ${CHIBIOS}/os/hal/ports/common/ARMCMx \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F3xx \
- ${CHIBIOS}/os/hal/ports/STM32/LLD \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1
+PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F3xx \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1
diff --git a/os/hal/ports/STM32/STM32F4xx/platform.mk b/os/hal/ports/STM32/STM32F4xx/platform.mk
index 067a917d7..157210992 100644
--- a/os/hal/ports/STM32/STM32F4xx/platform.mk
+++ b/os/hal/ports/STM32/STM32F4xx/platform.mk
@@ -1,37 +1,98 @@
# List of all the STM32F2xx/STM32F4xx platform files.
-PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F4xx/stm32_dma.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F4xx/hal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F4xx/adc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/can_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/ext_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/mac_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/sdc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/DACv1/dac_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/adc_lld.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
+endif
+ifneq ($(findstring HAL_USE_CAN TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c
+endif
+ifneq ($(findstring HAL_USE_MAC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/mac_lld.c
+endif
+ifneq ($(findstring HAL_USE_SDC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/sdc_lld.c
+endif
+ifneq ($(findstring HAL_USE_DAC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/DACv1/dac_lld.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c
+endif
+ifneq ($(findstring "HAL_USE_I2C TRUE",$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c
+endif
+ifneq ($(findstring HAL_USE_I2S TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
+endif
+else
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/adc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/can_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/mac_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/sdc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/DACv1/dac_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/i2s_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
+endif
# Required include directories
-PLATFORMINC = ${CHIBIOS}/os/hal/ports/common/ARMCMx \
- ${CHIBIOS}/os/hal/ports/STM32/STM32F4xx \
- ${CHIBIOS}/os/hal/ports/STM32/LLD \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/DACv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/OTGv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/FSMCv1
+PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/DACv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/OTGv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/FSMCv1
diff --git a/os/hal/ports/STM32/STM32L1xx/platform.mk b/os/hal/ports/STM32/STM32L1xx/platform.mk
index a63643be9..af7d0b9fd 100644
--- a/os/hal/ports/STM32/STM32L1xx/platform.mk
+++ b/os/hal/ports/STM32/STM32L1xx/platform.mk
@@ -1,30 +1,76 @@
# List of all the STM32L1xx platform files.
-PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32L1xx/stm32_dma.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32L1xx/hal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32L1xx/adc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/ext_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+ifeq ($(USE_SMART_BUILD),yes)
+HALCONF := $(strip $(shell cat halconf.h | egrep -e "define"))
+
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c
+ifneq ($(findstring HAL_USE_ADC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/adc_lld.c
+endif
+ifneq ($(findstring HAL_USE_EXT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c
+endif
+ifneq ($(findstring HAL_USE_PAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c
+endif
+ifneq ($(findstring "HAL_USE_I2C TRUE",$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c
+endif
+ifneq ($(findstring HAL_USE_RTC TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c
+endif
+ifneq ($(findstring HAL_USE_SPI TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c
+endif
+ifneq ($(findstring HAL_USE_GPT TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c
+endif
+ifneq ($(findstring HAL_USE_ICU TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c
+endif
+ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c
+endif
+ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c
+endif
+ifneq ($(findstring HAL_USE_UART TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c
+endif
+ifneq ($(findstring HAL_USE_USB TRUE,$(HALCONF)),)
+PLATFORMSRC += $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
+else
+PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/stm32_dma.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/hal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/adc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx/ext_lld_isr.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/ext_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/pal_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1/i2c_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1/spi_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/icu_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2/rtc_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1/st_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/serial_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1/uart_lld.c \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+endif
# Required include directories
-PLATFORMINC = ${CHIBIOS}/os/hal/ports/common/ARMCMx \
- ${CHIBIOS}/os/hal/ports/STM32/STM32L1xx \
- ${CHIBIOS}/os/hal/ports/STM32/LLD \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/GPIOv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/I2Cv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/RTCv2 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/SPIv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/TIMv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USARTv1 \
- ${CHIBIOS}/os/hal/ports/STM32/LLD/USBv1
+PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
+ $(CHIBIOS)/os/hal/ports/STM32/STM32L1xx \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/I2Cv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/RTCv2 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/SPIv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/TIMv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv1 \
+ $(CHIBIOS)/os/hal/ports/STM32/LLD/USBv1
diff --git a/os/rt/rt.mk b/os/rt/rt.mk
index 55a189f75..715440c29 100644
--- a/os/rt/rt.mk
+++ b/os/rt/rt.mk
@@ -1,24 +1,76 @@
# List of all the ChibiOS/RT kernel files, there is no need to remove the files
# from this list, you can disable parts of the kernel by editing chconf.h.
-KERNSRC = ${CHIBIOS}/os/rt/src/chsys.c \
- ${CHIBIOS}/os/rt/src/chdebug.c \
- ${CHIBIOS}/os/rt/src/chtm.c \
- ${CHIBIOS}/os/rt/src/chstats.c \
- ${CHIBIOS}/os/rt/src/chschd.c \
- ${CHIBIOS}/os/rt/src/chvt.c \
- ${CHIBIOS}/os/rt/src/chthreads.c \
- ${CHIBIOS}/os/rt/src/chdynamic.c \
- ${CHIBIOS}/os/rt/src/chregistry.c \
- ${CHIBIOS}/os/rt/src/chsem.c \
- ${CHIBIOS}/os/rt/src/chmtx.c \
- ${CHIBIOS}/os/rt/src/chcond.c \
- ${CHIBIOS}/os/rt/src/chevents.c \
- ${CHIBIOS}/os/rt/src/chmsg.c \
- ${CHIBIOS}/os/rt/src/chmboxes.c \
- ${CHIBIOS}/os/rt/src/chqueues.c \
- ${CHIBIOS}/os/rt/src/chmemcore.c \
- ${CHIBIOS}/os/rt/src/chheap.c \
- ${CHIBIOS}/os/rt/src/chmempools.c
+ifeq ($(USE_SMART_BUILD),yes)
+CHCONF := $(strip $(shell cat chconf.h | egrep -e "define"))
+
+KERNSRC := $(CHIBIOS)/os/rt/src/chsys.c \
+ $(CHIBIOS)/os/rt/src/chdebug.c \
+ $(CHIBIOS)/os/rt/src/chvt.c \
+ $(CHIBIOS)/os/rt/src/chschd.c \
+ $(CHIBIOS)/os/rt/src/chthreads.c
+ifneq ($(findstring CH_CFG_USE_TM TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chtm.c
+endif
+ifneq ($(findstring CH_DBG_STATISTICS TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chstats.c
+endif
+ifneq ($(findstring CH_CFG_USE_DYNAMIC TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chdynamic.c
+endif
+ifneq ($(findstring CH_CFG_USE_REGISTRY TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chregistry.c
+endif
+ifneq ($(findstring CH_CFG_USE_SEMAPHORES TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chsem.c
+endif
+ifneq ($(findstring CH_CFG_USE_MUTEXES TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chmtx.c
+endif
+ifneq ($(findstring CH_CFG_USE_CONDVARS TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chcond.c
+endif
+ifneq ($(findstring CH_CFG_USE_EVENTS TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chevents.c
+endif
+ifneq ($(findstring CH_CFG_USE_MESSAGES TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chmsg.c
+endif
+ifneq ($(findstring CH_CFG_USE_MAILBOXES TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chmboxes.c
+endif
+ifneq ($(findstring CH_CFG_USE_QUEUES TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chqueues.c
+endif
+ifneq ($(findstring CH_CFG_USE_MEMCORE TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chmemcore.c
+endif
+ifneq ($(findstring CH_CFG_USE_HEAP TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chheap.c
+endif
+ifneq ($(findstring CH_CFG_USE_MEMPOOLS TRUE,$(CHCONF)),)
+KERNSRC += $(CHIBIOS)/os/rt/src/chmempools.c
+endif
+else
+KERNSRC = $(CHIBIOS)/os/rt/src/chsys.c \
+ $(CHIBIOS)/os/rt/src/chdebug.c \
+ $(CHIBIOS)/os/rt/src/chvt.c \
+ $(CHIBIOS)/os/rt/src/chschd.c \
+ $(CHIBIOS)/os/rt/src/chthreads.c \
+ $(CHIBIOS)/os/rt/src/chtm.c \
+ $(CHIBIOS)/os/rt/src/chstats.c \
+ $(CHIBIOS)/os/rt/src/chdynamic.c \
+ $(CHIBIOS)/os/rt/src/chregistry.c \
+ $(CHIBIOS)/os/rt/src/chsem.c \
+ $(CHIBIOS)/os/rt/src/chmtx.c \
+ $(CHIBIOS)/os/rt/src/chcond.c \
+ $(CHIBIOS)/os/rt/src/chevents.c \
+ $(CHIBIOS)/os/rt/src/chmsg.c \
+ $(CHIBIOS)/os/rt/src/chmboxes.c \
+ $(CHIBIOS)/os/rt/src/chqueues.c \
+ $(CHIBIOS)/os/rt/src/chmemcore.c \
+ $(CHIBIOS)/os/rt/src/chheap.c \
+ $(CHIBIOS)/os/rt/src/chmempools.c
+endif
# Required include directories
-KERNINC = ${CHIBIOS}/os/rt/include
+KERNINC = $(CHIBIOS)/os/rt/include