asterisk-13.x: speed up menuselect calls
authorSebastian Kemper <sebastian_ml@gmx.net>
Tue, 5 Dec 2017 19:58:01 +0000 (20:58 +0100)
committerSebastian Kemper <sebastian_ml@gmx.net>
Tue, 5 Dec 2017 19:58:03 +0000 (20:58 +0100)
Currently the menuselect calls, for each category or item, step into a
directory and call menuselect once. So if all packages are build
menuselect will be called hundreds of times and as many directory
changes will be done.

Instead step into the directory only once, then generate the argument
string by iteratively adding to it and then call menuselect once. The
speedup is big.

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

index 511d1e747d6c2383b7bed4d09eea681ae19893c3..a8376f8ef589e7f51cea27d224123e8277a25887 100644 (file)
@@ -394,18 +394,20 @@ 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)" && \
+       cd "$(PKG_BUILD_DIR)" && MENUSELECT_ARGS= && \
+               for cat in $(MENUSELECT_CATEGORIES); do \
+                       MENUSELECT_ARGS="$$$$MENUSELECT_ARGS --disable-category $$$$cat"; \
+               done; \
                ./menuselect/menuselect \
-               --disable-category $$$$cat \
-               menuselect.makeopts; \
-       done
-       for item in $(AST_EMB_MODULES) $$(AST_ENABLE); do \
-               cd "$(PKG_BUILD_DIR)" && \
+                       $$$$MENUSELECT_ARGS \
+                       menuselect.makeopts
+       cd "$(PKG_BUILD_DIR)" && MENUSELECT_ARGS= && \
+               for item in $(AST_EMB_MODULES) $$(AST_ENABLE); do \
+                       MENUSELECT_ARGS="$$$$MENUSELECT_ARGS --enable $$$$item"; \
+               done; \
                ./menuselect/menuselect \
-               --enable $$$$item \
-               menuselect.makeopts; \
-       done
+                       $$$$MENUSELECT_ARGS \
+                       menuselect.makeopts
        cd "$(PKG_BUILD_DIR)" && \
                ./menuselect/menuselect \
                        --disable BUILD_NATIVE \