diff mbox

[1/2] jack2: use -j only when is PARALLEL_JOBS is defined

Message ID 1427614534-32460-1-git-send-email-fabio.porcedda@gmail.com
State Changes Requested
Headers show

Commit Message

Fabio Porcedda March 29, 2015, 7:35 a.m. UTC
When top-level parallel makefile is being used the PARALLEL_JOBS is
empty but the build system of jack2 does not accept a -j without an
argument so don't use the -j option when PARALLEL_JOBS is empty.

Fix build failure:
waf: error: -j option requires an argument
<snip>
make: *** [/home/tetsuya/buildroot/br2/output/build/jack2-ab409a65df95bc261ff72b52d6b3f4a65cf3266a/.stamp_built] Error 2

Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
---
 package/jack2/jack2.mk | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Thomas Petazzoni March 29, 2015, 1:17 p.m. UTC | #1
Dear Fabio Porcedda,

On Sun, 29 Mar 2015 09:35:33 +0200, Fabio Porcedda wrote:
> When top-level parallel makefile is being used the PARALLEL_JOBS is
> empty but the build system of jack2 does not accept a -j without an
> argument so don't use the -j option when PARALLEL_JOBS is empty.

This is not quite true. PARALLEL_JOBS is empty because your
recommendation of using:

	make BR2_JLEVEL= -j$((`getconf _NPROCESSORS_ONLN`+1))

for top-level parallel build is maybe not the most appropriate one.

In addition, even when top-level parallel build is used, using purely
sequential build in each package may not be the good solution. Imagine
you have a number of packages to build, and one of them is particularly
long: if you don't build this package in parallel, the build time may
be increased.

So I believe that with the introduction of top-level parallel build, we
need a way of calculating a default reasonable BR2_JLEVEL, preferably
taking into account the make -jX value passed to the top-level make. We
indeed need to play on the number of jobs at the top-level, and the
number of jobs at the per-package level.

Also, your patch series does not handle all packages that use
$(PARALLEL_JOBS) :

package/boost/boost.mk: (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
package/boost/boost.mk: (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
package/boost/boost.mk: (cd $(@D) && ./b2 -j$(PARALLEL_JOBS) -q -d+1 \
package/boost/boost.mk: (cd $(@D) && ./bjam -j$(PARALLEL_JOBS) -d+1 \
package/cmake/cmake.mk:                 --parallel=$(PARALLEL_JOBS) -- \
package/jack2/jack2.mk: (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS))
package/midori/midori.mk:       (cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS))
package/qt/qt.mk:               MAKEFLAGS="$(MAKEFLAGS) -j$(PARALLEL_JOBS)" ./configure \
package/qt5/qt5base/qt5base.mk:         MAKEFLAGS="$(MAKEFLAGS) -j$(PARALLEL_JOBS)" \

We probably need to convert all of these to:

	$(if $(PARALLEL_JOBS),-j$(PARALLEL_JOBS))

like is done for the global $(MAKE) variable.

Best regards,

Thomas
diff mbox

Patch

diff --git a/package/jack2/jack2.mk b/package/jack2/jack2.mk
index 3f52ff4..a472df2 100644
--- a/package/jack2/jack2.mk
+++ b/package/jack2/jack2.mk
@@ -10,6 +10,10 @@  JACK2_LICENSE = GPLv2+ (jack server), LGPLv2.1+ (jack library)
 JACK2_DEPENDENCIES = libsamplerate libsndfile alsa-lib host-python
 JACK2_INSTALL_STAGING = YES
 
+ifneq ($(PARALLEL_JOBS),)
+ JACK2_PARALLEL_JOBS = -j$(PARALLEL_JOBS)
+endif
+
 define JACK2_CONFIGURE_CMDS
 	(cd $(@D); \
 		$(TARGET_CONFIGURE_OPTS)	\
@@ -20,7 +24,8 @@  define JACK2_CONFIGURE_CMDS
 endef
 
 define JACK2_BUILD_CMDS
-	(cd $(@D); $(HOST_DIR)/usr/bin/python2 ./waf build -j $(PARALLEL_JOBS))
+	(cd $(@D); $(HOST_DIR)/usr/bin/python2 \
+		./waf build $(JACK2_PARALLEL_JOBS))
 endef
 
 define JACK2_INSTALL_TARGET_CMDS