Support parallel build of certain packages
SVN-Revision: 22696
This commit is contained in:
parent
4bd5e0e62e
commit
7ed7784f59
3 changed files with 35 additions and 1 deletions
32
Config.in
32
Config.in
|
@ -215,6 +215,38 @@ menu "Global build settings"
|
||||||
help
|
help
|
||||||
Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
|
Enable IPV6 support in packages (passes --enable-ipv6 to configure scripts).
|
||||||
|
|
||||||
|
config PKG_BUILD_PARALLEL
|
||||||
|
bool
|
||||||
|
prompt "Compile certain packages parallelized"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
This adds a -jX option to certain packages that are known to
|
||||||
|
behave well for parallel build.
|
||||||
|
|
||||||
|
Note that this may overcommit CPU resources depending on the
|
||||||
|
-j level of the main make process, the number of package
|
||||||
|
submake jobs selected below and the number of actual CPUs present.
|
||||||
|
Example: If the main make is passed a -j4 and the submake -j
|
||||||
|
is also set to 4, we may end up with 16 parallel make processes
|
||||||
|
in the worst case.
|
||||||
|
|
||||||
|
You get maximum build performance, if you set the package build
|
||||||
|
jobs to the number of CPUs (cores) available and also start the main
|
||||||
|
make process with -jX, where X is the number of CPUs (cores).
|
||||||
|
However, make sure you have enough RAM available for
|
||||||
|
NR_CPUS to the power of two (NR_CPUS^2) make jobs.
|
||||||
|
|
||||||
|
If you are unsure, select N.
|
||||||
|
|
||||||
|
config PKG_BUILD_JOBS
|
||||||
|
int
|
||||||
|
prompt "Number of package submake jobs (2-512)"
|
||||||
|
range 2 512
|
||||||
|
default 2
|
||||||
|
depends on PKG_BUILD_PARALLEL
|
||||||
|
help
|
||||||
|
The number of jobs (-jX) to pass to packages submake.
|
||||||
|
|
||||||
comment "Stripping options"
|
comment "Stripping options"
|
||||||
|
|
||||||
choice
|
choice
|
||||||
|
|
|
@ -113,7 +113,7 @@ MAKE_PATH = .
|
||||||
|
|
||||||
define Build/Compile/Default
|
define Build/Compile/Default
|
||||||
$(MAKE_VARS) \
|
$(MAKE_VARS) \
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
|
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
|
||||||
$(MAKE_FLAGS) \
|
$(MAKE_FLAGS) \
|
||||||
$(1);
|
$(1);
|
||||||
endef
|
endef
|
||||||
|
|
|
@ -10,6 +10,8 @@ all: $(if $(DUMP),dumpinfo,compile)
|
||||||
PKG_BUILD_DIR ?= $(BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION))
|
PKG_BUILD_DIR ?= $(BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION))
|
||||||
PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install
|
PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install
|
||||||
PKG_MD5SUM ?= unknown
|
PKG_MD5SUM ?= unknown
|
||||||
|
PKG_BUILD_PARALLEL ?=
|
||||||
|
PKG_JOBS ?= $(if $(PKG_BUILD_PARALLEL),$(if $(CONFIG_PKG_BUILD_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS)))
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/prereq.mk
|
include $(INCLUDE_DIR)/prereq.mk
|
||||||
include $(INCLUDE_DIR)/host.mk
|
include $(INCLUDE_DIR)/host.mk
|
||||||
|
|
Loading…
Reference in a new issue