#!/bin/sh

set -e
set -u

libexec="$(cd "$(dirname "$0")"; pwd)"
top="${libexec}/.."
src="${2:-"${top}/src"}"
version="${1:-$("${libexec}/metadata" node_version)}"

cd "${src}/node-v${version}"

BASEDIR="${PWD}"
BUILDTYPE="${BUILDTYPE:-Release}"
LIBV8_MONOLITH="libv8_monolith.a"

cd "out/${BUILDTYPE}/obj.target"

platform=$(uname)

rm -f "${LIBV8_MONOLITH}"
case "${platform}" in
    "SunOS")
        /usr/xpg4/bin/find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | xargs ar cq "${LIBV8_MONOLITH}"
        ;;
    "Darwin")
        /usr/bin/find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | xargs /usr/bin/ar -cq "${LIBV8_MONOLITH}"
        ;;
    "Linux")
        find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -and '(' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" ')' | sort | uniq | xargs ar -cqSP "${LIBV8_MONOLITH}"
        ar -sP "${LIBV8_MONOLITH}"
        ;;
    *)
      echo "Unsupported platform: ${platform}"
      exit 1
      ;;
esac

mv -f "${LIBV8_MONOLITH}" "${BASEDIR}/out/${BUILDTYPE}/${LIBV8_MONOLITH}"
