[smuxi/stable] configure.ac, *.m4: support Mono >= 4.0



commit b38089599cbff21f33d472c429ac9d4c27ce4752
Author: Mirco Bauer <meebey meebey net>
Date:   Wed Dec 30 14:21:33 2015 +0100

    configure.ac, *.m4: support Mono >= 4.0

 configure.ac |   26 ++++++++++++++++----------
 mono.m4      |   47 ++++++++++++++++++++++-------------------------
 2 files changed, 38 insertions(+), 35 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 3a8162d..edf381f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -155,7 +155,7 @@ SHAMROCK_EXPAND_LIBDIR
 SHAMROCK_CHECK_MONO_MODULE(2.8)
 SHAMROCK_FIND_MONO_RUNTIME
 SHAMROCK_FIND_MONO_2_0_COMPILER_OR_HIGHER
-SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
        System
        System.Core
        System.Data
@@ -206,12 +206,18 @@ fi
 if test "$MCS_BASENAME" = "dmcs"; then
        CLI_RUNTIME=4.0
 fi
+if test "$MCS_BASENAME" = "mcs"; then
+       CLI_RUNTIME=4.5
+fi
 if test "$CLI_RUNTIME" = "2.0"; then
        XBUILD_FLAGS="/toolsversion:3.5 /p:TargetFrameworkVersion=v3.5 /property:DefineConstants=MONO_3_5"
 fi
 if test "$CLI_RUNTIME" = "4.0"; then
        XBUILD_FLAGS="/toolsversion:4.0 /p:TargetFrameworkVersion=v4.0 /property:DefineConstants=MONO_4_0"
 fi
+if test "$CLI_RUNTIME" = "4.5"; then
+       XBUILD_FLAGS="/toolsversion:4.0 /p:TargetFrameworkVersion=v4.5 /property:DefineConstants=MONO_4_5"
+fi
 AC_SUBST(XBUILD_FLAGS)
 
 # Required Libraries   
@@ -405,7 +411,7 @@ if test "x$ENABLE_ENGINE_IRC" != "xno"; then
        if test ! -f "$srcdir/lib/SmartIrc4net/SmartIrc4net.csproj"; then
                AC_MSG_ERROR([lib/SmartIrc4net is empty!])
        fi
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System
                Mono.Posix
        ])
@@ -433,7 +439,7 @@ if test "x$ENABLE_ENGINE_XMPP" != "xno"; then
        if test ! -f "$srcdir/lib/agsxmpp/agsxmpp/agsxmpp.csproj"; then
                AC_MSG_ERROR([lib/agsxmpp is empty!])
        fi
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System
                System.Core
                Mono.Posix
@@ -470,7 +476,7 @@ if test "x$ENABLE_ENGINE_TWITTER" != "xno"; then
        if test ! -f "$srcdir/lib/Newtonsoft.Json/Src/Newtonsoft.Json/Newtonsoft.Json.csproj"; then
                AC_MSG_ERROR([lib/Newtonsoft.Json is empty!])
        fi
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System
                System.Core
                System.Data
@@ -483,7 +489,7 @@ if test "x$ENABLE_ENGINE_TWITTER" != "xno"; then
        if test ! -f "$srcdir/lib/Twitterizer/Twitterizer2/Twitterizer2.csproj"; then
                AC_MSG_ERROR([lib/Twitterizer is empty!])
        fi
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System
                System.Configuration
                System.Core
@@ -537,7 +543,7 @@ if test "x$ENABLE_ENGINE_JABBR" != "xno"; then
        if test ! -f "$srcdir/lib/Newtonsoft.Json/Src/Newtonsoft.Json/Newtonsoft.Json.csproj"; then
                AC_MSG_ERROR([lib/Newtonsoft.Json is empty!])
        fi
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System
                System.Core
                System.Data
@@ -550,7 +556,7 @@ if test "x$ENABLE_ENGINE_JABBR" != "xno"; then
        if test ! -f 
