summaryrefslogtreecommitdiffhomepage
path: root/vars/gcc.vars
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2017-12-03 16:10:05 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2017-12-03 16:20:07 +0000
commitec19f02f81c206f54a89ef7e1f49715e90470c31 (patch)
treea4f6a307e70bad5c4a836a18cbf92b6b0afa0b83 /vars/gcc.vars
parent16c9cd223ae1809124a163d13e820f19e18e7edc (diff)
downloadmidipix_build-ec19f02f81c206f54a89ef7e1f49715e90470c31.tar.bz2
midipix_build-ec19f02f81c206f54a89ef7e1f49715e90470c31.tar.xz
Separate front end (build.sh, subr/build_*) from dispatcher.
Diffstat (limited to 'vars/gcc.vars')
-rw-r--r--vars/gcc.vars228
1 files changed, 141 insertions, 87 deletions
diff --git a/vars/gcc.vars b/vars/gcc.vars
index f3b192b8..c5e1f22a 100644
--- a/vars/gcc.vars
+++ b/vars/gcc.vars
@@ -1,31 +1,44 @@
#
# set -o errexit -o noglob are assumed.
-# Order: stage1, runtime, libstdcpp_v3, full, native
-# Order: stage1_x86_64_w64_mingw32, native_x86_64_w64_mingw32
+# Order: stage1_host, runtime_host, libstdcpp_v3_host, full_host, full
+# Order: stage1_mingw32, native_mingw32
#
+pkgp_gcc_build_dir() {
+ PKG_BUILD_DIR="${1}-${2}-${PKG_TARGET}";
+};
+
pkgp_gcc_setup_env() {
local __;
export MAKE="make LIBTOOL=slibtool";
- export cbb_ldflags_for_target=--sysroot="${PKG_PREFIX}" \
- cbb_sysroot_for_libgcc="${PKG_PREFIX}" \
- cbb_target="${PKG_TARGET}";
+ export cbb_target="${PKG_TARGET}";
case "${PKG_NAME}" in
- gcc_stage1)
- export cbb_neutral_libiberty=no \
+ gcc_stage1_host)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PREFIX_CROSS} -midata";
+ export cbb_neutral_libiberty=no \
+ cbb_ldflags_for_target=--sysroot="${PREFIX_CROSS}" \
+ cbb_sysroot_for_libgcc="${PREFIX_CROSS}" \
cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc"; ;;
- gcc_stage1_cross_x86_64_w64_mingw32)
- export cbb_neutral_libiberty=no \
+ gcc_stage1_cross_mingw32)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PREFIX_MINGW32} -midata";
+ export cbb_neutral_libiberty=no \
+ cbb_ldflags_for_target=--sysroot="${PREFIX_MINGW32}" \
+ cbb_sysroot_for_libgcc="${PREFIX_MINGW32}" \
cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc"; ;;
- gcc_stage1_native_x86_64_w64_mingw32)
- export cbb_neutral_libiberty=no \
+ gcc_stage1_native_mingw32)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX} -midata";
+ export cbb_neutral_libiberty=no \
+ cbb_ldflags_for_target=--sysroot="${PKG_PREFIX}" \
+ cbb_sysroot_for_libgcc="${PKG_PREFIX}" \
cbb_xgcc_for_specs="${PKG_TARGET}-gcc"; ;;
- gcc_native)
- export cbb_xgcc_for_specs="${PKG_TARGET}-gcc" \
+ gcc_full)
+ GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX} -midata";
+ export cbb_xgcc_for_specs="${PKG_TARGET}-gcc" \
+ cbb_ldflags_for_target=--sysroot="${PKG_PREFIX}" \
+ cbb_sysroot_for_libgcc="${PKG_PREFIX}" \
sysroot_headers_suffix="${PKG_PREFIX}"; ;;
esac;
- GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX} -midata";
- GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f "${PKG_BASE_DIR}/cbb-gcc-${1}/libc/cbb-musl-pe.h")";
+ GCCFLAGS="${PKG_CFLAGS_CONFIGURE} --include $(readlink -f "${PKG_BASE_DIR}/cbb-gcc-${1}/libc/cbb-musl-pe.h")";
for __ in CFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS CXXFLAGS_FOR_BUILD; do
export "${__}=${GCCFLAGS}";
done;
@@ -39,10 +52,10 @@ pkgp_gcc_setup_env() {
};
pkgp_gcc_configure() {
- ex_build_fileop rm "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
- ex_build_fileop mkdir "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
- ex_build_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
- "../cbb-gcc-${PKG_GCC_VERSION}/configure" "${@}"\
+ ex_rtl_fileop rm "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ ex_rtl_fileop mkdir "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ ex_rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ "../cbb-gcc-${PKG_VERSION}/configure" "${@}"\
--disable-bootstrap \
--disable-libmudflap \
--disable-multilib \
@@ -64,66 +77,68 @@ pkgp_gcc_configure() {
--enable-threads=posix \
--target="${PKG_TARGET}" \
--with-fpmath=sse;
- ex_pkg_state_push "${PKG_NAME}" configure -build;
+ ex_pkg_state_set "${PKG_NAME}" configure -build;
+};
+
+pkg_gcc_stage1_host_all() {
+ pkg_gcc_stage1_all "${@}";
};
-pkg_gcc_stage1_cross_x86_64_w64_mingw32_all() {
+pkg_gcc_stage1_cross_mingw32_all() {
+ ex_rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw";
+ ex_rtl_fileop mkdir "${PKG_DESTDIR}/x86_64-w64-mingw32";
+ ex_rtl_fileop ln_symbolic . "${PKG_DESTDIR}/x86_64-w64-mingw32/mingw";
+ mkdir "${PKG_PREFIX}/x86_64-w64-mingw32/include";
pkg_gcc_stage1_all "${@}";
};
-pkg_gcc_stage1_native_x86_64_w64_mingw32_all() {
- export AR="${TARGET}-ar";
- export CC="${TARGET}-gcc";
- export CXX="${TARGET}-g++";
- export RANLIB="${TARGET}-ranlib";
+pkg_gcc_stage1_native_mingw32_all() {
+ ex_rtl_fileop ln_symbolic . "${PKG_PREFIX}/x86_64-w64-mingw32/mingw";
+ ex_rtl_fileop mkdir "${PKG_DESTDIR}/x86_64-w64-mingw32";
+ ex_rtl_fileop ln_symbolic . "${PKG_DESTDIR}/x86_64-w64-mingw32/mingw";
+ mkdir "${PKG_PREFIX}/x86_64-w64-mingw32/include";
pkg_gcc_stage1_all "${@}";
};
pkg_gcc_stage1_all() {
local __ _restart_at="${1}";
case "${PKG_NAME}" in
- gcc_stage1)
- PKG_GCC_VERSION="${PKG_GCC_STAGE1_VERSION}";
- ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_VERSION}" cross;
+ gcc_stage1_host)
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross;
;;
- gcc_stage1_cross_x86_64_w64_mingw32)
- PKG_GCC_VERSION="${PKG_GCC_STAGE1_CROSS_X86_64_W64_MINGW32_VERSION}";
- ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_VERSION}" cross;
+ gcc_stage1_cross_mingw32)
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" mingw32;
;;
- gcc_stage1_native_x86_64_w64_mingw32)
- PKG_GCC_VERSION="${PKG_GCC_STAGE1_NATIVE_X86_64_W64_MINGW32_VERSION}";
- ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_VERSION}" native;
+ gcc_stage1_native_mingw32)
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" native;
;;
esac;
# GCC, stage1.
if ! ex_pkg_state_test "${PKG_NAME}" fetch "${_restart_at}"; then
- pkg_fetch_git "cbb-gcc-${PKG_GCC_VERSION}=${DEFAULT_GITROOT}/cbb/cbb-gcc-${PKG_GCC_VERSION}";
- ex_pkg_state_push "${PKG_NAME}" fetch -patch;
+ ex_rtl_fetch_urls_git "${PKG_BASE_DIR}" "cbb-gcc-${PKG_VERSION}=${DEFAULT_GITROOT}/cbb/cbb-gcc-${PKG_VERSION}";
+ ex_pkg_state_set "${PKG_NAME}" fetch -patch;
fi;
if ! 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";
fi;
- ex_pkg_state_push "${PKG_NAME}" patch -configure;
+ ex_pkg_state_set "${PKG_NAME}" patch -configure;
fi;
- pkgp_gcc_setup_env "${PKG_GCC_VERSION}";
+ pkgp_gcc_setup_env "${PKG_VERSION}";
if ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}"; then
- ex_build_fileop mkdir "${PKG_PREFIX}/include";
- [ \! -d "${PKG_PREFIX}/usr" ] && \
- ex_build_fileop ln_symbolic . "${PKG_PREFIX}/usr";
case "${PKG_NAME}" in
- gcc_stage1)
+ gcc_stage1_host)
pkgp_gcc_configure \
--disable-sjlj-exceptions \
--prefix="${PREFIX}" \
- --with-sysroot="${PREFIX}/${PKG_TARGET}"; ;;
- gcc_stage1_cross_x86_64_w64_mingw32)
+ --with-sysroot="${PREFIX_CROSS}"; ;;
+ gcc_stage1_cross_mingw32)
pkgp_gcc_configure \
--enable-sjlj-exceptions \
--prefix="${PREFIX}" \
- --with-sysroot="${PREFIX}/${PKG_TARGET}"\
+ --with-sysroot="${PREFIX_MINGW32}" \
--without-headers; ;;
- gcc_stage1_native_x86_64_w64_mingw32)
+ gcc_stage1_native_mingw32)
pkgp_gcc_configure \
--build=x86_64-unknown-linux-gnu \
--enable-sjlj-exceptions \
@@ -137,89 +152,120 @@ pkg_gcc_stage1_all() {
--without-headers; ;;
esac;
else
- ex_build_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ ex_rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
fi;
if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
make ${PKG_MAKEFLAGS_BUILD} all-gcc;
- ex_pkg_state_push "${PKG_NAME}" build -install;
+ ex_pkg_state_set "${PKG_NAME}" build -install;
fi;
- if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
+ if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
+ pkg_install_subdirs;
+ ex_pkg_state_set "${PKG_NAME}" install_subdirs -install_make;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
case "${PKG_NAME}" in
- gcc_stage1)
- make ${PKG_MAKEFLAGS_BUILD} install-gcc; ;;
- gcc_stage1_cross_x86_64_w64_mingw32)
- make ${PKG_MAKEFLAGS_BUILD} install-gcc; ;;
- gcc_stage1_native_x86_64_w64_mingw32)
- make ${PKG_MAKEFLAGS_BUILD} "DESTDIR=${PKG_PREFIX}" install-gcc; ;;
+ gcc_stage1_host)
+ make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" install-gcc; ;;
+ gcc_stage1_cross_mingw32)
+ make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" install-gcc; ;;
+ gcc_stage1_native_mingw32)
+ make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" install-gcc; ;;
esac;
__="$(uname -s)";
if [ "${__#*CYGWIN*}" != "${__}" ]; then
- ex_build_fileop ln_symbolic "${PREFIX}/libexec/gcc/${PKG_TARGET}/${PKG_GCC_VERSION}/liblto_plugin.dll.a" \
- ex_build_fileop ln_symbolic "${PREFIX}/libexec/gcc/${PKG_TARGET}/${PKG_GCC_VERSION}/liblto_plugin.so";
+ ex_rtl_fileop ln_symbolic "${PKG_DESTDIR}/libexec/gcc/${PKG_TARGET}/${PKG_VERSION}/liblto_plugin.dll.a" \
+ ex_rtl_fileop ln_symbolic "${PKG_DESTDIR}/libexec/gcc/${PKG_TARGET}/${PKG_VERSION}/liblto_plugin.so";
fi;
- ex_pkg_state_push "${PKG_NAME}" install finish;
+ ex_pkg_state_set "${PKG_NAME}" install_make -install;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
+ pkg_install;
+ ex_pkg_state_set "${PKG_NAME}" install finish;
fi;
};
-pkg_gcc_runtime_all() {
+pkg_gcc_runtime_host_all() {
local _restart_at="${1}";
export MAKE="make LIBTOOL=slibtool";
- ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_RUNTIME_VERSION}" cross;
- ex_build_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross;
+ ex_rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
# GCC, compiler runtime.
if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
make ${PKG_MAKEFLAGS_BUILD} all-target-libgcc;
- ex_pkg_state_push "${PKG_NAME}" build -install;
+ ex_pkg_state_set "${PKG_NAME}" build -install;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
+ pkg_install_subdirs;
+ ex_pkg_state_set "${PKG_NAME}" install_subdirs -install_make;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
+ make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" install-target-libgcc;
+ ex_pkg_state_set "${PKG_NAME}" install_make -install;
fi;
if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} install-target-libgcc;
- ex_pkg_state_push "${PKG_NAME}" install finish;
+ pkg_install;
+ ex_pkg_state_set "${PKG_NAME}" install finish;
fi;
};
-pkg_gcc_libstdcpp_v3_all() {
+pkg_gcc_libstdcpp_v3_host_all() {
local _restart_at="${1}";
export MAKE="make LIBTOOL=slibtool";
- ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_LIBSTDCPP_V3_VERSION}" cross;
- ex_build_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross;
+ ex_rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
# GCC, libstdc++-v3.
if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
make ${PKG_MAKEFLAGS_BUILD} all-target-libstdc++-v3;
- ex_pkg_state_push "${PKG_NAME}" build -install;
+ ex_pkg_state_set "${PKG_NAME}" build -install;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
+ pkg_install_subdirs;
+ ex_pkg_state_set "${PKG_NAME}" install_subdirs -install_make;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
+ make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" install-target-libstdc++-v3;
+ ex_pkg_state_set "${PKG_NAME}" install_make -install;
fi;
if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} install-target-libstdc++-v3;
- ex_pkg_state_push "${PKG_NAME}" install finish;
+ pkg_install;
+ ex_pkg_state_set "${PKG_NAME}" install finish;
fi;
};
-pkg_gcc_full_all() {
+pkg_gcc_full_host_all() {
local _restart_at="${1}";
export MAKE="make LIBTOOL=slibtool";
- ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_FULL_VERSION}" cross;
- ex_build_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" cross;
+ ex_rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
# GCC, everything else.
if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
make ${PKG_MAKEFLAGS_BUILD};
- ex_pkg_state_push "${PKG_NAME}" build -install;
+ ex_pkg_state_set "${PKG_NAME}" build -install;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
+ pkg_install_subdirs;
+ ex_pkg_state_set "${PKG_NAME}" install_subdirs -install_make;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
+ make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" install;
+ ex_pkg_state_set "${PKG_NAME}" install_make -install;
fi;
if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} install;
- ex_pkg_state_push "${PKG_NAME}" install finish;
+ pkg_install;
+ ex_pkg_state_set "${PKG_NAME}" install finish;
fi;
};
-pkg_gcc_native_all() {
+pkg_gcc_full_all() {
local _restart_at="${1}" _configure_host;
- PKG_GCC_VERSION="${PKG_GCC_NATIVE_VERSION}";
export MAKE="make LIBTOOL=slibtool";
# GCC, native.
- ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_VERSION}" native;
- pkgp_gcc_setup_env "${PKG_GCC_VERSION}";
+ pkgp_gcc_build_dir "cbb-gcc-${PKG_VERSION}" native;
+ pkgp_gcc_setup_env "${PKG_VERSION}";
if ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}"; then
- ex_build_fileop mkdir "${PKG_PREFIX}/${PKG_TARGET}";
+ ex_rtl_fileop mkdir "${PKG_PREFIX}/${PKG_TARGET}";
if [ \! -d "${PKG_PREFIX}/${PKG_TARGET}/usr" ]; then
- ex_build_fileop ln_symbolic . "${PKG_PREFIX}/${PKG_TARGET}/usr";
+ ex_rtl_fileop ln_symbolic . "${PKG_PREFIX}/${PKG_TARGET}/usr";
fi;
if [ "${ARCH}" = nt32 ]; then
_configure_host="i686-nt32-midipix";
@@ -236,18 +282,26 @@ pkg_gcc_native_all() {
--with-mpfr="${PKG_PREFIX}" \
--with-sysroot=;
else
- ex_build_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
+ ex_rtl_fileop cd "${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
fi;
if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then
make ${PKG_MAKEFLAGS_BUILD} all-gcc;
make ${PKG_MAKEFLAGS_BUILD} all-target-libgcc;
make ${PKG_MAKEFLAGS_BUILD} all-target-libstdc++-v3;
make ${PKG_MAKEFLAGS_BUILD} all;
- ex_pkg_state_push "${PKG_NAME}" build -install;
+ ex_pkg_state_set "${PKG_NAME}" build -install;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_subdirs "${_restart_at}"; then
+ pkg_install_subdirs;
+ ex_pkg_state_set "${PKG_NAME}" install_subdirs -install_make;
+ fi;
+ if ! ex_pkg_state_test "${PKG_NAME}" install_make "${_restart_at}"; then
+ make ${PKG_MAKEFLAGS_BUILD} "prefix=${PKG_DESTDIR}" install;
+ ex_pkg_state_set "${PKG_NAME}" install_make -install;
fi;
if ! ex_pkg_state_test "${PKG_NAME}" install "${_restart_at}"; then
- make ${PKG_MAKEFLAGS_BUILD} "DESTDIR=${PKG_PREFIX}" install;
- ex_pkg_state_push "${PKG_NAME}" install finish;
+ pkg_install;
+ ex_pkg_state_set "${PKG_NAME}" install finish;
fi;
};