#
# . ./build.vars and 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
#
pkg_gcc_stage1_all() {
PKG_GCC_VERSION="${PKG_GCC_STAGE1_VERSION}";
export MAKE="make LIBTOOL=slibtool";
# GCC, stage1.
if ! is_build_script_done fetch; then
fetch_git cbb-gcc-${PKG_GCC_VERSION} \
${GITROOT}/cbb/cbb-gcc-${PKG_GCC_VERSION};
set_build_script_done fetch -configure;
fi;
set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross;
export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \
cbb_sysroot_for_libgcc=${PKG_PREFIX} \
cbb_target=${PKG_TARGET} \
cbb_neutral_libiberty=no \
cbb_xgcc_for_specs=${WORKDIR}/${PKG_BUILD_DIR}/gcc/xgcc;
GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}";
GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/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;
if ! is_build_script_done configure; then
insecure_mkdir ${PKG_PREFIX}/include;
[ \! -d ${PKG_PREFIX}/usr ] && \
ln -s -- . ${PKG_PREFIX}/usr;
_configure_args=" \
--disable-sjlj-exceptions \
--prefix=${PREFIX} \
--with-sysroot=${PREFIX}/${PKG_TARGET}";
secure_rm ${PKG_BUILD_DIR};
insecure_mkdir ${PKG_BUILD_DIR};
secure_cd ${PKG_BUILD_DIR};
../cbb-gcc-${PKG_GCC_VERSION}/configure \
--disable-bootstrap \
--disable-libmudflap \
--disable-multilib \
--disable-nls \
--disable-obsolete \
--disable-symvers \
--enable-canonical-system-headers \
--enable-__cxa_atexit \
--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 \
${_configure_args};
set_build_script_done configure clean -build;
else
cd ${PKG_BUILD_DIR};
fi;
if ! is_build_script_done clean; then
make ${MAKEFLAGS} clean;
set_build_script_done clean -build;
fi;
if ! is_build_script_done build; then
make ${MAKEFLAGS} all-gcc;
set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
make ${MAKEFLAGS} install-gcc;
__="$(uname -s)";
if [ "${__#*CYGWIN*}" != "${__}" ]; then
ln -s -- ${PREFIX}/libexec/gcc/${PKG_TARGET}/${PKG_GCC_VERSION}/liblto_plugin.dll.a \
ln -s -- ${PREFIX}/libexec/gcc/${PKG_TARGET}/${PKG_GCC_VERSION}/liblto_plugin.so;
fi;
set_build_script_done install finish;
fi;
};
pkg_gcc_runtime_all() {
PKG_GCC_VERSION="${PKG_GCC_RUNTIME_VERSION}";
export MAKE="make LIBTOOL=slibtool";
set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross;
cd ${PKG_BUILD_DIR};
# GCC, compiler runtime.
if ! is_build_script_done build; then
make ${MAKEFLAGS} all-target-libgcc;
set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
make ${MAKEFLAGS} install-target-libgcc;
set_build_script_done install finish;
fi;
};
pkg_gcc_libstdcpp_v3_all() {
PKG_GCC_VERSION="${PKG_GCC_LIBSTDCPP_V3_VERSION}";
export MAKE="make LIBTOOL=slibtool";
set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross;
cd ${PKG_BUILD_DIR};
# GCC, libstdc++-v3.
if ! is_build_script_done build; then
make ${MAKEFLAGS} all-target-libstdc++-v3;
set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
make ${MAKEFLAGS} install-target-libstdc++-v3;
set_build_script_done install finish;
fi;
};
pkg_gcc_full_all() {
PKG_GCC_VERSION="${PKG_GCC_FULL_VERSION}";
export MAKE="make LIBTOOL=slibtool";
set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross;
cd ${PKG_BUILD_DIR};
# GCC, everything else.
if ! is_build_script_done build; then
make ${MAKEFLAGS};
set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
make ${MAKEFLAGS} install;
set_build_script_done install finish;
fi;
};
pkg_gcc_native_all() {
PKG_GCC_VERSION="${PKG_GCC_NATIVE_VERSION}";
export MAKE="make LIBTOOL=slibtool";
# GCC, native.
set_build_dir cbb-gcc-${PKG_GCC_VERSION} native;
export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \
cbb_sysroot_for_libgcc=${PKG_PREFIX} \
cbb_target=${PKG_TARGET} \
cbb_xgcc_for_specs=${PKG_TARGET}-gcc \
sysroot_headers_suffix=${PKG_PREFIX};
GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}";
GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/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;
if ! is_build_script_done configure; then
insecure_mkdir ${PKG_PREFIX}/${PKG_TARGET};
if [ \! -d ${PKG_PREFIX}/${PKG_TARGET}/usr ]; then
ln -s -- . ${PKG_PREFIX}/${PKG_TARGET}/usr;
fi;
if [ "${ARCH}" = nt32 ]; then
_configure_args="--host=i686-nt32-midipix";
else
_configure_args="--host=x86_64-nt64-midipix";
fi;
_configure_args="${_configure_args} \
--disable-sjlj-exceptions \
--prefix=/ \
--with-elf=${PKG_PREFIX} \
--with-gmp=${PKG_PREFIX} \
--with-mpc=${PKG_PREFIX} \
--with-mpfr=${PKG_PREFIX} \
--with-sysroot=";
secure_rm ${PKG_BUILD_DIR};
insecure_mkdir ${PKG_BUILD_DIR};
secure_cd ${PKG_BUILD_DIR};
../cbb-gcc-${PKG_GCC_VERSION}/configure \
--disable-bootstrap \
--disable-libmudflap \
--disable-multilib \
--disable-nls \
--disable-obsolete \
--disable-symvers \
--enable-canonical-system-headers \
--enable-__cxa_atexit \
--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 \
${_configure_args};
set_build_script_done configure clean -build;
else
cd ${PKG_BUILD_DIR};
fi;
if ! is_build_script_done clean; then
make ${MAKEFLAGS} clean;
set_build_script_done clean -build;
fi;
if ! is_build_script_done build; then
make ${MAKEFLAGS} all-gcc;
make ${MAKEFLAGS} all-target-libgcc;
make ${MAKEFLAGS} all-target-libstdc++-v3;
make ${MAKEFLAGS} all;
set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
make ${MAKEFLAGS} DESTDIR=${PKG_PREFIX} install;
set_build_script_done install finish;
fi;
};
pkg_gcc_stage1_x86_64_w64_mingw32_all() {
if [ ! -L ${PREFIX}/${PKG_TARGET}/mingw ]; then
secure_rm ${PREFIX}/${PKG_TARGET}/mingw;
ln -sf . ${PREFIX}/${PKG_TARGET}/mingw;
fi;
if [ ! -d ${PREFIX}/${PKG_TARGET}/mingw/include ]; then
secure_rm ${PREFIX}/${PKG_TARGET}/mingw/include;
insecure_mkdir ${PREFIX}/${PKG_TARGET}/mingw/include;
fi;
PKG_GCC_VERSION="${PKG_GCC_STAGE1_X86_64_W64_MINGW32_VERSION}";
export MAKE="make LIBTOOL=slibtool";
# GCC, stage1.
if ! is_build_script_done fetch; then
fetch_git cbb-gcc-${PKG_GCC_VERSION} \
${GITROOT}/cbb/cbb-gcc-${PKG_GCC_VERSION};
set_build_script_done fetch -configure;
fi;
set_build_dir cbb-gcc-${PKG_GCC_VERSION}_x86_64_w64_mingw32 cross;
export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \
cbb_sysroot_for_libgcc=${PKG_PREFIX} \
cbb_target=${PKG_TARGET} \
cbb_neutral_libiberty=no \
cbb_xgcc_for_specs=${WORKDIR}/${PKG_BUILD_DIR}/gcc/xgcc;
GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}";
GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/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;
if ! is_build_script_done configure; then
insecure_mkdir ${PKG_PREFIX}/include;
[ \! -d ${PKG_PREFIX}/usr ] && \
ln -s -- . ${PKG_PREFIX}/usr;
_configure_args=" \
--enable-sjlj-exceptions \
--prefix=${PREFIX} \
--with-sysroot=${PREFIX}/${PKG_TARGET} \
--without-headers";
secure_rm ${PKG_BUILD_DIR};
insecure_mkdir ${PKG_BUILD_DIR};
secure_cd ${PKG_BUILD_DIR};
../cbb-gcc-${PKG_GCC_VERSION}/configure \
--disable-bootstrap \
--disable-libmudflap \
--disable-multilib \
--disable-nls \
--disable-obsolete \
--disable-symvers \
--enable-canonical-system-headers \
--enable-__cxa_atexit \
--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 \
${_configure_args};
set_build_script_done configure clean -build;
else
cd ${PKG_BUILD_DIR};
fi;
if ! is_build_script_done clean; then
make ${MAKEFLAGS} clean;
set_build_script_done clean -build;
fi;
if ! is_build_script_done build; then
make ${MAKEFLAGS} all-gcc;
set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
make ${MAKEFLAGS} install-gcc;
__="$(uname -s)";
if [ "${__#*CYGWIN*}" != "${__}" ]; then
ln -s -- ${PREFIX}/libexec/gcc/${PKG_TARGET}/${PKG_GCC_VERSION}/liblto_plugin.dll.a \
ln -s -- ${PREFIX}/libexec/gcc/${PKG_TARGET}/${PKG_GCC_VERSION}/liblto_plugin.so;
fi;
set_build_script_done install finish;
fi;
};
pkg_gcc_native_x86_64_w64_mingw32_all() {
if [ ! -L ${PREFIX}/${PKG_TARGET}/mingw ]; then
secure_rm ${PREFIX}/${PKG_TARGET}/mingw;
ln -sf . ${PREFIX}/${PKG_TARGET}/mingw;
fi;
if [ ! -d ${PREFIX}/${PKG_TARGET}/mingw/include ]; then
secure_rm ${PREFIX}/${PKG_TARGET}/mingw/include;
insecure_mkdir ${PREFIX}/${PKG_TARGET}/mingw/include;
fi;
PKG_GCC_VERSION="${PKG_GCC_NATIVE_X86_W64_MINGW32_VERSION}";
export MAKE="make LIBTOOL=slibtool";
# GCC, native.
set_build_dir cbb-gcc-${PKG_GCC_VERSION}_x86_64_w64_mingw32 native;
export cbb_ldflags_for_target=--sysroot=${PKG_PREFIX} \
cbb_sysroot_for_libgcc=${PKG_PREFIX} \
cbb_target=${PKG_TARGET} \
cbb_xgcc_for_specs=${PKG_TARGET}-gcc \
sysroot_headers_suffix=${PKG_PREFIX};
GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}";
GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/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;
if ! is_build_script_done configure; then
insecure_mkdir ${PKG_PREFIX}/${PKG_TARGET};
if [ \! -d ${PKG_PREFIX}/${PKG_TARGET}/usr ]; then
ln -s -- . ${PKG_PREFIX}/${PKG_TARGET}/usr;
fi;
_configure_args="${_configure_args} \
--build=x86_64-unknown-linux-gnu\
--host=x86_64-nt64-midipix \
--without-headers \
--enable-sjlj-exceptions \
--prefix=/ \
--with-elf=${PKG_PREFIX} \
--with-gmp=${PKG_PREFIX} \
--with-mpc=${PKG_PREFIX} \
--with-mpfr=${PKG_PREFIX} \
--with-sysroot=";
patch -b -d ${PKG_SUBDIR} -p1 < ${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch;
secure_rm ${PKG_BUILD_DIR};
insecure_mkdir ${PKG_BUILD_DIR};
secure_cd ${PKG_BUILD_DIR};
../cbb-gcc-${PKG_GCC_VERSION}/configure \
--disable-bootstrap \
--disable-libmudflap \
--disable-multilib \
--disable-nls \
--disable-obsolete \
--disable-symvers \
--enable-canonical-system-headers \
--enable-__cxa_atexit \
--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 \
${_configure_args};
set_build_script_done configure clean -build;
else
cd ${PKG_BUILD_DIR};
fi;
if ! is_build_script_done clean; then
make ${MAKEFLAGS} clean;
set_build_script_done clean -build;
fi;
if ! is_build_script_done build; then
make ${MAKEFLAGS} all-gcc;
make ${MAKEFLAGS} all-target-libgcc;
make ${MAKEFLAGS} all-target-libstdc++-v3;
make ${MAKEFLAGS} all;
set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
make ${MAKEFLAGS} DESTDIR=${PKG_PREFIX} install;
set_build_script_done install finish;
fi;
};
# vim:filetype=sh