#!/bin/sh
CXX=$(${R_HOME}/bin/R CMD config CXX)
CXXFLAGS=$(${R_HOME}/bin/R CMD config CXXFLAGS)
CPPFLAGS=$(${R_HOME}/bin/R CMD config CPPFLAGS)

PKG_CFLAGS="-DZMQ_STATIC -DZMQ_BUILD_DRAFT_API=1 -fPIC -Ilibzmq/include -Icppzmq"
PKG_LIBS="libzmq/src/.libs/libzmq.a"

if [ ! -f src/libzmq/autogen.sh ]; then
  # the tarball has the submodules, a fresh clone does not
  git submodule update --init --recursive
fi

if [ ! -f src/libzmq/src/.libs/libzmq.a ]; then
  cd src/libzmq

  if [ ! -f src/Makefile.am.orig ]; then
    # remove code format helper and valgrind support that CRAN complains about
    # sed -i does not work on macOS
    mv Makefile.am Makefile.am.orig
    sed '/WITH_CLANG_FORMAT/,/VALGRIND_SUPPRESSIONS_FILES/d' Makefile.am.orig > Makefile.am
  fi

  if [ ! -f src/curve_client_tools.hpp.orig ]; then
    # remove disabled gcc check that cran complains about
    mv src/curve_client_tools.hpp src/curve_client_tools.hpp.orig
    sed '/^#pragma/s|^|//|' src/curve_client_tools.hpp.orig > src/curve_client_tools.hpp
  fi
  if [ ! -f include/zmq_utils.h.orig ]; then
    mv include/zmq_utils.h src/zmq_utils.h.orig
    sed '/^#pragma/s|^|//|' include/zmq_utils.h.orig > include/zmq_utils.h
  fi

  if [ ! -f Makefile.in ]; then
    ./autogen.sh || die
  fi

  CXX="$CXX" CXXFLAGS="$CXXFLAGS -fPIC" CPPFLAGS="$CPPFLAGS" ./configure \
      --enable-static \
      --disable-shared \
      --disable-maintainer-mode \
      --enable-drafts \
      --disable-libbsd \
      --disable-libunwind \
      --disable-perf \
      --disable-curve \
      --disable-curve-keygen \
      --disable-ws \
      --disable-radix-tree
  make || exit 1
  cd -
fi

sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars
