# # . ./build.vars and set -o errexit are assumed. # # Order: stage1, runtime, full, native if [ "x${3}" = "xruntime" ]\ || [ "x${3}" = "xfull" ]; then set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross; cd ${BUILD_DIR}; if [ "x${3}" = "xruntime" ]; then # 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; elif [ "x${3}" = "xfull" ]; then # GCC, everything else. if ! is_build_script_done build1; then make ${MAKEFLAGS} all-target-libstdc++-v3; set_build_script_done build1 -install1; fi; if ! is_build_script_done install1; then make ${MAKEFLAGS} install-target-libstdc++-v3; set_build_script_done install1 -build2; fi; if ! is_build_script_done build2; then make ${MAKEFLAGS}; set_build_script_done build2 -install2; fi; if ! is_build_script_done install2; then make ${MAKEFLAGS} install; set_build_script_done install2 finish; fi; fi; else if [ "x${3}" = "xstage1" ]; then # GCC, stage1. if ! is_build_script_done fetch; then rm_if_exists cbb-gcc-${PKG_GCC_VERSION}; 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=${PREFIX_LVL} \ cbb_sysroot_for_libgcc=${PREFIX_LVL} \ cbb_target=${TARGET} \ cbb_neutral_libiberty=no \ cbb_xgcc_for_specs=${WORKDIR}/${BUILD_DIR}/gcc/xgcc; GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PREFIX_LVL}"; elif [ "x${3}" = "xnative" ]; then # GCC, native. set_build_dir cbb-gcc-${PKG_GCC_VERSION} native; export cbb_ldflags_for_target=--sysroot=${PREFIX_LVL} \ cbb_sysroot_for_libgcc=${PREFIX_LVL} \ cbb_target=${TARGET} \ cbb_xgcc_for_specs=${TARGET}-gcc; GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PREFIX_LVL}"; fi; GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/libc/cbb-musl-pe.h)"; set_env_vars "${GCCFLAGS}" CFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS CXXFLAGS_FOR_BUILD; set_env_vars "${GCCTARGET_FLAGS}" CFLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET; set_env_vars "${CFLAGS_FOR_BUILD}" cbb_cflags_for_stage1 cbb_cflags_for_stage2 cbb_cflags_for_stage3 cbb_cflags_for_stage4; 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 if [ "x${3}" = "xstage1" ]; then mkdir -p ${PREFIX_LVL}/include; [ \! -d ${PREFIX_LVL}/usr ] && \ ln -s . ${PREFIX_LVL}/usr; _configure_args="--prefix=${PREFIX} --with-sysroot=${PREFIX_LVL}"; elif [ "x${3}" = "xnative" ]; then mkdir -p ${PREFIX_LVL}/${TARGET}; if [ \! -d ${PREFIX_LVL}/${TARGET}/usr ]; then ln -s . ${PREFIX_LVL}/${TARGET}/usr; fi; _configure_args=" \ --host=x86_64-nt64-midipix \ --prefix=/ \ --with-elf=${PREFIX_LVL} \ --with-gmp=${PREFIX_LVL} \ --with-mpc=${PREFIX_LVL} \ --with-mpfr=${PREFIX_LVL} \ --with-sysroot="; fi; rm_if_exists -m -c ${BUILD_DIR}; ../cbb-gcc-${PKG_GCC_VERSION}/configure \ --disable-bootstrap \ --disable-libmudflap \ --disable-multilib \ --disable-nls \ --disable-obsolete \ --disable-sjlj-exceptions \ --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=${TARGET} \ --with-fpmath=sse \ ${_configure_args}; set_build_script_done configure clean -build; else cd ${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 if [ "x${3}" = "xstage1" ]; then make ${MAKEFLAGS} all-gcc; elif [ "x${3}" = "xnative" ]; then make ${MAKEFLAGS} all-gcc; make ${MAKEFLAGS} all-target-libgcc; make ${MAKEFLAGS} all-target-libstdc++-v3; make ${MAKEFLAGS} all; fi; set_build_script_done build -install; fi; if ! is_build_script_done install; then if [ "x${3}" = "xstage1" ]; then make ${MAKEFLAGS} install-gcc; elif [ "x${3}" = "xnative" ]; then make ${MAKEFLAGS} DESTDIR=${PREFIX_LVL} install; fi; set_build_script_done install finish; fi; fi; # vim:filetype=sh