# Template file for 'dmd' pkgname=dmd version=2.079.0 revision=1 create_wrksrc=yes short_desc="The Digital Mars D compiler" maintainer="Juan RP " homepage="http://www.digitalmars.com/d/2.0/" license="Boost Software License 1.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="e4fed191a05051dd262198ebbfd77e9e99fbad251b67b88b3394e2cca8a41893 531910210e29c938ecee8ff6f39d2d247e892cae71811a684a504504bf1ea29b 39cae5b9578925a9458654c64c9a85204b7598c685c2e48b7d4fcfc37d4a3550 75c3df4ba4e731ac0fa36a60cd04bbac05a2d79633f4602ad645f533847929ce" case "$XBPS_TARGET_MACHINE" in x86_64*) _archbits=64;; i686*) _archbits=32;; esac makedepends="dmd-bootstrap" only_for_archs="i686 i686-musl x86_64 x86_64-musl" conf_files="/etc/dmd.conf" nopie=yes provides="d-compiler-${version}_${revision}" conflicts="dmd-bootstrap" depends="libphobos>=${version} gcc" 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 } }