summaryrefslogtreecommitdiffhomepage
path: root/vars/gcc.vars
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2017-01-30 18:50:20 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2017-01-30 23:09:41 +0000
commit570129106f694bef52e07a5fc08f6c63f7f54073 (patch)
tree3adbc4836865dd61a54ab60c3ce270d597d50a80 /vars/gcc.vars
parent99690f1bad0f1a8621f5bbc706a8ef0ba033ee68 (diff)
downloadmidipix_build-570129106f694bef52e07a5fc08f6c63f7f54073.tar.bz2
midipix_build-570129106f694bef52e07a5fc08f6c63f7f54073.tar.xz
build.sh: 2nd refactoring pt. I.
build/{gcc,musl}.*.build: refactored into vars/{gcc,musl}.*.build. build/pkg.build: merged w/ build.sh (structurally) and refactored into subr/pkg_*.subr (implementations.) patches/gcc_native_x86_64_w64_mingw32.local.patch: fix wrong filename. subr/build.subr: merges source_scripts() into build.sh. subr/pkg.subr: accept either of ${PKG_..._{URL,VERSION}} when checking for missing entries in var/build.vars. vars/build.vars: adds vars for {gcc,musl}_*. vars/psxstub.vars: convert to pkg_..._all(); call pkg_fetch().
Diffstat (limited to 'vars/gcc.vars')
-rw-r--r--vars/gcc.vars413
1 files changed, 413 insertions, 0 deletions
diff --git a/vars/gcc.vars b/vars/gcc.vars
new file mode 100644
index 00000000..b62ccebd
--- /dev/null
+++ b/vars/gcc.vars
@@ -0,0 +1,413 @@
+#
+# . ./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