# Template file for 'dmd-bootstrap'
pkgname=dmd-bootstrap
version=2.069.20180305
revision=3
_gitrev_dmd=75266348c8a2368945a339ab86d7c8960a9bfc08
_gitrev_druntime=33ae38cef41564b12864470afaf8430eb7334d3b
_gitrev_phobos=30ac23a0889dd183221ce531a057171dd45296c4
archs="x86_64* i686*"
create_wrksrc=yes
build_style=gnu-makefile
short_desc="DMD Compiler (last C++ version for bootstrap)"
maintainer="Yuxuan Shui <yshuiv7@gmail.com>"
license="BSL-1.0"
homepage="https://dlang.org/"
distfiles="
 https://github.com/dlang/dmd/archive/${_gitrev_dmd}.tar.gz>dmd-${version}.tar.gz
 https://github.com/dlang/druntime/archive/${_gitrev_druntime}.tar.gz>druntime-${version}.tar.gz
 https://github.com/dlang/phobos/archive/${_gitrev_phobos}.tar.gz>phobos-${version}.tar.gz"
checksum="
 015ad5ce9d60bc183b9b40ae649eafeced93cb2a211400d9280464b22acdb129
 7f4d84f2b5252c0cc33bffbb4de8aab9321df844b8512e27e90267cbb9bc7422
 57306f80a63b83b755043d05e85e83cf3178701c92d295c97d1a5a8be8ffce19"
provides="d-compiler-${version}_${revision}"
repository=bootstrap

post_extract() {
	rm -rf dmd druntime phobos
	mv dmd-${_gitrev_dmd} dmd
	mv druntime-${_gitrev_druntime} druntime
	mv phobos-${_gitrev_phobos} phobos
}

pre_configure() {
	case "$XBPS_TARGET_MACHINE" in
		*-musl) patch -p0 < ${FILESDIR}/musl.patch
			patch -p0 < ${FILESDIR}/musl-math.patch
	esac
}

do_build() {
	local dmd

	cd dmd/src
	make ${makejobs} -f posix.mak HOST_CXX=$CXX MODEL=${XBPS_TARGET_WORDSIZE} \
		TARGET_CPU=X86 RELEASE=1 all
	dmd=${wrksrc}/dmd/src/dmd

	cd ../../druntime
	make ${makejobs} -f posix.mak MODEL=${XBPS_TARGET_WORDSIZE} DMD=$dmd RELEASE=1

	cd ../phobos
	make ${makejobs} -f posix.mak MODEL=${XBPS_TARGET_WORDSIZE} DMD=$dmd RELEASE=1
}

do_install() {
	cd dmd/src
	vbin dmd

	vmkdir etc
	cat > $DESTDIR/etc/dmd.conf <<- EOF
	[Environment]
	DFLAGS=-I/usr/include/dlang/dmd -L-L/usr/lib${XBPS_TARGET_WRODSIZE} -L--export-dynamic
	EOF

	vlicense backendlicense.txt
	vlicense boostlicense.txt

	vmkdir usr/share/man/man1
	vmkdir usr/share/man/man5
	cd ..
	vcopy docs/man/man1/* usr/share/man/man1/
	vcopy docs/man/man5/* usr/share/man/man5/

	cd ..
	vinstall phobos/generated/linux/release/${XBPS_TARGET_WORDSIZE}/libphobos2.a 0644 usr/lib
	vmkdir usr/include/dlang/dmd
	vcopy phobos/*.d usr/include/dlang/dmd
	vcopy phobos/etc usr/include/dlang/dmd
	vcopy phobos/std usr/include/dlang/dmd
	vcopy druntime/import/* usr/include/dlang/dmd/

	vlicense druntime/LICENSE
	vlicense phobos/LICENSE_1_0.txt
}
