Difference between revisions of "Build for Windows"

From X-Moto
Jump to: navigation, search
(Prerequites)
(Prerequites)
 
(22 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Since xmoto 0.2.5, Visual Studio c++ is no more required. You can build X-Moto from free software. You can build xmoto.exe from windows or even from GNU/Linux with cross-compilation.
+
==Prequisties==
  
This howto has been made under Ubuntu, but it's easy to adapt it to your distribution.
+
Before we can start to compile X-Moto under windows, then we need to get 2 programs called Msys and MinGW.
 +
Fortunatly these are packed into one program, so they should be really easy to get.
  
=Prerequites=
+
Therefore go to [http://download.tuxfamily.org/xmoto/xmoto/msys/ this site] and download the most recent package. Unpack them to a place on your computer, but be aware; DO NOT place them in a path that contains spaces (Like C:\documents and settings). That will cause an error because of a bug.
  
==Install mingw==
+
==Preparing for compile==
===Under linux===
 
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
 
===Under windows===
 
* go to http://www.mingw.org/download.shtml
 
* get MSYS-1.0.10.exe and MinGW-5.0.0.exe or newer
 
* install MSYS (for this tutorial, i let the default path, c:\msys\1.0) - answer to the questions
 
Do you wish to continue with the post install ? y
 
Do you have MinGW installed ? n
 
* install MinGW
 
Let the default mirror and the default options (mingw package = current)
 
Check g++ compiler and MingGW Make
 
Destination folder : c:\msys\1.0\mingw (the folder alreay exists)
 
  
==Install libs headers and objects==
+
[[Image:Msys_start_screen.png|right|thumb|500px|]]
The required files to compile are available on internet on the website of each library. However, to make it easier, a pack is available on the xmoto cvs.
+
Okay, when Msys and MinGW are placed in a valid folder then open the Msys terminal (~msysForXMoto\msys.bat). It should look like this:
  
cvs -z3 -d:pserver:anonymous@xmoto.cvs.sourceforge.net:/cvsroot/xmoto export -r HEAD xmoto/mingw_dev.zip
 
mv xmoto/mingw_dev.zip ~
 
cd /usr/i586-mingw32msvc
 
unzip ~/mingw_dev.zip
 
rm ~/mingw_dev.zip
 
  
==Build from GNU/Linux==
+
It's from this terminal we'll compile later on. But first we need the most recent source code for X-Moto. To get this, we use the command
tar jxf xmoto-x.y.z.tar.bz2
+
 
  cd xmoto-x.y.z
+
svn co svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk
  ./configure_mingw_from_linux.sh
+
 
 +
This action will probably take some minutes.
 +
It will download the source code, and place it at ~\msysForXMoto\home\xmoto\trunk.
 +
*''Note that in Msys you do not paste with ctrl-v but with the middle mousebottom.''
 +
 
 +
 
 +
After the download is done, then we need to change directory so we are at the source code.
 +
To this we use the command
 +
 
 +
cd trunk
 +
 
 +
[[Image:Msys_cd.png]]
 +
 
 +
You can run the command pwd to know where you are located
 +
pwd
 +
 
 +
 
 +
When you got that:
 +
sh ./bootstrap
 +
or just
 +
  bootstrap
 +
 
 +
That won't take a lot of time.
 +
 
 +
[[Image:Msys_bootstrap.png]]
 +
 
 +
And when the bootstrap is done:
 +
 
 +
  ./configure
 +
 
 +
This will take some minutes. Be aware of that you maybe some errors, about missing .dll files. Just ignore them and press ok. It won't stop msys from configuring. Take a look at [[#More about configure|this section]] if you wan't to know more about the configure
 +
 
 +
[[Image:After_configure.png|''It should look like this after the configure'']]
 +
<center>''It should look like this after the configure''</center>
 +
 
 +
==Compile==
 +
 
 +
After the configure comes the real compile. To do this we use the command:
 +
 
 
  make
 
  make
i586-mingw32msvc-strip src/xmoto.exe
 
  
You can found xmoto.exe into the src dir.
+
This will take a lot of time if it's the first time that you compile X-Moto. “Make” will produce the xmoto.exe and place it at \msysForXMoto\home\xmoto\trunk\src\xmoto.exe.
To get the dll required to play xmoto :
+
 
  cvs -z3 -d:pserver:anonymous@xmoto.cvs.sourceforge.net:/cvsroot/xmoto export -r HEAD xmoto/mingw_lib.zip
+
[[Image:Msys_after_make.png]]
 +
<center> ''if it looks like this then you succeed compiling X-Moto!''</center>
 +
 
 +
There is only one command left now when the make is done:
 +
 
 +
strip src/xmoto.exe
 +
 
 +
This command will remove a lot of unnecessary debugging stuff and make the .exe files size smaller.
 +
 
 +
Now copy the compiled xmoto.exe in the directory of your normally installed X-Moto and replace it with the other xmoto.exe. For example in C:\program files\XMoto\xmoto.exe
 +
 
 +
Then Double-click and enjoy your own compiled xmoto!
 +
 
 +
==Additional things to know==
 +
 
 +
In this section can you find things that are nice to know about compiling X-Moto.
 +
 
 +
===Updating your source code===
 +
 
 +
Insted of downloading all sources codes each time you want to update your svn version, then use the command:
 +
 
 +
  svn up
 +
 
 +
Then you'll only download updated files.
 +
 
 +
===About using commands in Msys===
 +
 
 +
After you update sources via svn up, or if you added or removed something in the source code, and you want to re-compile then you have simplyly to type the command :
 +
 
 +
make
 +
 
 +
It will rebuild only what is necessary.
 +
By the way, if you get an error, it's probably because a file called configure.in or Makefile.am has been modified. In this case, you've to type :
 +
 
 +
sh ./bootstrap
 +
./config.status --recheck (or ./configure)
 +
make
 +
 
 +
====Grep====
 +
 
 +
Another smart thing msys can do, is to search in the source code after keywords.
 +
To  do this we use the command ''grep''.
 +
 
 +
it works like this: ''grep [How to look for it][What to look for][Where to look for it]''
 +
 
 +
An example:
 +
 
 +
grep -i -n x-moto trunk/src/*.cpp
 +
 
 +
gives the output:
 +
 
 +
[[Image:Msys_grep.png]]
 +
 
 +
Try to write
 +
grep --help
 +
And figure out why we get that output!
 +
 
 +
===More about configure===
 +
 
 +
When you succed the configure, a sort of table comes as you may have noticed. That table tells if an option is enabled or not.
 +
 
 +
[[Image:Msys_more_about_configure.png]]
 +
 
 +
But it also show which commands you should use to enable a option. For example if you want xmoto to use the zoom option:
 +
 
 +
./configure --with-enable-zoom=1
 +
 
 +
[[Image:Msys_after_configure_with_zoom.png]]
  
==Build from Windows==
+
<center>''This is the table with zoom enabled''</center>

Latest revision as of 02:30, 13 March 2013

Prequisties

Before we can start to compile X-Moto under windows, then we need to get 2 programs called Msys and MinGW. Fortunatly these are packed into one program, so they should be really easy to get.

Therefore go to this site and download the most recent package. Unpack them to a place on your computer, but be aware; DO NOT place them in a path that contains spaces (Like C:\documents and settings). That will cause an error because of a bug.

Preparing for compile

Msys start screen.png

Okay, when Msys and MinGW are placed in a valid folder then open the Msys terminal (~msysForXMoto\msys.bat). It should look like this:


It's from this terminal we'll compile later on. But first we need the most recent source code for X-Moto. To get this, we use the command

svn co svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk

This action will probably take some minutes. It will download the source code, and place it at ~\msysForXMoto\home\xmoto\trunk.

  • Note that in Msys you do not paste with ctrl-v but with the middle mousebottom.


After the download is done, then we need to change directory so we are at the source code. To this we use the command

cd trunk

Msys cd.png

You can run the command pwd to know where you are located

pwd


When you got that:

sh ./bootstrap 
or just
bootstrap

That won't take a lot of time.

Msys bootstrap.png

And when the bootstrap is done:

./configure

This will take some minutes. Be aware of that you maybe some errors, about missing .dll files. Just ignore them and press ok. It won't stop msys from configuring. Take a look at this section if you wan't to know more about the configure

It should look like this after the configure

It should look like this after the configure

Compile

After the configure comes the real compile. To do this we use the command:

make

This will take a lot of time if it's the first time that you compile X-Moto. “Make” will produce the xmoto.exe and place it at \msysForXMoto\home\xmoto\trunk\src\xmoto.exe.

Msys after make.png

if it looks like this then you succeed compiling X-Moto!

There is only one command left now when the make is done:

strip src/xmoto.exe

This command will remove a lot of unnecessary debugging stuff and make the .exe files size smaller.

Now copy the compiled xmoto.exe in the directory of your normally installed X-Moto and replace it with the other xmoto.exe. For example in C:\program files\XMoto\xmoto.exe

Then Double-click and enjoy your own compiled xmoto!

Additional things to know

In this section can you find things that are nice to know about compiling X-Moto.

Updating your source code

Insted of downloading all sources codes each time you want to update your svn version, then use the command:

svn up

Then you'll only download updated files.

About using commands in Msys

After you update sources via svn up, or if you added or removed something in the source code, and you want to re-compile then you have simplyly to type the command :

make

It will rebuild only what is necessary. By the way, if you get an error, it's probably because a file called configure.in or Makefile.am has been modified. In this case, you've to type :

sh ./bootstrap
./config.status --recheck (or ./configure)
make

Grep

Another smart thing msys can do, is to search in the source code after keywords. To do this we use the command grep.

it works like this: grep [How to look for it][What to look for][Where to look for it]

An example:

grep -i -n x-moto trunk/src/*.cpp

gives the output:

Msys grep.png

Try to write

grep --help

And figure out why we get that output!

More about configure

When you succed the configure, a sort of table comes as you may have noticed. That table tells if an option is enabled or not.

Msys more about configure.png

But it also show which commands you should use to enable a option. For example if you want xmoto to use the zoom option:

./configure --with-enable-zoom=1

Msys after configure with zoom.png

This is the table with zoom enabled