Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
#
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
# . ./build.vars and set -o errexit -o noglob are assumed.
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
#
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
lalbornoz 340f4c
# Order: stage1, runtime, full, native
lalbornoz 340f4c
Lucio Andrés Illanes Albornoz (arab, vxp) c4f002
export MAKE="make LIBTOOL=slibtool";
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
if [ "${3}" = runtime ]\
Lucio Andrés Illanes Albornoz (arab, vxp) 990c25
||   [ "${3}" = libstdc++-v3 ]\
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
||   [ "${3}" = full ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) c49754
	set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross;
Lucio Andrés Illanes Albornoz (arab, vxp) 392fef
	cd ${PKG_BUILD_DIR};
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
	if [ "${3}" = runtime ]; then
lalbornoz 340f4c
		# GCC, compiler runtime.
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		if ! is_build_script_done build; then
lalbornoz 340f4c
			make ${MAKEFLAGS} all-target-libgcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			set_build_script_done build -install;
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		if ! is_build_script_done install; then
lalbornoz 340f4c
			make ${MAKEFLAGS} install-target-libgcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			set_build_script_done install finish;
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
	elif [ "${3}" = libstdc++-v3 ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
		# GCC, libstdc++-v3.
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
		if ! is_build_script_done build; then
lalbornoz 340f4c
			make ${MAKEFLAGS} all-target-libstdc++-v3;
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
			set_build_script_done build -install;
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
		if ! is_build_script_done install; then
lalbornoz 340f4c
			make ${MAKEFLAGS} install-target-libstdc++-v3;
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
			set_build_script_done install finish;
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
	elif [ "${3}" = full ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
		# GCC, everything else.
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
		if ! is_build_script_done build; then
lalbornoz 340f4c
			make ${MAKEFLAGS};
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
			set_build_script_done build -install;
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
		if ! is_build_script_done install; then
lalbornoz 340f4c
			make ${MAKEFLAGS} install;
Lucio Andrés Illanes Albornoz (arab, vxp) 806c98
			set_build_script_done install finish;
lalbornoz 340f4c
		fi;
lalbornoz 340f4c
	fi;
lalbornoz 340f4c
else
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
	if [ "${3}" = stage1 ]; then
lalbornoz 340f4c
		# GCC, stage1.
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		if ! is_build_script_done fetch; then
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			fetch_git cbb-gcc-${PKG_GCC_VERSION}		\
Lucio Andrés Illanes Albornoz (arab, vxp) 0724e5
				${GITROOT}/cbb/cbb-gcc-${PKG_GCC_VERSION};
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			set_build_script_done fetch -configure;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) c49754
		set_build_dir cbb-gcc-${PKG_GCC_VERSION} cross;
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
		export	cbb_ldflags_for_target=--sysroot=${PKG_PREFIX}	\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
			cbb_sysroot_for_libgcc=${PKG_PREFIX}		\
Lucio Andrés Illanes Albornoz (arab, vxp) f9c386
			cbb_target=${TARGET}				\
Lucio Andrés Illanes Albornoz (arab, vxp) f9c386
			cbb_neutral_libiberty=no			\
Lucio Andrés Illanes Albornoz (arab, vxp) 392fef
			cbb_xgcc_for_specs=${WORKDIR}/${PKG_BUILD_DIR}/gcc/xgcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
		GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}";
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
	elif [ "${3}" = native ]; then
lalbornoz 340f4c
		# GCC, native.
Lucio Andrés Illanes Albornoz (arab, vxp) 6e940c
		set_build_dir cbb-gcc-${PKG_GCC_VERSION} native;
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
		export 	cbb_ldflags_for_target=--sysroot=${PKG_PREFIX}	\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
			cbb_sysroot_for_libgcc=${PKG_PREFIX}		\
Lucio Andrés Illanes Albornoz (arab, vxp) f9c386
			cbb_target=${TARGET}				\
Lucio Andrés Illanes Albornoz (arab, vxp) 6e940c
			cbb_xgcc_for_specs=${TARGET}-gcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
		GCCTARGET_FLAGS="-DIN_TARGET_LIBRARY_BUILD --sysroot=${PKG_PREFIX}";
lalbornoz 340f4c
	fi;
Lucio Andrés Illanes Albornoz (arab, vxp) bd43d0
	GCCFLAGS="${CFLAGS:+${CFLAGS} }--include $(readlink -f ${WORKDIR}/cbb-gcc-${PKG_GCC_VERSION}/libc/cbb-musl-pe.h)";
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
	for __ in CFLAGS CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD CXXFLAGS CXXFLAGS_FOR_BUILD; do
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
		export "${__}=${GCCFLAGS}";
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
	done;
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
	for __ in CFLAGS_FOR_TARGET CPPFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LIBCFLAGS_FOR_TARGET XGCC_FLAGS_FOR_TARGET; do
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
		export "${__}=${GCCTARGET_FLAGS}";
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
	done;
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
	for __ in cbb_cflags_for_stage1 cbb_cflags_for_stage2 cbb_cflags_for_stage3 cbb_cflags_for_stage4; do
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
		export "${__}=${CFLAGS_FOR_BUILD}" ;
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
	done;
