diff --git a/build.sh b/build.sh index d26ab7d..8c0d4b0 100755 --- a/build.sh +++ b/build.sh @@ -15,6 +15,7 @@ for BUILD_TARGET_META in invariants ${BUILD_TARGETS_META:-world}; do && [ -n "${BUILD_PACKAGES_RESTART}" ]; then BUILD_PACKAGES="$(ex_lfilter "${BUILD_PACKAGES}" "${BUILD_PACKAGES_RESTART}")"; fi; + ex_log_msg info "Starting \`${BUILD_TARGET_LC}' build target..."; for PKG_NAME in ${BUILD_PACKAGES}; do ex_log_msg info "Starting \`${PKG_NAME}' build..."; ex_pkg_dispatch "${BUILD_TARGET}" "${PKG_NAME}" \ @@ -43,6 +44,8 @@ for BUILD_TARGET_META in invariants ${BUILD_TARGETS_META:-world}; do done; if [ "${BUILD_SCRIPT_RC:-0}" -ne 0 ]; then break; + else + ex_log_msg succ "Finished \`${BUILD_TARGET_LC}' build target."; fi; done; done; diff --git a/etc/build.usage b/etc/build.usage index 277024c..e14f840 100644 --- a/etc/build.usage +++ b/etc/build.usage @@ -28,9 +28,10 @@ usage: ./build.sh [-x] [-4|6] [-a nt32|nt64] [-b debug|release] [-c] [-h] -v[v[v]] Be verbose; -vv: always print package logs; -vvv: logs fileops. --debug-minipix Don't strip(1) minipix binaries to facilitate debugging minipix. [ ...] One of: - host_toolchain, native_toolchain, runtime, host_packages, - lib_packages, dev_packages, leaf_packages, minipix, dist, - devroot, dev, or world. + host_toolchain_deps, host_toolchain, native_toolchain_deps, + native_toolchain, runtime, host_packages, lib_packages, + dev_packages, leaf_packages, minipix, dist, devroot, dev, + or world. ${HOME}/midipix_build.vars, ../midipix_build.vars, and build.vars are sourced if they exist. diff --git a/vars/build.vars b/vars/build.vars index 4d06910..94c2960 100644 --- a/vars/build.vars +++ b/vars/build.vars @@ -8,34 +8,44 @@ INVARIANTS_PACKAGES="chainport"; : ${PKG_CHAINPORT_NO_LOG_VARS:=1}; # -# Build target host_toolchain +# Build target host_toolchain_deps # -HOST_TOOLCHAIN_BUILD_TYPE="host"; -HOST_TOOLCHAIN_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; -HOST_TOOLCHAIN_PACKAGES=" -slibtool_host perk_host mdso_host binutils_host binutils_host_x86_64_w64_mingw32 -gcc_stage1_cross_x86_64_w64_mingw32 gcc_stage1 psxstub musl_no_complex gcc_runtime -musl_full gcc_libstdcpp_v3 gcc_full install_strip_host psxtypes_host ldso_host pkgconf_host"; -HOST_TOOLCHAIN_PREFIX="${PREFIX_CROSS}"; +HOST_TOOLCHAIN_DEPS_BUILD_TYPE="host"; +HOST_TOOLCHAIN_DEPS_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; +HOST_TOOLCHAIN_DEPS_PACKAGES=" +slibtool_host perk_host mdso_host binutils_host install_strip_host pkgconf_host"; +HOST_TOOLCHAIN_DEPS_PREFIX="${PREFIX}"; : ${PKG_SLIBTOOL_HOST_URLS_GIT:="slibtool=${DEFAULT_GITROOT}/slibtool"}; : ${PKG_SLIBTOOL_HOST_CONFIGURE_ARGS:=--host= --prefix=}; -: ${PKG_SLIBTOOL_HOST_PREFIX:=${PREFIX}}; : ${PKG_PERK_HOST_URLS_GIT:="perk=${DEFAULT_GITROOT}/perk"}; : ${PKG_PERK_HOST_CONFIGURE_ARGS:="--prefix=/usr"}; : ${PKG_PERK_HOST_INSTALL_FILES:="@perk=bin/${TARGET}-perk"}; -: ${PKG_PERK_HOST_PREFIX:=${PREFIX}}; : ${PKG_MDSO_HOST_URLS_GIT:="mdso=${DEFAULT_GITROOT}/mdso"}; : ${PKG_MDSO_HOST_CONFIGURE_ARGS:="--prefix=/usr"}; : ${PKG_MDSO_HOST_INSTALL_FILES:="@mdso=bin/${TARGET}-mdso /=${TARGET}/bin bin/mdso=${TARGET}/bin/mdso"}; -: ${PKG_MDSO_HOST_PREFIX:=${PREFIX}}; : ${PKG_BINUTILS_HOST_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; : ${PKG_BINUTILS_HOST_VERSION:=2.24.51}; : ${PKG_BINUTILS_HOST_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_VERSION}.tar.bz2}; : ${PKG_BINUTILS_HOST_CONFIGURE_ARGS:="--disable-werror --enable-deterministic-archives --prefix=${PREFIX} --target=${TARGET} --with-sysroot=${PREFIX_CROSS}"}; : ${PKG_BINUTILS_HOST_INSTALL_FILES:="@${TARGET}-windmc=bin/windmc @${TARGET}-windres=bin/windres"}; : ${PKG_BINUTILS_HOST_MAKEFLAGS_INSTALL_EXTRA:="PREFIX= prefix="}; -: ${PKG_BINUTILS_HOST_PREFIX=${PREFIX}}; : ${PKG_BINUTILS_HOST_SLIBTOOL:=slibtool-static}; +: ${PKG_INSTALL_STRIP_HOST_NO_LOG_VARS:=1}; +: ${PKG_PKGCONF_HOST_SHA256SUM:=7ec8b516e655e247f4ba976837cee808134785819ab8f538f652fe919cc6c09f}; +: ${PKG_PKGCONF_HOST_VERSION:=0.9.12}; +: ${PKG_PKGCONF_HOST_URL:=https://github.com/pkgconf/pkgconf/releases/download/pkgconf-${PKG_PKGCONF_HOST_VERSION}/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.bz2}; +: ${PKG_PKGCONF_HOST_CONFIGURE_ARGS:="-C --prefix=${PREFIX_NATIVE}"}; +: ${PKG_PKGCONF_HOST_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; + +# +# Build target host_toolchain +# +HOST_TOOLCHAIN_BUILD_TYPE="host"; +HOST_TOOLCHAIN_CONFIGURE_ARGS="-C --disable-nls --host=${TARGET} --prefix= --target=${TARGET}"; +HOST_TOOLCHAIN_PACKAGES=" +binutils_host_x86_64_w64_mingw32 gcc_stage1_cross_x86_64_w64_mingw32 gcc_stage1 +psxstub musl_no_complex gcc_runtime musl_full gcc_libstdcpp_v3 gcc_full psxtypes_host ldso_host"; +HOST_TOOLCHAIN_PREFIX="${PREFIX_CROSS}"; : ${PKG_BINUTILS_HOST_X86_64_W64_MINGW32_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; : ${PKG_BINUTILS_HOST_X86_64_W64_MINGW32_VERSION:=2.24.51}; : ${PKG_BINUTILS_HOST_X86_64_W64_MINGW32_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_HOST_X86_64_W64_MINGW32_VERSION}.tar.bz2}; @@ -61,7 +71,6 @@ HOST_TOOLCHAIN_PREFIX="${PREFIX_CROSS}"; : ${PKG_GCC_LIBSTDCPP_V3_BASE_DIR:=${WORKDIR}/gcc-build}; : ${PKG_GCC_FULL_VERSION:=4.6.4}; : ${PKG_GCC_FULL_BASE_DIR:=${WORKDIR}/gcc-build}; -: ${PKG_INSTALL_STRIP_HOST_NO_LOG_VARS:=1}; : ${PKG_PSXTYPES_HOST_URLS_GIT:=psxtypes=${DEFAULT_GITROOT}/psxtypes}; : ${PKG_PSXTYPES_HOST_BUILD_STEPS_DISABLE:=build:dynamic}; : ${PKG_LDSO_HOST_URLS_GIT:=pemagine=${DEFAULT_GITROOT}/pemagine}; @@ -71,21 +80,14 @@ HOST_TOOLCHAIN_PREFIX="${PREFIX_CROSS}"; : ${PKG_LDSO_HOST_INSTALL_FILES:="@../${TARGET}/lib/libldso.a=${PREFIX}/lib/libldso.a"}; : ${PKG_LDSO_HOST_MAKEFLAGS_BUILD_EXTRA:=STATIC_LIB_NAME=libldso.a}; : ${PKG_LDSO_HOST_MAKEFLAGS_INSTALL_EXTRA:=STATIC_LIB_NAME=libldso.a}; -: ${PKG_PKGCONF_HOST_SHA256SUM:=7ec8b516e655e247f4ba976837cee808134785819ab8f538f652fe919cc6c09f}; -: ${PKG_PKGCONF_HOST_VERSION:=0.9.12}; -: ${PKG_PKGCONF_HOST_URL:=https://github.com/pkgconf/pkgconf/releases/download/pkgconf-${PKG_PKGCONF_HOST_VERSION}/pkgconf-${PKG_PKGCONF_HOST_VERSION}.tar.bz2}; -: ${PKG_PKGCONF_HOST_CONFIGURE_ARGS:="-C --prefix=${PREFIX_NATIVE}"}; -: ${PKG_PKGCONF_HOST_MAKEFLAGS_INSTALL_EXTRA:=prefix=}; -: ${PKG_PKGCONF_HOST_PREFIX:=${PREFIX}}; # -# Build target native_toolchain +# Build target native_toolchain_deps # -NATIVE_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --host=${TARGET} --prefix=/ --target=${TARGET}"; -NATIVE_TOOLCHAIN_PACKAGES=" -slibtool perk pkgconf gmp mpfr mpc libelf binutils binutils_x86_64_w64_mingw32 -musl_native gcc_native gcc_stage1_native_x86_64_w64_mingw32 mdso"; -NATIVE_TOOLCHAIN_PREFIX="${PREFIX_NATIVE}"; +NATIVE_TOOLCHAIN_DEPS_CONFIGURE_ARGS="--disable-nls --host=${TARGET} --prefix=/ --target=${TARGET}"; +NATIVE_TOOLCHAIN_DEPS_PACKAGES=" +slibtool perk pkgconf gmp mpfr mpc libelf"; +NATIVE_TOOLCHAIN_DEPS_PREFIX="${PREFIX_NATIVE}"; : ${PKG_SLIBTOOL_URLS_GIT:="slibtool=git://midipix.org/slibtool"}; : ${PKG_SLIBTOOL_CONFIGURE_ARGS:="--host=${TARGET} --prefix= --target=${TARGET}"}; : ${PKG_PERK_URLS_GIT:="perk=${DEFAULT_GITROOT}/perk"}; @@ -114,6 +116,14 @@ NATIVE_TOOLCHAIN_PREFIX="${PREFIX_NATIVE}"; : ${PKG_LIBELF_VERSION:=0.8.13}; : ${PKG_LIBELF_URL:=http://www.mr511.de/software/libelf-${PKG_LIBELF_VERSION}.tar.gz}; : ${PKG_LIBELF_CONFIGURE_ARGS:="--disable-nls --host=${TARGET} --prefix=${PREFIX_NATIVE} --target=${TARGET}"}; + +# +# Build target native_toolchain +# +NATIVE_TOOLCHAIN_CONFIGURE_ARGS="--disable-nls --host=${TARGET} --prefix=/ --target=${TARGET}"; +NATIVE_TOOLCHAIN_PACKAGES=" +binutils binutils_x86_64_w64_mingw32 musl_native gcc_native gcc_stage1_native_x86_64_w64_mingw32 mdso"; +NATIVE_TOOLCHAIN_PREFIX="${PREFIX_NATIVE}"; : ${PKG_BINUTILS_SHA256SUM:=250d3b2925c6b211fb16173b0b25bc091c58829fbcad3eb849645e0af52cf7fa}; : ${PKG_BINUTILS_VERSION:=2.24.51}; : ${PKG_BINUTILS_URL:=ftp://sourceware.org/pub/binutils/snapshots/binutils-${PKG_BINUTILS_VERSION}.tar.bz2}; @@ -939,7 +949,7 @@ DIST_PACKAGES="dist_etc dist_digest dist_tarballs"; # Build meta-targets # INVARIANTS_TARGET="invariants"; -DEVROOT_TARGET="host_toolchain native_toolchain runtime"; +DEVROOT_TARGET="host_toolchain_deps host_toolchain native_toolchain_deps native_toolchain runtime"; DEV_TARGET="${DEVROOT_TARGET} dev_packages"; WORLD_TARGET="${DEVROOT_TARGET} host_packages lib_packages leaf_packages minipix dist"; ALL_TARGETS="${WORLD_TARGET} devroot dev world";