diff options
| -rw-r--r-- | Config.in | 32 | ||||
| -rw-r--r-- | include/package-defaults.mk | 2 | ||||
| -rw-r--r-- | include/package.mk | 2 | 
3 files changed, 35 insertions, 1 deletions
| @@ -215,6 +215,38 @@ menu "Global build settings"  		help  		  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"  	choice diff --git a/include/package-defaults.mk b/include/package-defaults.mk index ecc3af499..117497d5d 100644 --- a/include/package-defaults.mk +++ b/include/package-defaults.mk @@ -113,7 +113,7 @@ MAKE_PATH = .  define Build/Compile/Default  	$(MAKE_VARS) \ -	$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \ +	$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \  		$(MAKE_FLAGS) \  		$(1);  endef diff --git a/include/package.mk b/include/package.mk index cde561439..fd53123f6 100644 --- a/include/package.mk +++ b/include/package.mk @@ -10,6 +10,8 @@ all: $(if $(DUMP),dumpinfo,compile)  PKG_BUILD_DIR ?= $(BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION))  PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install  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)/host.mk | 
