# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# If we are building from within the nanoarrow repo, bootstrap.R will (1)
# exist and (2) perform the necessary vendoring steps
if [ -f bootstrap.R ]; then
  $R_HOME/bin/Rscript bootstrap.R
fi

if [ -f "src/nanoarrow.h" ] && [ -f "src/nanoarrow.c" ]; then
  echo "Found vendored nanoarrow"
else
  echo "Vendored src/nanoarrow.h and/or src/nanoarrow.c are missing"
  echo "This source tarball was built incorrectly."
  exit 1
fi

# Check to see if a zstd test file compiles and links without any help from pkg-config
ZSTD_FOUND=""
PKG_CPPFLAGS="$PKG_CPPFLAGS" PKG_LIBS="$PKG_LIBS -lzstd" \
  $R_HOME/bin/R CMD SHLIB tools/test_zstd.c -o test_zstd >test_zstd.log 2>&1
if [ $? -eq 0 ]; then
  echo "tools/test_zstd.c compiled without error"
  PKG_CPPFLAGS="$PKG_CPPFLAGS -DNANOARROW_IPC_WITH_ZSTD"
  PKG_LIBS="$PKG_LIBS -lzstd"
  ZSTD_FOUND="yes"
fi

# Add pkg-config for libzstd if possible
if [ -z "$ZSTD_FOUND" ] && pkg-config libzstd --exists >/dev/null 2>&1; then
  PKG_CPPFLAGS="`pkg-config libzstd --cflags` -DNANOARROW_IPC_WITH_ZSTD $PKG_CPPFLAGS"
  PKG_LIBS="`pkg-config libzstd --libs` $PKG_LIBS"
  echo "Using pkg-config libzstd"
  ZSTD_FOUND="yes"
fi

rm -f tools/test_zstd.o test_zstd test_zstd.log || true

echo "Using PKG_CPPFLAGS=$PKG_CPPFLAGS"
echo "Using PKG_LIBS=$PKG_LIBS"

sed \
  -e "s|@cppflags@|$PKG_CPPFLAGS|" \
  -e "s|@libs@|$PKG_LIBS|" \
  src/Makevars.in > src/Makevars
