-
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
-
Re: mono on FreeBSD
Hi there,
On Thu, 08 May 2008 23:53:37 -0400, Bolwerk wrote:
[color=blue]
> 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)[/color]
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
-
Re: mono on FreeBSD
On 9 May 2008 05:34:03 GMT,
Andrew Reilly <andrew-newspost@areilly.bpc-users.org> wrote:[color=blue][color=green]
>> 1. I get the tar, unzip, enter mono-1.9.1[/color][/color]
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.)
[color=blue][color=green]
>> 2. Run ./configure --prefix=/usr/local
>> (tried it without prefix too, same result)[/color]
>
> 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[/color]
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.
-
Re: mono on FreeBSD
Andrew Reilly wrote:[color=blue]
> Hi there,
>
> On Thu, 08 May 2008 23:53:37 -0400, Bolwerk wrote:
>[color=green]
>> 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)[/color]
>
> 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[/color]
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.
[color=blue]
> 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.)[/color]
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.
-
Re: mono on FreeBSD
Bolwerk <no@way.org2> wrote:[color=blue]
>
> ===> 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.[/color]
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