asterisk-15.x: add menuselect mechanism

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>
This commit is contained in:
Sebastian Kemper 2017-11-28 22:25:03 +01:00
parent dad0784ecb
commit 2c7e8c72b4

View file

@ -22,6 +22,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
@ -59,6 +76,9 @@ define BuildAsterisk15Module
$$(call Package/asterisk15/Default)
TITLE:=$(2) support
DEPENDS:= asterisk15 $(patsubst +%,+PACKAGE_asterisk15-$(1):%,$(4))
ifneq ($$(CONFIG_PACKAGE_asterisk15-$(1)),)
AST_ENABLE+=$(6)
endif
endef
define Package/asterisk15-$(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 \