#!/bin/bash
# Construye el paquete Debian/Ubuntu de calcula desde una copia limpia
# (svn export) y deja el .deb en este mismo directorio.
#
#     calcula-6.0/hacer-deb   (desde cualquier lado)
#
# Hacen falta exprtk y tabular2 instaladas COMO PAQUETES. exprtk es
# obligatoria: el modulo dinamico evalua con ella. tabular2 tambien lo es
# para el paquete, porque sin ella sale sin tabla() y con el sistema
# circuito-tabla roto (configure --with-tabular2, que pasa debian/rules).

# hacer-deb.inc, summa.py y packs.data vienen de summapack: SUMMAPACK_DATA,
# o la copia de trabajo de siru al lado de esta (../siru/summapack), o
# summapack instalado. Ver siru/summapack/PAQUETES.md.
for SUMMAPACK_DATA in ${SUMMAPACK_DATA:-} \
        "$(cd "$(dirname "$0")" && pwd)/../../siru/summapack/share/summapack/data" \
        /usr/share/summapack/data /usr/local/share/summapack/data "$HOME/share/summapack/data"; do
    [ -f "$SUMMAPACK_DATA/hacer-deb.inc" ] && break
done
[ -f "$SUMMAPACK_DATA/hacer-deb.inc" ] || {
    echo "No esta hacer-deb.inc de summapack: instalar summapack, o tener la copia" >&2
    echo "de trabajo de siru junto a la de calcula, o poner SUMMAPACK_DATA." >&2
    exit 1
}
. "$SUMMAPACK_DATA/hacer-deb.inc"

origen=$(cd "$(dirname "$0")" && pwd)
raiz=$(dirname "$origen")
siru=$(dirname "$raiz")/siru

paso "Comprobaciones previas"
necesita_ordenes svn dpkg-buildpackage dh fakeroot autoreconf libtoolize \
                 gcc g++ gfortran bison pkg-config
necesita_paquetes libgsl-dev libreadline-dev libncurses-dev
necesita_paquetes --como "Salen del repositorio siru:
  sudo $siru/instalar tabular2

o uno por uno:
  $siru/exprtk/hacer-deb    && sudo dpkg -i $siru/exprtk/libexprtk-dev_*.deb
  $siru/mem_util/hacer-deb  && sudo dpkg -i $siru/mem_util/libmem-util*.deb
  $siru/slex/hacer-deb      && sudo dpkg -i $siru/slex/libslex*.deb
  $siru/tabular2/hacer-deb  && sudo dpkg -i $siru/tabular2/libtabular2*.deb" \
    libexprtk-dev libtabular2-dev libtabular2-0 libslex-dev libslex0
verde "   todo en orden"

paso "Copia limpia"
tmp=$(mktemp -d "${TMPDIR:-/tmp}/calcula-deb.XXXXXX")
trap 'rm -rf "$tmp"' EXIT
exportar "$origen" "$tmp/calcula-6.0"

paso "Construyendo (tarda: ExprTk son unos minutos en C++)"
cd "$tmp/calcula-6.0"
dpkg-buildpackage -us -uc -b

paso "Listo"
# El .deb va a la raiz del working copy, no al directorio del fuente: es
# donde lo busca instalar6 (ls -v $dir/calcula_6.0-*_amd64.deb) y donde
# *.deb esta en svn:ignore. 06/10/2026.
copiar_debs "$tmp" "$raiz"
