[Mono-dev] FW: A cleaned up and correct version of a MONO Cygwin tutorial - Version 001

Mark Lintner mlintner at sinenomine.net
Thu Sep 5 04:21:38 UTC 2013



I had posted a rough and buggy version of this before when I was in a hurry so it behooved me to clean it up a little and make it somewhat usable.



I cannot take credit for this as it is gleaned from other sites and help I have receive from other developers but it contains in one place things that in my mind are relevant and should be attended. A little bit I have found out on my own but I return that to forum as thanks for help received.  Please feel free to annotate or

append or edit as necessary to make this a better resource for those new or forgetful developers when it is necessary to setup cygwin and then build mono. It really is a handy thing to be able to use for a lot of reasons which become apparent when you need it and it is a good starting point for some developers.



The only difference between the old Cygwin setup for mono is the old one needed a special make and the new one uses the mingw tools so the configure line is new. I refer to that below.

 When getting Cygwin get these packages. You will want to click the view menu at the right of the installer.  You

then want to enter each of these package names into the filter box. You will then select the latest version in the

list window.



Make sure you select the following packages when installing:
 * autoconf
 * automake
 * bison
 * gcc-core - I think you still need this
 * mingw-gcc
 * libtool
 * make
 * python

http://www.mono-project.com/Compiling_Mono_on_Windows

 * gdb
 * gettext
 * intltool
 * libiconv
 * libtool
 * pkg-config
 * dos2unix
 * git
 * wget
 * zip
 * tar
 * vim - sorry you gotta learn it. Linux has better editors but for Cygwin vim is it.
 * patch



http://www.codeproject.com/Articles/19575/Building-Mono-on-Windows-the-final-battle

Cygwin must be update it changes mono changes slackers are left behind.

You must learn vim because you never want to edit files in Cygwin with notepad because it
 will change the line endings and it will mess things up.

Heres one turorial
http://blog.interlinked.org/tutorials/vim_tutorial.html

Install cygwin from here:
http://cygwin.com/install.html

Let Cygwin go to C:/cygwin not program files or another drive.

 when Cygwin install is complete open a Cygwin prompt:

It is on your taskbar or desktip and it is Cygwin.bat in the Cygwin directory.


 Now as you are a novice put go here. It is a fine
 place to put mono.
 cd  /usr/src

you will get mono out of the git repository as follows:

git clone git://github.com/mono/mono.git

if you prefer a tar distribution. In the same directory

execute

wget the url to the tar file. For example

 cd /usr/src

 wget http://download.mono-project.com/sources/mono/mono-3.2.1.tar.bz2

then

tar xvf mono-3.2.1.tar.bz2

cd mono

Use the new configure:
 shown at this link http://www.mono-project.com/Compiling_Mono_on_Windows


$./autogen.sh --host=i686-pc-mingw32 --prefix=/cygdrive/c/path to directory you want to install in somewhere on your pc

or prefix=/usr/local or /usr/opt   if you want to install in the Cygwin environment.

still in the mono directory you can type

So right here you have a decision to make. Do you have an existing mono implementation in your path right now?
 If the answer is yes then

make

make install

and you are done.

If on the other hand this is the first you will do something different. This is well documented on the mono site
 but for completeness I will add it here.

execute
 make get-monolite-latest
 make EXTERNAL_MCS="${PWD}/mcs/class/lib/monolite/gmcs.exe"

Now in either case you are done. It takes awhile so dont worry.

It should be that simple.

If its not then reach out for help on the forum. Probably someone will have answers for you. You can search the internet and find bits
 and pieces and sometimes it will be just what you need and you learn while doing it.

Remember all the line-endings in the cygwin environment are unix format and all your pc editors use dos file endings just one place
 in the entire setup with the wrong file endings will blow up in a bizarre way which is very tricky to figure out.

if you want to know more about mono on Cygwin with the old version, these are all good links

http://www.mono-project.com/Compiling_Mono_on_Windows - recently updated

http://www.codeproject.com/Articles/19575/Building-Mono-on-Windows-the-final-battle

http://shana.worldofcoding.com/en/mono_cygwin_tutorial.html



