Compiling MonoKickstart

Hey, so first of all I’m using MonoGame 3.6. Which I believe requires a newer version of mono than the one that is included in the precompiled folder of MonoKickstart.

My system’s version of mono is, and I know this version runs my game without error (on OSX as well as Linux). So I would like to compile MonoKickstart using that version of mono. However there are no instructions and I’m not having any luck figuring it out myself. I’m creating the build directory and running cmake, so I get past that point. Then when I ran make I got this error.

[asojka09@arch build]$ make
[ 33%] Building C object CMakeFiles/kick.dir/kick.c.o
/home/asojka09/Development/MonoGame/MonoKickstart-master/kick.c:1:39: fatal error: mono/metadata/mono-config.h: No such file or directory
#include <mono/metadata/mono-config.h>
compilation terminated.
make[2]: *** [CMakeFiles/kick.dir/build.make:63: CMakeFiles/kick.dir/kick.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/kick.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

So I figure, oh ok, I need the mono source.

I extracted that into a folder and did.
export CPATH=“/home/asojka09/Development/MonoGame/mono”

Now the output I get is

[ 33%] Building C object CMakeFiles/kick.dir/kick.c.o
[ 66%] Building C object CMakeFiles/kick.dir/binreloc.c.o
make[2]: *** No rule to make target ‘…/libmonosgen-2.0.a’, needed by ‘kick.bin.x86_64’. Stop.
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/kick.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

I’m probably missing something really simple, I don’t do c++ development at all so this is fairly foreign to me. Essentially if someone could give instructions on how to build MonoKickstart with a specific version of mono that’d be great. Thanks!

I’ve never looked into how MonoKickstart works, but this pull request might help you out:

Ok, so after some more research it looks like apparently mkbundle is the thing to use.

I updated the PR mentioned by @Jjagg to mono 4.8.x which is currently in RC.
The branch has the precompiled binaries for each platform.