# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit dune
DESCRIPTION="Invoke amd64 instructions (such as clz, popcnt, rdtsc, rdpmc)"
HOMEPAGE="https://github.com/janestreet/ocaml_intrinsics/"
SRC_URI="https://github.com/janestreet/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="amd64 arm arm64 ~ppc ~ppc64 ~riscv x86"
IUSE="+ocamlopt cpu_flags_x86_sse4_2"
RESTRICT="test"
DEPEND="
>=dev-lang/ocaml-4.14
dev-ml/dune-configurator:=
"
RDEPEND="${DEPEND}"
src_prepare() {
local supported_arch=false
if use amd64 || use x86; then
# On x86/amd64, we MUST have sse4_2 support for these stubs
use cpu_flags_x86_sse4_2 && supported_arch=true
elif use arm || use arm64; then
supported_arch=true
fi
# If not a supported configuration, strip the stubs from the build
if ! ${supported_arch}; then
sed -i -e 's: crc_stubs::' src/dune || die
fi
default
}