[runtime] Fix DISABLE_REFLECTION_EMIT build.
[mono.git] / scripts / mono-test-install
index 7abc7103e77e3cd027c18b57c2c9071cdfe9c033..3c1f74a88924a472fad802fc33de358e0e1faddb 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 #
 # Does various checks for people that we can use to diagnose
 # an end user installation
@@ -41,7 +41,6 @@ if pkg-config --modversion mono >& /dev/null; then
            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"
@@ -86,8 +85,10 @@ search_libgdiplus_on_path()
        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
@@ -117,17 +118,25 @@ if mcs -pkg:dotnet $temp_cs >& /dev/null; then
 
           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
@@ -137,3 +146,32 @@ else
     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