________________________________
From: mono-devel-list-bounces at lists.ximian.com [mono-devel-list-bounces at lists.ximian.com] on behalf of Mark Lintner [mlintner at sinenomine.net]
Sent: Wednesday, September 04, 2013 11:14 PM
To: mono-devel-list at lists.ximian.com
Subject: [Mono-dev] Ok, here is a cleaned up version of a MONO Cygwin tutorial.


I had posted a rough and buggy version of this before when I was in a hurry so it behooved me to clean it up a little and make it somewhat usable.



I cannot take credit for this as it is gleaned from other sites and help I have receive from other developers but it contains in one place things that in my mind are relevant and should be attended. A little bit I have found out on my own but I return that to forum as thanks for help received.  Please feel free to annotate or

append or edit as necessary to make this a better resource for those new or forgetful developers when it is necessary to setup cygwin and then build mono. It really is a handy thing to be able to use for a lot of reasons which become apparent when you need it and it is a good starting point for some developers.



The only difference between the old Cygwin setup for mono is the old one needed a special make and the new one uses the mingw tools so the configure line is new. I refer to that below.

When getting Cygwin get these packages. You will want to click the view menu at the right of the installer.  You

then want to enter each of these package names into the filter box. You will then select the latest version in the

list window.



Make sure you select the following packages when installing:
* autoconf
* automake
* bison
* gcc-core - I think you still need this
* mingw-gcc
* libtool
* make
* python

http://www.mono-project.com/Compiling_Mono_on_Windows

* gdb
* gettext
* intltool
* libiconv
* libtool
* pkg-config
* dos2unix
* git
* wget
* zip
* tar
* vim - sorry you gotta learn it. Linux has better editors but for Cygwin vim is it.
* patch



http://www.codeproject.com/Articles/19575/Building-Mono-on-Windows-the-final-battle

Cygwin must be update it changes mono changes slackers are left behind.

You must learn vim because you never want to edit files in Cygwin with notepad because it
will change the line endings and it will mess things up.

Heres one turorial
http://blog.interlinked.org/tutorials/vim_tutorial.html

Install cygwin from here:
http://cygwin.com/install.html

Let Cygwin go to C:/cygwin not program files or another drive.

when Cygwin install is complete open a Cygwin prompt:

It is on your taskbar or desktip and it is Cygwin.bat in the Cygwin directory.

Now as you are a novice put go here. It is a fine
place to put mono.
cd  /usr/src

you will get mono out of the git repository as follows:

git clone git://github.com/mono/mono.git

if you prefer a tar distribution. In the same directory

execute

wget the url to the tar file. For example

cd mono
wget http://download.mono-project.com/sources/mono/mono-3.2.1.tar.bz2

then

tar xvf mono-3.2.1.tar.bz2


Use the new configure:
shown at this link http://www.mono-project.com/Compiling_Mono_on_Windows


$./autogen.sh --host=i686-pc-mingw32 --prefix=/cygdrive/c/path to directory you want to install in somewhere on your pc

or prefix=/usr/local or /usr/opt   if you want to install in the Cygwin environment.

still in the mono directory you can type

So right here you have a decision to make. Do you have an existing mono implementation in your path right now?
If the answer is yes then

make

make install

and you are done.

If on the other hand this is the first you will do something different. This is well documented on the mono site
but for completeness I will add it here.

execute
make get-monolite-latest
make EXTERNAL_MCS="${PWD}/mcs/class/lib/monolite/gmcs.exe"

Now in either case you are done. It takes awhile so dont worry.

It should be that simple.

If its not then reach out for help on the forum. Probably someone will have answers for you. You can search the internet and find bits
and pieces and sometimes it will be just what you need and you learn while doing it.

Remember all the line-endings in the cygwin environment are unix format and all your pc editors use dos file endings just one place
in the entire setup with the wrong file endings will blow up in a bizarre way which is very tricky to figure out.

if you want to know more about mono on Cygwin with the old version, these are all good links

http://www.mono-project.com/Compiling_Mono_on_Windows - recently updated

http://www.codeproject.com/Articles/19575/Building-Mono-on-Windows-the-final-battle

