Message ID | 1427614534-32460-1-git-send-email-fabio.porcedda@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
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 --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
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(-)