#!/bin/sh

$NDK/ndk-build "$@"
if [ $? != 0 ]; then
  echo "ERROR: Could not build test program!"
  exit 1
fi

# Return the type of a given file as returned by /usr/bin/file
# $1: file path
get_file_type () {
    /usr/bin/file -b "$1" 2>/dev/null
}

# Returns success iff a given file is a thin archive.
# $1: file type as returned by get_file_type()
is_file_type_thin_archive () {
  # The output of /usr/bin/file will depend on the OS:
  # regular Linux -> 'current ar archive'
  # regular Darwin -> 'current ar archive random library'
  # thin Linux -> 'data'
  # thin Darwin -> 'data'
  case "$1" in
    *"ar archive"*)
      return 1
      ;;
    *"thin archive"*)
      return 0
      ;;
    "data")
      return 0
      ;;
    *)
      echo "ERROR: Unknown '$FILE_TYPE' file type" >&2
      return 2
      ;;
  esac
}

# Check that libfoo.a is a thin archive
LIBFOO_LIST=$(find obj/local -name "libfoo.a")
EXIT_CODE=0
for LIB in $LIBFOO_LIST; do
  LIB_TYPE=$(get_file_type "$LIB")
  if is_file_type_thin_archive "$LIB_TYPE"; then
    echo "OK: $LIB is a thin archive ('$LIB_TYPE')."
  else
    echo "ERROR: $LIB is not a thin archive: '$LIB_TYPE'"
    EXIT_CODE=1
  fi
done

# Check that libbar.a is not a thin archive
LIBBAR_LIST=$(find obj/local -name "libbar.a")
for LIB in $LIBBAR_LIST; do
  LIB_TYPE=$(get_file_type "$LIB")
  if is_file_type_thin_archive "$LIB_TYPE"; then
    echo "ERROR: $LIB is not a regular archive: '$LIB_TYPE'"
    EXIT_CODE=1
  else
    echo "OK: $LIB is a regular archive: '$LIB_TYPE'"
  fi
done

exit $EXIT_CODE
