65 lines
1.5 KiB
Bash
Executable file
65 lines
1.5 KiB
Bash
Executable file
#!/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
|