-#!/bin/sh
+#!/usr/bin/env bash
#
# Does various checks for people that we can use to diagnose
# an end user installation
echo " than the Mono found:"
echo " Mono on PATH: $monocmd"
echo " Mono from pkg-config: $pkg_config_mono"
- exit 1
fi
else
echo "Warning: pkg-config could not find mono installed on this system"
fi
while test x$1 != x; do
if test -e $1/$libgdiplus; then
- echo Found a libgdiplus in directory $1
+ echo " The $libgdiplus is found on $libdir/$libgdiplus"
libgdiplus_found=true
+ libgdiplus_path=$1/$libgdiplus
+ break
fi
shift
done
libdir=`dirname $monocmd`/../lib
if test -f $libdir/$libgdiplus; then
- echo " The $libgdiplus is found on $libdir"
+ echo " The $libgdiplus is found on $libdir/$libgdiplus"
if test -e $libdir/$libgdiplus; then
- echo " but it seems to be a broken link"
+ libgdiplus_path=$libdir/$libgdiplus
+ libgdiplus_found=true
else
- search_libgdiplus_on_path
+ echo " but it seems to be a broken link"
fi
else
search_libgdiplus_on_path
fi
if $libgdiplus_found; then
- echo " libgdiplus found"
+ echo ssss
+ if which ldd >/dev/null; then
+ LANG=C dirs=`ldd $libgdiplus_path | grep 'not found'`
+ if echo $dirs | grep 'not found' >& /dev/null; then
+ echo " libgdiplus is missing the following dependencies to run:"
+ echo $dirs | sed 's/^/ /'
+ fi
+ fi
else
echo " No libgdiplus was found on your $LD_PATH"
fi
echo Failed to compile sample System.Drawing program, your installation is broken
exit 1
fi
+
+cat > $temp_cs <<EOF
+using System;
+using System.Reflection;
+using System.IO;
+
+class Program {
+
+ public static void Main()
+ {
+ object watcher = new FileSystemWatcher()
+ .GetType ()
+ .GetField ("watcher", BindingFlags.NonPublic | BindingFlags.Static)
+ .GetValue (null);
+
+ Console.WriteLine ("Your file system watcher is: {0}",
+ watcher != null
+ ? watcher.GetType ().FullName
+ : "unknown");
+ }
+}
+EOF
+
+if mcs $temp_cs >& /dev/null; then
+ mono $temp_exe
+else
+ echo Failed to compile sample test program, your installation is broken
+ exit 1
+fi