@@ -427,6 +427,10 @@ ifeq (1,$(TEST_KCONFIG))
427
427
USEMODULE := $(KCONFIG_MODULES)
428
428
KCONFIG_PACKAGES := $(call lowercase,$(patsubst CONFIG_PACKAGE_%,%,$(filter CONFIG_PACKAGE_%,$(.VARIABLES))))
429
429
USEPKG := $(KCONFIG_PACKAGES)
430
+
431
+ # Locate used packages in $(RIOTPKG).
432
+ PKG_PATHS := $(sort $(foreach dir,$(RIOTPKG),\
433
+ $(foreach pkg,$(USEPKG),$(dir $(wildcard $(dir)/$(pkg)/Makefile)))))
430
434
else
431
435
# always select provided architecture features
432
436
FEATURES_REQUIRED += $(filter arch_%,$(FEATURES_PROVIDED))
@@ -570,8 +574,8 @@ include $(RIOTBASE)/sys/Makefile.include
570
574
# include Makefile.includes of each driver modules if they exist
571
575
-include $(USEMODULE:%=$(RIOTBASE)/drivers/%/Makefile.include)
572
576
573
- # include Makefile.includes for packages in $(USEPKG )
574
- -include $(USEPKG :%=$(RIOTPKG)/%/ Makefile.include)
577
+ # include Makefile.includes for packages in $(PKG_PATHS )
578
+ -include $(PKG_PATHS :%=% Makefile.include)
575
579
576
580
# include external modules configuration
577
581
-include $(EXTERNAL_MODULE_PATHS:%=%/Makefile.include)
@@ -771,31 +775,30 @@ endif
771
775
# The `clean` needs to be serialized before everything else.
772
776
all $(BASELIBS) $(ARCHIVES) $(BUILDDEPS) ..in-docker-container: | $(CLEAN)
773
777
774
- .PHONY: pkg-prepare pkg-build pkg-build-%
778
+ .PHONY: pkg-prepare pkg-build
775
779
pkg-prepare:
776
- -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i prepare ; done
780
+ -@$(foreach dir,$(PKG_PATHS), "$(MAKE)" -C $(dir) prepare $(NEWLINE))
777
781
778
- pkg-build: $(USEPKG:%=pkg-build-%)
779
- pkg-build-%: $(BUILDDEPS)
780
- $(QQ)"$(MAKE)" -C $(RIOTPKG)/$*
782
+ pkg-build: $(BUILDDEPS)
783
+ $(foreach dir,$(PKG_PATHS),$(QQ)"$(MAKE)" -C $(dir) $(NEWLINE))
781
784
782
785
clean:
783
786
ifndef MAKE_RESTARTS
784
- -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i clean ; done
787
+ -@$(foreach dir,$(PKG_PATHS), "$(MAKE)" -C $(dir) clean $(NEWLINE))
785
788
-@rm -rf $(BINDIR)
786
789
-@rm -rf $(SCANBUILD_OUTPUTDIR)
787
790
endif
788
791
789
792
# Remove intermediates, but keep the .elf, .hex and .map etc.
790
793
clean-intermediates:
791
- -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i distclean ; done
794
+ -@$(foreach dir,$(PKG_PATHS), "$(MAKE)" -C $(dir) distclean $(NEWLINE))
792
795
-@rm -rf $(BINDIR)/*.a $(BINDIR)/*/
793
796
794
797
clean-pkg:
795
- -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i distclean ; done
798
+ -@$(foreach dir,$(PKG_PATHS), "$(MAKE)" -C $(dir) distclean $(NEWLINE))
796
799
797
800
distclean:
798
- -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i distclean ; done
801
+ -@$(foreach dir,$(PKG_PATHS), "$(MAKE)" -C $(dir) distclean $(NEWLINE))
799
802
-@rm -rf $(BINDIRBASE)
800
803
801
804
# Include PROGRAMMER_FLASH/PROGRAMMER_RESET variables
0 commit comments