]> rtime.felk.cvut.cz Git - omk.git/commitdiff
NuttX: allow to specify xxx_PROGBUILTIN_EXCLUDE list of user and or NuttX programs...
authorPavel Pisa <ppisa@pikron.com>
Sun, 18 Oct 2020 22:28:31 +0000 (00:28 +0200)
committerPavel Pisa <ppisa@pikron.com>
Sun, 18 Oct 2020 22:28:31 +0000 (00:28 +0200)
Usually all available NuttX apps and user build programs are linked
into target image ("all" specification used). But sometimes
some program causes problems or contributes too much
to target binary image size. Such programs can be excluded
from final linking.

Signed-off-by: Pavel Pisa <ppisa@pikron.com>
snippets/nuttx-compile.omk

index ba83ca84718888feae594288eb5b94b0785a9fd1..5538451a8dbe6de9f65e7a37f341418202191d56 100644 (file)
@@ -19,6 +19,8 @@
 # from base: SOURCES_DIR
 # from Makefile.omk: lib_LOADLIBES
 # xxx_PROGBUILTIN - list of builtin programs linked into final system image
+#                   when "all" is used then all programs provided by build are linked
+# xxx_PROGBUILTIN_EXCLUDE - list of builtin user or NuttX provided programs which are excluded
 # xxx_KMODBUILTIN - list of builtin programs linked into final system image
 
 # Output variables:
@@ -146,19 +148,22 @@ EMBEDROMFS += $$($(1)_EMBEDROMFS)
 
 ifneq ($$($(1)_PROGBUILTIN),)
 ifneq ($$($(1)_PROGBUILTIN),all)
-$(1)_PROGBUILTIN_LIST = $$($(1)_PROGBUILTIN)
+$(1)_PROGBUILTIN_TMP = $$($(1)_PROGBUILTIN)
 else
-$(1)_PROGBUILTIN_TMP = $$(wildcard $$(USER_REGISTRY_DIR)/*.pbi)
-$(1)_PROGBUILTIN_LIST = $$($(1)_PROGBUILTIN_TMP:$$(USER_REGISTRY_DIR)/%.pbi=%)
+$(1)_PROGBUILTIN_TMP1 = $$(wildcard $$(USER_REGISTRY_DIR)/*.pbi)
+$(1)_PROGBUILTIN_TMP = $$($(1)_PROGBUILTIN_TMP1:$$(USER_REGISTRY_DIR)/%.pbi=%)
 endif
+$(1)_PROGBUILTIN_LIST = $$(filter-out $$($(1)_PROGBUILTIN_EXCLUDE),$$($(1)_PROGBUILTIN_TMP))
 
 $(1)_PROGBUILTIN_OTHER=$$(filter-out $(1),$$($(1)_PROGBUILTIN_LIST))
 $(1)_PROGBUILTIN_PBI=$$($(1)_PROGBUILTIN_OTHER:%=$$(USER_REGISTRY_DIR)/%.pbi)
 $(1)_PROGBUILTIN_LDAT=$$($(1)_PROGBUILTIN_LIST:%=$$(USER_REGISTRY_DIR)/%.ldat)
 $(1)_PROGBUILTIN_PDAT=$$($(1)_PROGBUILTIN_LIST:%=$$(USER_REGISTRY_DIR)/%.pdat) \
-       $$(wildcard $(NUTTXREGISTRY)/*.pdat)
+       $$(filter-out $$($(1)_PROGBUILTIN_EXCLUDE:%=$(NUTTXREGISTRY)/%.pdat),\
+       $$(wildcard $(NUTTXREGISTRY)/*.pdat))
 $(1)_PROGBUILTIN_BDAT=$$($(1)_PROGBUILTIN_LIST:%=$$(USER_REGISTRY_DIR)/%.bdat) \
-       $$(wildcard $(NUTTXREGISTRY)/*.bdat)
+       $$(filter-out $$($(1)_PROGBUILTIN_EXCLUDE:%=$(NUTTXREGISTRY)/%.bdat),\
+       $$(wildcard $(NUTTXREGISTRY)/*.bdat))
 
 ifneq ($$($(1)_KMODBUILTIN),all)
 $(1)_KMODBUILTIN_LIBS = $$($(1)_KMODBUILTIN:%=$$(KERN_MODULES_DIR)/lib%.ka)