#!/bin/zsh
# Build script for OCaml ocamlbuild tool

set -e

cd "$SRCDIR"

export PATH="$PREFIX/bin:$PATH"
export LD_LIBRARY_PATH="/usr/lib:${LD_LIBRARY_PATH:-}"
export LIBRARY_PATH="/usr/lib:${LIBRARY_PATH:-}"

# Configure (generates Makefile.config)
gmake -f configure.make all \
    OCAMLBUILD_PREFIX=$PREFIX \
    OCAMLBUILD_BINDIR=$PREFIX/bin \
    OCAMLBUILD_LIBDIR=$PREFIX/lib/ocaml \
    OCAMLBUILD_MANDIR=$PREFIX/man

# Build core targets only — man page generation (options_man.byte)
# crashes on Hammerhead due to OCaml bytecode runtime issue
gmake -j1 ocamlbuild.native ocamlbuild.byte

# Install manually since gmake install depends on man pages
mkdir -p "$PKGDIR$PREFIX/bin"
mkdir -p "$PKGDIR$PREFIX/lib/ocaml/ocamlbuild"

cp ocamlbuild.native "$PKGDIR$PREFIX/bin/ocamlbuild"
cp ocamlbuild.byte "$PKGDIR$PREFIX/bin/ocamlbuild.byte"

# Install library files
for f in src/ocamlbuildlib.cma src/ocamlbuildlib.cmxa src/ocamlbuildlib.a \
         src/ocamlbuild_pack.cmi plugin-lib/ocamlbuild_plugin.cmi \
         plugin-lib/ocamlbuild_plugin.cmo plugin-lib/ocamlbuild_plugin.cmx \
         plugin-lib/ocamlbuild_plugin.o src/ocamlbuild_executor.cmi \
         plugin-lib/ocamlbuild_unix_plugin.cmi plugin-lib/ocamlbuild_unix_plugin.cmo \
         plugin-lib/ocamlbuild_unix_plugin.cmx plugin-lib/ocamlbuild_unix_plugin.o; do
    [ -f "$f" ] && cp "$f" "$PKGDIR$PREFIX/lib/ocaml/ocamlbuild/"
done
