# $Id: Portfile 79232 2011-06-05 23:26:56Z ryandesign@macports.org $

PortSystem 1.0

name			mipsel-linux-gcc34
version			3.4.6
revision		1
categories		cross
platforms		darwin
maintainers		nomaintainer
description		gcc cross compiler for mips-linux with uClib
long_description	${description}

homepage		http://gcc.gnu.org/
master_sites	gnu:/gcc/gcc-${version}
distname		gcc-${version}
checksums		sha1 97b290fdc572c8e490b3b39f243e69bacad23c2b
use_bzip2		yes

dist_subdir		gcc

patchfiles		100-uclibc-conf.patch 200-uclibc-locale.patch \
				300-libstdc++-pic.patch 601-gcc34-arm-ldm.patch \
				602-sdk-libstdc++-includes.patch 700-pr15068-fix.patch \
				800-arm-bigendian.patch 810-arm-bigendian-uclibc.patch \
				arm-softfloat.patch.conditional

depends_lib		port:mipsel-linux-binutils port:mipsel-linux-uclib-headers

# mipsel-linux-binutils is not universal
universal_variant	no

set target		mipsel-linux-uclibc
set cprefix		${prefix}/cross/${target}

patch.pre_args	-p1

configure.env	AR_FOR_TARGET=${cprefix}/${target}/bin/ar \
				AS_FOR_TARGET=${cprefix}/${target}/bin/as \
				LD_FOR_TARGET=${cprefix}/${target}/bin/ld \
				NM_FOR_TARGET=${cprefix}/${target}/bin/nm \
				RANLIB_FOR_TARGET=${cprefix}/{target}/bin/ranlib \
				PATH=${cprefix}/bin:$env(PATH)

configure.pre_args	--prefix=${cprefix}/
configure.args	--target=${target} \
				--enable-languages=c \
				--disable-shared \
				--with-sysroot=${cprefix}/uclibc \
				--disable-__cxa_atexit \
				--enable-target-optspace \
				--with-gnu-ld \
				--disable-nls \
				--enable-multilib \
				--with-float=soft

platform darwin {
	if {$build_arch == "i386"} {
		configure.args-append --build=i686-apple-darwin${os.major} \
							  --host=i686-apple-darwin${os.major}
	} else {
		configure.args-append --build=${build_arch}-apple-darwin${os.major} \
							  --host=${build_arch}-apple-darwin${os.major}
	}
}

build.env		${configure.env}

destroot.env	${configure.env}
destroot.violate_mtree yes
post-destroot {
	file delete -force ${destroot}${cprefix}/info ${destroot}${cprefix}/man
	foreach b {gcc cpp} {
		system "cd ${destroot}${prefix}/bin && \
			ln -sf ../cross/${target}/bin/mipsel-linux-uclibc-${b}"
	}
}
