# Contributor: Jon Ong <jonongjs@rottenmage.com>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Anil Madhavapeddy <anil@recoil.org>
# Maintainer: omni <omni+alpine@hack.org>
pkgname=ocaml-camlp4
_pkgname=camlp4
# NOTE: camlp4 version must match ocaml version!
pkgver=4.14.0
_pkgver="${pkgver%.*}+1"
_ocamlver=${pkgver%.*}
pkgrel=3
pkgdesc="Caml preprocessor and pretty-printer"
url="https://github.com/camlp4/camlp4"
arch="all !riscv64 !loongarch64" # ocaml
license="LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception"
depends="ocaml-runtime~$_ocamlver ocaml-ocamlbuild"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="
	ocaml~$_ocamlver
	ocaml-compiler-libs~$_ocamlver
	ocaml-findlib
	ocamlbuild
	"
replaces="camlp4"  # for backward compatibility
provides="camlp4=$pkgver-r$pkgrel"  # for backward compatibility
subpackages="$pkgname-dev"
source="$pkgname-$_pkgver.tar.gz::https://github.com/camlp4/camlp4/archive/$_pkgver.tar.gz"
builddir="$srcdir/$_pkgname-${_pkgver/+/-}"

build() {
	./configure \
		--bindir="/usr/bin" \
		--libdir="/usr/lib/ocaml" \
		--pkgdir="/usr/lib/ocaml"
	make -j1 all camlp4/META
}

package() {
	make DESTDIR="$pkgdir" \
		install install-META
}

dev() {
	default_dev
	replaces="camlp4"  # for backward compatibility

	cd "$pkgdir"

	mkdir -p "$subpkgdir"/usr
	mv usr/bin "$subpkgdir"/usr/
}

prepare_py_provides() {
	local datadir="${subpkgdir:-$pkgdir}"
	local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
	local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}

	options_has "!tracedeps" && return 0

	ocaml4-abuild-find provides \
		"$datadir"/usr/lib/ocaml \
		"$controldir" \
		"$pkgver-r$pkgrel"
}

scan_python3_dependency() {
	local controldir="$2" datadir="$3"

	ocaml4-abuild-find requires \
		"$datadir"/usr/lib/ocaml \
		"$controldir"
}

sha512sums="
7838bcfc88edec73667669ea6562435b946e79f0b4a0e8117a83b403936337f08aaf8abe39d8f800483d77381ae122fc89aa68505cf60ec2f1cc835a04da93f2  ocaml-camlp4-4.14+1.tar.gz
"
