[mono-vb] Mono/Mcs Install on Cygwin/XP ( for first timeusers )

Jambunathan Jambunathan kjambunathan@novell.com
Sat, 10 Jul 2004 02:27:47 -0600


This mail is purely to document and bring out the issues that I have
encountered while
installing mono/mcs/mbas on Cygwin over XP.

With good pointers from Atsushi I was able to get HelloWorld program to
be compiled 
and executed with both mcs and mbas within Cygwin environment.

This is the patch ( not exactly a patch, but all workarounds ) that I
used.

Things to note:
This workaround is essentially a product of discussions that happened a
couple of
days back in the following thread:


http://lists.ximian.com/archives/public/mono-devel-list/2004-June/006661.html


/* comments on workarounds to mono tree */

1) This is not a patch but set of workarounds that served my purpose.
2) web/mono-build-w32.sh was patched as suggested in the following
thread:
    
   There is one difference though. GC is disabled. ( If I enable GC
both boehm as well 
   as internal ) I get a hang. On closer scrutiny it seems mono takes a
SIGSEGV as soon
   as it begins it's initialization.

   Can someone checkin the updated ( not this ) mono-build-w32.sh. Also
GC neeeds to be
  made to work with XP builds as well.

/* comments on workarounds to mcs tree */

1) Again this is not a patch in true sense of the word, but set of
workaround that
    served my purpose.

2) In mcs/build/library.make, I had to turn off intsallation in to gac
and signing of assemblies.
    This is so as to avoid references to the mono runtime. ( When you
are installing for the 
    first time, you obviously don't have a mono runtime working
already. )
 
   Ideally Makefiles have to change so that references to mono runtime
never happens when the
   install happens for the first time.

3) class/Mono.CSharp.Debugger/Makefile

    I had to replace the v .17 that's at the head currently and replace
it with v 1.6 before patching it
   as specified in the original discussion thread.

   This needs to be fixed.

4) class/Novell.Directory.Ldap

    This is patched is from
http://lists.ximian.com/archives/public/mono-devel-list/2004-July/006879.html

   
    Can the owner review and commit this ?

I hope it is of some help to the community.

Regards,
Jambunathan K.

Index: web/mono-build-w32.sh
===================================================================
RCS file: /cvs/public/mono/web/mono-build-w32.sh,v
retrieving revision 1.13
diff -u -r1.13 mono-build-w32.sh
--- web/mono-build-w32.sh	19 Mar 2004 18:14:04 -0000	1.13
+++ web/mono-build-w32.sh	10 Jul 2004 07:01:04 -0000
@@ -47,7 +47,7 @@
     fi
 fi
 
-cvs checkout mono || exit -1
+cvs checkout mono mcs || exit -1
 
 echo "Checking automake version"
 automake_required="1.6.2"
@@ -191,7 +191,13 @@
 # Build and install mono
 echo "Building and installing mono"
 
-(cd $here/mono; ./autogen.sh --prefix=$prefix || exit -1; make || exit
-1; make install || exit -1) || exit -1
+
+(cd $here/mcs; ./configure --prefix=$prefix || exit -1; make || exit
-1) || exit -1
+
+(cd $here/mono; ./autogen.sh --prefix=$prefix --with-gc=none || exit
-1; make || exit -1; make install || exit -1) || exit -1
+ 
+(cd $here/mcs || exit -1; make install || exit -1) || exit -1
+
 
 
 echo ""



/* Diff on the mcs tree */

Index: build/library.make
===================================================================
RCS file: /cvs/public/mcs/build/library.make,v
retrieving revision 1.43
diff -u -r1.43 library.make
--- build/library.make	2 Jul 2004 08:54:08 -0000	1.43
+++ build/library.make	10 Jul 2004 06:08:43 -0000
@@ -100,12 +100,14 @@
 else
 
 install-local: $(gacutil)
-	MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH"
$(RUNTIME) $(gacutil) /i $(the_lib) /f /root $(GACDIR) /package
$(PACKAGE)
+	# MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH"
$(RUNTIME) $(gacutil) /i $(the_lib) /f /root $(GACDIR) /package
$(PACKAGE)
 
 uninstall-local: $(gacutil)
 	MONO_PATH="$(topdir)/class/lib/$(PROFILE):$$MONO_PATH"
$(RUNTIME) $(gacutil) /u $(LIBRARY_NAME:.dll=)
 
 endif
+
+NO_SIGN_ASSEMBLY=yes
 
 ifndef NO_SIGN_ASSEMBLY
 all-local install-local: $(the_lib_signature_stamp)