"$srcdir/lib/SignalR/src/Microsoft.AspNet.SignalR.Client/Microsoft.AspNet.SignalR.Client.csproj"; then
                AC_MSG_ERROR([lib/SignalR is empty!])
        fi
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System
                System.Core
        ])
@@ -558,7 +564,7 @@ if test "x$ENABLE_ENGINE_JABBR" != "xno"; then
        if test ! -f "$srcdir/lib/JabbR/JabbR.Client/JabbR.Client.csproj"; then
                AC_MSG_ERROR([lib/JabbR is empty!])
        fi
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System
                System.Core
                System.Data
@@ -601,7 +607,7 @@ if test "x$ENABLE_FRONTEND_GNOME" != "xno"; then
                AC_MSG_RESULT(no)
        fi
        
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System.Drawing
        ])
        
@@ -662,7 +668,7 @@ AC_ARG_ENABLE([frontend-swf],
        ENABLE_FRONTEND_SWF=no
 )
 if test "x$ENABLE_FRONTEND_SWF" != "xno"; then
-       SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES([
+       SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES([
                System.Windows.Forms
        ])
 fi
diff --git a/mono.m4 b/mono.m4
index 6bf828e..fc20417 100644
--- a/mono.m4
+++ b/mono.m4
@@ -10,6 +10,9 @@ AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER],
 
 AC_DEFUN([SHAMROCK_FIND_MONO_2_0_COMPILER_OR_HIGHER],
 [
+    if pkg-config --atleast-version=4.0 mono; then
+        SHAMROCK_FIND_PROGRAM(MCS, mcs)
+    fi
     if pkg-config --atleast-version=2.8 mono; then
         SHAMROCK_FIND_PROGRAM(MCS, dmcs)
     fi
@@ -39,31 +42,25 @@ AC_DEFUN([SHAMROCK_CHECK_MONO_MODULE_NOBAIL],
        AC_SUBST(HAVE_MONO_MODULE)
 ])
 
-AC_DEFUN([_SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES],
-[
-       for asm in $(echo "$*" | cut -d, -f2- | sed 's/\,/ /g')
-       do
-               AC_MSG_CHECKING([for Mono $1 GAC for $asm.dll])
-               if test \
-                       -e "$($PKG_CONFIG --variable=libdir mono)/mono/$1/$asm.dll" -o \
-                       -e "$($PKG_CONFIG --variable=prefix mono)/lib/mono/$1/$asm.dll"; \
-                       then \
-                       AC_MSG_RESULT([found])
-               else
-                       AC_MSG_RESULT([not found])
-                       AC_MSG_ERROR([missing reqired Mono $1 assembly: $asm.dll])
-               fi
-       done
-])
-
-AC_DEFUN([SHAMROCK_CHECK_MONO_1_0_GAC_ASSEMBLIES],
+AC_DEFUN([SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES],
 [
-       _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(1.0, $*)
+    CLR_VERSIONS="2.0 3.5 4.0 4.5"
+    for ASM in $(echo "$*" | cut -d, -f2- | sed 's/\,/ /g'); do
+        AC_MSG_CHECKING([Mono GAC for $ASM.dll])
+        found=0
+        for CLR_VER in $CLR_VERSIONS; do
+            if test \
+                -e "$($PKG_CONFIG --variable=libdir mono)/mono/$CLR_VER/$ASM.dll" -o \
+                -e "$($PKG_CONFIG --variable=prefix mono)/lib/mono/$CLR_VER/$ASM.dll"; then
+                found=1
+            fi
+        done
+        if test "x$found" = "x1"; then
+            AC_MSG_RESULT([found])
+        else
+            AC_MSG_RESULT([not found])
+            AC_MSG_ERROR([missing required Mono assembly: $ASM.dll])
+        fi
+    done
 ])
 
-AC_DEFUN([SHAMROCK_CHECK_MONO_2_0_GAC_ASSEMBLIES],
-[
-       _SHAMROCK_CHECK_MONO_GAC_ASSEMBLIES(2.0, $*)
-])
-
-


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]