# Template build file for 'mingw-w64-libgcc'
#
pkgname=mingw-w64-libgcc
_majorver=4.6
version=${_majorver}.1
revision=2
distfiles=http://ftp.gnu.org/pub/gnu/gcc/gcc-$version/gcc-$version.tar.bz2
hostmakedepends="flex"
makedepends="mingw-w64-binutils mingw-w64-headers mingw-w64-gcc mingw-w64-crt"
if [ "$XBPS_MACHINE" = "x86_64" ]; then
	makedepends+=" gcc-multilib"
fi
short_desc="The GNU C Compiler (libs for mingw-w64)"
maintainer="davehome <davehome@redthumb.info.tm>"
homepage="http://mingw-w64.sourceforge.net/"
license="GFDL-1.2, GPL-3, LGPL-2.1"
checksum=8eebf51c908151d1f1a3756c8899c5e71572e8469a547ad72a1ef16a08a31b59
long_desc="
 The GNU C Compiler suite, with support for C, C++, ObjC and ObjC++. (libs)

 This is the mingw-64 cross-compiler, which supports building code for Win32
 or Win64 (multilib).  For the i686 platform, only 32bit is available."

_mingwprefix=/opt

if [ "${XBPS_MACHINE}" = "x86_64" ]; then
	_triplet="${XBPS_MACHINE}-unknown-linux-gnu"
	_mingwtriplet="${XBPS_MACHINE}-w64-mingw32"
	_multilib_args="--enable-targets=all --enable-multilib"
	_multilib_args="${_multilib_args} --enable-64bit --enable-32bit"
else
	_triplet="${XBPS_MACHINE}-pc-linux-gnu"
	_mingwtriplet="${XBPS_MACHINE}-w64-mingw32"
	_multilib_args="--disable-multilib --disable-64bit --enable-32bit"
fi

strip_cmd=${_mingwprefix}/bin/${_mingwtriplet}-strip
wrksrc=gcc-${version}
build_wrksrc=${pkgname}-build

do_build() {
	# As specified in the LFS book, disable installing libiberty.
	sed -i 's/install_to_$(INSTALL_DEST) //' ${wrksrc}/libiberty/Makefile.in
	# Do not run fixincludes
	sed -i 's@\./fixinc\.sh@-c true@' ${wrksrc}/gcc/Makefile.in

	unset LD_LIBRARY_PATH LDLIBPATH LDFLAGS CPPFLAGS
	local SAVEDPATH=$PATH
	export PATH="/opt/bin:/usr/local/bin:/usr/local/sbin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin"
	
	# This is set just in case
	export RANLIB=${_mingwprefix}/bin/${_mingwtriplet}-ranlib

	../configure --prefix=${_mingwprefix} --with-sysroot=${_mingwprefix} \
		--bindir=${_mingwprefix}/bin --target=${_mingwtriplet} \
		${_multilib_args} --enable-threads=win32 --disable-win32-registry \
		--enable-version-specific-runtime-libs --enable-__cxa_atexit \
		--enable-languages=c,c++,objc,obj-c++,lto --enable-tls \
		--with-mpfr=$XBPS_MASTERDIR/usr --with-gmp=$XBPS_MASTERDIR/usr \
		--with-ppl=${XBPS_MASTERDIR}/usr --with-cloog=${XBPS_MASTERDIR}/usr \
		--with-system-zlib --enable-static --disable-shared --enable-lto \
		--enable-linker-build-id --enable-gnu-unique-object \
		--enable-checking=release --disable-nls --disable-bootstrap \
		--libdir=${_mingwprefix}/lib --libexecdir=${_mingwprefix}/lib


	make ${makejobs} all-target

	export PATH=$SAVEDPATH
	unset RANLIB
}

do_install() {
	export RANLIB=${_mingwprefix}/bin/${_mingwtriplet}-ranlib

	# These make targets prevent anything from all-gcc from being installed
	# Therefore, no conflicts with mingw-w64-gcc package.. perfect.
	make DESTDIR=${DESTDIR} ${makejobs} installdirs install-target

	# Run ranlib on the *.a libs
	# The compile/install targets don't do this automagically 
	cd ${wrksrc}/${build_wrksrc} && \
		${RANLIB} `find | grep -E "\.a$" | xargs`

	unset RANLIB
	
	# Remove useless manpages
	rm -rf ${DESTDIR}/${_mingwprefix}/share
}

mingw-w64-libgcc_package() {
	pkg_install() {
		vmove opt
	}
}