# gmp — aritmética de precisión arbitraria. Entra al corpus por abajo del lanzador: el plugin de la
# calculadora de pop-launcher llama al binario `qalc`, `qalc` es libqalculate, y libqalculate corta el
# configure con «libgmp not found» si no está. O sea que la cadena de una tecla del escritorio baja
# hasta la aritmética de enteros grandes — y ese es justo el tipo de dep que no se ve venir mirando
# el paquete de arriba.
#
# ── `--disable-assembly` NO ES PEREZA ───────────────────────────────────────────────────────────
# GMP trae rutinas en ensamblador por microarquitectura y su `configfsf.guess` elige una mirando la
# CPU de QUIEN COMPILA. Eso es exactamente lo que este lab no puede permitir: hornearía la ISA del
# laptop en el artefacto y el hash dejaría de significar lo mismo en la granja (el mismo modo de
# falla que `-mcpu=baseline` corrige en el wrapper de zig). Con `--disable-assembly` GMP usa su
# implementación en C portable: más lenta, y a nadie le importa — acá la usa una calculadora de
# escritorio, no un criptosistema.
# Además zig/clang no digiere varias de esas rutinas (`.align` y sintaxis de gas antigua), así que
# la alternativa realista tampoco era «assembly sí».
name    = "gmp"
version = "6.3.0"

[source]
tarball = "https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz"
sha256  = "a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898"

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
link     = "static"
flags    = []

[build.phases]
# `--enable-cxx` va APAGADO: libqalculate usa la API C de GMP (`__gmpz_init` es lo que su configure
# busca), y `libgmpxx` arrastraría el runtime de C++ a un paquete que no lo necesita — justo la deuda
# que la campaña «matar gcc» viene pagando en el resto del árbol.
configure = '''
./configure \
	--build=$CBUILD --host=$CHOST \
	--prefix=/usr \
	--disable-shared --enable-static \
	--disable-assembly \
	--enable-fat=no
'''
compile = 'make -j"$(nproc)"'
install = 'make DESTDIR=/out install'

[deps]
build = ["make", "m4"]
