diff options
Diffstat (limited to 'config.tests/mac/mac_version.test')
-rwxr-xr-x | config.tests/mac/mac_version.test | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/config.tests/mac/mac_version.test b/config.tests/mac/mac_version.test new file mode 100755 index 0000000..ae9e707 --- /dev/null +++ b/config.tests/mac/mac_version.test @@ -0,0 +1,44 @@ +#!/bin/sh + +HOME=/dev/null +export HOME + +VERBOSE=$1 +SRCDIR=$2 +OUTDIR=$3 + +# debuggery +[ "$VERBOSE" = "yes" ] && echo "Testing Mac version..." >&2 + +# build a test program +test -d $OUTDIR/config.tests/mac/ || mkdir -p $OUTDIR/config.tests/mac/ +cd $OUTDIR/config.tests/mac +#TSTFILE=$OUTDIR/config.tests/mac/mac_version.cpp +TSTFILE=mac_version.cpp + +rm -f $TSTFILE +echo "#include <Carbon/Carbon.h>" >$TSTFILE +echo "#include <stdio.h>" >>$TSTFILE +echo "int main() {" >>$TSTFILE +echo " long gestalt_version;" >>$TSTFILE +echo " fprintf(stdout, \"%d\\n\", (Gestalt(gestaltSystemVersion, &gestalt_version) == noErr) ? gestalt_version : 0);" >>$TSTFILE +echo " return 1;" >>$TSTFILE +echo "}" >>$TSTFILE + +COMPILE_ERROR=yes +if [ "$VERBOSE" = "yes" ]; then + c++ $TSTFILE -o tst_mac_version -framework Carbon >&2 && COMPILE_ERROR=no +else + c++ $TSTFILE -o tst_mac_version -framework Carbon >/dev/null 2>&1 && COMPILE_ERROR=no +fi + +# done +if [ "$COMPILE_ERROR" = "yes" ]; then + [ "$VERBOSE" = "yes" ] && echo "Mac version cannot be detected!" >&2 + exit 1 +else + MAC_VERSION=`./tst_mac_version` + [ "$VERBOSE" = "yes" ] && echo "Mac version set to: $MAC_VERSION." >&2 + echo $MAC_VERSION + exit 0 +fi |