| |
| |
| |
| |
| |
| |
| 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}"; |
| case "${PKG_NAME}" in |
| gcc_stage1) |
| export cbb_neutral_libiberty=no \ |
| cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc"; ;; |
| gcc_stage1_cross_x86_64_w64_mingw32) |
| export cbb_neutral_libiberty=no \ |
| cbb_xgcc_for_specs="${PKG_BASE_DIR}/${PKG_BUILD_DIR}/gcc/xgcc"; ;; |
| gcc_stage1_native_x86_64_w64_mingw32) |
| export cbb_neutral_libiberty=no \ |
| cbb_xgcc_for_specs="${PKG_TARGET}-gcc"; ;; |
| gcc_native) |
| export cbb_xgcc_for_specs="${PKG_TARGET}-gcc" \ |
| 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")"; |
| for __ in CFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS CXXFLAGS_FOR_BUILD; do |
| export "${__}=${GCCFLAGS}"; |
| done; |
| for __ in CFLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET; do |
| export "${__}=${GCCTARGET_FLAGS}"; |
| done; |
| for __ in cbb_cflags_for_stage1 cbb_cflags_for_stage2 cbb_cflags_for_stage3 cbb_cflags_for_stage4; do |
| export "${__}=${CFLAGS_FOR_BUILD}" ; |
| done; |
| export CFLAGS CXXFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET; |
| }; |
| |
| 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" "${@}"\ |
| --disable-bootstrap \ |
| --disable-libmudflap \ |
| --disable-multilib \ |
| --disable-nls \ |
| --disable-obsolete \ |
| --disable-symvers \ |
| --enable-__cxa_atexit \ |
| --enable-canonical-system-headers \ |
| --enable-debug \ |
| --enable-gnu-indirect-function \ |
| --enable-gnu-unique-object \ |
| --enable-initfini-array \ |
| --enable-languages=c,c++,objc,lto \ |
| --enable-libstdcxx-debug \ |
| --enable-lto \ |
| --enable-multiarch \ |
| --enable-secureplt \ |
| --enable-shared \ |
| --enable-threads=posix \ |
| --target="${PKG_TARGET}" \ |
| --with-fpmath=sse; |
| ex_pkg_state_push "${PKG_NAME}" configure -build; |
| }; |
| |
| pkg_gcc_stage1_cross_x86_64_w64_mingw32_all() { |
| 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_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_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_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; |
| ;; |
| esac; |
| |
| 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; |
| 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; |
| fi; |
| pkgp_gcc_setup_env "${PKG_GCC_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) |
| pkgp_gcc_configure \ |
| --disable-sjlj-exceptions \ |
| --prefix="${PREFIX}" \ |
| --with-sysroot="${PREFIX}/${PKG_TARGET}"; ;; |
| gcc_stage1_cross_x86_64_w64_mingw32) |
| pkgp_gcc_configure \ |
| --enable-sjlj-exceptions \ |
| --prefix="${PREFIX}" \ |
| --with-sysroot="${PREFIX}/${PKG_TARGET}"\ |
| --without-headers; ;; |
| gcc_stage1_native_x86_64_w64_mingw32) |
| pkgp_gcc_configure \ |
| --build=x86_64-unknown-linux-gnu \ |
| --enable-sjlj-exceptions \ |
| --host=x86_64-nt64-midipix \ |
| --prefix=/ \ |
| --with-elf="${PKG_PREFIX}" \ |
| --with-gmp="${PKG_PREFIX}" \ |
| --with-mpc="${PKG_PREFIX}" \ |
| --with-mpfr="${PKG_PREFIX}" \ |
| --with-sysroot= \ |
| --without-headers; ;; |
| esac; |
| else |
| ex_build_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; |
| fi; |
| if ! ex_pkg_state_test "${PKG_NAME}" install "${_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; ;; |
| 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"; |
| fi; |
| ex_pkg_state_push "${PKG_NAME}" install finish; |
| fi; |
| }; |
| |
| pkg_gcc_runtime_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}"; |
| |
| 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; |
| 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; |
| fi; |
| }; |
| |
| pkg_gcc_libstdcpp_v3_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}"; |
| |
| 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; |
| 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; |
| fi; |
| }; |
| |
| pkg_gcc_full_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}"; |
| |
| if ! ex_pkg_state_test "${PKG_NAME}" build "${_restart_at}"; then |
| make ${PKG_MAKEFLAGS_BUILD}; |
| ex_pkg_state_push "${PKG_NAME}" build -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; |
| fi; |
| }; |
| |
| pkg_gcc_native_all() { |
| local _restart_at="${1}" _configure_host; |
| PKG_GCC_VERSION="${PKG_GCC_NATIVE_VERSION}"; |
| export MAKE="make LIBTOOL=slibtool"; |
| |
| ex_pkg_state_build_dir "cbb-gcc-${PKG_GCC_VERSION}" native; |
| pkgp_gcc_setup_env "${PKG_GCC_VERSION}"; |
| if ! ex_pkg_state_test "${PKG_NAME}" configure "${_restart_at}"; then |
| ex_build_fileop mkdir "${PKG_PREFIX}/${PKG_TARGET}"; |
| if [ \! -d "${PKG_PREFIX}/${PKG_TARGET}/usr" ]; then |
| ex_build_fileop ln_symbolic . "${PKG_PREFIX}/${PKG_TARGET}/usr"; |
| fi; |
| if [ "${ARCH}" = nt32 ]; then |
| _configure_host="i686-nt32-midipix"; |
| else |
| _configure_host="x86_64-nt64-midipix"; |
| fi; |
| pkgp_gcc_configure \ |
| --disable-sjlj-exceptions \ |
| --host="${_configure_host}" \ |
| --prefix=/ \ |
| --with-elf="${PKG_PREFIX}" \ |
| --with-gmp="${PKG_PREFIX}" \ |
| --with-mpc="${PKG_PREFIX}" \ |
| --with-mpfr="${PKG_PREFIX}" \ |
| --with-sysroot=; |
| else |
| ex_build_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; |
| 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; |
| fi; |
| }; |
| |
| |