108 lines
3 KiB
Bash
108 lines
3 KiB
Bash
# Template file for 'dmd'
|
|
pkgname=dmd
|
|
version=2.087.1
|
|
revision=1
|
|
create_wrksrc=yes
|
|
makedepends="dmd2.081 git"
|
|
depends="libphobos>=${version} gcc"
|
|
short_desc="Digital Mars D compiler"
|
|
maintainer="streaks <assemblyislaw@gmail.com>"
|
|
license="BSL-1.0"
|
|
homepage="http://www.digitalmars.com/d/2.0/"
|
|
distfiles="
|
|
https://github.com/dlang/dmd/archive/v${version}.tar.gz>dmd-${version}.tar.gz
|
|
https://github.com/dlang/druntime/archive/v${version}.tar.gz>druntime-${version}.tar.gz
|
|
https://github.com/dlang/phobos/archive/v${version}.tar.gz>phobos-${version}.tar.gz
|
|
http://downloads.dlang.org/releases/2.x/${version}/dmd.${version}.linux.tar.xz"
|
|
checksum="4239b8b6dc09acf3cdaa1c924f3a2b3cddd0fb532f817c4027b8966f1e96b3a8
|
|
19b7f18e11934a582d67dcb39c3ea91d5c24444c3be311f93160e0016ccc58fa
|
|
84c7120e972255b4c66c532ff771ecbbb615b87140d0ffcb214d04b0d418f28f
|
|
c3c6cc865f5aa66dce4244467797b596ed0ada2bde93031350dc36713733cfc1"
|
|
conf_files="/etc/dmd.conf"
|
|
provides="d-compiler-${version}_${revision}"
|
|
conflicts="dmd-bootstrap dmd2.081"
|
|
nopie=yes
|
|
LDFLAGS="-lpthread"
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
x86_64*) _archbits=64;;
|
|
i686) _archbits=32;;
|
|
*) broken="unsupported arch upstream";;
|
|
esac
|
|
|
|
post_extract() {
|
|
rm -rf dmd druntime phobos
|
|
mv dmd-${version} dmd
|
|
mv druntime-${version} druntime
|
|
mv phobos-${version} phobos
|
|
}
|
|
|
|
pre_configure() {
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
*-musl) patch -p0 < ${FILESDIR}/musl.patch
|
|
if [ "$XBPS_TARGET_MACHINE" = "i686-musl" ]; then
|
|
patch -p0 < ${FILESDIR}/i686-musl.patch
|
|
fi
|
|
esac
|
|
}
|
|
|
|
do_build() {
|
|
local dmd
|
|
|
|
cd dmd
|
|
make ${makejobs} -f posix.mak MODEL=${_archbits} TARGET_CPU=X86 ENABLE_RELEASE=1 PIC=1
|
|
dmd=${wrksrc}/dmd/generated/linux/release/$_archbits/dmd
|
|
|
|
make ${makejobs} -C docs
|
|
|
|
cd ../druntime
|
|
make ${makejobs} -f posix.mak MODEL=${_archbits} DMD=$dmd ENABLE_RELEASE=1 PIC=1
|
|
|
|
cd ../phobos
|
|
make ${makejobs} -f posix.mak MODEL=${_archbits} DMD=$dmd ENABLE_RELEASE=1 PIC=1
|
|
}
|
|
|
|
do_install() {
|
|
cd dmd
|
|
vbin generated/linux/release/$_archbits/dmd
|
|
vinstall ${FILESDIR}/dmd.conf 644 etc
|
|
|
|
vman generated/docs/man/man1/dmd.1
|
|
vman generated/docs/man/man5/dmd.conf.5
|
|
}
|
|
|
|
dmd-doc_package() {
|
|
short_desc="Documentation and sample code for D programming language"
|
|
replaces="dmd-docs>=0"
|
|
license="BSL-1.0"
|
|
|
|
pkg_install() {
|
|
cd dmd2
|
|
|
|
vmkdir usr/share/doc/d
|
|
vcopy samples usr/share/doc/d
|
|
vcopy html usr/share/doc/d
|
|
|
|
find ${PKGDESTDIR}/usr/share/doc/d -type f | xargs chmod 0644
|
|
|
|
vlicense license.txt
|
|
}
|
|
}
|
|
|
|
libphobos_package() {
|
|
short_desc+=" - standard library"
|
|
license="BSL-1.0"
|
|
conflicts="dmd-bootstrap"
|
|
pkg_install() {
|
|
vinstall ${wrksrc}/druntime/generated/linux/release/$_archbits/libdruntime.a 644 usr/lib libdruntime.a
|
|
vinstall ${wrksrc}/phobos/generated/linux/release/$_archbits/libphobos2.a 644 usr/lib libphobos2.a
|
|
|
|
vmkdir usr/include/d
|
|
cp -r ${wrksrc}/phobos/{*.d,etc,std} ${PKGDESTDIR}/usr/include/d
|
|
|
|
vmkdir usr/include/d/druntime
|
|
cp -r ${wrksrc}/druntime/import ${PKGDESTDIR}/usr/include/d/druntime
|
|
|
|
vlicense ${wrksrc}/druntime/LICENSE.txt
|
|
}
|
|
}
|