summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/dmd/ChangeLog8
-rw-r--r--dev-lang/dmd/Manifest7
-rw-r--r--dev-lang/dmd/dmd-2.061.ebuild167
-rw-r--r--dev-lang/dmd/dmd-2.064.2.ebuild141
-rw-r--r--dev-lang/dmd/files/dmd-2.061-makefile.patch35
5 files changed, 206 insertions, 152 deletions
diff --git a/dev-lang/dmd/ChangeLog b/dev-lang/dmd/ChangeLog
index 601b702c5..d2de61a24 100644
--- a/dev-lang/dmd/ChangeLog
+++ b/dev-lang/dmd/ChangeLog
@@ -2,14 +2,6 @@
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
-*dmd-2.064.2 (08 Nov 2013)
-
- 08 Nov 2013; Marco Leise (mleise) <marco.leise@gmx.de> -dmd-2.061.ebuild,
- -files/dmd-2.061-makefile.patch, +dmd-2.064.2.ebuild:
- Version bump and rewrite of the ebuild. Keeping two older versions in case of
- regressions. Multilib support still needed manual tweaking due to how dmd is
- setup.
-
*dmd-2.063.2 (17 Jun 2013)
17 Jun 2013; Marco Leise (mleise) <marco.leise@gmx.de> -dmd-2.060.ebuild,
diff --git a/dev-lang/dmd/Manifest b/dev-lang/dmd/Manifest
index 21f49ec75..0c4ec7619 100644
--- a/dev-lang/dmd/Manifest
+++ b/dev-lang/dmd/Manifest
@@ -1,15 +1,16 @@
AUX dmd-1.066-makefile.patch 16530 SHA256 df0c6db1578747b9cc5bbc9ccb14ab53599d7e2456d68f60d40ee98daa61dbb6 SHA512 4426b2acd6861418617d513d1809b6c79d2cba0c899b6bd5d233ea3a54894af8851fa06bb52607823ca4f7dcbb958e14057ff8e20d9eb686b99eff582e85fe63 WHIRLPOOL 29a6e32f13545e4aa6219462467327d980a63a0921288d4bdc45e3af7cd8c7875b10cc388a8f6dedb207fbd27ec3569bddc6402d4cf5acf3bd176021a670c732
+AUX dmd-2.061-makefile.patch 767 SHA256 2f6f2743dc3665e27d90b1f5c0f347fa55b8a4b7f9d6c17de701f48c549a4b62 SHA512 980b43e8ff60f8849a5aa0f0429331336820d6b45c5864ffd0f09db341c4016b984121e082d32c59a5979d36acaaf563bc4f763330a0335a8b3bd321a54b698f WHIRLPOOL 3e3ed997eabb89414b739f55f7b8b24aa6b89d3aa0fc7475d8490c10edbfc1a61f13a01d4a9269addc5b08fa1bba8589c02180f8c5c45c6ab3ddf937f7d5bc78
AUX dmd-2.062-makefile.patch 767 SHA256 2f6f2743dc3665e27d90b1f5c0f347fa55b8a4b7f9d6c17de701f48c549a4b62 SHA512 980b43e8ff60f8849a5aa0f0429331336820d6b45c5864ffd0f09db341c4016b984121e082d32c59a5979d36acaaf563bc4f763330a0335a8b3bd321a54b698f WHIRLPOOL 3e3ed997eabb89414b739f55f7b8b24aa6b89d3aa0fc7475d8490c10edbfc1a61f13a01d4a9269addc5b08fa1bba8589c02180f8c5c45c6ab3ddf937f7d5bc78
AUX dmd.bashcomp 4486 SHA256 b679b0c676035eda48948eeb6c2a8184c6effdc97d8c98d1ca4b071f345e4ac6 SHA512 b54fd8b457be79d923bd7eacd4c98a5e5840a11b71a562c426bf60814ae0438123693e3295e35c1dbf1585b2568125209368fd0bf590b19addd963c5fde25f22 WHIRLPOOL 1fc1e2776813156798c298c28a7d5c6c0d46dd39bdce0fce00573a8f42ff2d99b3eeaea0eff28f9dc3663c61d67fe6b43b5550021093afd8b7d49ffc705ac815
AUX slot-compat.patch 376 SHA256 d9f1f19b158c3cc52e133751e834460b12a0fa003192d50ba40421bf9ff56763 SHA512 d49c8768fc9c5169086e495c7fc93678747059e84ec6a6d105b11426f1d3b05ce0bc9a372d41960dd878274ce2ebf22b6ba6066be276b98ed728b5e46b1ed099 WHIRLPOOL d431e306e66e53fdf089d933ed9d42337e12805927b6e56641037d29d5566f6ce15f6d8439edd76b43b4158974d8bd96f35cd5ad1a254b7ce8e87863ca52c208
AUX stackelf.patch 3527 SHA256 56835f1bb5b5f33edbb2bdf650bdb9e459f3670db205b2aeb0a367a868517a96 SHA512 62de8d7427bd05b77eaea14769dfa94621365b3b62e8126341d50c7fef89fd7552946c0bfb4c9fcccdb26f66deb2787b68fe56849b0d694b45007a84bec84a76 WHIRLPOOL 40925f60883ad2f736b6398da6253cd674590c9ef3cd7bce2d510e8f3e795db48ffa64b5ef0fe85562716dd633136eab55ec59f3fdc2f2aad76c3f702a94c8f3
DIST dmd.1.066.zip 8958349 SHA256 26c421fdeaa3f81397cb9be858b8829eb01ebe11d6874c133b2ba2de249775fb
+DIST dmd.2.061.zip 31601020 SHA256 13b546b69d628280f245ab19bf4ed27ab66a0085afdaf950e075e68acc7f4c93 SHA512 e1b68c1c73158a0ff792624f5e1dbb7e40c70a149071a5649965125239ab12b3da8a90cf3ccd618a8ef5554a9bbeb1a848246004e1f17cf7f81fd229f44b190b WHIRLPOOL b9a663501176de646414df443e173404d40de2c75080e57ea1b0fb224cc8b14673dd91f11e4046867b309070d169eed9a7002ec55265e10fb5487fd4f72a098a
DIST dmd.2.062.zip 31993170 SHA256 cd2e1f719713ad3c24637b253b39ebf7baa28eb24d991c7e0fb2de21da41c18a SHA512 9278278777a87aafee5d0aaf41420280cd37d359770e5768d90929a27f7f77d3e83182128fef756b2ddc9bd5e006a28cb9a208b371db3bdbdc0629682514a41c WHIRLPOOL 73b1ddff3308f27c95aa5d3ee399461d51c568491fd8a5bd825e1df345e4c919e42614ca4cd3233b0c960229646c8769bd06e653b1390c80c464d9ddfc682045
DIST dmd.2.063.2.zip 33144090 SHA256 ddb8fc86377fbfc15509801664ecbbc66fd6386ff5c0f415c2b9993add1bea75 SHA512 8b7a0b308a92e7adbccb05a7e2ec87e287f66ba42e9f856e19aae78127b13c50bad5cb56dd79f49d3237248fd3fe0f430bdef012dda1f38ab875a664c43308ae WHIRLPOOL 1a4b649628a6d627e8ae84bf1acbc3151635ffcf3d0a6552b30f620abb20504d425f0eda9f27126e4488cc0627278a7f86adbffef1af2e452d73d2456eb0efcb
-DIST dmd.2.064.2.zip 33349115 SHA256 f51a10a137e0be6fb8ef32e3ff475aa377af1461400ec2cef2dcb917976f12c4 SHA512 4ec199c86c717273cf7c3c256ce56bc7144a453d3030a62de2c7e435e52ee5d2414c7bd9bb7c643b4734897e9621a31dff7b7fe3742f5b5785cb1e5eafb1bede WHIRLPOOL 688d98990b6558b3f1bdb0644ccf391d4a08526767427e7d99683473409a2821f2e5a04859b2b10767d4c7b9156a28ffc89a89348ba71b32420925a0e6c4e765
EBUILD dmd-1.066.ebuild 2252 SHA256 bc8776c7523f3b513b5879939d47261585b9af73271aa9fc3af1adeb8c5cd42f SHA512 a8c494be8f03828e6894fbd1bb6c34b5e9943e0ec7d818de9a1dd3a68e28d911296a4877d2801bed3d688f5275e7c4d6f1be8f3dc9c12dd1a1b5cc20197468de WHIRLPOOL c5fcaa96b2355884d39285524ecf6820ff44c114f66c38b1e2533ce7762653eda72400056bced547c3f8f1ca08e471d8cda1138f1623c2a44eb634266be3a65c
+EBUILD dmd-2.061.ebuild 4409 SHA256 990e51c0d857dac36118012730ca4b7b0af214656c090002f73fea06434a8c6c SHA512 89e47ae30477d3ae386ccb7baf3610f375dbe653782d20de264da53bd28441c5f42f6d939d616eb1631ec28b506f4da7088d44040012d697f61c56c9172621cf WHIRLPOOL 71513c3966ce9885e6ddec0179790f79120916e5ffd8b27b7533f657ec20cf9cb04980407b063f35daa4000d0143e7785fd2a9747176c8572eb3b2d957cf7dee
EBUILD dmd-2.062.ebuild 4483 SHA256 73ed974b03fb6d6176b352fabaf69b55085ad0e8f57ecba5302ac9226f212eb2 SHA512 d552491b299e90fe5b3aaf5bc158597f8ae37c60205c4c867d2113141ee0448e56542a323d680c5e22da09564a87bda1598887da04c31ddae33ec0429ac02e01 WHIRLPOOL df22c9fa4adbe39683a50d981f942d7172453e521c0373c7ee6c0e0c105611f9ef621d562c430765bf8bd9dab85f18ac6b484b17f082e0f036081b724832639d
EBUILD dmd-2.063.2.ebuild 4445 SHA256 0c94c60bb6191b8b46e395f2d37101630e3418744a8cc54503a43dd5151ac698 SHA512 4239a926ad031490dc80c755598eff46420d84b91fe47cbf4b2a625658d64798a773ce99750e28588d39e87b67fe2d374f78e758878c9d4f6099a49138c2eb32 WHIRLPOOL 83e11d5af1c745ebc6b4c2d3973001a38065a6b5a3d9bdf21da714e38b1a9ba63195acbb5d0e40aad2ef9ac91c11a8b4e801993e18d0e1a9871c31780940ea83
-EBUILD dmd-2.064.2.ebuild 3924 SHA256 968a69372ed47ba4228eb3b25d9fecdaa2b65b13fa1a17a4692ce85dc621b1e5 SHA512 788748f91bec95a97da61bc69c692af4618c0589e642908424b45a8fcdd9afa70001be141e33aaacadaf10d8ffb27461ce2035348f5763b086b80a82fa28b5c0 WHIRLPOOL bbd178c7bec9c7b4ccee89e1e085382254e8dbd9c89067b011eeecf2069b01f5a4bad166b3ea9b80d02d4f6ae8f399b02a30d9c09117f7dba41ef5b232acbf10
-MISC ChangeLog 4113 SHA256 7cfbf23d88101ab683d31da668d6288c98404243c3c66fc08c4dade6067fb132 SHA512 b7dcf3a1683b0676e8b2744f4f9136e032ef82359d42f614c44eba01e54b781cc4beca6fab98e1a127784ab83afa06519aa976c59790ac6ae3d0f61864090569 WHIRLPOOL fafb048b5211b71c4f972a6aa3529f3b82437d6e2141f844eb25148d8eecf6abbe0cf3edd20a16a032a7bb276bb9f59e5f8d20b616700602b7db6184cc92d7d2
+MISC ChangeLog 3784 SHA256 000a02a35dee5d8210cdf55d61d35e25d74370ec0256653b7b0e51747870bf14 SHA512 707ce5cb52abae47c41c0bfbf17a89b590eb21d3fd9f3ed322a53370af5967e4c9c0681d463ee47101ffbb69540c92dd9cb5f53b2017cb8962e43f71223ee929 WHIRLPOOL 51328dc787e02743e0971f610f05d729be2b00de4dbcf4f34c6ab8f16c8ea49d2e4694ac8bf4676d018a5ad87323d98166c035af16e418c62dce55d198ed405c
MISC metadata.xml 377 SHA256 5edc28143917c389d89a0af6623313c5f7ef81bf55dba92b39c611014fa6ed9e SHA512 c859bd7805b4a42bfbc5418e151638b63fe08e74e76722f2f95f20702549ded7b06058ce893ae22bd490d8c591e0c41e5dea3c24f46cb3f85463bb75096accba WHIRLPOOL 39e25417c4b28c27d16380faf4ac1d037e3576e6966715ef0dbc3737bc8a7f4c84c1234544fcab3e325766475df63594c7d09c10ec351e47c7559bee85aaa4be
diff --git a/dev-lang/dmd/dmd-2.061.ebuild b/dev-lang/dmd/dmd-2.061.ebuild
new file mode 100644
index 000000000..05c414e41
--- /dev/null
+++ b/dev-lang/dmd/dmd-2.061.ebuild
@@ -0,0 +1,167 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+
+inherit eutils multilib bash-completion-r1
+
+DESCRIPTION="Reference compiler for the D programming language"
+HOMEPAGE="http://dlang.org/"
+SRC_URI="http://downloads.dlang.org.s3.amazonaws.com/releases/2013/${PN}.${PV}.zip"
+
+# DMD supports amd64/x86 exclusively
+KEYWORDS="-* ~amd64 ~x86"
+SLOT="2"
+IUSE="multilib doc examples tools"
+
+# License doesn't allow redistribution
+LICENSE="DMD"
+RESTRICT="mirror"
+
+DEPEND="sys-apps/findutils
+ app-arch/unzip"
+RDEPEND="!dev-lang/dmd-bin"
+
+S="${WORKDIR}/${PN}2/src"
+
+rdos2unix() {
+ edos2unix $(find . -name '*'.$1 -type f) || die "Failed to convert line-endings of all .$1 files"
+}
+
+src_prepare() {
+ cd .. || die
+
+ rm -r README.TXT windows freebsd osx linux/{lib32,lib64} \
+ linux/{bin32,bin64}/{README.TXT,dmd,dmd.conf} \
+ || die "Failed to remove included binaries"
+
+ # convert line-endings of file-types that start as cr-lf and are
+ # patched or installed later on
+ rdos2unix c
+ rdos2unix d
+ rdos2unix txt
+ rdos2unix css
+
+ # misc patches for the build process
+ epatch "${FILESDIR}/${P}-makefile.patch"
+}
+
+src_compile() {
+ # DMD
+ ln -s . "dmd/mars" || die "Failed to add recursive symbolic link to DMD sources."
+ if use x86; then
+ einfo 'Building DMD for x86 ...'
+ emake -C dmd -f posix.mak MODEL=32
+ elif use amd64; then
+ einfo 'Building DMD for amd64 ...'
+ emake -C dmd -f posix.mak MODEL=64
+ fi
+
+ # druntime & Phobos
+ if use x86 || (use amd64 && use multilib); then
+ einfo 'Building druntime for x86 ...'
+ emake -C druntime -f posix.mak MODEL=32 "DMD=../dmd/dmd"
+ einfo 'Building Phobos for x86 ...'
+ emake -C phobos -f posix.mak MODEL=32 "DMD=../dmd/dmd"
+ fi
+ if use amd64; then
+ einfo 'Building druntime for amd64 ...'
+ emake -C druntime -f posix.mak MODEL=64 "DMD=../dmd/dmd"
+ einfo 'Building Phobos for amd64 ...'
+ emake -C phobos -f posix.mak MODEL=64 "DMD=../dmd/dmd"
+ fi
+}
+
+src_test() {
+ local DFLAGS="-Iphobos -Idruntime/import -L-lrt"
+ local DMD="dmd/dmd"
+ if use x86 || (use amd64 && use multilib); then
+ ${DMD} -m32 ${DFLAGS} -Lphobos/generated/linux/release32/libphobos2.a ../samples/d/hello.d || die "Failed to build hello.d (32bit)"
+ ./hello 32bit || die "Failed to run test sample (32bit)"
+ fi
+ if use amd64; then
+ ${DMD} -m64 ${DFLAGS} -Lphobos/generated/linux/release64/libphobos2.a ../samples/d/hello.d || die "Failed to build hello.d (64bit)"
+ ./hello 64bit || die "Failed to run test sample (64bit)"
+ fi
+ rm hello.o hello
+}
+
+src_install() {
+ # prepeare and install config
+ cd "dmd" || die
+ cat > dmd.conf << EOF
+[Environment]
+DFLAGS=-I/usr/include/phobos2 -I/usr/include/druntime -L--no-warn-search-mismatch -L--export-dynamic
+EOF
+ insinto /etc
+ doins dmd.conf
+ dobashcomp "${FILESDIR}/${PN}.bashcomp"
+
+ # Compiler
+ dobin "dmd"
+
+ # Man pages, docs and samples
+ cd ".." || die
+ doman ../man/man1/dmd.1
+ doman ../man/man1/dmd.conf.5
+
+ use doc && dohtml -r ../html/*
+
+ if use tools; then
+ doman ../man/man1/dumpobj.1
+ doman ../man/man1/obj2asm.1
+ doman ../man/man1/rdmd.1
+
+ # Bundled pre-compiled tools
+ if use amd64; then
+ dobin ../linux/bin64/{ddemangle,dman,dumpobj,obj2asm,rdmd}
+ fi
+ if use x86; then
+ dobin ../linux/bin32/{ddemangle,dman,dumpobj,obj2asm,rdmd}
+ fi
+ fi
+
+ docompress -x /usr/share/doc/${PF}/samples/
+ insinto /usr/share/doc/${PF}/samples/
+ if use examples; then
+ doins -r ../samples/d/*
+ fi
+
+ # druntime & Phobos
+ if use amd64; then
+ newlib.a "druntime/lib/libdruntime-linux64.a" "libdruntime.a"
+ dolib.a "phobos/generated/linux/release/64/libphobos2.a"
+ fi
+ if use x86 || (use amd64 && use multilib); then
+ use amd64 && multilib_toolchain_setup x86
+ newlib.a "druntime/lib/libdruntime-linux32.a" "libdruntime.a"
+ dolib.a "phobos/generated/linux/release/32/libphobos2.a"
+ # TODO: restore target architecture
+ fi
+
+ # cleanup builds
+ rm -r "druntime/obj" "druntime/lib" || die
+ rm -r "phobos/generated" || die
+
+ # remove files that are not required
+ rm "phobos/posix.mak" || die
+ rm "phobos/win32.mak" || die
+ rm "phobos/std.ddoc" || die
+ rm "phobos/index.d" || die
+ rm -r "phobos/etc/c/zlib" || die
+
+ # imports
+ insinto /usr/include/druntime/
+ doins -r druntime/import/*
+
+ insinto /usr/include/phobos2
+ doins -r phobos/*
+}
+
+pkg_postinst() {
+ if use doc || use examples; then
+ elog "The bundled docs and/or samples may be found in"
+ elog "/usr/share/doc/${PF}"
+ fi
+}
diff --git a/dev-lang/dmd/dmd-2.064.2.ebuild b/dev-lang/dmd/dmd-2.064.2.ebuild
deleted file mode 100644
index f94ecec3f..000000000
--- a/dev-lang/dmd/dmd-2.064.2.ebuild
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-inherit eutils bash-completion-r1 multilib-build
-
-DESCRIPTION="Reference compiler for the D programming language"
-HOMEPAGE="http://dlang.org/"
-SRC_URI="http://downloads.dlang.org.s3.amazonaws.com/releases/2013/${PN}.${PV}.zip"
-
-# DMD supports amd64/x86 exclusively
-KEYWORDS="-* ~amd64 ~x86"
-SLOT="2"
-IUSE="multilib doc examples tools"
-
-# License doesn't allow redistribution
-LICENSE="DMD"
-RESTRICT="mirror"
-
-DEPEND="app-arch/unzip
- sys-apps/findutils
- virtual/awk"
-RDEPEND="!dev-lang/dmd-bin"
-
-S="${WORKDIR}/dmd2"
-
-src_prepare() {
- # Remove precompiled binaries and non-essential files.
- rm -r README.TXT windows osx linux/lib{32,64} linux/bin{32,64}/{README.TXT,dmd,dmd.conf} \
- || die "Failed to remove included binaries."
-
- # convert line-endings of file-types that start as cr-lf and are patched or installed later on
- find . -name "*.txt" -o -name "*.html" -o -name "*.d" -o -name "*.di" -o -name "*.ddoc" -type f -exec edos2unix {} \; \
- || die "Failed to convert DOS line-endings to Unix."
-
- # patch: copy VERSION file into dmd directory
- cp src/VERSION src/dmd/VERSION \
- || die "Failed to copy VERSION file into dmd directory."
-}
-
-abi_to_model() {
- if [[ "${ABI}" == "amd64" ]] || [[ "${ABI}" == "amd64_fbsd" ]]; then
- echo 64
- else
- echo 32
- fi
-}
-
-dmd_foreach_abi() {
- for ABI in $(multilib_get_enabled_abis); do
- local MODEL=$(abi_to_model)
- einfo "Executing ${1} in ${MODEL}-bit ..."
- "${@}"
- done
-}
-
-src_compile() {
- # A native build of dmd is used to compile the runtimes for both x86 and amd64
- # We cannot use multilib-minimal yet, as we have to be sure dmd for amd64
- # always gets build first.
- einfo 'Building dmd ...'
- emake -C src/dmd -f posix.mak TARGET_CPU=X86 RELEASE=1
-
- compile_libraries() {
- einfo 'Building druntime ...'
- emake -C src/druntime -f posix.mak MODEL=${MODEL} DMD=../dmd/dmd
-
- einfo 'Building Phobos 2 ...'
- emake -C src/phobos -f posix.mak MODEL=${MODEL} DMD=../dmd/dmd
- }
-
- dmd_foreach_abi compile_libraries
-}
-
-src_test() {
- test_hello_world() {
- src/dmd/dmd -m${MODEL} -Isrc/phobos -Isrc/druntime/import -L-Lsrc/phobos/generated/linux/release/${MODEL} samples/d/hello.d || die "Failed to build hello.d (${MODEL}-bit)"
- ./hello ${MODEL}-bit || die "Failed to run test sample (${MODEL}-bit)"
- rm hello.o hello
- }
-
- dmd_foreach_abi test_hello_world
-}
-
-src_install() {
- # Prepeare and install config file.
- cat > src/dmd/dmd.conf << EOF
-[Environment]
-DFLAGS=-I/usr/include/phobos2 -I/usr/include/druntime -L--export-dynamic
-EOF
- insinto /etc
- doins src/dmd/dmd.conf
- dobashcomp "${FILESDIR}/${PN}.bashcomp"
-
- # Compiler
- newbin src/dmd/dmd dmd2
-
- # Man pages, docs and samples
- doman man/man1/{dmd.1,dmd.conf.5}
- use doc && dohtml -r html/*
-
- if use tools; then
- doman man/man1/{dumpobj,obj2asm,rdmd}.1
-
- # Bundled pre-compiled tools
- dobin linux/bin$(abi_to_model)/{ddemangle,dman,dumpobj,obj2asm,rdmd}
- fi
-
- if use examples; then
- docompress -x /usr/share/doc/${PF}/samples/
- insinto /usr/share/doc/${PF}/samples/
- doins -r samples/d/*
- fi
-
- # druntime & Phobos 2
- install_libraries() {
- local MODEL=$(abi_to_model)
- dolib.a src/phobos/generated/linux/release/${MODEL}/libphobos2.a
- newlib.so src/phobos/generated/linux/release/${MODEL}/libphobos2.so.0.64 libphobos2.so.0.64.0
- dosym libphobos2.so.0.64.0 /usr/$(get_libdir)/libphobos2.so.0.64
- dosym libphobos2.so.0.64.0 /usr/$(get_libdir)/libphobos2.so
- }
- multilib_foreach_abi install_libraries
-
- # Imports
- insinto /usr/include/druntime/
- doins -r src/druntime/import/*
-
- rm -r src/phobos/{*.mak,generated,etc/c/zlib} || die "Could not remove non-import files from Phobos."
- insinto /usr/include/phobos2
- doins -r src/phobos/*
-}
-
-pkg_postinst() {
- if use doc || use examples; then
- elog "The bundled docs and/or samples may be found in"
- elog "/usr/share/doc/${PF}"
- fi
-}
diff --git a/dev-lang/dmd/files/dmd-2.061-makefile.patch b/dev-lang/dmd/files/dmd-2.061-makefile.patch
new file mode 100644
index 000000000..50f6a7e2e
--- /dev/null
+++ b/dev-lang/dmd/files/dmd-2.061-makefile.patch
@@ -0,0 +1,35 @@
+The patches allow for MODEL, DMD (compiler for the library) and
+DDOC (documentation generator) to be overriden on the command line.
+--- dmd2/src/dmd/posix.mak
++++ dmd2/src/dmd/posix.mak
+@@ -49,7 +49,7 @@
+ TK=tk
+ ROOT=root
+
+-MODEL=32
++MODEL?=32
+ ifneq (x,x$(MODEL))
+ MODEL_FLAG=-m$(MODEL)
+ endif
+--- dmd2/src/druntime/posix.mak
++++ dmd2/src/druntime/posix.mak
+@@ -37,7 +37,7 @@
+ DOCDIR=doc
+ IMPDIR=import
+
+-MODEL=32
++MODEL?=32
+ override PIC:=$(if $(PIC),-fPIC,)
+
+ DFLAGS=-m$(MODEL) -O -release -inline -w -Isrc -Iimport -property $(PIC)
+--- dmd2/src/phobos/posix.mak
++++ dmd2/src/phobos/posix.mak
+@@ -149,7 +149,7 @@
+ endif
+
+ # Set DDOC, the documentation generator
+-DDOC=$(DMD)
++DDOC?=$(DMD)
+
+ # Set LIB, the ultimate target
+ ifeq (,$(findstring win,$(OS)))