I'm trying to compile Mono 3.0.2 from a tarball of GitHub's Mono repo.
But when I get in the mcs
folder, the compiling fails:
if test -w /root/mono/mcs; then :; else chmod -R +w /root/mono/mcs; fi
cd /root/mono/mcs && make --no-print-directory -s NO_DIR_CHECK=1 PROFILES=' net_2_0 net_3_5 net_4_0 net_4_5 ' CC='gcc' all-profiles
Bootstrap compiler: Mono C# compiler version 3.0.3.0
Makefile:43: warning: overriding commands for target 'csproj-local'
../build/executable.make:149: warning: ignoring old commands for target 'csproj-local'
Makefile:43: warning: overriding commands for target 'csproj-local'
../build/executable.make:149: warning: ignoring old commands for target 'csproj-local'
make[7]: *** No rule to make target '../../external/ikvm/reflect/*.cs', needed by '../class/lib/basic/basic.exe'. Stop.
make[6]: *** [do-all] Error 2
make[5]: *** [all-recursive] Error 1
make[4]: *** [profile-do--basic--all] Error 2
make[3]: *** [profiles-do--all] Error 2
make[2]: *** [all-local] Error 2
make[2]: Leaving directory '/root/mono/runtime'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/root/mono'
make: *** [all] Error 2
I've already tried installing monolite by doing make get-monolite-latest
and already tried to install 2.x versions and then compiling. None of these solutions worked.
My interest in the 3.0.2 version is the new Razor Template Engine and the MVC 4 framework, but, if there's no possibility to compile/install or binary packages for CentOS 6, I would appreciate a repository with previous versions.
The external/
subdirectories contain external dependencies using so-called git submodules.
If you get any errors related to missing files in any of these directories when compiling from a tarball, then my guess is that whatever script is used to create this tarball is broken and doesn't include any of these dependencies.
If you got your sources directly from github, then you need to run git submodule init
and git submodule update
.
In theory, you could download each of these submodules from github by looking at the .gitmodules file.
However, git records the specific revision of each submodule in each of the main module's commits. So if you checkout some specific commit in mono and use git submodule update
, you'll get the exact same revision of each of these modules that the author of the commit was using when he made that commit.
I'd recommend to simply use git to get the sources if you want to compile from source. It will automatically get the correct version of each of the dependencies for you and also make it easier for you to later update to new versions and/or make local changes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With