#!/usr/bin/env bash
set -e

hash automake || { echo >&2 "Missing automake."; exit 1; }
hash autoreconf || { echo >&2 "Missing autoconf."; exit 1; }
hash libtool || hash glibtool || { echo >&2 "Missing libtool."; exit 1; }

cd "${BASH_SOURCE%/*}/../External/libjson-c"
[[ $1 = clean ]] && { [[ ! -e Makefile ]] || make -s distclean; exit; }
[[ -e "${prefix=$PWD/libjson-c-osx}/lib/libjson-c.a" ]] && exit

# Prepare
autoreconf -Iautoconf-archive/m4 --verbose --install --symlink 2> >(sed 's/^\([^:]*\):[0-9]\{1,\}: /\1: /')
rm -rf "${prefix=$PWD/libjson-c-osx}"
mkdir -p "$prefix"

# Targets
(
    ## ARCH: x86_64
    SDKROOT="$(xcrun --show-sdk-path --sdk macosx)"
    PATH="$(xcrun --show-sdk-platform-path --sdk macosx)/usr/bin:$PATH"
    export CFLAGS="-arch x86_64 -isysroot $SDKROOT -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET:-10.8} -O2 -g $CFLAGS" # -flto
    export LDFLAGS="-arch x86_64 -isysroot $SDKROOT -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET:-10.8} $LDFLAGS" # -flto
    export CPPFLAGS="$CFLAGS $CPPFLAGS"
    [[ -e Makefile ]] && make -s clean
    ./configure --disable-shared --prefix="$prefix"
    make -j3 check
    make -j3 install
)

# Cleanup
make -s really-clean