maintainer="fossdd <fossdd@pwned.life>"
pkgname=mono
pkgver=6.14.1
pkgrel=0
pkgdesc="Free implementation of the .NET platform including runtime and compiler"
url="https://www.mono-project.com/"
# loongarch64: vendored boringssl: Unknown processor:loongarch64
# riscv64: fails to build gensources.exe
# armhf, armv7: hangs on build
arch="all !loongarch64 !riscv64 !armhf !armv7"
license="MIT"
depends="python3"
depends_dev="
	$pkgname=$pkgver-r$pkgrel
	libgdiplus-dev
	"
makedepends="
	$depends_dev
	bash
	cmake
	libucontext-dev
	linux-headers
	perl
	samurai
	"
subpackages="
	$pkgname-dev
	$pkgname-doc
	$pkgname-lang
	"
source="https://dl.winehq.org/mono/sources/mono/mono-$pkgver.tar.xz
	aarch64-fix-pointer-to-int-cast-size.patch
	s390x-musl.patch
	"
options="!check" # fail

build() {
	CFLAGS="$CFLAGS -O2 -flto=auto" \
	CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
	LDFLAGS="$LDFLAGS -lucontext" \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--localstatedir=/var \
		--disable-boehm \
		--enable-ninja \
		--disable-rpath \
		--disable-static \
		--enable-parallel-mark \
		--with-mcs-docs=no \
		--without-sigaltstack
	make
	make -C mcs/jay
}

check() {
	make check
}

package() {
	make DESTDIR="$pkgdir" install
	make DESTDIR="$pkgdir" prefix=/usr INSTALL=../../install-sh -C mcs/jay install

	cd "$pkgdir"

	rm -rf \
		usr/lib/mono/*/Mono.Security.Win32* \
		usr/lib/*.la
}

dev() {
	default_dev

	mv "$subpkgdir"/usr/lib/*.so "$pkgdir"/usr/lib/
}

sha512sums="
c16a2ecbfce93db20a7a6d11b6406c8764f5694355c1ce82081399cd7ab6d8b22e7f8fb21f7af78967b34ef54dcb682917b8cf22d61f1b72be996d1a42e9f1b9  mono-6.14.1.tar.xz
d95c19be46115bfa1b9d0e59a8ac90eb90073e4fcb86e3951243f167f53f30bbd3b038b430f11b7ab2df642c29dd45d13d8bef2e5d63a7f2ceb2edf34b30e897  aarch64-fix-pointer-to-int-cast-size.patch
a17a5f36be8c651f03222760bb23e473503dac36ecb5ce4ec2575acf4122976720386c07104ec9c742e9a2d9cc0d35f0e31adaa6c82783f44818792a557ac6b8  s390x-musl.patch
"
