# Template file for 'dmd' pkgname=dmd version=2.101.1 revision=1 create_wrksrc=yes hostmakedepends="dmd2.091 which" makedepends="git" depends="libphobos>=${version} gcc" short_desc="Digital Mars D compiler" maintainer="streaks " license="BSL-1.0" homepage="http://www.digitalmars.com/d/2.0/" distfiles=" https://github.com/dlang/dmd/archive/refs/tags/v${version}.tar.gz>dmd-${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="e369396dbbe4eec9311122fa24c975688b209a000bf2062a9f86b49ab2e4a7b0 8a275b3f46d921be87744ec80d3094421a979d6f607dbd43e88e251bbb3f503a 58333e57ed3812077dc2f8cc8759998b3b59c9ea3dbe01571eab4b2944a84bfe" conf_files="/etc/dmd.conf" provides="d-compiler-${version}_${revision}" conflicts="dmd-bootstrap dmd2.081 dmd2.091" nopie=yes # from no to very little distinction between host CC and target CC in # makefiles or build.d nocross="broken build system" disable_parallel_build=yes LDFLAGS="-lpthread" case "$XBPS_TARGET_MACHINE" in x86_64*) _archbits=64;; i686) _archbits=32;; *) broken="unsupported arch upstream";; esac post_extract() { mv dmd-${version} dmd mv phobos-${version} phobos } post_patch() { if [ "$XBPS_TARGET_LIBC" = musl ]; then patch -p0 < ${FILESDIR}/musl.patch fi } 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 compiler/docs 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 dmd2.081 dmd2.091" pkg_install() { vinstall ${wrksrc}/dmd/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}/dmd/druntime/import ${PKGDESTDIR}/usr/include/d/druntime vlicense ${wrksrc}/dmd/LICENSE.txt } }