Index: class/Mono.CSharp.Debugger/Makefile
===================================================================
RCS file: /cvs/public/mcs/class/Mono.CSharp.Debugger/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- class/Mono.CSharp.Debugger/Makefile	2 Jul 2004 08:54:08
-0000	1.7
+++ class/Mono.CSharp.Debugger/Makefile	10 Jul 2004 06:08:46
-0000
@@ -3,13 +3,15 @@
 include ../../build/rules.make
 
 LIBRARY = Mono.CSharp.Debugger.dll
-LIBRARY_USE_INTERMEDIATE_FILE = yes
-
-LIB_MCS_FLAGS = /r:$(corlib)
+LIB_MCS_FLAGS = /r:$(topdir)/class/lib/$(PROFILE)/$(corlib)
 NO_TEST = yes
 
-ifeq (win32default, $(PLATFORM)$(PROFILE))
-LIBRARY_COMPILE =
MONO_PATH="$(topdir)/class/lib/$(PROFILE);$$MONO_PATH" $(INTERNAL_MCS)
$(USE_MCS_FLAGS)
+ifeq (win32, $(PLATFORM))
+ifeq (net_2_0, $(PROFILE))
+LIBRARY_COMPILE =
MONO_PATH="../lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH"
$(RUNTIME) $(gmcs) $(USE_MCS_FLAGS) /define:NET_1_1 /define:NET_2_0
+else
+LIBRARY_COMPILE = $(BOOT_COMPILE)
+endif
 endif
 
 include ../../build/library.make
Index:
class/Novell.Directory.Ldap/Novell.Directory.Ldap/LdapAttributeSet.cs
===================================================================
RCS file:
/cvs/public/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap/LdapAttributeSet.cs,v
retrieving revision 1.4
diff -u -r1.4 LdapAttributeSet.cs
---
class/Novell.Directory.Ldap/Novell.Directory.Ldap/LdapAttributeSet.cs	24
Jun 2004 21:48:00 -0000	1.4
+++
class/Novell.Directory.Ldap/Novell.Directory.Ldap/LdapAttributeSet.cs	10
Jul 2004 06:08:50 -0000
@@ -52,7 +52,7 @@
 	/// </seealso>
 	/// <seealso cref="LdapEntry">
 	/// </seealso>
-	public class LdapAttributeSet:SupportClass.AbstractSetSupport,
System.ICloneable//, SupportClass.SetSupport
+	public class LdapAttributeSet:AbstractSetSupport,
System.ICloneable//, SupportClass.SetSupport
 	{
 		/// <summary> Returns the number of attributes in this
set.
 		/// 
Index:
class/Novell.Directory.Ldap/Novell.Directory.Ldap/SupportClass.cs
===================================================================
RCS file:
/cvs/public/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap/SupportClass.cs,v
retrieving revision 1.5
diff -u -r1.5 SupportClass.cs
---
class/Novell.Directory.Ldap/Novell.Directory.Ldap/SupportClass.cs	24
Jun 2004 21:48:47 -0000	1.5
+++
class/Novell.Directory.Ldap/Novell.Directory.Ldap/SupportClass.cs	10
Jul 2004 06:08:51 -0000
@@ -1631,15 +1631,6 @@
 		/// <summary>
 		/// This class manages different operation with
collections.
 		/// </summary>
-		public class AbstractSetSupport : SetSupport
-		{
-			/// <summary>
-			/// The constructor with no parameters to create
an abstract set.
-			/// </summary>
-			public AbstractSetSupport()
-			{
-			}
-		}
 
 
 		/*******************************/
@@ -2163,4 +2154,14 @@
 				return collection.GetEnumerator();
 		}
 
+	}
+
+	public class AbstractSetSupport : SupportClass.SetSupport
+	{
+		/// <summary>
+		/// The constructor with no parameters to create an
abstract set.
+		/// </summary>
+		public AbstractSetSupport()
+		{
+		}
 	}
Index:
class/Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/RespExtensionSet.cs
===================================================================
RCS file:
/cvs/public/mcs/class/Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/RespExtensionSet.cs,v
retrieving revision 1.1
diff -u -r1.1 RespExtensionSet.cs
---
class/Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/RespExtensionSet.cs	3
Mar 2004 07:57:07 -0000	1.1
+++
class/Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/RespExtensionSet.cs	10
Jul 2004 06:08:51 -0000
@@ -29,6 +29,7 @@
 // (C) 2003 Novell, Inc (http://www.novell.com)
 //
 using System;
+
 namespace Novell.Directory.Ldap.Utilclass
 {
 	
@@ -36,7 +37,7 @@
 	/// so that it can be used to maintain a list of currently
 	/// registered extended responses.
 	/// </summary>
-	public class RespExtensionSet:SupportClass.AbstractSetSupport
+	public class RespExtensionSet:AbstractSetSupport
 	{
 		/// <summary> Returns the number of extensions in this
set.
 		/// 


/* Diff on the mono tree */