diff --git a/build.sh b/build.sh index 8c0d4b0..4c3d9ff 100755 --- a/build.sh +++ b/build.sh @@ -25,6 +25,10 @@ for BUILD_TARGET_META in invariants ${BUILD_TARGETS_META:-world}; do 0) : $((BUILD_NFINI+=1)); if [ "${ARG_VERBOSE2:-0}" -eq 1 ]; then cat "${WORKDIR}/${PKG_NAME}_stdout.log"; + if [ "${ARG_XTRACE:-0}" -eq 1 ]; then + ex_log_msg vvfo "${WORKDIR}/${PKG_NAME}_stderr.log:"; + cat "${WORKDIR}/${PKG_NAME}_stderr.log"; + fi; fi; ex_log_msg succ "Finished \`${PKG_NAME}' build."; ;; *) : $((BUILD_NFAIL+=1)); diff --git a/etc/build.usage b/etc/build.usage index 7934220..d5fe1aa 100644 --- a/etc/build.usage +++ b/etc/build.usage @@ -1,7 +1,7 @@ usage: ./build.sh [-x] [-4|6] [-a nt32|nt64] [-b debug|release] [-c] [-h] [-i] [-N] [-r package[,...][:step]] [-R] [-t[.gz|.bz2|.xz] [-v[v[v]]] [[ ...]] - -x Set the xtrace sh(1)ell option for debugging purposes. + -x Set xtrace during package builds; implies -vv. -4|-6 Force IPv[46] when downloading files. -a nt32|nt64 Selects 32-bit or 64-bit architecture; defaults to nt64. -b debug|release Selects debug or release build; defaults to debug. diff --git a/subr/ex_pkg_dispatch.subr b/subr/ex_pkg_dispatch.subr index a58818b..f099dd6 100644 --- a/subr/ex_pkg_dispatch.subr +++ b/subr/ex_pkg_dispatch.subr @@ -24,6 +24,9 @@ ex_pkg_dispatch() { else \ echo \"fail ${PKG_NAME}\" >&3; \ fi;" EXIT HUP INT TERM USR1 USR2; + if [ "${ARG_XTRACE:-0}" -eq 1 ]; then + set -o xtrace; + fi; ex_pkg_vars; if [ "${PKG_DISABLED:-0}" -eq 1 ]; then ex_log_msg vnfo "Skipping disabled package \`${PKG_NAME}.'"; diff --git a/subr/ex_setup_args.subr b/subr/ex_setup_args.subr index fed20d6..2f00c6d 100644 --- a/subr/ex_setup_args.subr +++ b/subr/ex_setup_args.subr @@ -50,10 +50,8 @@ ex_setup_args() { TARBALL_SUFFIX=xz; fi; fi; - if [ "${ARG_XTRACE:-0}" -eq 1 ]; then - set -o xtrace; - fi; - if [ "${ARG_VERBOSE3:-0}" -eq 1 ]; then + if [ "${ARG_VERBOSE3:-0}" -eq 1 ]\ + || [ "${ARG_XTRACE:-0}" -eq 1 ]; then ARG_VERBOSE2=1; fi; if [ "${ARG_VERBOSE2:-0}" -eq 1 ]; then