# Description: GDC is a D language front end for the GNU Compiler Collection.
# URL: http://dgcc.sourceforge.net/
# Maintainer: Danny Rawlins, romster at shortcircuit dot net dot au
# Packager: Danny Rawlins, romster at shortcircuit dot net dot au
# Depends on:
# Nice To Have: distcc ccache

name=gdc
version=0.24
gcc_version=4.1.2
release=1
source=(http://dl.sourceforge.net/sourceforge/dgcc/gdc-$version-src.tar.bz2 \
	ftp://ftp.gnu.org/pub/gnu/gcc/gcc-$gcc_version/gcc-{core,g++}-$gcc_version.tar.bz2 \
	gdc-$gcc_version-nocheck-fixincludes.patch \
	gdc-$gcc_version-fixinc.patch)

build() {
	patch -d gcc-$gcc_version -p1 -i $SRC/gdc-$gcc_version-nocheck-fixincludes.patch
	patch -d gcc-$gcc_version -p1 -i $SRC/gdc-$gcc_version-fixinc.patch

	sed -i -e 's|VERSUFFIX ""|VERSUFFIX " (CRUX)"|' \
		gcc-$gcc_version/gcc/version.c

	mkdir build
	cd build
	mv $SRC/d $SRC/gcc-$gcc_version/gcc/d

	(
		cd ../gcc-$gcc_version
		./gcc/d/setup-gcc.sh
	)
	
	../gcc-$gcc_version/configure \
		--prefix=/usr \
		--libexecdir=/usr/lib \
		--enable-languages=d \
		--enable-threads=posix \
		--enable-__cxa_atexit \
		--enable-clocale=gnu \
		--enable-shared \
		--disable-nls \
		--with-x=no

	make bootstrap
	make check
	make DESTDIR=$PKG install

	rm \
		$PKG/usr/lib/libiberty.a \
		$PKG/usr/bin/*-linux-gnu-* \
		$PKG/usr/lib/gcc/*/$gcc_version/include/README \
		$PKG/usr/man/man1/{cpp,gcc,gcov}.1
		
	rm -r \
		$PKG/usr/info \
		$PKG/usr/lib/gcc/*/$gcc_version/install-tools \
		$PKG/usr/man/man7

	# remove files already on the system out of the port
	for i in $(pkginfo -l gcc |sed -e "s|^|/|"); do
		if [ -e "$i" ] && [ ! -d "$i" ]; then
			if [ -e "$PKG$i" ]; then
				rm "$PKG$i"
			fi
		fi
	done

	# Remove empty directories
	find $PKG -depth -empty -exec rm -r {} \;

	# remove build paths from *.la files
	for i in $(find $PKG -name '*.la' | sed -e "s|$PKG|/|"); do
		sed -i "s|-L$SRC[^ ]* ||g" $PKG/$i
	done

	# install distcc symlinks if distcc is installed
	if pkginfo -i |grep '^distcc '; then
		install -d $PKG/usr/lib/distcc
		for c in gdc gdmd; do
			cd $PKG/usr/lib/distcc && ln -s ../../bin/distcc $c
		done
	fi

	# install ccache symlinks if ccache is installed
	if pkginfo -i |grep '^ccache '; then
		install -d $PKG/usr/lib/ccache
		for c in gdc gdmd; do
			cd $PKG/usr/lib/ccache && ln -s ../../bin/ccache $c
		done
	fi
}

