diff options
author | Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de> | 2024-03-24 21:42:53 +0100 |
---|---|---|
committer | Lucía Andrea Illanes Albornoz <lucia@luciaillanes.de> | 2024-03-24 21:42:53 +0100 |
commit | eb7c32add8c0c00876e629e273e1298dddbc4a0b (patch) | |
tree | 97075e424e2b08acfcfc7b4c2b6c68907658c412 | |
parent | f0e020aac8b88b65137badef0897d8e92a6ab8a0 (diff) | |
download | midipix_build-eb7c32add8c0c00876e629e273e1298dddbc4a0b.tar.bz2 midipix_build-eb7c32add8c0c00876e629e273e1298dddbc4a0b.tar.xz |
vars/gcc.vars: manually honour -r ALL,...
vars/gcc.vars: always mkdir prerequisite directories.
etc/README.md: updated.
-rw-r--r-- | etc/README.md | 5 | ||||
-rw-r--r-- | vars/gcc.vars | 171 |
2 files changed, 144 insertions, 32 deletions
diff --git a/etc/README.md b/etc/README.md index 794d2fbf..908675bf 100644 --- a/etc/README.md +++ b/etc/README.md @@ -303,8 +303,11 @@ Rebuild entire build groups including or excluding group dependencies, respectiv Forcibly (re)download all archive files and/or Git repositories associated with all packages: ```shell -./build.sh [ ... ] -r ALL:@fetch +./build.sh [ ... ] -r ALL:@fetch,finish ``` +> N.B. the "finish" (pseudo-)build step must be included here and in similar use cases so that all +affected packages are marked as having finished building in order to correctly satisfy package-package +dependencies. [Back to top](#table-of-contents) diff --git a/vars/gcc.vars b/vars/gcc.vars index 49dbaf07..d40cd7ba 100644 --- a/vars/gcc.vars +++ b/vars/gcc.vars @@ -188,8 +188,10 @@ pkgp_gcc_stage1_all() { ;; gcc_stage1_cross) - if ! rtl_fileop ln_symbolic . "${PREFIX_LOCAL_CROSS}/usr"\ + if ! rtl_fileop mkdir . "${PREFIX_LOCAL_CROSS}"\ + || ! rtl_fileop ln_symbolic . "${PREFIX_LOCAL_CROSS}/usr"\ || ! rtl_fileop mkdir "${PREFIX_LOCAL_CROSS}/usr/include"\ + || ! rtl_fileop mkdir "${PREFIX_CROSS}"\ || ! rtl_fileop ln_symbolic . "${PREFIX_CROSS}/usr"\ || ! rtl_fileop mkdir "${PREFIX_CROSS}/usr/include"\ || ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross; then @@ -198,8 +200,10 @@ pkgp_gcc_stage1_all() { ;; gcc_stage1_host) - if ! rtl_fileop ln_symbolic . "${PREFIX_CROSS}/usr"\ + if ! rtl_fileop mkdir . "${PREFIX_CROSS}"\ + || ! rtl_fileop ln_symbolic . "${PREFIX_CROSS}/usr"\ || ! rtl_fileop mkdir "${PREFIX_CROSS}/usr/include"\ + || ! rtl_fileop mkdir . "${PREFIX_NATIVE}"\ || ! rtl_fileop ln_symbolic . "${PREFIX_NATIVE}/usr"\ || ! rtl_fileop mkdir "${PREFIX_NATIVE}/usr/include"\ || ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" host; then @@ -217,7 +221,10 @@ pkgp_gcc_stage1_all() { return 1; fi; - if ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,fetch_clean,fetch_download,fetch_extract" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}" ); + then if ! rtl_fetch_dlcache_subdir \ "${BUILD_DLCACHEDIR}" "${PKG_NAME}" \ "${PKG_INHERIT_FROM:-}"; @@ -233,7 +240,10 @@ pkgp_gcc_stage1_all() { fi; fi; - if ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,configure_patch" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}" ); + then if [ -e "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" ]; then patch -b -d "${PKG_BASE_DIR}" -p0 < "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" || return 1; fi; @@ -243,7 +253,10 @@ pkgp_gcc_stage1_all() { pkgp_gcc_setup_vars; pkgp_gcc_setup_env; - if ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,configure" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}" ); + then case "${PKG_NAME}" in gcc_stage1_host_mingw32) @@ -307,21 +320,31 @@ pkgp_gcc_stage1_all() { if [ "${?}" -ne 0 ]; then return 1; fi; - else + elif [ "${_restart_at:+1}" != 1 ]\ + || rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" || return 1; fi; - if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,build" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} "all-gcc" || return 1; pkgp_gcc_state_set "build" "install_subdirs"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" ); + then pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install_subdirs" "install_make"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_make" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" ); + then case "${PKG_NAME}" in gcc_stage1_cross_mingw32) @@ -352,7 +375,10 @@ pkgp_gcc_stage1_all() { fi; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" ); + then pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install"; fi; @@ -370,7 +396,10 @@ pkg_gcc_full_all() { pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" native; - if ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,fetch_clean,fetch_download,fetch_extract" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}" ); + then if ! rtl_fetch_dlcache_subdir \ "${BUILD_DLCACHEDIR}" "${PKG_NAME}" \ "${PKG_INHERIT_FROM:-}"; @@ -387,7 +416,10 @@ pkg_gcc_full_all() { fi; fi; - if ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,configure_patch" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" patch "${_restart_at}" ); + then if [ -e "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" ]; then patch -b -d "${PKG_BASE_DIR}" -p0 < "${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch" || return 1; fi; @@ -397,7 +429,10 @@ pkg_gcc_full_all() { pkgp_gcc_setup_vars; pkgp_gcc_setup_env; - if ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,configure" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}" ); + then rtl_fileop mkdir "${PKG_PREFIX}/${PKG_TARGET}" || return 1; if [ \! -d "${PKG_PREFIX}/${PKG_TARGET}/usr" ]; then rtl_fileop ln_symbolic . "${PKG_PREFIX}/${PKG_TARGET}/usr" || return 1; @@ -421,7 +456,10 @@ pkg_gcc_full_all() { rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}" || return 1; fi; - if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,build" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" ); + then if ! make ${PKG_MAKEFLAGS_BUILD:-} "all-gcc"\ || ! make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libgcc" ${_vis_hide}\ || ! make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libstdc++-v3"\ @@ -432,17 +470,26 @@ pkg_gcc_full_all() { fi; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" ); + then pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install_subdirs" "install_make"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_make" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install" || return 1; pkgp_gcc_state_set "install_make" "install"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" ); + then pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install"; fi; @@ -457,26 +504,46 @@ pkg_gcc_full_host_all() { _toolchain_type="${4:-host}" export MAKE="make LIBTOOL=slibtool"; + if [ "${_restart_at:+1}" = 1 ]\ + && ! rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then + if rtl_lmatch \$_restart_at "finish" ","; then + pkgp_gcc_state_set "finish"; + fi; + return 0; + fi; + if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" ${_toolchain_type} \ || ! rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}"; then return 1; else - if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,build" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} || return 1; pkgp_gcc_state_set "build" "install_subdirs"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" ); + then pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install_subdirs" "install_make"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_make" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install" || return 1; pkgp_gcc_state_set "install_make" "install"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" ); + then pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install"; fi; @@ -496,26 +563,46 @@ pkg_gcc_libstdcpp_v3_host_all() { _toolchain_type="${4:-host}" export MAKE="make LIBTOOL=slibtool"; + if [ "${_restart_at:+1}" = 1 ]\ + && ! rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then + if rtl_lmatch \$_restart_at "finish" ","; then + pkgp_gcc_state_set "finish"; + fi; + return 0; + fi; + if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" ${_toolchain_type} \ || ! rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}"; then return 1; else - if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,build" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libstdc++-v3" || return 1; pkgp_gcc_state_set "build" "install_subdirs"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" ); + then pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install_subdirs" "install_make"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_make" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-target-libstdc++-v3" || return 1; pkgp_gcc_state_set "install_make" "install"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" ); + then pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install"; fi; @@ -536,26 +623,46 @@ pkg_gcc_runtime_host_all() { _vis_hide="vis_hide=-fvisibility=hidden"; export MAKE="make LIBTOOL=slibtool ${_vis_hide}"; + if [ "${_restart_at:+1}" = 1 ]\ + && ! rtl_lmatch \$_restart_at "ALL,build,install_subdirs,install_make,install" ","; then + if rtl_lmatch \$_restart_at "finish" ","; then + pkgp_gcc_state_set "finish"; + fi; + return 0; + fi; + if ! pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" ${_toolchain_type} \ || ! rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}"; then return 1; else - if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,build" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} "all-target-libgcc" ${_vis_hide} || return 1; pkgp_gcc_state_set "build" "install_subdirs"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_subdirs" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}" ); + then pkg_install_subdirs "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install_subdirs" "install_make"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install_make" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}" ); + then make ${PKG_MAKEFLAGS_BUILD:-} "prefix=${PKG_DESTDIR}" "install-target-libgcc" || return 1; pkgp_gcc_state_set "install_make" "install"; fi; - if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then + if rtl_lmatch \$_restart_at "ALL,install" ","\ + || ( [ "${_restart_at:+1}" != 1 ]\ + && ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}" ); + then pkg_install "${_group_name}" "${_pkg_name}" "${_restart_at}" || return 1; pkgp_gcc_state_set "install"; fi; @@ -575,7 +682,8 @@ pkg_gcc_stage1_all() { }; pkg_gcc_stage1_host_mingw32_all() { - if ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\ + if ! rtl_fileop mkdir . "${PKG_PREFIX}/x86_64-w64-mingw32"\ + || ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\ || ! rtl_fileop mkdir "${PKG_DESTDIR}/x86_64-w64-mingw32"\ || ! rtl_fileop ln_symbolic . "${PKG_DESTDIR}/x86_64-w64-mingw32/mingw"\ || ! rtl_fileop mkdir "${PKG_PREFIX}/x86_64-w64-mingw32/include"\ @@ -598,7 +706,8 @@ pkg_gcc_stage1_cross_all() { }; pkg_gcc_stage1_native_mingw32_all() { - if ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\ + if ! rtl_fileop mkdir . "${PKG_PREFIX}/x86_64-w64-mingw32"\ + || ! rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw"\ || ! rtl_fileop mkdir "${PKG_DESTDIR}/x86_64-w64-mingw32"\ || ! rtl_fileop ln_symbolic . "${PKG_DESTDIR}/x86_64-w64-mingw32/mingw"\ || ! rtl_fileop mkdir "${PKG_PREFIX}/x86_64-w64-mingw32/include"\ |