Various mono related changes to facilitate GAC support.
authorOwen Fraser-Green <owen@discobabe.net>
Sat, 15 May 2004 19:31:12 +0000 (19:31 +0000)
committerOwen Fraser-Green <owen@discobabe.net>
Sat, 15 May 2004 19:31:12 +0000 (19:31 +0000)
ChangeLog
Makefile.am
configure.in
dbus-sharp.pc.in
mono/AssemblyInfo.cs.in [new file with mode: 0644]
mono/Makefile.am
mono/dbus-sharp.dll.config.in [new file with mode: 0644]
mono/dbus-sharp.snk [new file with mode: 0644]
mono/example/Makefile.am

index 6262196..b56b77b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,17 @@
 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
 
-       * mono/Makefile.am: Added SUBDIR for docs
+       * mono/dbus-sharp.dll.config.in: Added for GAC
+       * mono/dbus-sharp.snk: Added for GAC
+       * mono/Assembly.cs.in: Added for GAC
+       * mono/Makefile.am: Changes for GAC installation        
+       * configure.in: Added refs for dbus-sharp.dll.config.in and
+       Assembly.cs.in. More fixes for mono testing
+       * mono/example/Makefile.am: Changed var to CSC
+       * Makefile.am: Changed flag name to DBUS_USE_CSC
+
+2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
+
+       * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
        * mono/doc/*: Added documentation framework
        * configure.in: Added monodoc check
        * README: Added description of mono configure flags
index aa6f0ec..5548794 100644 (file)
@@ -12,7 +12,7 @@ if DBUS_USE_GCJ
    GCJ_SUBDIR=gcj
 endif
 
-if DBUS_USE_MCS
+if DBUS_USE_CSC
    MONO_SUBDIR=mono
    MONO_PC=dbus-sharp.pc
 endif
index 887ef1c..2fe7d18 100644 (file)
@@ -185,32 +185,64 @@ AM_CONDITIONAL(DBUS_USE_GCJ, test x$enable_gcj = xyes)
 AM_PROG_LIBTOOL
 
 #### Look for mono
-AC_CHECK_TOOL(MCS, mcs)
-if test -z "$MCS" ; then
-     have_mcs=no
+MONO_REQUIRED_VERSION=0.91
+AC_SUBST(MONO_REQUIRED_VERSION)
+PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $MONO_REQUIRED_VERSION, have_mono=true, have_mono=false)
+
+if test "x$have_mono" = "xtrue"; then
+if test `uname -s` = "Darwin"; then
+       AC_PATH_PROG(RUNTIME, mint, no)
+       AC_PATH_PROG(CSC, mcs, no)
+       LIB_PREFIX=
+    LIB_SUFFIX=.dylib
 else
-     have_mcs=yes
-     if test "x${MCSFLAGS-unset}" = xunset; then
-        MCSFLAGS="" ### put default MCSFLAGS here
-     fi
-     AC_SUBST(MCSFLAGS)
+       AC_PATH_PROG(RUNTIME, mono, no)
+       AC_PATH_PROG(CSC, mcs, no)
+       LIB_PREFIX=.so
+    LIB_SUFFIX=
 fi
-
-if test x$enable_mono = xauto ; then
-    if test x$have_mcs = xno ; then
-        enable_mono=no
-    else
-        enable_mono=yes
-    fi
+else
+AC_PATH_PROG(CSC, csc.exe, no)
+RUNTIME=
+LIB_PREFIX=
+LIB_SUFFIX=.dylib
 fi
 
 if test x$enable_mono = xyes; then
     if test x$have_mcs = xno ; then
        AC_MSG_ERROR([Building Mono bindings explicitly required, but mcs compiler not found])
     fi
+
+    ### Test for GACUTIL
+    AC_PATH_PROG(GACUTIL, gacutil, no)
+    if test "x$GACUTIL" = "xno" ; then
+        AC_MSG_ERROR([No gacutil tool found])
+    fi
+
+    AC_SUBST(GACUTIL)
 fi
 
-AM_CONDITIONAL(DBUS_USE_MCS, test x$enable_mono = xyes)
+if test x$enable_mono = xauto ; then
+    if test x$CSC = xno ; then
+        enable_mono=no
+    else
+       ### Test for GACUTIL
+       AC_PATH_PROG(GACUTIL, gacutil, no)
+       if test "x$GACUTIL" = "xno" ; then
+          enable_mono=no
+       else
+          enable_mono=yes
+       fi
+    fi
+fi
+
+AC_SUBST(RUNTIME)
+AC_SUBST(CSC)
+AC_SUBST(GACUTIL)
+AC_SUBST(LIB_PREFIX)
+AC_SUBST(LIB_SUFFIX)
+
+AM_CONDITIONAL(DBUS_USE_CSC, test x$enable_mono = xyes)
 
 #### Look for monodoc
 MONODOC_REQUIRED_VERSION=0.15
@@ -1059,6 +1091,8 @@ gcj/org/Makefile
 gcj/org/freedesktop/Makefile
 gcj/org/freedesktop/dbus/Makefile
 mono/Makefile
+mono/AssemblyInfo.cs
+mono/dbus-sharp.dll.config
 mono/example/Makefile
 mono/doc/Makefile
 bus/Makefile
@@ -1111,12 +1145,11 @@ fi
 
 if test x$enable_mono = xyes ; then
 echo \
-"        mcs:                    ${MCS}
-       mcsflags:                 ${MCSFLAGS}
+"        csc:                    ${CSC}
 "
 else
 echo \
-"        mcs:                      (not enabled)
+"        csc:                      (not enabled)
 "
 fi
 
index d46eaf7..9e00d21 100644 (file)
@@ -5,4 +5,4 @@ libdir=@libdir@
 Name: DBus#
 Description: DBus# - D-BUS .NET Bindings
 Version: @VERSION@
-Libs: -lib:${libdir} -r:dbus-sharp -r:glib-sharp
+Libs: -lib:${libdir}/mono/dbus-sharp -r:dbus-sharp -r:glib-sharp
diff --git a/mono/AssemblyInfo.cs.in b/mono/AssemblyInfo.cs.in
new file mode 100644 (file)
index 0000000..6241b8c
--- /dev/null
@@ -0,0 +1,6 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+[assembly:AssemblyVersion("@VERSION@")]
+[assembly:AssemblyDelaySign(false)]
+[assembly:AssemblyKeyFile("dbus-sharp.snk")]
index 498d536..4b61816 100644 (file)
@@ -1,9 +1,10 @@
 DESTDIR=
 
-SUBDIRS=doc
+SUBDIRS=. doc example
 
-DLLS=dbus-sharp.dll
+TARGET=$(ASSEMBLY)
 NOINST_EXES=test-dbus-sharp.exe
+ASSEMBLY_NAME=dbus-sharp
 
 DBUS_SHARP_FILES=              \
        Arguments.cs            \
@@ -43,20 +44,35 @@ DBUS_SHARP_FILES=           \
 
 TEST_DBUS_SHARP_FILES=Test.cs
 
-all: $(DLLS)
+ASSEMBLY=$(ASSEMBLY_NAME).dll
+
+DISTCLEANFILES=AssemblyInfo.cs $(ASSEMBLY).config
+
+all-am: $(TARGET)
 
 dbus-sharp.dll: $(DBUS_SHARP_FILES)
-       $(MCS) $(MCSFLAGS) --unsafe --target library -o dbus-sharp.dll $(DBUS_SHARP_FILES)
+       $(CSC) --unsafe --target library -o dbus-sharp.dll $(DBUS_SHARP_FILES) AssemblyInfo.cs
 
 test-dbus-sharp.exe: $(TEST_DBUS_SHARP_FILES)
-       $(MCS) $(MCSFLAGS) --unsafe --target exe -L . -r dbus-sharp.dll -r gtk-sharp.dll -o test-dbus-sharp.exe $(TEST_DBUS_SHARP_FILES)
+       $(CSC) --unsafe --target exe -L . -r dbus-sharp.dll -r gtk-sharp.dll -o test-dbus-sharp.exe $(TEST_DBUS_SHARP_FILES)
 
 clean:
-       rm -f $(DLLS) $(NOINST_EXES)
+       rm -f $(TARGET) $(NOINST_EXES)
 
-install: all
-       ../mkinstalldirs $(DESTDIR)$(prefix)/lib && \
-       cp $(DLLS) $(DESTDIR)$(prefix)/lib || exit 1
+install-data-local:
+       @if test -n '$(TARGET)'; then                       \
+         echo "$(GACUTIL) /i $(ASSEMBLY) /f /package dbus-sharp /root $(DESTDIR)$(libdir)";    \
+         $(GACUTIL) /i $(ASSEMBLY) /f /package dbus-sharp /root $(DESTDIR)$(libdir) || exit 1; \
+       fi
 
-EXTRA_DIST=$(DBUS_SHARP_FILES)
+uninstall-local:
+       @if test -n '$(TARGET)'; then                       \
+         echo "$(GACUTIL) /u $(ASSEMBLY_NAME) /package dbus-sharp /root $(DESTDIR)$(libdir)";  \
+         $(GACUTIL) /u $(ASSEMBLY_NAME) /package dbus-sharp /root $(DESTDIR)$(libdir) || exit 1;   \
+       fi
 
+EXTRA_DIST=                    \
+       $(DBUS_SHARP_FILES)     \
+       AssemblyInfo.cs.in      \
+       $(ASSEMBLY).config.in   \
+       dbus-sharp.snk
diff --git a/mono/dbus-sharp.dll.config.in b/mono/dbus-sharp.dll.config.in
new file mode 100644 (file)
index 0000000..d40afcd
--- /dev/null
@@ -0,0 +1,4 @@
+<configuration>
+  <dllmap dll="dbus-1" target="libdbus-1@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+  <dllmap dll="dbus-glib-1" target="libdbus-glib-1@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+</configuration>
diff --git a/mono/dbus-sharp.snk b/mono/dbus-sharp.snk
new file mode 100644 (file)
index 0000000..b28b393
Binary files /dev/null and b/mono/dbus-sharp.snk differ
index 2355bf3..e7fd9b6 100644 (file)
@@ -5,10 +5,10 @@ NOINST_EXES=echo-server.exe echo-client.exe
 all: $(NOINST_EXES)
 
 echo-server.exe: EchoServer.cs Echoer.cs
-       $(MCS) $(MCSFLAGS) --unsafe --target exe -L .. -r dbus-sharp.dll -r gtk-sharp -o echo-server.exe EchoServer.cs Echoer.cs
+       $(CSC) --target exe -L .. -r:../dbus-sharp.dll -r gtk-sharp -o echo-server.exe EchoServer.cs Echoer.cs
 
 echo-client.exe: EchoClient.cs Echoer.cs
-       $(MCS) $(MCSFLAGS) --unsafe --target exe -L .. -r dbus-sharp.dll -o echo-client.exe EchoClient.cs Echoer.cs
+       $(CSC) --target exe -L .. -r:../dbus-sharp.dll -o echo-client.exe EchoClient.cs Echoer.cs
 
 clean:
        rm -f $(NOINST_EXES)