3 # Does various checks for people that we can use to diagnose
4 # an end user installation
8 if test -f $temp_cs; then
9 echo Error
: need a temporary
file name
, and
$temp_cs already exists
10 echo Run this program from a different directory
, or delete the
file and try again.
14 set `echo $PATH | sed 's/:/ /g'`
16 while test x
$1 != x
; do
17 if test -x $1/mono
; then
18 if test x
$monocmd = x
; then
21 other_monos
="$1/mono $other_monos"
27 echo Active Mono
: $monocmd
29 if test "x$other_monos" != x
; then
30 echo "Other Mono executables: $other_monos"
35 # Check that the pkg-config mono points to this mono
37 if pkg-config
--modversion mono
>& /dev
/null
; then
38 pkg_config_mono
=`(cd \`pkg-config
--variable prefix mono\
`/bin; pwd)`/mono
39 if test $pkg_config_mono != $monocmd; then
40 echo "Error: pkg-config Mono installation points to a different install"
41 echo " than the Mono found:"
42 echo " Mono on PATH: $monocmd"
43 echo " Mono from pkg-config: $pkg_config_mono"
46 echo "Warning: pkg-config could not find mono installed on this system"
49 ##########################################################################################
51 # Tests below this point require the dotnet install
56 # Check that -pkg:dotnet is available
58 if pkg-config
--modversion dotnet
>& /dev
/null
; then
61 echo "No dotnet pkgconfig found, Windows.Forms, System.Drawing and others will not work"
68 libgdiplus
=libgdiplus.dylib
69 LD_PATH
=DYLD_LIBRARY_PATH
73 libgdiplus
=libgdiplus.so
74 LD_PATH
=LD_LIBRARY_PATH
78 search_libgdiplus_on_path
()
80 libgdiplus_found
=false
82 set `echo $DYLD_LIBRARY_PATH | sed 's/:/ /g'`
84 set `echo $LD_LIBRARY_PATH | sed 's/:/ /g'`
86 while test x
$1 != x
; do
87 if test -e $1/$libgdiplus; then
88 echo " The $libgdiplus is found on $libdir/$libgdiplus"
90 libgdiplus_path
=$1/$libgdiplus
98 # Check GDI+ installation
102 using System.Drawing;
107 Bitmap b = new Bitmap (100, 100);
111 if mcs
-pkg:dotnet
$temp_cs >& /dev
/null
; then
112 if mono
$temp_exe >& /dev
/null
; then
113 echo You have a working System.Drawing setup
115 echo Your system has a broken System.Drawing setup
116 if mono
$temp_exe 2>&1 |
grep 'System.DllNotFoundException: gdiplus.dll' > /dev
/null
; then
117 echo " your gdiplus.dll can not be loaded"
119 libdir
=`dirname $monocmd`/..
/lib
120 if test -f $libdir/$libgdiplus; then
121 echo " The $libgdiplus is found on $libdir/$libgdiplus"
122 if test -e $libdir/$libgdiplus; then
123 libgdiplus_path
=$libdir/$libgdiplus
124 libgdiplus_found
=true
126 echo " but it seems to be a broken link"
129 search_libgdiplus_on_path
131 if $libgdiplus_found; then
133 if which ldd
>/dev
/null
; then
134 LANG
=C
dirs=`ldd $libgdiplus_path | grep 'not found'`
135 if echo $dirs |
grep 'not found' >& /dev
/null
; then
136 echo " libgdiplus is missing the following dependencies to run:"
137 echo $dirs |
sed 's/^/ /'
141 echo " No libgdiplus was found on your $LD_PATH"
146 echo Failed to compile sample System.Drawing program
, your installation is broken
152 using System.Reflection;
157 public static void Main()
159 object watcher = new FileSystemWatcher()
161 .GetField ("watcher", BindingFlags.NonPublic | BindingFlags.Static)
164 Console.WriteLine ("Your file system watcher is: {0}",
166 ? watcher.GetType ().FullName
172 if mcs
$temp_cs >& /dev
/null
; then
175 echo Failed to compile sample
test program
, your installation is broken