[Mono-list] compiling mono on ubuntu

Raja R Harinath rharinath@novell.com
Wed, 01 Dec 2004 12:03:56 +0530


Hi,

Paul <paul@all-the-johnsons.co.uk> writes:

>> i did it with ./configure --prefix=usr/local/bin
>
> The prefix is not needed there.

Actually, it is :-)  Notice the prefix is usr/local/bin, not /usr/local.
When the prefix is a relative directory, it probably doesn't do what you
expect, though.  The OP probably meant either /usr/local/bin or /usr/local.

>> and then make 
>> and then make install
>> i dunno this autogen.sh thing. is it the recommended
>> way to compile mono?
>
> Inside the tarballs or the checkouts from svn should be a file called
> autogen.sh, this does roughly the same as configure does.

Nope.  'autogen.sh' is useful only on checkouts from svn, and shouldn't
need to be run on tarball builds.  In fact, autogen.sh isn't present in
the tarballs.

autogen.sh is used to make an svn checkout look more like a tree from a
tarball, in that it prepares the tree so that you can run ./configure on
it.  

It, unfortunately IMHO, also runs the configure script, creating no end
of confusion.  It does have some redeeming value, since it passes some
useful flags to configure in addition to what the user gives.

My recommended way to build from SVN is

  * ensure you have a pretty recent GNU build setup (autoconf 2.5x and
    automake 1.8 or later)

  * run './autogen.sh' the first time you check out from SVN, with
    appropriate flags.  I actually prefer to run

      ./autogen --version

    to make that configure run a no-op, and run ./configure by hand.

  * just 'make' :-)  You'll probably never need to run 'autogen.sh'
    again, unless you really borked the Makefiles.  Even then, if you're
    hacking makefiles, you'll probably prefer other tools (autoreconf,
    autoconf, automake, ./config.status).

- Hari