From 37b1d1eb55733073f273058a7e4972c4b460aa3f Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Wed, 25 May 2016 09:03:33 -0400 Subject: [PATCH] ext: include headers based on HAL being used For CMSIS we now have HAS_CMSIS which needs to be added to the SoC definition. Instead of changing the main Makefile we now include a sub-Makefile with all related header and library paths that are hosted in ext/ Move redifintion of LIB_INCLUDE_DIR later to get variables defined in Makefile.toolchain.* Change-Id: I9f90f90247c2a66b4565427b89d4e1d4dd5c9622 Signed-off-by: Anas Nashif --- Makefile | 6 ++++-- drivers/Kconfig | 2 -- ext/Makefile | 3 +++ ext/hal/Kbuild | 1 + ext/hal/Kconfig | 4 ++++ ext/hal/Makefile | 5 ++++- ext/hal/cmsis/Kconfig | 18 ++++++++++++++++++ ext/hal/cmsis/Makefile | 4 ++++ ext/hal/qmsi/Kbuild | 24 ++++++++++++++++++++++++ ext/hal/qmsi/Makefile | 24 +++--------------------- lib/Makefile | 5 ----- 11 files changed, 65 insertions(+), 31 deletions(-) create mode 100644 ext/Makefile create mode 100644 ext/hal/Kbuild create mode 100644 ext/hal/cmsis/Kconfig create mode 100644 ext/hal/cmsis/Makefile create mode 100644 ext/hal/qmsi/Kbuild diff --git a/Makefile b/Makefile index e92db7469b3..9f500adc199 100644 --- a/Makefile +++ b/Makefile @@ -559,8 +559,6 @@ else include/config/auto.conf: ; endif # $(dot-config) --include $(srctree)/lib/Makefile - ARCH = $(subst $(DQUOTE),,$(CONFIG_ARCH)) export ARCH ifdef ZEPHYR_GCC_VARIANT @@ -570,6 +568,10 @@ $(if $(CROSS_COMPILE),, \ $(error ZEPHYR_GCC_VARIANT is not set. )) endif + +-include $(srctree)/lib/Makefile +-include $(srctree)/ext/Makefile + ifneq ($(CC),) ifeq ($(shell $(CC) -v 2>&1 | grep -Ec "clang version|icx version"), 1) COMPILER := clang diff --git a/drivers/Kconfig b/drivers/Kconfig index 90e25e68758..7944d205214 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -63,8 +63,6 @@ source "drivers/ipm/Kconfig" source "drivers/aio/Kconfig" -source "drivers/qmsi/Kconfig" - source "drivers/flash/Kconfig" source "drivers/sensor/Kconfig" diff --git a/ext/Makefile b/ext/Makefile new file mode 100644 index 00000000000..9a93de7dd09 --- /dev/null +++ b/ext/Makefile @@ -0,0 +1,3 @@ + + +include $(srctree)/ext/hal/Makefile diff --git a/ext/hal/Kbuild b/ext/hal/Kbuild new file mode 100644 index 00000000000..609929e062d --- /dev/null +++ b/ext/hal/Kbuild @@ -0,0 +1 @@ +obj-$(CONFIG_QMSI_BUILTIN) += qmsi/ diff --git a/ext/hal/Kconfig b/ext/hal/Kconfig index f2655065739..820058b0efe 100644 --- a/ext/hal/Kconfig +++ b/ext/hal/Kconfig @@ -16,8 +16,12 @@ # limitations under the License. # +# When adding new entries keep the list in alphabetical order + menu "HALs" +source "ext/hal/cmsis/Kconfig" + source "ext/hal/qmsi/Kconfig" endmenu diff --git a/ext/hal/Makefile b/ext/hal/Makefile index 609929e062d..7674b897633 100644 --- a/ext/hal/Makefile +++ b/ext/hal/Makefile @@ -1 +1,4 @@ -obj-$(CONFIG_QMSI_BUILTIN) += qmsi/ + +include $(srctree)/ext/hal/qmsi/Makefile + +include $(srctree)/ext/hal/cmsis/Makefile diff --git a/ext/hal/cmsis/Kconfig b/ext/hal/cmsis/Kconfig new file mode 100644 index 00000000000..8927b284322 --- /dev/null +++ b/ext/hal/cmsis/Kconfig @@ -0,0 +1,18 @@ +# +# Copyright (c) 2016 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +config HAS_CMSIS + bool diff --git a/ext/hal/cmsis/Makefile b/ext/hal/cmsis/Makefile new file mode 100644 index 00000000000..743904c3d4d --- /dev/null +++ b/ext/hal/cmsis/Makefile @@ -0,0 +1,4 @@ + +ifdef CONFIG_HAS_CMSIS +ZEPHYRINCLUDE += -I$(srctree)/ext/hal/cmsis/Include +endif diff --git a/ext/hal/qmsi/Kbuild b/ext/hal/qmsi/Kbuild new file mode 100644 index 00000000000..8348b0e7269 --- /dev/null +++ b/ext/hal/qmsi/Kbuild @@ -0,0 +1,24 @@ +subdir-ccflags-$(CONFIG_QMSI_BUILTIN) +=-DISR_HANDLED + +include $(srctree)/ext/hal/qmsi/Makefile.include + +obj-$(CONFIG_QMSI_BUILTIN) += drivers/clk.o +ifeq ($(CONFIG_ARC),y) +obj-$(CONFIG_QMSI_BUILTIN) += drivers/sensor/ss_clk.o +endif +obj-$(CONFIG_RTC_QMSI) += drivers/qm_rtc.o +obj-$(CONFIG_WDT_QMSI) += drivers/qm_wdt.o +obj-$(CONFIG_I2C_QMSI) += drivers/qm_i2c.o +obj-$(CONFIG_PWM_QMSI) += drivers/qm_pwm.o +obj-$(CONFIG_AIO_COMPARATOR_QMSI) += drivers/qm_comparator.o +obj-$(CONFIG_AON_COUNTER_QMSI) += drivers/qm_aon_counters.o +obj-$(CONFIG_GPIO_QMSI) += drivers/qm_gpio.o +obj-$(CONFIG_ADC_QMSI) += drivers/qm_adc.o +obj-$(CONFIG_UART_QMSI) += drivers/qm_uart.o +obj-$(CONFIG_SPI_QMSI) += drivers/qm_spi.o +obj-$(CONFIG_SOC_FLASH_QMSI) += drivers/qm_flash.o +obj-$(CONFIG_PINMUX_DEV_QMSI) += drivers/qm_pinmux.o +obj-$(CONFIG_SPI_QMSI_SS) += drivers/sensor/qm_ss_spi.o +obj-$(CONFIG_GPIO_QMSI_SS) += drivers/sensor/qm_ss_gpio.o +obj-$(CONFIG_I2C_QMSI_SS) += drivers/sensor/qm_ss_i2c.o +obj-$(CONFIG_ADC_QMSI_SS) += drivers/sensor/qm_ss_adc.o diff --git a/ext/hal/qmsi/Makefile b/ext/hal/qmsi/Makefile index ae47f844a27..47e2616aa91 100644 --- a/ext/hal/qmsi/Makefile +++ b/ext/hal/qmsi/Makefile @@ -1,23 +1,5 @@ -subdir-ccflags-$(CONFIG_QMSI_BUILTIN) +=-DISR_HANDLED -include $(srctree)/ext/hal/qmsi/Makefile.include -obj-$(CONFIG_QMSI_BUILTIN) += drivers/clk.o -ifeq ($(CONFIG_ARC),y) -obj-$(CONFIG_QMSI_BUILTIN) += drivers/sensor/ss_clk.o +ifdef CONFIG_QMSI_LIBRARY +LIB_INCLUDE_DIR += -L$(CONFIG_QMSI_INSTALL_PATH:"%"=%)/lib +ALL_LIBS += qmsi endif -obj-$(CONFIG_RTC_QMSI) += drivers/qm_rtc.o -obj-$(CONFIG_WDT_QMSI) += drivers/qm_wdt.o -obj-$(CONFIG_I2C_QMSI) += drivers/qm_i2c.o -obj-$(CONFIG_PWM_QMSI) += drivers/qm_pwm.o -obj-$(CONFIG_AIO_COMPARATOR_QMSI) += drivers/qm_comparator.o -obj-$(CONFIG_AON_COUNTER_QMSI) += drivers/qm_aon_counters.o -obj-$(CONFIG_GPIO_QMSI) += drivers/qm_gpio.o -obj-$(CONFIG_ADC_QMSI) += drivers/qm_adc.o -obj-$(CONFIG_UART_QMSI) += drivers/qm_uart.o -obj-$(CONFIG_SPI_QMSI) += drivers/qm_spi.o -obj-$(CONFIG_SOC_FLASH_QMSI) += drivers/qm_flash.o -obj-$(CONFIG_PINMUX_DEV_QMSI) += drivers/qm_pinmux.o -obj-$(CONFIG_SPI_QMSI_SS) += drivers/sensor/qm_ss_spi.o -obj-$(CONFIG_GPIO_QMSI_SS) += drivers/sensor/qm_ss_gpio.o -obj-$(CONFIG_I2C_QMSI_SS) += drivers/sensor/qm_ss_i2c.o -obj-$(CONFIG_ADC_QMSI_SS) += drivers/sensor/qm_ss_adc.o diff --git a/lib/Makefile b/lib/Makefile index 4d4f61471c8..9ac35613829 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -3,11 +3,6 @@ ifdef CONFIG_TINYCRYPT ZEPHYRINCLUDE += -I$(srctree)/lib/crypto/tinycrypt/include endif -ifdef CONFIG_QMSI_LIBRARY -LIB_INCLUDE_DIR += -L$(CONFIG_QMSI_INSTALL_PATH:"%"=%)/lib -ALL_LIBS += qmsi -endif - ifdef CONFIG_MINIMAL_LIBC ZEPHYRINCLUDE += -I$(srctree)/lib/libc/minimal/include endif