1AC_DEFUN([SHAMROCK_FIND_MONO_1_0_COMPILER],
2[
3	SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, mcs)
4])
5
6AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER],
7[
8	SHAMROCK_FIND_PROGRAM_OR_BAIL(MCS, gmcs)
9])
10
11AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER_OR_HIGHER],
12[
13    if pkg-config --atleast-version=4.0 mono; then
14        SHAMROCK_FIND_PROGRAM(MCS, mcs)
15    fi
16    if pkg-config --atleast-version=2.8 mono; then
17        SHAMROCK_FIND_PROGRAM(MCS, dmcs)
18    fi
19    if test "x$MCS" = "x" ; then
20        SHAMROCK_FIND_PROGRAM(MCS, gmcs)
21    fi
22
23    if test "x$MCS" = "x" ; then
24        AC_MSG_ERROR([You need to install 'dmcs' or 'gmcs'])
25    fi
26])
27
28AC_DEFUN([SHAMROCK_FIND_MONO_RUNTIME],
29[
30	SHAMROCK_FIND_PROGRAM_OR_BAIL(MONO, mono)
31])
32
33AC_DEFUN([SHAMROCK_CHECK_MONO_MODULE],
34[
35	if test "x$(uname)" = "xDarwin"; then
36		export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig:$PKG_CONFIG_PATH
37	fi
38	PKG_CHECK_MODULES(MONO_MODULE, mono >= $1)
39])
40
41AC_DEFUN([SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES],
42[
43    CLR_VERSIONS="2.0 3.5 4.0 4.5"
44    for ASM in $(echo "$*" | cut -d, -f2- | sed 's/\,/ /g'); do
45        AC_MSG_CHECKING([Mono GAC for $ASM.dll])
46        found=0
47        for CLR_VER in $CLR_VERSIONS; do
48            if test \
49                -e "$($PKG_CONFIG --variable=libdir mono)/mono/$CLR_VER/$ASM.dll" -o \
50                -e "$($PKG_CONFIG --variable=prefix mono)/lib/mono/$CLR_VER/$ASM.dll"; then
51                found=1
52            fi
53        done
54        if test "x$found" = "x1"; then
55            AC_MSG_RESULT([found])
56        else
57            AC_MSG_RESULT([not found])
58            AC_MSG_ERROR([missing required Mono assembly: $ASM.dll])
59        fi
60    done
61])
62
63