a project to simplify installation of open source software
on Mac OS X and Darwin
# $Id: Portfile 22697 2007-03-11 21:22:21Z mww@macports.org $
PortSystem 1.0
name gdc
version 0.23
set gcc_version 4.1.2
categories lang
platforms darwin
maintainers mww@macports.org
description D language compiler
long_description gcc ${gcc_version} with D language frontend, a new \
language by digitalmars
homepage http://dgcc.sourceforge.net/
master_sites sourceforge:dgcc:gdc \
gnu:/gcc/gcc-${gcc_version}:gcc
set gdc gdc-${version}-src.tar.bz2
set gcc_core gcc-core-${gcc_version}.tar.bz2
set gcc_cxx gcc-g++-${gcc_version}.tar.bz2
distfiles ${gdc}:gdc ${gcc_core}:gcc ${gcc_cxx}:gcc
checksums ${gdc} sha1 ca29514902e05f861ab1bfa73d601cfa85b86d84 \
${gcc_core} sha1 d6875295f6df1bec4a6f4ab8f0da54bfb8d97306 \
${gcc_cxx} sha1 e29c6e151050f8b5ac5d680b99483df522606143
use_bzip2 yes
patchfiles patch-config-i386-darwin.h
set bindir ${prefix}/lib/${name}/bin
set incdir ${prefix}/include/d/${gcc_version}
worksrcdir build
post-extract {
file mkdir ${worksrcpath}
system "ln -sf ${workpath}/d ${workpath}/gcc-${gcc_version}/gcc/d"
}
patch.dir ${workpath}/gcc-${gcc_version}
post-patch {
system "cd ${workpath}/gcc-${gcc_version}/ && gcc/d/setup-gcc.sh"
}
configure.cmd ${workpath}/gcc-${gcc_version}/configure
configure.args --enable-languages=d,c,c++ \
--bindir=${bindir} \
--libdir=${prefix}/lib/${name} \
--includedir=${incdir} \
--with-gxx-include-dir=${prefix}/include/d/${gcc_version} \
--infodir=${prefix}/share/info \
--mandir=${prefix}/share/man \
--libexecdir=${prefix}/libexec/${name} \
--with-system-zlib \
--disable-nls \
--disable-multilib \
--with-local-prefix=${prefix}
build.type gnu
#build.target bootstrap-lean
post-destroot {
# install wrapper - this way calling 'gdc' and 'gdmd' just works
foreach wrp {gdc gdmd} {
xinstall -m 755 ${filespath}/wrapper.sh ${destroot}${prefix}/bin/${wrp}
reinplace "s|__BIN__|${bindir}/${wrp}|g" ${destroot}${prefix}/bin/${wrp}
reinplace "s|__INCDIR__|${incdir}|g" ${destroot}${prefix}/bin/${wrp}
}
# remove unnecessary manpages
foreach man1page {cpp gcc gcov g++} {
file delete ${destroot}${prefix}/share/man/man1/${man1page}.1
}
file delete -force ${destroot}${prefix}/share/man/man7 \
${destroot}${prefix}/share/info
# only need -I${incdir} this way:
system "cd ${destroot}${incdir}/gcc \
&& find .. -name config.d -exec ln -s {} \\; \
&& find .. -name configunix.d -exec ln -s {} \\;"
system "cd ${destroot}${incdir} \
&& find . -name phobos-ver-syms -exec ln -s {} \\;"
}
platform darwin 8 {
configure.env CC=/usr/bin/gcc-4.0 CPP=/usr/bin/cpp-4.0
}