diff options
author | Lucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de> | 2017-01-30 18:50:20 +0000 |
---|---|---|
committer | Lucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de> | 2017-01-30 23:09:41 +0000 |
commit | 570129106f694bef52e07a5fc08f6c63f7f54073 (patch) | |
tree | 3adbc4836865dd61a54ab60c3ce270d597d50a80 /build.sh | |
parent | 99690f1bad0f1a8621f5bbc706a8ef0ba033ee68 (diff) | |
download | midipix_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-x | build.sh | 51 |
1 files changed, 41 insertions, 10 deletions
@@ -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; ;; |