#!/bin/sh

OPTS=
TEMP=obj/check-c-lib.c
mkdir -p obj || exit 1

CC="$*"
if [ "$CC" = "" ] ; then
  CC=cc
fi
CC="$CC -o /dev/null $TEMP"

cat >$TEMP << EOF
int main() {
  return 0;
}
EOF
$CC 1>/dev/null 2>&1
if [ "$?" != 0 ] ; then
  # Not GCC ?
  exit 0
fi

cat >$TEMP << EOF
#include <stdlib.h>
int main() {
  return *canonicalize_file_name("");
}
EOF
$CC 1>/dev/null 2>&1
if [ "$?" = 0 ] ; then
  OPTS="$OPTS -DUSE_canonicalize_file_name=1"
else
  OPTS="$OPTS -DUSE_canonicalize_file_name=0"
fi

cat >$TEMP << EOF
#include <sys/ptrace.h>
int main() {
  enum __ptrace_request cmd = (enum __ptrace_request)0;
  return cmd != 0;
}
EOF
$CC 1>/dev/null 2>&1
if [ "$?" = 0 ] ; then
  OPTS="$OPTS -DUSE_enum_ptrace_request=1"
else
  OPTS="$OPTS -DUSE_enum_ptrace_request=0"
fi

cat >$TEMP << EOF
#include <string.h>
int main() {
  char buf[256];
  strlcpy(buf, "", sizeof(buf));
  strlcat(buf, "", sizeof(buf));
  return 0;
}
EOF
$CC 1>/dev/null 2>&1
if [ "$?" = 0 ] ; then
  OPTS="$OPTS -DUSE_strlcpy_strlcat=1"
else
  OPTS="$OPTS -DUSE_strlcpy_strlcat=0"
fi

cat >$TEMP << EOF
#include <sys/auxv.h>
#include <asm/hwcap.h>
int main() {
  unsigned long hwcap = getauxval(AT_HWCAP);
  return (hwcap & HWCAP_ARM_VFP) == 0;
}
EOF
$CC 1>/dev/null 2>&1
if [ "$?" = 0 ] ; then
  OPTS="$OPTS -DUSE_getauxval=1"
else
  OPTS="$OPTS -DUSE_getauxval=0"
fi

rm $TEMP

echo $OPTS