asterisk-13.x: add menuselect mechanism
authorSebastian Kemper <sebastian_ml@gmx.net>
Tue, 28 Nov 2017 21:20:16 +0000 (22:20 +0100)
committerSebastian Kemper <sebastian_ml@gmx.net>
Tue, 28 Nov 2017 21:20:18 +0000 (22:20 +0100)
This adds a mechanism that disables all modules by default and then
enables only the modules needed for the packages selected, resulting in
less build time.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
net/asterisk-13.x/Makefile

index 9fb56027a1ecbea10c9ca30a7adfd3a623ce91a8..1b4ac060c7d058a4d6f2880966d90d0f25d2eb26 100644 (file)
@@ -24,6 +24,23 @@ PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING LICENSE
 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
 
+MENUSELECT_CATEGORIES:= \
+       MENUSELECT_ADDONS \
+       MENUSELECT_APPS \
+       MENUSELECT_BRIDGES \
+       MENUSELECT_CDR \
+       MENUSELECT_CEL \
+       MENUSELECT_CHANNELS \
+       MENUSELECT_CODECS \
+       MENUSELECT_FORMATS \
+       MENUSELECT_FUNCS \
+       MENUSELECT_PBX \
+       MENUSELECT_RES \
+       MENUSELECT_UTILS \
+       MENUSELECT_AGIS
+
+AST_ENABLE:=
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 
@@ -61,6 +78,9 @@ define BuildAsterisk13Module
   $$(call Package/asterisk13/Default)
     TITLE:=$(2) support
     DEPENDS:= asterisk13 $(patsubst +%,+PACKAGE_asterisk13-$(1):%,$(4))
+    ifneq ($$(CONFIG_PACKAGE_asterisk13-$(1)),)
+    AST_ENABLE+=$(6)
+    endif
   endef
 
   define Package/asterisk13-$(1)/conffiles
@@ -305,6 +325,18 @@ define Build/Compile
        LDFLAGS="$(HOST_LDFLAGS) -Wl,-rpath,$(STAGING_DIR_HOSTPKG)/lib" \
        $(MAKE) -C "$(PKG_BUILD_DIR)/menuselect"
        $(MAKE) -C "$(PKG_BUILD_DIR)" menuselect-tree
+       for cat in $(MENUSELECT_CATEGORIES); do \
+               cd "$(PKG_BUILD_DIR)" && \
+               ./menuselect/menuselect \
+               --disable-category $$$$cat \
+               menuselect.makeopts; \
+       done
+       for item in $(AST_EMB_MODULES) $$(AST_ENABLE); do \
+               cd "$(PKG_BUILD_DIR)" && \
+               ./menuselect/menuselect \
+               --enable $$$$item \
+               menuselect.makeopts; \
+       done
        cd "$(PKG_BUILD_DIR)" && \
                ./menuselect/menuselect \
                        --disable BUILD_NATIVE \