summaryrefslogtreecommitdiffhomepage
path: root/build.sh
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2017-01-30 18:50:20 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2017-01-30 23:09:41 +0000
commit570129106f694bef52e07a5fc08f6c63f7f54073 (patch)
tree3adbc4836865dd61a54ab60c3ce270d597d50a80 /build.sh
parent99690f1bad0f1a8621f5bbc706a8ef0ba033ee68 (diff)
downloadmidipix_build-570129106f694bef52e07a5fc08f6c63f7f54073.tar.bz2
midipix_build-570129106f694bef52e07a5fc08f6c63f7f54073.tar.xz
build.sh: 2nd refactoring pt. I.
build/{gcc,musl}.*.build: refactored into vars/{gcc,musl}.*.build. build/pkg.build: merged w/ build.sh (structurally) and refactored into subr/pkg_*.subr (implementations.) patches/gcc_native_x86_64_w64_mingw32.local.patch: fix wrong filename. subr/build.subr: merges source_scripts() into build.sh. subr/pkg.subr: accept either of ${PKG_..._{URL,VERSION}} when checking for missing entries in var/build.vars. vars/build.vars: adds vars for {gcc,musl}_*. vars/psxstub.vars: convert to pkg_..._all(); call pkg_fetch().
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh51
1 files changed, 41 insertions, 10 deletions
diff --git a/build.sh b/build.sh
index 3448fac9..0f3411ca 100755
--- a/build.sh
+++ b/build.sh
@@ -81,7 +81,7 @@ for BUILD_TARGET_LC in $(subst_tgts ${BUILD_TARGETS_META}); do
"$(get_var_unsafe PKG_${BUILD_PACKAGE}_URL)" \
"$(get_var_unsafe PKG_${BUILD_PACKAGE}_URL_TYPE)";
else
- check_pkg_updates "${BUILD_PACKAGE_LC}" \
+ check_pkg_updates "${BUILD_PACKAGE_LC}" \
"$(get_var_unsafe PKG_${BUILD_PACKAGE}_VERSION)" \
"$(get_var_unsafe PKG_${BUILD_PACKAGE}_URL)" \
"$(get_var_unsafe PKG_${BUILD_PACKAGE}_URL_TYPE)";
@@ -94,17 +94,48 @@ for BUILD_TARGET_LC in $(subst_tgts ${BUILD_TARGETS_META}); do
log_msg vnfo "Skipped \`${BUILD_PACKAGE_LC}' (already built.)";
: $((BUILD_NSKIP+=1)); BUILD_SCRIPT_RC=0; continue;
fi;
- if [ -e build/${BUILD_PACKAGE_LC}.build ]; then
- BUILD_SCRIPT_FNAME=build/${BUILD_PACKAGE_LC}.build;
- else
- BUILD_SCRIPT_FNAME=build/pkg.build;
+ if [ -n "${ARG_RESTART}" ]; then
+ log_msg vnfo "Forcing package \`${BUILD_PACKAGE_LC}'.";
fi;
- log_msg vnfo "Invoking build script \`${BUILD_SCRIPT_FNAME}'${ARG_RESTART:+ (forcibly)} for package \`${BUILD_PACKAGE_LC}'.";
(set -o errexit -o noglob;
- MIDIPIX_BUILD_PWD=$(pwd); PKG_BUILD=${BUILD}; PKG_TARGET=${TARGET};
- PKG_PREFIX=$(get_vars_unsafe ${BUILD_TARGET}_PREFIX \
- PKG_${BUILD_PACKAGE%%.*}_PREFIX);
- cd ${WORKDIR}; source_scripts);
+ MIDIPIX_BUILD_PWD=$(pwd);
+ PKG_BUILD=${BUILD};
+ PKG_PREFIX=$(get_vars_unsafe ${BUILD_TARGET}_PREFIX PKG_${BUILD_PACKAGE%%.*}_PREFIX);
+ PKG_TARGET=${TARGET};
+ cd ${WORKDIR};
+ for SCRIPT_SOURCE in vars/${BUILD_PACKAGE_LC%.*}.vars; do
+ if [ -f ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE} ]; then
+ if [ ${ARG_DRYRUN:-0} -eq 1 ]; then
+ echo . ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE};
+ else
+ . ${MIDIPIX_BUILD_PWD}/${SCRIPT_SOURCE};
+ fi;
+ fi;
+ done;
+ parse_with_pkg_name ${BUILD_PACKAGE_LC%.*};
+ for __ in all disabled fetch extract build_dir patch_pre autoconf patch setup \
+ configure clean build install; do
+ case ${__} in
+ all)
+ if test_cmd pkg_${PKG_NAME}_all; then
+ pkg_${PKG_NAME}_all; exit 0;
+ fi;
+ ;;
+ disabled|build_dir|setup)
+ pkg_${__};
+ ;;
+ *) if ! is_build_script_done ${__}; then
+ if test_cmd pkg_${PKG_NAME}_${__}; then
+ pkg_${PKG_NAME}_${__};
+ else
+ pkg_${__};
+ fi;
+ fi;
+ ;;
+ esac;
+ done;
+ set_build_script_done finish;
+ );
BUILD_SCRIPT_RC=${?}; case ${BUILD_SCRIPT_RC} in
0) log_msg succ "Finished \`${BUILD_PACKAGE_LC}' build.";
: $((BUILD_NFINI+=1)); continue; ;;