summaryrefslogtreecommitdiffstats
path: root/config.tests/mac/mac_version.test
diff options
context:
space:
mode:
Diffstat (limited to 'config.tests/mac/mac_version.test')
-rwxr-xr-xconfig.tests/mac/mac_version.test44
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