Free and Open Source real time strategy game with a new take on micro-management

Mingw compilation

From Globulation2

Revision as of 01:42, 27 July 2010 by FoxyBurner (talk | contribs) (Possible Issues)
Jump to: navigation, search

This page explains how to compile Globulation 2 on windows using mingw.

Installing required software for tutorial

Setting up Python, Scons, Mercurial, and NSIS

  • Download and install Python into the directory "C:\Python26" (default install is Python26, don't change this)
  • Download and install Scons into the same directory as the python install (C:\Python26\)
  • Download and install stable Mercurial locally so the command hg will work. When you get to the end of the install, make sure you check "add mercurial to your computers search path" or something similar.

(To create a windows installer)

  • Download and install NSIS into all its default installation folder "C:\Program Files\NSIS\".

Setting up MinGW and MSYS

  • Download and install MinGW-5.1.4.exe into the directory c:\mingw (lower case). During installation, select "Current" when asked what version, and then and select the MinGW base tools and g++ compiler packages only
  • And, download and install MSYS-1.0.10.exe into the directory c:\msys\1.0\ (lower case). At the end of the installation, it will ask you if you want to continue with the post-install. Select yes, and yes again when it ask if you have mingw installed. When it ask you to indicate the directory where it is installed, type in c:/mingw (yes, with a forward slash as the program prefers it that way).
  • Open msys by double clicking the desktop icon, run the following, then be sure to close the window so it takes effect:
echo "c:/mingw /mingw" > /etc/fstab

Compiling Prerequisites

  • Download glob2_required_libs_mingw-scons.tar.bz2 and put it in the home directory of msys (c:\msys\1.0\home\XXX\ where XXX is the username)
  • Double click the MSYS icon that has been placed on your desktop during MSYS's installation.
  • Go in the directory where you put the glob2_required_libs_mingw-scons.tar.bz2 (for example cd ~) and untar the libraries using the command below. This process could take a while:
tar jxf glob2_required_libs_mingw-scons.tar.bz2 -C /

Compiling Globulation 2

Step 1: Preparing for a compile

Compiling from Released source code

  • Download and extract the release to c:\msys\1.0\home\XXX\ (where XXX is the username), then run (changing the version numbers):

mv glob2-x.x.xx glob2_source

Compiling from Mercurial source files

  • Download Globulation 2 from mercurial
hg clone http://hg.globulation2.org/glob2-new glob2
The above command gets you all the history of glob2 back to November 2001 when it all began.
  • Pick a version you want to compile
cd glob2
hg branches
hg tags
these commands give you an overview of what branches and tags exist.
Tags are used to mark certain versions like when glob2 publishes a new released. beta4.5 for example is the 5th version of the beta-4 series of releases. This is better and more stable than the beta4.4 but should not desync against beta4.1. If you only want to play glob2 beta4, use the latest tag beta4.whatever. tip is a special tag. It is the revision last committed to the repository. In general this is not what you want but you get it by default.
Branches are used to mark a sequence of revisions that are not necessarily all stable. Somewhere after beta4.5 on the beta4-rc branch there may be versions that don't compile. If you want to help on a beta4.6 you would need to get the branch beta4-rc. default is the main branch. If you want to play this is not the branch you want. If you want to fix bugs, this is not what you want as bugs get fixed in the earliest supported branches (those with an -rc). If you want to implement new features that you are sure to finish do it in default. If your feature is complex, use default but branch off a feature branch (hg branch my-complex-feature).
  • update to the right revision.
hg update -C \[branch name or tag name you picked above\]

Step 2: actually compiling

  • Start compiling Globulation 2. Don't worry about the warnings. If something is wrong, it will grind to a halt and it will let you know why. To compile, run (inside the folder glob2):
scons
  • Once compiling has finished, run the following to prepare Globulation 2 for testing:
cp -a /local/bin/SDL.dll /local/lib/*.dll .
cp -a ./src/glob2.exe .
  • Run glob2.exe from the glob2_source directory and play :)

Building a Globulation 2 NSIS installer

  • In MSYS, run the following codes to compile a windows installable exe file:
cd glob2_source
cd windows
glob2_make_win32.sh
  • If all things go well, an exe ready for installation on windows computers is now ready within the windows folder. Test it (install and play), and if it works, send it to your friends ;)

Possible Issues

1. Make sure you have no hidden GNU-GCC installed somewhere. GCC is for example included in the FreePascal-Compiler. (You won't find any Lib anymore if another GCC is activ.)

2. Make sure path to GCC is set in Path Enviroment Variable. The Scons-Script just aborts (can't find libSDL) if it is not.


3. Called "scons: No such file or directory" Trouble


I got this trouble as many other people (http://globulation2.org/forums/viewtopic.php?t=210). It is not quite easy to explain how to make-it-works,The solution could be fixed easily but have to be dynamic with ever new python & scons product version . So this Trouble could come over again later.

  • Where that Trouble come from ?

This comes from a "linux-kind-link" who has been designed for Python 2.6 AND scons-1.1.0 Versions, Guess what this link is (OUT TO DATE) due to the fact that the Python today version and scons have evolve their name, their path could too ! That said, as you see The Trouble will come over and over if the way to bond the scoms path to the mingw sh (linux command bash, & emulated environment) will stay like that.

  • What the Community could do ?

Here some ideas: We might need to keep up-to-date either this Wiki page and the scoms file provided in the tarball file call 'Prerequisites' (http://dl.sv.nongnu.org/releases/glob2/mingw/glob2_required_libs_mingw-scons.tar.bz2). Yes, telling people what Python & scoms version STRICTLY to use and keeping this up to date with news release (because their release will getting old and might not stay available for download).

  • What YOU can do to make it works ?

You can either try to find the old python2.6 and scons1.1.0 version for windows if theire still available for download.

OR THE MOST COMPLICATED WAY, Editing the scoms file file with no Extension and normaly "located" at "c:\msys\1.0\bin\" or might also work or be found there at "c:\mingw\bin\" you should use a proper Text Editor , do not even think to use the MS notepad because it does sometime files coruption, at least you may use MS WORDPAD at your own files risk !,Better to use the Free Notepad++ who really edit well available as portable application also.

For Editing the ORIGINAL scoms file :

Replacing the line

  1. ! C:/Python26/python

by your real information and software version and path location

  1. ! Drive:/Python_version_location/python


and the two next ocurance of the expresion 'scons-1.1.0' by your actual 'scons-version.x.x.x.'

Try to launch again scoms in the glob2_source folder, If it start compiling your done !

  • IF NOT see those hint :

you might need to check and found if your scons is on the right path as for the scons v1 it is like C:\Python27\Lib\site-packages\scons-1.3.0\SCons\Script\SConscript.pyc

IF the path Drive:\Python_version_path\Lib\site-packages\scons-version.x.x.x\SCons\" is not , you may need also to modified some other chart or expression in quotation mark e.g 'scons-1.1.0' to 'scons-2.0.0' You should found anyway on your computer somewhere the file 'SConscript.pyc' if the scons is correctly installed.


This Help is there and is provided AS IS , its works on my Windows Vista 32bit, and this Details Help should stay here long enought the file glob2_required_libs_mingw-scons.tar.bz2 containing the **OUTDATED** 'scoms link code' ! ALSO I M SORRY FOR THE OVERALL TEXT DESIGN but I m not use with this Web-tools and formatting ! even making a web-link is a problem well the help page is not working so feel free to correct my text design code.

Conclusion

That concludes this Mingw compilation tutorial. If you have any problems, please write a bug report and one of the Windows maintainers should be able to help you. More information on bug reports can be found at the Bug Reports page. Happy compiling.

Misc