|
|
(7 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
|
|
This page explains how to build and test glob2 for Windows on a Debian/Ubuntu GNU/Linux operating system. |
|
{{OutDated|This guide is no longer valid|Globulation now uses scons to compile the source and has<br />an excellent guide for compiling for Windows computers. View it at [[Mingw compilation]]}} |
|
|
|
To see how to compile it natively on Windows, please see [[Mingw compilation]]. |
|
|
|
|
|
|
|
|
|
This page explains how to build and test globulation2 for windows on a Debian GNU/Linux operating system.
|
|
===Compile globulation2 for Windows on Debian using mingw=== |
|
|
|
|
|
⚫ |
# Install a mingw compiler: |
|
For any problems or suggestions, don't hesitate to contact me. [[User:Ion bidon|Ion bidon]] |
|
|
⚫ |
#:<pre> sudo apt-get install mingw32-binutils mingw32 mingw32-runtime</pre> |
|
|
#Install NSIS (required only if you want to build NSIS installer): |
|
|
#:<pre>sudo apt-get install nsis</pre> |
|
⚫ |
# Create the following directory: |
|
⚫ |
|
|
⚫ |
|
|
⚫ |
# Download glob2_required_libs_mingw -scons.tar.bz2: |
|
⚫ |
#:<pre>wget http:// dl.sv.nongnu.org/ releases/glob2/mingw/glob2_required_libs_mingw -scons.tar.bz2</pre> |
|
⚫ |
|
|
⚫ |
#:<pre>tar -xjf glob2_required_libs_mingw -scons.tar.bz2</pre> |
|
|
#Download glob2 sources from mercurial (check [[Compiling#Sources_from_Mercurial]] for details): |
|
⚫ |
#:<pre>hg clone https:// bitbucket.org /giszmo/glob2</pre> |
|
⚫ |
#:<pre> cd glob2 -new</pre> |
|
|
#Compile: |
|
|
#:<pre>scons -j5 mingwcross=yes</pre> |
|
|
#To create NSIS installer package run after previous step: |
|
|
#:<pre>scons -j5 mingwcross=yes dist</pre> |
|
|
|
|
|
Remark: if you use another mingw compiler than the one requested to download in this page, compilation might fail. |
|
|
|
|
|
|
⚫ |
===Test globulation2 for Windows on Debian=== |
|
[[Image:Cross_compiled_wine_test.png|thumb]] |
|
|
|
|
|
|
|
#Install wine: |
|
===Compile globulation2 for windows on Debian using mingw=== |
|
|
|
#:<pre>sudo apt-get install wine</pre> |
|
|
|
|
|
#Copy files necessary to run: |
|
#install mingw : |
|
|
⚫ |
#:<pre> cp src/ glob2.exe .</pre> |
⚫ |
#:<pre>apt-get install mingw32 mingw32-binutils mingw32-runtime</pre> |
|
|
⚫ |
#:<pre> cp ../ local/bin/* ../ local/lib /* .</pre> |
|
#install wine from the wine repository : |
|
|
⚫ |
|
|
#:Change the file /etc/apt/sources.list and add <pre>deb http://wine.sourceforge.net/apt/ binary/</pre> |
|
|
⚫ |
#:<pre> wine glob2.exe</pre> |
|
#:<pre>apt-get update && apt-get install wine && ln -s /usr/bin/wine /usr/bin/wine-auto</pre> |
|
⚫ |
# create the following directory : |
|
⚫ |
|
|
⚫ |
# download glob2_required_libs_mingw.tar.bz2 : |
|
⚫ |
#:<pre>wget http:// globulation2.org/ dev/glob2_required_libs_mingw.tar.bz2</pre> |
|
⚫ |
# untar the libraries like this : |
|
⚫ |
#:<pre>tar jxf glob2_required_libs_mingw.tar.bz2 -C ./libs</pre> |
|
|
#download boost c++ precompiled libraries : |
|
|
#:<pre>wget http://viral.media.mit.edu/releases/boost-1.33.1-mingw-bin.tar.gz</pre> |
|
|
#manually install boost c++ with the following commands : |
|
|
#:<pre>tar zxf boost-1.33.1-mingw-bin.tar.gz</pre> |
|
|
#:<pre>mv boost/include/boost-1_33_1/boost ./libs/include</pre> |
|
⚫ |
#:<pre> mv boost/ lib/* ./ libs/lib</pre> |
|
⚫ |
# Download a mingw compiler that works : |
|
|
#:<pre>wget http://mirrors.ircam.fr/pub/videolan/testing/win32/mingw-gcc3.3.1-linux-crosscompiler.tar.bz2</pre> |
|
|
#As root, unpack the compiler (it will create a mingw directory in /usr/local) : |
|
|
#:<pre>tar jxf mingw-gcc3.3.1-linux-crosscompiler.tar.bz2 -C /</pre> |
|
|
#From the directory containing the libs directory, type the following : |
|
|
#:<pre>export CC="i586-mingw32msvc-gcc"</pre> |
|
|
#:<pre>export CXX="i586-mingw32msvc-g++"</pre> |
|
|
#:<pre>export CFLAGS="-I$PWD/libs/include $CFLAGS"</pre> |
|
|
#:<pre>export CXXFLAGS="-I$PWD/libs/include -I$PWD/libs/include/freetype2 $CXXFLAGS"</pre> |
|
|
#:<pre>export LDFLAGS="-L$PWD/libs/lib $LDFLAGS"</pre> |
|
|
#:<pre>export PATH=/usr/local/mingw/bin:/usr/i586-mingw32msvc/bin:$PWD/libs/bin:$PATH</pre> |
|
|
#:<pre>rm ./libs/bin/auto*</pre> |
|
|
#:change the third line of ./libs/bin/sdl-config from prefix=/usr to point to the libs directory (hard path) or from the directory containing the libs directory, type:<br /> |
|
|
#:perl -e '$pwd=%ENV->{PWD};$tmp="";while(<>){chomp;if(s/prefix=\/usr/prefix=/g){$_="prefix=".$pwd."/libs"}$tmp.= $_."\n"}open(FI,"+< ./libs/bin/sdl-config");print FI $tmp;' ./libs/bin/sdl-config |
|
|
#download glob2 mercurial: |
|
⚫ |
#:<pre>hg clone http:// hg.globulation2.org/glob2 /</pre> |
|
⚫ |
|
|
|
#:<pre>cp ../libs/bin/SDL.dll ../libs/bin/libvorbis-0.dll ../libs/bin/libogg-0.dll ../libs/bin/libvorbisenc-2.dll ../libs/bin/libfreetype-6.dll .</pre> |
|
|
#:<pre>cp ../libs/lib/libvorbisfile.a ../libs/lib/libvorbis.a ../libs/lib/libogg.a .</pre> |
|
|
#:Open the configure.in file, find: |
|
|
#::<table width="90%"><tr valign="top"><td style="border: 1px dashed #000000; padding: .3em .9em .3em; color: #000000; background-color: #F8F8FF">CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"</td></tr></table> |
|
|
#::and replace with: |
|
|
#::<table width="90%"><tr valign="top"><td style="border: 1px dashed #000000; padding: .3em .9em .3em; color: #000000; background-color: #F8F8FF">CPPFLAGS="$CPPFLAGS $SDL_CFLAGS -I/usr/include/freetype2"<br />LDFLAGS="$LDFLAGS `sdl-config --libs` -lSDL_ttf"</td></tr></table> |
|
|
#:In the same file, find: |
|
|
#::<table width="90%"><tr valign="top"><td style="border: 1px dashed #000000; padding: .3em .9em .3em; color: #000000; background-color: #F8F8FF">LIBS="$LIBS -logg -lwsock32"</td></tr></table> |
|
|
#::and replace with: |
|
|
#::<table width="90%"><tr valign="top"><td style="border: 1px dashed #000000; padding: .3em .9em .3em; color: #000000; background-color: #F8F8FF">LIBS="$LIBS -lwsock32 ../libvorbisfile.a ../libvorbis.a ../libogg.a"</td></tr></table> |
|
⚫ |
|
|
⚫ |
|
|
|
#:<pre>./configure --host=i586-mingw32msvc</pre> |
|
⚫ |
|
|
|
#To make the executable smaller : |
|
⚫ |
#:<pre> strip ./src/glob2 .exe</pre> |
|
|
|
|
⚫ |
===Test globulation2 for windows on Debian === |
|
|
|
|
|
#download glob2_windows_runtime.tar.bz2 |
|
|
#:<pre>wget http://globulation2.org/dev/glob2_windows_runtime.tar.bz2</pre> |
|
|
#extract it with : |
|
|
#:<pre>tar jxf glob2_windows_runtime.tar.bz2</pre> |
|
|
#go in the glob2 directory where you have compiled glob2 and type |
|
|
#:<pre>./syncdata</pre> |
|
|
#:<pre>./syncmaps</pre> |
|
|
#copy the content of glob2/data/ to glob2_runtime/data/ |
|
|
#copy the content of glob2/maps/ to glob2_runtime/maps/ |
|
|
#copy glob2.exe which is in the src directory (glob2/src/) to glob2_runtime/ |
|
|
#run wine glob2.exe from the glob2_runtime directory and play :) |
|
|
|
|
|
|
[[Category:en]] |
|
[[Category:en]] |