mono on FreeBSD - BSD

This is a discussion on mono on FreeBSD - BSD ; Hello, I'm running 64-bit FreeBSD 6.2 on an amd64 system. I'm trying to compile mono. The directions aren't very detailed, and near as I can tell I'm following them properly. Nonetheless, I keep getting errors. I installed all dependencies (libgdiplus ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: mono on FreeBSD

  1. mono on FreeBSD

    Hello,

    I'm running 64-bit FreeBSD 6.2 on an amd64 system.

    I'm trying to compile mono. The directions aren't very detailed, and
    near as I can tell I'm following them properly.

    Nonetheless, I keep getting errors. I installed all dependencies
    (libgdiplus was missing, but I've installed it). Details of the errors I
    get are below.

    Thanks!

    1. I get the tar, unzip, enter mono-1.9.1

    2. Run ./configure --prefix=/usr/local
    (tried it without prefix too, same result)

    I get the following output (at the end of the script):

    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating include/Makefile
    config.status: creating include/private/Makefile
    config.status: creating doc/Makefile
    config.status: executing depfiles commands
    config.status: executing default commands

    mcs source: $(top_srcdir)/mcs
    olive source:

    GC: included
    TLS: pthread
    SIGALTSTACK: yes
    Engine: Building and using the JIT
    2.0 Beta: yes
    2.1 Alpha: yes
    JNI support: IKVM Native
    libgdiplus: assumed to be installed
    zlib: system zlib
    oprofile: no

    2a. There is also a warning, though I don't know if it's relevant:

    configure: WARNING: net/if.h: present but cannot be compiled
    configure: WARNING: net/if.h: check for missing prerequisite headers?
    configure: WARNING: net/if.h: see the Autoconf documentation
    configure: WARNING: net/if.h: section "Present But Cannot Be Compiled"
    configure: WARNING: net/if.h: proceeding with the preprocessor's result
    configure: WARNING: net/if.h: in the future, the compiler will take
    precedence


    3. So, I run make.

    It seems to compile fine for a little while and then:

    cd ../mcs && make PROFILES='default net_2_0 net_3_5 net_2_1' CC='gcc'
    all-profiles
    "Makefile", line 42: Unassociated shell command
    "#class/Microsoft.Build.Tasks"
    "Makefile", line 43: Unassociated shell command "#class/Mono.C5"
    "Makefile", line 47: Unassociated shell command
    "#class/System.Web.Extensions"
    "Makefile", line 49: Need an operator
    "Makefile", line 51: Need an operator
    "Makefile", line 53: Need an operator
    "Makefile", line 55: Need an operator
    "build/rules.make", line 41: Need an operator
    "build/rules.make", line 42: Need an operator
    "build/rules.make", line 43: Need an operator
    "build/rules.make", line 44: Need an operator
    "build/rules.make", line 45: Need an operator
    "build/rules.make", line 46: Need an operator
    "build/rules.make", line 47: Need an operator
    "build/rules.make", line 48: Need an operator
    "build/rules.make", line 49: Need an operator
    "build/rules.make", line 50: Need an operator
    "build/rules.make", line 51: Need an operator
    "build/rules.make", line 52: Need an operator
    "build/rules.make", line 63: Could not find /build/config-default.make
    "build/rules.make", line 64: Need an operator
    "build/rules.make", line 68: Need an operator
    "build/rules.make", line 69: Missing dependency operator
    "build/rules.make", line 71: Need an operator
    "build/rules.make", line 73: Need an operator
    "build/rules.make", line 74: Need an operator
    "build/rules.make", line 78: Could not find /build/platforms/linux.make
    "build/rules.make", line 80: Need an operator
    "build/rules.make", line 82: Need an operator
    "build/rules.make", line 85: Missing dependency operator
    "build/rules.make", line 87: Need an operator
    "build/rules.make", line 91: Need an operator
    "build/rules.make", line 93: Need an operator
    "build/rules.make", line 95: Could not find /build/profiles/default.make
    "build/rules.make", line 96: Need an operator
    "build/rules.make", line 98: Need an operator
    "build/rules.make", line 100: Need an operator
    "build/rules.make", line 102: Need an operator
    "build/rules.make", line 119: Need an operator
    "build/rules.make", line 121: Need an operator
    "build/rules.make", line 123: Need an operator
    "build/rules.make", line 125: Need an operator
    "build/rules.make", line 136: Need an operator
    "build/rules.make", line 138: Need an operator
    make: fatal errors encountered -- cannot continue
    *** Error code 1

    Stop in /usr/home/bolwerk/mono-1.9.1/runtime.
    *** Error code 1

    Stop in /usr/home/bolwerk/mono-1.9.1.
    *** Error code 1

    Stop in /usr/home/bolwerk/mono-1.9.1.



    3a. I also tried running it with gmake.
    It seems to fare a little better, with a different error:

    MONO_PATH="../../class/lib/net_1_1_bootstrap:$MONO_PATH"
    /home/bolwerk/mono-1.9.1/runtime/mono-wrapper
    .../../class/lib/net_1_1_bootstrap/sn.exe -q -R
    .../../class/lib/default/Accessibility.dll ../../class/mono.snk
    Assembly ../../class/lib/default/Accessibility.dll signed.
    gmake[8]: Leaving directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Accessibility'
    gmake[7]: Leaving directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Accessibility'
    gmake[7]: Entering directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Mono.Mozilla'
    Creating ../../build/deps/default_Mono.Mozilla.dll.makefrag ...
    gmake[7]: Leaving directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Mono.Mozilla'
    gmake[7]: Entering directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Mono.Mozilla'
    gmake all-local
    gmake[8]: Entering directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Mono.Mozilla'
    ../build-csproj2k5
    gmake[8]: ./build-csproj2k5: Command not found
    gmake[8]: *** [Mono.Mozilla2K5.csproj] Error 127
    gmake[8]: Leaving directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Mono.Mozilla'
    gmake[7]: *** [do-all] Error 2
    gmake[7]: Leaving directory
    `/usr/home/bolwerk/mono-1.9.1/mcs/class/Mono.Mozilla'
    gmake[6]: *** [all-recursive] Error 1
    gmake[6]: Leaving directory `/usr/home/bolwerk/mono-1.9.1/mcs/class'
    gmake[5]: *** [all-recursive] Error 1
    gmake[5]: Leaving directory `/usr/home/bolwerk/mono-1.9.1/mcs'
    gmake[4]: *** [profile-do--default--all] Error 2
    gmake[4]: Leaving directory `/usr/home/bolwerk/mono-1.9.1/mcs'
    gmake[3]: *** [profiles-do--all] Error 2
    gmake[3]: Leaving directory `/usr/home/bolwerk/mono-1.9.1/mcs'
    gmake[2]: *** [all-local] Error 2
    gmake[2]: Leaving directory `/usr/home/bolwerk/mono-1.9.1/runtime'
    gmake[1]: *** [all-recursive] Error 1
    gmake[1]: Leaving directory `/usr/home/bolwerk/mono-1.9.1'
    gmake: *** [all] Error 2

  2. Re: mono on FreeBSD

    Hi there,

    On Thu, 08 May 2008 23:53:37 -0400, Bolwerk wrote:

    > I'm running 64-bit FreeBSD 6.2 on an amd64 system.
    >
    > I'm trying to compile mono. The directions aren't very detailed, and
    > near as I can tell I'm following them properly.
    >
    > Nonetheless, I keep getting errors. I installed all dependencies
    > (libgdiplus was missing, but I've installed it). Details of the errors I
    > get are below.
    >
    > Thanks!
    >
    > 1. I get the tar, unzip, enter mono-1.9.1
    >
    > 2. Run ./configure --prefix=/usr/local
    > (tried it without prefix too, same result)


    This is completely the wrong approach, on FreeBSD, and ignores all of the
    good work that the port maintainers have done.

    The right way is:

    1. cd /usr/ports/lang/mono
    2. sudo make install clean

    step 2 is essentially ./configure; make; make install, but it
    automatically uses the correct flags to configure, uses the correct
    version of make, ensures that all of the correct versions of dependencies
    are installed, and also applies a bunch of FreeBSD-specific patches to
    the source. See: you didn't really want to have to work all of that out
    for youself after all.

    Now: the caveat is that I've never done this for mono itself, but it is
    the general form for installing stuff on FreeBSD. (Or you can use a
    variety of other tools, some of which involve pre-built binaries.
    There's lots about this in the freebsd handbook.)

    Cheers,

    --
    Andrew

  3. Re: mono on FreeBSD

    On 9 May 2008 05:34:03 GMT,
    Andrew Reilly wrote:
    >> 1. I get the tar, unzip, enter mono-1.9.1


    A quick look shows that this version isn't in the ports yet.

    The version in ports appears to be 1.2.5.1, but note that 1.9 comes
    right after the next release to this, 1.2.6, so it looks dramatic but
    isn't, really. (Reading the release notes is useful in cases like this.)


    >> 2. Run ./configure --prefix=/usr/local
    >> (tried it without prefix too, same result)

    >
    > This is completely the wrong approach, on FreeBSD, and ignores all of the
    > good work that the port maintainers have done.
    >
    > The right way is:
    >
    > 1. cd /usr/ports/lang/mono
    > 2. sudo make install clean


    Or, if you insist on trying to compile a version that isn't in ports
    yet, you could at least look at the patches and flags and so on given
    for the older version in ports. Of course, you then get to figure out
    what changed in the meantime, possibly come up with new patches or
    remove old ones, and if you succeed it would be good to submit a PR
    about it, so the maintainer can update the ports version.


    --
    j p d (at) d s b (dot) t u d e l f t (dot) n l .
    This message was originally posted on Usenet in plain text.
    Any other representation, additions, or changes do not have my
    consent and may be a violation of international copyright law.

  4. Re: mono on FreeBSD

    Andrew Reilly wrote:
    > Hi there,
    >
    > On Thu, 08 May 2008 23:53:37 -0400, Bolwerk wrote:
    >
    >> I'm running 64-bit FreeBSD 6.2 on an amd64 system.
    >>
    >> I'm trying to compile mono. The directions aren't very detailed, and
    >> near as I can tell I'm following them properly.
    >>
    >> Nonetheless, I keep getting errors. I installed all dependencies
    >> (libgdiplus was missing, but I've installed it). Details of the errors I
    >> get are below.
    >>
    >> Thanks!
    >>
    >> 1. I get the tar, unzip, enter mono-1.9.1
    >>
    >> 2. Run ./configure --prefix=/usr/local
    >> (tried it without prefix too, same result)

    >
    > This is completely the wrong approach, on FreeBSD, and ignores all of the
    > good work that the port maintainers have done.
    >
    > The right way is:
    >
    > 1. cd /usr/ports/lang/mono
    > 2. sudo make install clean


    Yes, I should have mentioned, I tried that. This was the result:

    ===> mono-1.1.13.8.1 is only for i386, and you are running
    amd64..
    *** Error code 1

    Stop in /usr/ports/lang/mono.

    Anyway, that is a rather old version.

    > step 2 is essentially ./configure; make; make install, but it
    > automatically uses the correct flags to configure, uses the correct
    > version of make, ensures that all of the correct versions of dependencies
    > are installed, and also applies a bunch of FreeBSD-specific patches to
    > the source. See: you didn't really want to have to work all of that out
    > for youself after all.
    >
    > Now: the caveat is that I've never done this for mono itself, but it is
    > the general form for installing stuff on FreeBSD. (Or you can use a
    > variety of other tools, some of which involve pre-built binaries.
    > There's lots about this in the freebsd handbook.)


    I wouldn't call myself an expert, but I'm fairly proficient with
    FreeBSD, and the whole reason I got into it so much was the convenience
    of the ports collection.

  5. Re: mono on FreeBSD

    Bolwerk wrote:
    >
    > ===> mono-1.1.13.8.1 is only for i386, and you are running
    > amd64..
    > *** Error code 1
    >
    > Stop in /usr/ports/lang/mono.
    >
    > Anyway, that is a rather old version.


    Update your ports tree. The Makefile for 1.2.5.1 says it supports i386
    and amd64 architectures.

    --
    Warren Block * Rapid City, South Dakota * USA

+ Reply to Thread