void-packages/srcpkgs/dmd/template
2018-04-16 13:57:13 +02:00

104 lines
2.8 KiB
Bash

# Template file for 'dmd'
pkgname=dmd
version=2.079.1
revision=1
create_wrksrc=yes
makedepends="dmd-bootstrap"
depends="libphobos>=${version} gcc"
short_desc="The Digital Mars D compiler"
maintainer="Juan RP <xtraeme@voidlinux.eu>"
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="86f125bcc9d1c3d47ed9211b033ebbb38f827a9d37466aa1d91cc1d76b2bb1e8
9e943fbf38912ef8f71dd7252c0ca2284a23681c8e61a6ee38b317232b676792
a8585ef4bbd19d02fab4054619324126985db4fdf4d4751a91bd2e6fb23b5fe9
ae662ae24def53cb30733dd9ea811c4363a26c9434baab6d0a5d832a92d8af28"
conf_files="/etc/dmd.conf"
provides="d-compiler-${version}_${revision}"
conflicts="dmd-bootstrap"
nopie=yes
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
esac
}
do_build() {
local dmd
cd dmd
make ${makejobs} -f posix.mak MODEL=${_archbits} TARGET_CPU=X86 BUILD=release 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 BUILD=release PIC=1
cd ../phobos
make ${makejobs} -f posix.mak MODEL=${_archbits} DMD=$dmd BUILD=release 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="Boost License"
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="Boost License"
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
}
}