lalbornoz 340f4c
	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;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
	if ! is_build_script_done configure; then
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
		if [ "${3}" = stage1 ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) afe7b9
			insecure_mkdir ${PKG_PREFIX}/include;
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
			[ \! -d ${PKG_PREFIX}/usr ] &&			\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
				ln -s -- . ${PKG_PREFIX}/usr;
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
			_configure_args="--prefix=${PREFIX} --with-sysroot=${PKG_PREFIX}";
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
		elif [ "${3}" = native ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) afe7b9
			insecure_mkdir ${PKG_PREFIX}/${TARGET};
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
			if [ \! -d ${PKG_PREFIX}/${TARGET}/usr ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
				ln -s -- . ${PKG_PREFIX}/${TARGET}/usr;
lalbornoz 340f4c
			fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
			if [ "${ARCH}" = nt32 ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
				_configure_args="--host=i686-nt32-midipix";
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
			else
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
				_configure_args="--host=x86_64-nt64-midipix";
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
			fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 951620
			_configure_args="${_configure_args}	\
lalbornoz 340f4c
				--prefix=/			\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
				--with-elf=${PKG_PREFIX}	\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
				--with-gmp=${PKG_PREFIX}	\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
				--with-mpc=${PKG_PREFIX}	\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
				--with-mpfr=${PKG_PREFIX}	\
lalbornoz 340f4c
				--with-sysroot=";
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) afe7b9
		secure_rm ${PKG_BUILD_DIR};
Lucio Andrés Illanes Albornoz (arab, vxp) afe7b9
		insecure_mkdir ${PKG_BUILD_DIR};
Lucio Andrés Illanes Albornoz (arab, vxp) afe7b9
		secure_cd ${PKG_BUILD_DIR};
Lucio Andrés Illanes Albornoz (arab, vxp) 6e940c
		../cbb-gcc-${PKG_GCC_VERSION}/configure		\
lalbornoz 340f4c
			--disable-bootstrap			\
lalbornoz 340f4c
			--disable-libmudflap			\
lalbornoz 340f4c
			--disable-multilib			\
lalbornoz 340f4c
			--disable-nls				\
lalbornoz 340f4c
			--disable-obsolete			\
lalbornoz 340f4c
			--disable-sjlj-exceptions		\
lalbornoz 340f4c
			--disable-symvers			\
lalbornoz 340f4c
			--enable-canonical-system-headers	\
lalbornoz 340f4c
			--enable-__cxa_atexit			\
lalbornoz 340f4c
			--enable-debug				\
lalbornoz 340f4c
			--enable-gnu-indirect-function		\
lalbornoz 340f4c
			--enable-gnu-unique-object		\
lalbornoz 340f4c
			--enable-initfini-array			\
lalbornoz 340f4c
			--enable-languages=c,c++,objc,lto	\
lalbornoz 340f4c
			--enable-libstdcxx-debug		\
lalbornoz 340f4c
			--enable-lto				\
lalbornoz 340f4c
			--enable-multiarch			\
lalbornoz 340f4c
			--enable-secureplt			\
lalbornoz 340f4c
			--enable-shared				\
lalbornoz 340f4c
			--enable-threads=posix			\
lalbornoz 340f4c
			--target=${TARGET}			\
lalbornoz 340f4c
			--with-fpmath=sse			\
lalbornoz 340f4c
			${_configure_args};
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		set_build_script_done configure clean -build;
lalbornoz 340f4c
	else
Lucio Andrés Illanes Albornoz (arab, vxp) 392fef
		cd ${PKG_BUILD_DIR};
lalbornoz 340f4c
	fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
	if ! is_build_script_done clean; then
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		make ${MAKEFLAGS} clean;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		set_build_script_done clean -build;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
	fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
	if ! is_build_script_done build; then
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
		if [ "${3}" = stage1 ]; then
lalbornoz 340f4c
			make ${MAKEFLAGS} all-gcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
		elif [ "${3}" = native ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			make ${MAKEFLAGS} all-gcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			make ${MAKEFLAGS} all-target-libgcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			make ${MAKEFLAGS} all-target-libstdc++-v3;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
			make ${MAKEFLAGS} all;
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		set_build_script_done build -install;
lalbornoz 340f4c
	fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
	if ! is_build_script_done install; then
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
		if [ "${3}" = stage1 ]; then
lalbornoz 340f4c
			make ${MAKEFLAGS} install-gcc;
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
			__="$(uname -s)";
Lucio Andrés Illanes Albornoz (arab, vxp) 672107
			if [ "${__#*CYGWIN*}" != "${__}" ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
				ln -s -- ${PREFIX}/libexec/gcc/${TARGET}/${PKG_GCC_VERSION}/liblto_plugin.dll.a	\
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
					ln -s -- ${PREFIX}/libexec/gcc/${TARGET}/${PKG_GCC_VERSION}/liblto_plugin.so;
Lucio Andrés Illanes Albornoz (arab, vxp) 41d5cc
			fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 9ba5d3
		elif [ "${3}" = native ]; then
Lucio Andrés Illanes Albornoz (arab, vxp) 820be1
			make ${MAKEFLAGS} DESTDIR=${PKG_PREFIX} install;
lalbornoz 340f4c
		fi;
Lucio Andrés Illanes Albornoz (arab, vxp) 1d0876
		set_build_script_done install finish;
lalbornoz 340f4c
	fi;
lalbornoz 340f4c
fi;
lalbornoz 340f4c
lalbornoz 340f4c
# vim:filetype=sh