summaryrefslogtreecommitdiffhomepage
path: root/subr
diff options
context:
space:
mode:
Diffstat (limited to 'subr')
-rw-r--r--subr/build_args.subr47
-rw-r--r--subr/build_init.subr3
-rw-r--r--subr/ex_pkg_dispatch.subr3
3 files changed, 34 insertions, 19 deletions
diff --git a/subr/build_args.subr b/subr/build_args.subr
index 2175665c..8bf668a4 100644
--- a/subr/build_args.subr
+++ b/subr/build_args.subr
@@ -3,23 +3,24 @@
#
BUILD_ARGS_SPEC="
- ARG_IPV4_ONLY:-4
- ARG_IPV6_ONLY:-6
- ARCH:arg:-a
- BUILD:arg:-b
- ARG_CLEAN:-c
- ARG_DEBUG_MINIPIX:--debug-minipix
- ARG_OFFLINE:-N
- ARG_RELAXED:-R
- ARG_RESTART:arg:-r
- ARG_TARBALL:selfarg:-t
- ARG_TARBALL:selfarg:-t.bz2
- ARG_TARBALL:selfarg:-t.gz
- ARG_TARBALL:selfarg:-t.xz
- ARG_VERBOSE:selfarg:-v
- ARG_VERBOSE:selfarg:-vv
- ARG_VERBOSE:selfarg:-vvv
- ARG_XTRACE:-x";
+ ARG_IPV4_ONLY:-4:
+ ARG_IPV6_ONLY:-6:
+ ARCH:arg:-a:
+ BUILD:arg:-b:
+ ARG_CLEAN:-c:
+ ARG_DEBUG_MINIPIX:--debug-minipix:
+ ARG_OFFLINE:-N:
+ ARG_PARALLEL:optarg:-P:auto
+ ARG_RELAXED:-R:
+ ARG_RESTART:arg:-r:
+ ARG_TARBALL:selfarg:-t:
+ ARG_TARBALL:selfarg:-t.bz2;
+ ARG_TARBALL:selfarg:-t.gz:
+ ARG_TARBALL:selfarg:-t.xz:
+ ARG_VERBOSE:selfarg:-v:
+ ARG_VERBOSE:selfarg:-vv:
+ ARG_VERBOSE:selfarg:-vvv:
+ ARG_XTRACE:-x:";
build_args() {
local _spec="${BUILD_ARGS_SPEC}" _spec_arg _found;
@@ -29,9 +30,19 @@ build_args() {
fi;
for _spec_arg in ${_spec}; do
case "${_spec_arg}" in
- *:${1}) case "${_spec_arg#*:}" in
+ *:${1}:*)
+ case "${_spec_arg#*:}" in
arg:*)
ex_rtl_set_var_unsafe "${_spec_arg%%:*}" "${2}"; shift; ;;
+ optarg:*)
+ if [ -n "${2}" ]\
+ && [ "x${2#-}" = "x${2}" ]; then
+ ex_rtl_set_var_unsafe "${_spec_arg%%:*}" "${2}";
+ shift;
+ else
+ ex_rtl_set_var_unsafe "${_spec_arg%%:*}" \
+ "${_spec_arg##*:}";
+ fi; ;;
selfarg:*)
ex_rtl_set_var_unsafe "${_spec_arg%%:*}" "${1}"; ;;
*)
diff --git a/subr/build_init.subr b/subr/build_init.subr
index 95ac397d..8b3e6181 100644
--- a/subr/build_init.subr
+++ b/subr/build_init.subr
@@ -15,6 +15,9 @@ build_init() {
&& [ -e /proc/cpuinfo ]; then
DEFAULT_BUILD_CPUS=$(awk '/^processor/{cpus++} END{print cpus}' /proc/cpuinfo);
fi;
+ if [ "${ARG_PARALLEL}" = auto ]; then
+ ARG_PARALLEL="${DEFAULT_BUILD_CPUS}";
+ fi;
: ${ARCH:=nt64}; : ${BUILD:=debug};
if [ "${ARCH}" = nt32 ]; then
DEFAULT_TARGET="i686-nt32-midipix";
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr
index f56146bf..92890ba6 100644
--- a/subr/ex_pkg_dispatch.subr
+++ b/subr/ex_pkg_dispatch.subr
@@ -46,7 +46,8 @@ ex_pkg_dispatch() {
&& [ "${_restart}" != ALL ]; then
_pkg_names="$(ex_rtl_lfilter "${_pkg_names}" "${_restart}")";
fi;
- if [ "$(ex_rtl_get_var_unsafe ${_tgt_name_uc}_PARALLELISE)" = 1 ]; then
+ if [ "$(ex_rtl_get_var_unsafe ${_tgt_name_uc}_PARALLELISE)" = 1 ]\
+ && [ "${ARG_PARALLEL:-0}" -gt 1 ]; then
_njobs_max="${DEFAULT_BUILD_CPUS}";
else
_njobs_max=1;