summaryrefslogtreecommitdiff
path: root/community/dmd/PKGBUILD
blob: ab5be235baf0570e251fe5a1328ec223077eb2ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# $Id: PKGBUILD 92844 2013-06-17 00:23:34Z svenstaro $
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Chris Brannon <cmbrannon79@gmail.com>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Anders Bergh <anders1@gmail.com>
# Contributor: Alexander Fehr <pizzapunk gmail com>

pkgname=('dmd' 'libphobos' 'dtools')
pkgbase=dmd
pkgver=2.063.2
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.dlang.org"
makedepends=('git')
source=("git+http://github.com/D-Programming-Language/dmd.git#tag=v$pkgver"
        "git+http://github.com/D-Programming-Language/druntime.git#tag=v$pkgver"
        "git+http://github.com/D-Programming-Language/phobos.git#tag=v$pkgver"
        "git+http://github.com/D-Programming-Language/tools#tag=v$pkgver")
sha1sums=('SKIP'
          'SKIP'
          'SKIP'
          'SKIP')

[[ $CARCH == "x86_64" ]] && _archbits="64"
[[ $CARCH == "i686" ]] && _archbits="32"

build() {
    cd $srcdir/dmd/src
    make -f posix.mak MODEL=$_archbits RELEASE=1

    cd $srcdir/druntime
    make -f posix.mak MODEL=$_archbits DMD=$srcdir/dmd/src/dmd RELEASE=1

    cd $srcdir/phobos
    make -f posix.mak MODEL=$_archbits DMD=$srcdir/dmd/src/dmd RELEASE=1

    cd $srcdir/tools
    for tool in rdmd.d ddemangle.d catdoc.d detab.d tolf.d dget.d; do
        $srcdir/dmd/src/dmd -I../druntime/import -I../phobos -L-L../phobos/generated/linux/release/$_archbits/ $tool
    done
}

package_dmd() {
    pkgdesc="The D programming language reference compiler"
    backup=('etc/dmd.conf')
    depends=('gcc')
    provides=("d-compiler=$pkgver")
    license=('custom')

    install -Dm755 $srcdir/dmd/src/dmd $pkgdir/usr/bin/dmd

    mkdir -p $pkgdir/etc
    echo -e "[Environment]\nDFLAGS=-I/usr/include/d -I/usr/include/d/druntime/import -L-L/usr/lib -L-L/usr/lib32 -L--no-warn-search-mismatch -L--export-dynamic" > $pkgdir/etc/dmd.conf

    install -Dm644 $srcdir/dmd/docs/man/man1/dmd.1 $pkgdir/usr/share/man/man1/dmd.1
    install -Dm644 $srcdir/dmd/docs/man/man1/dmd.conf.5 $pkgdir/usr/share/man/man5/dmd.conf.5

    install -Dm644 $srcdir/dmd/src/backendlicense.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE-backend
    install -Dm644 $srcdir/dmd/src/gpl.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE-frontend.1
    install -Dm644 $srcdir/dmd/src/artistic.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE-frontend.2

    mkdir -p $pkgdir/usr/share/d/samples/
    cp -r $srcdir/dmd/samples/* $pkgdir/usr/share/d/samples/

    find $pkgdir/usr -type f | xargs chmod 0644
    chmod 755 $pkgdir/usr/bin/*

    #  No longer available, because not source code is provided and those are not mandatory.
    #  Please get those from http://dlang.org if absolutely needed.

    #  install -Dm755 $srcdir/dmd/linux/bin${_archbits}/dumpobj $pkgdir/usr/bin/dumpobj
    #  install -Dm755 $srcdir/dmd/linux/bin${_archbits}/obj2asm $pkgdir/usr/bin/obj2asm
}

# Will be packaged separately once GDC/LDC will be able to compile phobos and pass test suite.
# For now only dependency is relaxed
package_libphobos() {
    depends=("d-compiler>=$pkgver" "curl")
    pkgdesc="The Phobos standard library for D programming language"
    license=("boost")
    install -Dm644 $srcdir/phobos/generated/linux/release/$_archbits/libphobos2.a $pkgdir/usr/lib/libphobos2.a
    install -Dm644 $srcdir/phobos/generated/linux/release/$_archbits/libphobos2.so $pkgdir/usr/lib/libphobos2.so

    mkdir -p $pkgdir/usr/include/d
    cp -r $srcdir/phobos/{*.d,etc,std} $pkgdir/usr/include/d

    mkdir -p $pkgdir/usr/include/d/druntime
    cp -r $srcdir/druntime/import $pkgdir/usr/include/d/druntime

    mkdir -p $pkgdir/usr/share/doc/d/

    find $pkgdir/usr -type f | xargs chmod 0644

    install -Dm644 $srcdir/druntime/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE-druntime
    install -Dm644 $srcdir/phobos/LICENSE_1_0.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE-phobos
}

package_dtools() {
    pkgdesc="Ancilliary tools for the D programming language compiler"
    license=("boost")
    depends=("curl")

    cd $srcdir/tools
    mkdir -p $pkgdir/usr/bin
    install -m755 -t $pkgdir/usr/bin rdmd ddemangle catdoc detab tolf dget
}