diff options
author | 2007-09-22 19:57:53 +0000 | |
---|---|---|
committer | 2007-09-22 19:57:53 +0000 | |
commit | d9ee605fc8bb62dd23fc58934d03dc2ea9237a4c (patch) | |
tree | e47084f38588b8545098e2a8718e34cefa1b00d7 | |
parent | Add the D overlay, with phobos and tango to start with. (diff) | |
download | d9ee605fc8bb62dd23fc58934d03dc2ea9237a4c.tar.gz d9ee605fc8bb62dd23fc58934d03dc2ea9237a4c.tar.bz2 d9ee605fc8bb62dd23fc58934d03dc2ea9237a4c.zip |
bump dmd-bin and fix tango dependencies
svn path=/d/; revision=8
-rw-r--r-- | dev-lang/dmd-bin/Manifest | 8 | ||||
-rw-r--r-- | dev-lang/dmd-bin/dmd-bin-1.020.ebuild | 114 | ||||
-rw-r--r-- | dev-libs/tango/Manifest | 7 | ||||
-rw-r--r-- | dev-libs/tango/tango-0.98-r1.ebuild | 220 |
4 files changed, 349 insertions, 0 deletions
diff --git a/dev-lang/dmd-bin/Manifest b/dev-lang/dmd-bin/Manifest index f02baf9..91476e9 100644 --- a/dev-lang/dmd-bin/Manifest +++ b/dev-lang/dmd-bin/Manifest @@ -3,10 +3,18 @@ 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 +DIST dmd.1.020.zip 4836471 RMD160 3c1a7a17ef34a2c838ff333020130ee59708fdab SHA1 2f63324b97b4d40b7bf21fc2fdfe214866819ead SHA256 c81df8d718d70e3687e08e67c764186315192c3a786574b30dac9f0638f88045 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 +EBUILD dmd-bin-1.020.ebuild 3487 RMD160 c922f0d89c1367b1ef72f038ecea353bcb2064f3 SHA1 180491d011f5832d32a1353c85bc9edc5809fa54 SHA256 f0680a39be42acd8ceaf51c0b74336503014fc79a11b5aaaa65a02299d312ead +MD5 cfcb41b374d190aa57c5b6ad0b1fb2d6 dmd-bin-1.020.ebuild 3487 +RMD160 c922f0d89c1367b1ef72f038ecea353bcb2064f3 dmd-bin-1.020.ebuild 3487 +SHA256 f0680a39be42acd8ceaf51c0b74336503014fc79a11b5aaaa65a02299d312ead dmd-bin-1.020.ebuild 3487 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 +MD5 1faed7cac763857bd9126c6afca35047 files/digest-dmd-bin-1.020 223 +RMD160 957668bb836632d52bd093d049516197c20a9fb0 files/digest-dmd-bin-1.020 223 +SHA256 24933c50ee8829f1245d3243f1c69e5cae57e48cd51f7d7d6fe3089a4b5c79d9 files/digest-dmd-bin-1.020 223 diff --git a/dev-lang/dmd-bin/dmd-bin-1.020.ebuild b/dev-lang/dmd-bin/dmd-bin-1.020.ebuild new file mode 100644 index 0000000..06cb38c --- /dev/null +++ b/dev-lang/dmd-bin/dmd-bin-1.020.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-0.98-r1 )" + +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-libs/tango/Manifest b/dev-libs/tango/Manifest index b60a78a..c2817cf 100644 --- a/dev-libs/tango/Manifest +++ b/dev-libs/tango/Manifest @@ -1,4 +1,8 @@ DIST tango-0.98-src.tar.gz 1061913 RMD160 812cc624844dfe9fd8e5a2c333e6cbcdfc5f915f SHA1 79a65cc52a7d2e2ac17b4f266d6d26f60c257245 SHA256 bc04b0cfc8e0c69f845eea8e2d83e7eed1d6e006d892b96103372733caa7fc74 +EBUILD tango-0.98-r1.ebuild 5638 RMD160 3e1b3efa5a7b68639fca136faa9128daa1dd4335 SHA1 956866d0074af24936b00af469708b12226d8ca9 SHA256 8c9817f33a9eb0fd1b5ff8ebf9484bff1436406bf7f6573af128b008c79b3062 +MD5 279baacc02a33c6a5d8a0619d4b4726c tango-0.98-r1.ebuild 5638 +RMD160 3e1b3efa5a7b68639fca136faa9128daa1dd4335 tango-0.98-r1.ebuild 5638 +SHA256 8c9817f33a9eb0fd1b5ff8ebf9484bff1436406bf7f6573af128b008c79b3062 tango-0.98-r1.ebuild 5638 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 @@ -6,3 +10,6 @@ SHA256 1761f2e52a557820a86d579311521be9993ccf1d436f603e829c807c859cc41e tango-0. MD5 adaaaa74b3f502665772cc093697837b files/digest-tango-0.98 247 RMD160 3af5b2b52506bc248890c3955ad7ae7d0c7c9882 files/digest-tango-0.98 247 SHA256 f517a1f4d88e7cc8f6b890838d3a6f14cf9facd015fb0cb6190eab69e385aa11 files/digest-tango-0.98 247 +MD5 adaaaa74b3f502665772cc093697837b files/digest-tango-0.98-r1 247 +RMD160 3af5b2b52506bc248890c3955ad7ae7d0c7c9882 files/digest-tango-0.98-r1 247 +SHA256 f517a1f4d88e7cc8f6b890838d3a6f14cf9facd015fb0cb6190eab69e385aa11 files/digest-tango-0.98-r1 247 diff --git a/dev-libs/tango/tango-0.98-r1.ebuild b/dev-libs/tango/tango-0.98-r1.ebuild new file mode 100644 index 0000000..725b736 --- /dev/null +++ b/dev-libs/tango/tango-0.98-r1.ebuild @@ -0,0 +1,220 @@ +# 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="" + +RDEPEND="!dev-libs/phobos +>=dev-lang/dmd-bin-1.020" +DEPEND="${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 + export ENABLE_LIBRARY="dmd" + einfo " " + einfo "the Tango standard library with be built and " + einfo "enabled for the DMD compiler. " + einfo " " + 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 " " +} |