http://shana.worldofcoding.com/en/mono_cygwin_tutorial.html



________________________________
From: mono-devel-list-bounces at lists.ximian.com [mono-devel-list-bounces at lists.ximian.com] on behalf of mlgo [mlintner at sinenomine.net]
Sent: Wednesday, September 04, 2013 6:14 PM
To: mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] mono from git will not build on cygwin 32


The Mono site has been recently updated.



________________________________
From: londondev [via Mono] [ml-node+[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>]
Sent: Wednesday, September 04, 2013 5:32 PM
To: Mark Lintner
Subject: Re: mono from git will not build on cygwin 32

That tutorial should go up on the mono site.  I've spent 4 days now getting nowhere with compiling mono for the first time.  I wanted to spend an hour fixing a bug... :(


On 4 September 2013 22:37, mlgo <[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>> wrote:

The only difference between the old Cygwin setup for mono is the old one needed a special make and the new one uses the mingw tools so the configure line is new. I refer to that below.



When getting Cygwin get these packages



Make sure you select the following packages when installing:

* autoconf
* automake
* bison
* gcc-core
* mingw-gcc
* libtool
* make
* python


http://www.mono-project.com/Compiling_Mono_on_Windows



  *   gdb
  *   gettext
  *   intltool
  *   libiconv
  *   libtool

  *   pkg-config

http://www.codeproject.com/Articles/19575/Building-Mono-on-Windows-the-final-battle



Make sure you are using a recent cygwin version.

Select some handy utils for later use:



* wget
* zip


Also you want

* git

* patch
* openssh or PuTTY
* vim


You will have to learn vim because you never want to edit files in Cygwin with notepad because it

will change the line endings and it will mess things up.






http://www.mono-project.com/Compiling_Mono_on_Windows

Let Cygwin go to C:/cygwin not program files or another drive.

There are a couple of other good tutorials and they all recommend getting a special make. I think the make in Cygwin is good now so I choose that.

http://shana.worldofcoding.com/en/mono_cygwin_tutorial.html

the current make is good now from Cygwin.

when it is complete:
open a Cygwin prompt:
(it is on your taskbar or desktip and it is Cygwin.bat in the Cygwin directory.

cd  /usr/src
git clone git://github.com/mono/mono.git<http://github.com/mono/mono.git>

cd mono

Use the new configure:

$  ./autogen.sh --host=i686-pc-mingw32 --profile=/cygdrive/c/path to directory you want to install in



or profile=/usr/local or /usr/opt   if you want to install in the Cygwin environment.

still in the mono directory you can type

make

make install

It should be that simple

if you want to know more about mono on Cygwin with the old version, these are all good links
http://www.mono-project.com/Compiling_Mono_on_Windows
http://www.codeproject.com/Articles/19575/Building-Mono-on-Windows-the-final-battle
http://shana.worldofcoding.com/en/mono_cygwin_tutorial.html

________________________________
From: londondev [via Mono] [ml-node+[hidden email]<http://user/SendEmail.jtp?type=node&node=4660760&i=0>]
Sent: Wednesday, September 04, 2013 2:48 AM
To: Mark Lintner
Subject: Re: mono from git will not build on cygwin 32

I haven't been able to make Cygwin compile at all. Make just prints a blank line and stops. Is that what you're seeing?

Do you have any documentation on your old Cygwin environment that works?



Bryan Crotaz
Silver Curve

On 4 Sep 2013, at 05:45, Zoltan Varga <[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>> wrote:

Hi,

  Try running with make V=1, that will print more information.

           Zoltan


On Wed, Sep 4, 2013 at 6:05 AM, mlgo <[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>> wrote:
I updated Cygwin and now it no longer supports compilation of mono with gcc.
There is no way to backlevel it. I found Zoltan's suggestion to use this
configure statement:

"Hi,

  mono master can be built on windows using the mingw cross-compiler gcc,
i.e. install the mingw-gcc package, and configure using:

./autogen.sh --host=i686-pc-mingw32
                  Zoltan"


I'm using mono from git. Cygwin has all the recommended packages and I did
not install the gcc-g++ but installed all mingw packages.  The build now
always stops here. I have reinstalled Cygwin several times and pulled a new
mono each time. I'm wondering now since there is a 64 bit Cygwin and a I
have 64 bit machine should I be configuring with mingw64 or something.
However I had the old Cygwin environment down to a science and now I'm
crippled again. Has anybody seen this yet. This seems like something
configure is failing to generate properly to map ming types to mono types.
Zoltan will know what to do about this if anybody. It doesn't seem like it
could be a bug in ming.

al':
process.c:912:3: warning: passing argument 1 of 'EnumProcesses' from
incompatibl
e pointer type [enabled by default]
In file included from ../../mono/io-layer/io-layer.h:34:0,
                 from ../../mono/metadata/domain-internals.h:15,
                 from ../../mono/metadata/metadata-internals.h:8,
                 from ../../mono/metadata/class-internals.h:10,
                 from ../../mono/metadata/object-internals.h:8,
                 from process.c:16:
/usr/i686-pc-mingw32/sys-root/mingw/include/psapi.h:108:13: note: expected
'DWOR
D *' but argument is of type 'guint32 *'
Makefile:2221: recipe for target `libmonoruntime_la-process.lo' failed
make[3]: *** [libmonoruntime_la-process.lo] Error 1
make[3]: Leaving directory `/usr/src/mono/mono/metadata'
Makefile:429: recipe for target `all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/mono/mono'
Makefile:510: recipe for target `all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/mono'
Makefile:437: recipe for target `all' failed
make: *** [all] Error 2



--
View this message in context: http://mono.1490590.n4.nabble.com/mono-from-git-will-not-build-on-cygwin-32-tp4660749.html
Sent from the Mono - Dev mailing list archive at Nabble.com<http://Nabble.com>.
_______________________________________________
Mono-devel-list mailing list
[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>
http://lists.ximian.com/mailman/listinfo/mono-devel-list

_______________________________________________
Mono-devel-list mailing list
[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>
http://lists.ximian.com/mailman/listinfo/mono-devel-list

_______________________________________________
Mono-devel-list mailing list
[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>
http://lists.ximian.com/mailman/listinfo/mono-devel-list


________________________________
If you reply to this email, your message will be added to the discussion below:
http://mono.1490590.n4.nabble.com/mono-from-git-will-not-build-on-cygwin-32-tp4660749p4660751.html
To unsubscribe from mono from git will not build on cygwin 32, click here.
NAML<http://mono.1490590.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>

________________________________
View this message in context: RE: mono from git will not build on cygwin 32<http://mono.1490590.n4.nabble.com/mono-from-git-will-not-build-on-cygwin-32-tp4660749p4660760.html>

Sent from the Mono - Dev mailing list archive<http://mono.1490590.n4.nabble.com/Mono-Dev-f1517221.html> at Nabble.com.

_______________________________________________
Mono-devel-list mailing list
[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>
http://lists.ximian.com/mailman/listinfo/mono-devel-list




--
Bryan Crotaz
Managing Director
Silver Curve

_______________________________________________
Mono-devel-list mailing list
[hidden email]<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>
http://lists.ximian.com/mailman/listinfo/mono-devel-list


________________________________
If you reply to this email, your message will be added to the discussion below:
http://mono.1490590.n4.nabble.com/mono-from-git-will-not-build-on-cygwin-32-tp4660749p4660761.html
To unsubscribe from mono from git will not build on cygwin 32, click here<https://connect.emailsrvr.com/owa/UrlBlockedError.aspx>.
NAML<http://mono.1490590.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>

________________________________
View this message in context: RE: mono from git will not build on cygwin 32<http://mono.1490590.n4.nabble.com/mono-from-git-will-not-build-on-cygwin-32-tp4660749p4660772.html>
Sent from the Mono - Dev mailing list archive<http://mono.1490590.n4.nabble.com/Mono-Dev-f1517221.html> at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20130905/b4c82dcc/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ATT00001.txt
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20130905/b4c82dcc/attachment-0001.txt>


More information about the Mono-devel-list mailing list