summaryrefslogtreecommitdiffhomepage
path: root/subr
diff options
context:
space:
mode:
Diffstat (limited to 'subr')
-rw-r--r--subr/ex_pkg_dispatch.subr21
1 files changed, 12 insertions, 9 deletions
diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr
index cf92d8c5..255264fe 100644
--- a/subr/ex_pkg_dispatch.subr
+++ b/subr/ex_pkg_dispatch.subr
@@ -7,8 +7,9 @@
#
exp_pkg_check_depends() {
- local _pkg_depends="${1}" _pkg_name="${2}" _dependfl=0;
- if [ -z "${_restart}" ]; then
+ local _group_name="${1}" _pkg_depends="${2}" _pkg_name="${3}" _dependfl=0;
+ if [ -z "${_restart}" ]\
+ || ! [ "$(ex_rtl_get_var_unsafe "$(ex_rtl_toupper "${_group_name}")_IN_TREE"))" = "1" ]; then
for _pkg_name_depend in ${_pkg_depends}; do
if [ -n "$(ex_rtl_lsearch "${_pkgs_wait}" "${_pkg_name_depend}")" ]\
|| [ -z "$(ex_rtl_lsearch "${_pkgs_complete}" "${_pkg_name_depend}")" ]; then
@@ -23,12 +24,12 @@ exp_pkg_dispatch_group() {
local _njob=0 _pkg_depends="" _pkg_name="";
for _njob in $(seq 1 $((${_njobs_max}-${_njobs}))); do
for _pkg_name in ${_pkg_names}; do
- if [ -z "$(ex_rtl_lsearch "${_pkgs_complete}" "${_pkg_name}")" ] \
- && [ -z "$(ex_rtl_lsearch "${_pkgs_wait}" "${_pkg_name}")" ] \
+ if [ -z "$(ex_rtl_lsearch "${_pkgs_complete}" "${_pkg_name}")" ]\
+ && [ -z "$(ex_rtl_lsearch "${_pkgs_wait}" "${_pkg_name}")" ]\
&& _pkg_depends="$(exp_pkg_expand_packages $(ex_rtl_get_var_unsafe "PKG_$(ex_rtl_toupper "${_pkg_name}")_DEPENDS"))"\
- && exp_pkg_check_depends "${_pkg_depends}" "${_pkg_name}" \
- && exp_pkg_dispatch_package "${_dispatch_fn}" "${_group_name}" \
- "${_pkg_name}" "${_restart_at}" "${_stderrout_path}" \
+ && exp_pkg_check_depends "${_group_name}" "${_pkg_depends}" "${_pkg_name}" \
+ && exp_pkg_dispatch_package "${_dispatch_fn}" "${_group_name}" \
+ "${_pkg_name}" "${_restart_at}" "${_stderrout_path}" \
"${_pipe_path}"; then
_pkgs_found_new="${_pkgs_found_new:+${_pkgs_found_new} }${_pkg_name}";
break;
@@ -85,7 +86,8 @@ exp_pkg_get_packages() {
&& ! ex_rtl_lmatch "ALL LAST" " " "${_restart}"; then
_pkg_names="$(ex_rtl_lsearch "${_pkg_names}" "${_restart}")";
fi;
- if [ -z "${_restart}" ]; then
+ if [ -z "${_restart}" ]\
+ || ! [ "$(ex_rtl_get_var_unsafe "${_group_name_uc}"_IN_TREE)" = "1" ]; then
_pkg_names="$(ex_rtl_uniq $(exp_pkg_expand_packages ${_pkg_names}))";
fi;
};
@@ -98,7 +100,8 @@ ex_pkg_dispatch() {
"${_dispatch_fn}" start_group "${_group_name}" ""; ex_rtl_fileop mkdir "${BUILD_WORKDIR}";
if exp_pkg_get_packages "${_dispatch_fn}" "${_group_name}" "${_restart}"\
&& [ -n "${_pkg_names}" ]; then
- if [ "${ARG_PARALLEL:-0}" -gt 1 ]; then
+ if [ "${ARG_PARALLEL:-0}" -gt 1 ]\
+ && ! [ "$(ex_rtl_get_var_unsafe "$(ex_rtl_toupper "${_group_name}")"_IN_TREE)" = 1 ]; then
_njobs_max="${DEFAULT_BUILD_CPUS}";
fi;
ex_rtl_fileop mkfifo "${_pipe_path}"; exp_pkg_dispatch_group;