summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnant Narayanan <anant@gentoo.org>2007-05-22 19:10:08 +0000
committerAnant Narayanan <anant@gentoo.org>2007-05-22 19:10:08 +0000
commit931e811b7d5fcbb08efbaa07d5b76b2d0f542685 (patch)
treeb919c29b64c0f26627b5f427e13d9107971374f8
downloadd-931e811b7d5fcbb08efbaa07d5b76b2d0f542685.tar.gz
d-931e811b7d5fcbb08efbaa07d5b76b2d0f542685.tar.bz2
d-931e811b7d5fcbb08efbaa07d5b76b2d0f542685.zip
Add the D overlay, with phobos and tango to start with.
svn path=/d/; revision=7
-rw-r--r--dev-lang/dmd-bin/Manifest12
-rw-r--r--dev-lang/dmd-bin/dmd-bin-1.014-r1.ebuild114
-rw-r--r--dev-lang/dmd-bin/files/25dmd2
-rw-r--r--dev-lang/dmd-bin/files/digest-dmd-bin-1.014-r13
-rw-r--r--dev-libs/phobos/Manifest8
-rw-r--r--dev-libs/phobos/files/digest-phobos-1.0143
-rw-r--r--dev-libs/phobos/phobos-1.014.ebuild68
-rw-r--r--dev-libs/tango/Manifest8
-rw-r--r--dev-libs/tango/files/digest-tango-0.983
-rw-r--r--dev-libs/tango/tango-0.98.ebuild230
10 files changed, 451 insertions, 0 deletions
diff --git a/dev-lang/dmd-bin/Manifest b/dev-lang/dmd-bin/Manifest
new file mode 100644
index 0000000..f02baf9
--- /dev/null
+++ b/dev-lang/dmd-bin/Manifest
@@ -0,0 +1,12 @@
+AUX 25dmd 40 RMD160 cb1eb838eaf98d9898134384d3aefeec86bdd50a SHA1 1b7b42ad749a3541fb80bb944a49706ff974bd91 SHA256 40a0ac49424a2ce0a372c66fac3c77b6634138beaacffda0c167f3a81d4a286c
+MD5 ce9610602af9ec245759402355292cc6 files/25dmd 40
+RMD160 cb1eb838eaf98d9898134384d3aefeec86bdd50a files/25dmd 40
+SHA256 40a0ac49424a2ce0a372c66fac3c77b6634138beaacffda0c167f3a81d4a286c files/25dmd 40
+DIST dmd.1.014.zip 4809385 RMD160 8c16cc82abee6cdd7208d18149bdb050e2461540 SHA1 823300dfb3e4693948191af05fc9918d72f8353a SHA256 810f60f4b934fa122d69d45b9301817157f4070ade1400ea05218d7e5e32b441
+EBUILD dmd-bin-1.014-r1.ebuild 3477 RMD160 34957c93b0d075706c6ec76ac10e229306f7351b SHA1 bec9aa58680596f67080f762e70c834a4703c89c SHA256 f37b92a566db1682ba68764f1eb619ac80cfd8ff9bebc7a17b6f5b4956cc0bb8
+MD5 9243e69cef51f147783cf46fbf629e0d dmd-bin-1.014-r1.ebuild 3477
+RMD160 34957c93b0d075706c6ec76ac10e229306f7351b dmd-bin-1.014-r1.ebuild 3477
+SHA256 f37b92a566db1682ba68764f1eb619ac80cfd8ff9bebc7a17b6f5b4956cc0bb8 dmd-bin-1.014-r1.ebuild 3477
+MD5 16ef1e95d5ab67afae5c2132981df57b files/digest-dmd-bin-1.014-r1 223
+RMD160 1701e5209b11d40a8422a3f182ce7f66f0af080a files/digest-dmd-bin-1.014-r1 223
+SHA256 71877c525cdc3320bb8cb4660c17bbb3f50379d2fb330ffd2da3729199d090e9 files/digest-dmd-bin-1.014-r1 223
diff --git a/dev-lang/dmd-bin/dmd-bin-1.014-r1.ebuild b/dev-lang/dmd-bin/dmd-bin-1.014-r1.ebuild
new file mode 100644
index 0000000..bc24c84
--- /dev/null
+++ b/dev-lang/dmd-bin/dmd-bin-1.014-r1.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/dmd-bin/dmd-bin-1.014.ebuild,v 1.1 2007/05/20 21:23:08 anant Exp $
+
+inherit eutils
+
+MY_P=${P/-bin/}
+MY_P=${MY_P/-/.}
+
+DESCRIPTION="Digital Mars D Compiler"
+HOMEPAGE="http://www.digitalmars.com/d/"
+SRC_URI="http://ftp.digitalmars.com/${MY_P}.zip"
+
+LICENSE="DMD"
+RESTRICT="mirror nostrip"
+SLOT="0"
+KEYWORDS="~x86"
+
+IUSE="phobos tango"
+
+LOC="/opt/dmd"
+S="${WORKDIR}"
+
+DEPEND="sys-apps/findutils"
+RDEPEND="amd64? ( app-emulation/emul-linux-x86-compat )
+ x86? ( >=virtual/libstdc++-3.3 )"
+PDEPEND="phobos? ( dev-libs/phobos )
+ tango? ( dev-libs/tango )"
+
+pkg_setup() {
+ if use phobos && use tango; then
+ eerror " "
+ eerror "You have selected both phobos and tango as USE "
+ eerror "flags! Only a single standard library may be "
+ eerror "chosen. "
+ eerror " "
+ die "Multiple libraries selected"
+ fi
+
+ if ! use phobos && ! use tango; then
+ eerror " "
+ eerror "You have selected neither phobos or tango in "
+ eerror "your USE flags! Exactly one standard library "
+ eerror "must be chosen. "
+ eerror " "
+ die "No library selected"
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+
+ # Remove unneccessary files
+ rm -r ${S}/dmd/src/phobos
+ rm -r ${S}/dmd/lib
+ rm -r ${S}/dm
+ rm ${S}/dmd/bin/*.dll ${S}/dmd/bin/*.exe ${S}/dmd/bin/readme.txt
+ rm ${S}/dmd/bin/sc.ini ${S}/dmd/bin/windbg.hlp
+
+ # Cleanup line endings
+ cd ${S}/dmd
+ edos2unix `find . -name '*.c' -type f`
+ edos2unix `find . -name '*.d' -type f`
+ edos2unix `find . -name '*.ddoc' -type f`
+ edos2unix `find . -name '*.h' -type f`
+ edos2unix `find . -name '*.mak' -type f`
+ edos2unix `find . -name '*.txt' -type f`
+ edos2unix `find samples -name '*.html' -type f`
+
+ # Fix permissions
+ fperms guo=r `find . -type f`
+ fperms guo=rx `find . -type d`
+ fperms guo=rx bin/dmd bin/dumpobj bin/obj2asm bin/rdmd
+}
+
+src_install() {
+ cd ${S}/dmd
+
+ # Broken dmd.conf
+ # http://d.puremagic.com/issues/show_bug.cgi?id=278
+ mv bin/dmd bin/dmd.bin
+
+ # Man pages
+ doman man/man1/dmd.1
+ doman man/man1/dumpobj.1
+ doman man/man1/obj2asm.1
+ rm -r man
+
+ # Install
+ mkdir "${D}/opt"
+ mv "${S}/dmd" "${D}/opt/dmd"
+
+ # Set PATH
+ doenvd "${FILESDIR}/25dmd"
+}
+
+pkg_postinst () {
+ ewarn "The DMD Configuration file has been disabled, "
+ ewarn "and will be re-enabled when: "
+ ewarn " "
+ ewarn "http://d.puremagic.com/issues/show_bug.cgi?id=278"
+ ewarn " "
+ ewarn "has been fixed. Meanwhile, please supply all your"
+ ewarn "configuration options in the /opt/dmd/bin/dmd "
+ ewarn "shell script, *after* a standard library: "
+ ewarn "phobos or tango has been successfully merged. "
+ ewarn " "
+ ewarn "You may need to run: "
+ ewarn " "
+ ewarn "env-update && source /etc/profile "
+ ewarn " "
+ ewarn "to be able to use the compiler immediately. "
+ ewarn " "
+}
diff --git a/dev-lang/dmd-bin/files/25dmd b/dev-lang/dmd-bin/files/25dmd
new file mode 100644
index 0000000..ab7699d
--- /dev/null
+++ b/dev-lang/dmd-bin/files/25dmd
@@ -0,0 +1,2 @@
+PATH=/opt/dmd/bin
+ROOTPATH=/opt/dmd/bin
diff --git a/dev-lang/dmd-bin/files/digest-dmd-bin-1.014-r1 b/dev-lang/dmd-bin/files/digest-dmd-bin-1.014-r1
new file mode 100644
index 0000000..4901997
--- /dev/null
+++ b/dev-lang/dmd-bin/files/digest-dmd-bin-1.014-r1
@@ -0,0 +1,3 @@
+MD5 e4c912d5a25bd5dca2d6e7dd1a8b3ee1 dmd.1.014.zip 4809385
+RMD160 8c16cc82abee6cdd7208d18149bdb050e2461540 dmd.1.014.zip 4809385
+SHA256 810f60f4b934fa122d69d45b9301817157f4070ade1400ea05218d7e5e32b441 dmd.1.014.zip 4809385
diff --git a/dev-libs/phobos/Manifest b/dev-libs/phobos/Manifest
new file mode 100644
index 0000000..d1f8f7e
--- /dev/null
+++ b/dev-libs/phobos/Manifest
@@ -0,0 +1,8 @@
+DIST dmd.1.014.zip 4809385 RMD160 8c16cc82abee6cdd7208d18149bdb050e2461540 SHA1 823300dfb3e4693948191af05fc9918d72f8353a SHA256 810f60f4b934fa122d69d45b9301817157f4070ade1400ea05218d7e5e32b441
+EBUILD phobos-1.014.ebuild 1682 RMD160 7079fa3f71606728971d326e744c360de4d5c626 SHA1 b32fb467753613d82fce394d438914b45658b231 SHA256 98665c90824433c8136aa34dee88af7c0654200aec093ca4000e85a8b31a700e
+MD5 55cc3f1d009de4782ecad08377799c07 phobos-1.014.ebuild 1682
+RMD160 7079fa3f71606728971d326e744c360de4d5c626 phobos-1.014.ebuild 1682
+SHA256 98665c90824433c8136aa34dee88af7c0654200aec093ca4000e85a8b31a700e phobos-1.014.ebuild 1682
+MD5 16ef1e95d5ab67afae5c2132981df57b files/digest-phobos-1.014 223
+RMD160 1701e5209b11d40a8422a3f182ce7f66f0af080a files/digest-phobos-1.014 223
+SHA256 71877c525cdc3320bb8cb4660c17bbb3f50379d2fb330ffd2da3729199d090e9 files/digest-phobos-1.014 223
diff --git a/dev-libs/phobos/files/digest-phobos-1.014 b/dev-libs/phobos/files/digest-phobos-1.014
new file mode 100644
index 0000000..4901997
--- /dev/null
+++ b/dev-libs/phobos/files/digest-phobos-1.014
@@ -0,0 +1,3 @@
+MD5 e4c912d5a25bd5dca2d6e7dd1a8b3ee1 dmd.1.014.zip 4809385
+RMD160 8c16cc82abee6cdd7208d18149bdb050e2461540 dmd.1.014.zip 4809385
+SHA256 810f60f4b934fa122d69d45b9301817157f4070ade1400ea05218d7e5e32b441 dmd.1.014.zip 4809385
diff --git a/dev-libs/phobos/phobos-1.014.ebuild b/dev-libs/phobos/phobos-1.014.ebuild
new file mode 100644
index 0000000..ed2734e
--- /dev/null
+++ b/dev-libs/phobos/phobos-1.014.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit eutils
+
+DESCRIPTION="The Phobos standard library for DMD"
+HOMEPAGE="http://www.digitalmars.com/d/"
+SRC_URI="http://ftp.digitalmars.com/dmd.${PV}.zip"
+
+LICENSE="DMD"
+RESTRICT="mirror nostrip"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE=""
+
+LOC="/opt/dmd"
+S="${WORKDIR}"
+
+DEPEND=">=dev-lang/dmd-bin-1.014"
+RDEPEND=""
+
+src_unpack() {
+ unpack ${A}
+
+ # Remove unneccesary file
+ mv ${S}/dmd/src/phobos ${S}/
+ rm -r ${S}/dmd ${S}/dm
+ mkdir -p ${S}/dmd/lib ${S}/dmd/src ${S}/dmd/bin
+ mv ${S}/phobos ${S}/dmd/src/
+}
+
+src_compile() {
+ cd ${S}/dmd/src/phobos
+ sed -i -e "s:DMD=.*:DMD=${LOC}/bin/dmd.bin:" linux.mak internal/gc/linux.mak
+ edos2unix linux.mak internal/gc/linux.mak
+ make -flinux.mak
+ cp libphobos.a ${S}/dmd/lib/
+
+ # Clean up
+ make -flinux.mak clean
+ rm internal/gc/*.o
+
+ cd ${S}/dmd/bin
+ cat <<END > "dmd"
+#!/bin/sh
+${LOC}/bin/dmd.bin -I${LOC}/src/phobos -L${LOC}/lib/libphobos.a \$*
+END
+}
+
+src_install() {
+ cd ${S}
+ fperms guo=rx dmd/bin/dmd
+ mkdir "${D}/opt"
+ mv "${S}/dmd" "${D}/opt/dmd"
+}
+
+pkg_postinst() {
+ einfo " "
+ einfo "The Phobos standard library has been built and "
+ einfo "enabled for your DMD compiler. Please modify "
+ einfo "/opt/dmd/bin/dmd as per your compiler requirements "
+ einfo "(as a replacement for dmd.conf) "
+ einfo " "
+ ewarn "*Please* run env-update and source /etc/profile "
+ ewarn "before using the D compiler! "
+ ewarn " "
+}
diff --git a/dev-libs/tango/Manifest b/dev-libs/tango/Manifest
new file mode 100644
index 0000000..b60a78a
--- /dev/null
+++ b/dev-libs/tango/Manifest
@@ -0,0 +1,8 @@
+DIST tango-0.98-src.tar.gz 1061913 RMD160 812cc624844dfe9fd8e5a2c333e6cbcdfc5f915f SHA1 79a65cc52a7d2e2ac17b4f266d6d26f60c257245 SHA256 bc04b0cfc8e0c69f845eea8e2d83e7eed1d6e006d892b96103372733caa7fc74
+EBUILD tango-0.98.ebuild 6144 RMD160 c5f82b779f02b74d4f2be29d3bbf7f22b82b6a85 SHA1 d2e8d1ec5889f23c1d0646f690ad286a600bf82e SHA256 1761f2e52a557820a86d579311521be9993ccf1d436f603e829c807c859cc41e
+MD5 87eeb40da33da1ed56ce1315894f3ef2 tango-0.98.ebuild 6144
+RMD160 c5f82b779f02b74d4f2be29d3bbf7f22b82b6a85 tango-0.98.ebuild 6144
+SHA256 1761f2e52a557820a86d579311521be9993ccf1d436f603e829c807c859cc41e tango-0.98.ebuild 6144
+MD5 adaaaa74b3f502665772cc093697837b files/digest-tango-0.98 247
+RMD160 3af5b2b52506bc248890c3955ad7ae7d0c7c9882 files/digest-tango-0.98 247
+SHA256 f517a1f4d88e7cc8f6b890838d3a6f14cf9facd015fb0cb6190eab69e385aa11 files/digest-tango-0.98 247
diff --git a/dev-libs/tango/files/digest-tango-0.98 b/dev-libs/tango/files/digest-tango-0.98
new file mode 100644
index 0000000..5d479c7
--- /dev/null
+++ b/dev-libs/tango/files/digest-tango-0.98
@@ -0,0 +1,3 @@
+MD5 9e2e5098420a3ea7481f9658dde008e8 tango-0.98-src.tar.gz 1061913
+RMD160 812cc624844dfe9fd8e5a2c333e6cbcdfc5f915f tango-0.98-src.tar.gz 1061913
+SHA256 bc04b0cfc8e0c69f845eea8e2d83e7eed1d6e006d892b96103372733caa7fc74 tango-0.98-src.tar.gz 1061913
diff --git a/dev-libs/tango/tango-0.98.ebuild b/dev-libs/tango/tango-0.98.ebuild
new file mode 100644
index 0000000..7dff8ca
--- /dev/null
+++ b/dev-libs/tango/tango-0.98.ebuild
@@ -0,0 +1,230 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="Platform library for the D programming language"
+HOMEPAGE="http://www.dsource.org/projects/tango/"
+SRC_URI="http://downloads.dsource.org/projects/${PN}/${PV}/${P}-src.tar.gz"
+
+LICENSE="|| ( AFL-2.1 BSD )"
+SLOT="0"
+KEYWORDS="~x86"
+
+# Tango with GDC needs to be cleaned up
+#IUSE="gdc"
+IUSE=""
+
+DEPEND="!dev-libs/phobos"
+RDEPEND=""
+S=${WORKDIR}/${P}-src
+
+# Helper functions for compiling
+tango_filter_file() {
+ FILE=$1
+ if [ "`echo $FILE | grep win32`" -o "`echo $FILE | grep Win32`" ]; then
+ return 1
+ fi
+ if [ "`echo $FILE | grep darwin`" ]; then
+ return 1
+ fi
+ return 0
+}
+
+tango_compile_file() {
+ DC=$1
+ FILENAME=$3
+ OBJNAME=`echo $FILENAME | sed -e 's/\.d//' | sed -e 's/\//\./g'`
+ OBJNAME=${OBJNAME}.o
+
+ if tango_filter_file $OBJNAME; then
+ $DC -c -inline -release -O -version=Posix -version=Tango -of$OBJNAME $FILENAME
+ ar -r lib/$2 $OBJNAME
+ rm $OBJNAME
+ fi
+}
+
+tango_compile_library() {
+ cd ${S}
+ for fil in `find tango -name '*.d'`
+ do
+ tango_compile_file $1 $2 $fil
+ done
+ ranlib lib/$2
+}
+
+tango_compile_dmd() {
+ for f in "dmd-posix.mak common/tango/posix.mak compiler/dmd/posix.mak"
+ do
+ fperms guo=rw $f
+ sed -i -e "s:^DC=.*:DC=/opt/dmd/bin/dmd.bin:" $f
+ edos2unix $f
+ done
+
+ OLDHOME=$HOME
+ export HOME=${S}/lib
+ make clean -fdmd-posix.mak
+ make lib doc install -fdmd-posix.mak || die "Compile failed!"
+ make clean -fdmd-posix.mak
+ export HOME=$OLDHOME
+
+ tango_compile_library /opt/dmd/bin/dmd.bin libtango.a
+}
+
+tango_compile_gdc() {
+ GDC_VER="`gdc --version | grep 'gdc' | sed 's/^.*gdc \([0-9]*\.[0-9]*\).*$/\1/'`"
+ GDC_MAJOR="`echo $GDC_VER | sed 's/\..*//'`"
+ GDC_MINOR="`echo $GDC_VER | sed 's/.*\.//'`"
+
+ if [ "$GDC_MAJOR" = "0" -a "$GDC_MINOR" -lt "23" ]; then
+ eerror " "
+ eerror "This version of Tango requires GDC 0.23 or newer!"
+ eerror " "
+ die "Required version of GDC not found"
+ fi
+
+ HOST_ARCH="`./compiler/gdc/config.guess | sed 's/-.*//'`"
+ ADD_CFLAGS=
+ if [ "$HOST_ARCH" = "powerpc" -a ! "`./compiler/gdc/config.guess | grep darwin`" ]; then
+ ADD_CFLAGS="-mregnames"
+ fi
+
+ pushd ./compiler/gdc
+ ./configure || die "Configure failed!"
+ popd
+
+ OLDHOME=$HOME
+ export HOME=${S}/lib
+ make clean -fgdc-posix.mak
+ make lib doc install -fgdc-posix.mak ADD_CFLAGS="$ADD_CFLAGS" || die "Compile failed!"
+ make clean -fgdc-posix.mak
+ export HOME=$OLDHOME
+
+ tango_compile_library gdmd libgtango.a
+}
+
+# Helper functions for installing
+tango_install_dmd() {
+ LOC=/opt/dmd
+ cd ${S}
+ insinto ${LOC}/lib
+ doins ${S}/lib/*.a
+ insinto ${LOC}/include/d/tango
+ doins ${S}/object.di
+ mv ${S}/tango ${D}${LOC}/include/d/tango
+ mv ${S}/std ${D}${LOC}/include/d/tango
+
+ cat <<END > "dmd"
+#!/bin/sh
+${LOC}/bin/dmd.bin -I${LOC}/include/d/tango -L${LOC}/lib/libtango.a -version=Tango -version=Posix \$*
+END
+ fperms guo=rx dmd
+ mkdir ${D}${LOC}/bin
+ cp dmd ${D}${LOC}/bin
+}
+
+tango_install_gdc() {
+ insinto /usr/$(get_libdir)/gcc/$CHOST/$(gcc-fullversion)
+ doins ${S}/lib/*.a
+ insinto /usr/include/d/$(gcc-fullversion)
+ doins ${S}/object.di
+ doins ${S}/tango/*
+}
+
+pkg_setup() {
+ if use gdc; then
+ if ! built_with_use sys-devel/gcc d; then
+ eerror " "
+ eerror "You have enabled the gdc USE flag, but gcc was "
+ eerror "not compiled with the d USE flag. Either merge "
+ eerror "sys-devel/gcc with d enabled, or "
+ eerror "dev-lang/dmd-bin with the tango USE flag. "
+ eerror " "
+ die "No suitable D compiler found!"
+ else
+ if built_with_use dev-lang/dmd-bin tango; then
+ export ENABLE_LIBRARY="both"
+ einfo " "
+ einfo "dev-lang/dmd-bin with tango USE flag detected, "
+ einfo "the Tango standard library with be built and "
+ einfo "enabled for the DMD compiler. "
+ einfo " "
+ einfo "You have also used the gdc use flag, and "
+ einfo "Tango will be built and enabled for the GDC "
+ einfo "compiler. "
+ einfo " "
+ else
+ export ENABLE_LIBRARY="gdc"
+ einfo " "
+ einfo "The Tango standard library will be built and "
+ einfo "enabled for the GDC compiler. "
+ einfo " "
+ fi
+ fi
+ else
+ if ! built_with_use dev-lang/dmd-bin tango; then
+ eerror " "
+ eerror "dev-lang/dmd-bin was not built with the tango "
+ eerror "USE flag. Please enable it if you wish to use "
+ eerror "Tango with DMD. If you want to use Tango with "
+ eerror "GDC, please enable the gdc USE flag for this "
+ eerror "package. "
+ eerror " "
+ die "No suitable D compiler found!"
+ else
+ export ENABLE_LIBRARY="dmd"
+ einfo " "
+ einfo "the Tango standard library with be built and "
+ einfo "enabled for the DMD compiler. "
+ einfo " "
+ fi
+ fi
+}
+
+src_compile() {
+ cd ${S}/lib
+
+ case "$ENABLE_LIBRARY" in
+
+ "dmd" )
+ tango_compile_dmd
+ ;;
+
+ "gdc" )
+ tango_compile_gdc
+ ;;
+
+ "both" )
+ tango_compile_dmd
+ tango_compile_gdc
+ ;;
+
+ esac
+}
+
+src_install() {
+ case "$ENABLE_LIBRARY" in
+
+ "dmd" )
+ tango_install_dmd
+ ;;
+
+ "gdc" )
+ tango_install_gdc
+ ;;
+
+ "both" )
+ tango_install_dmd
+ tango_install_gdc
+ ;;
+
+ esac
+}
+
+pkg_postinst() {
+ einfo " "
+ einfo "*Please* run env-update && source /etc/profile "
+ einfo "before using your D compilers! "
+ einfo " "
+}