aboutsummaryrefslogtreecommitdiffstats
path: root/os/rt/rt.mk
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-05-08 14:04:32 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-05-08 14:04:32 +0000
commit6f8e0e257eec0d1b675b410c19d84a24dfc9fea9 (patch)
treef0642080aa9f3ba056e877b80e44abd29bde3a6d /os/rt/rt.mk
parent0cd802faf1c7ab3f2ae237a91aabbd8a79cea831 (diff)
downloadChibiOS-6f8e0e257eec0d1b675b410c19d84a24dfc9fea9.tar.gz
ChibiOS-6f8e0e257eec0d1b675b410c19d84a24dfc9fea9.tar.bz2
ChibiOS-6f8e0e257eec0d1b675b410c19d84a24dfc9fea9.zip
Smart build option in mk files.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7956 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/rt/rt.mk')
-rw-r--r--os/rt/rt.mk92
1 files changed, 72 insertions, 20 deletions
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