Windows Development

From Armagetron
Revision as of 18:49, 11 June 2007 by 76.170.149.95 (talk)

kyocera ringtones free mp3 ringtones mp3 ringtones alprazolam online alltel ringtones cheap alprazolam lipitor online hydrocodone online free verizon ringtones cheap levitra cheap tramadol buy hydrocodone sprint ringtones xanax online real ringtones free tracfone ringtones propecia online order ativan samsung ringtones cheap tramadol buy didrex cheap clomid lorazepam online samsung ringtones albuterol online zyban online cheap soma but clonazepam paxil online free real ringtones sildenafil online soma online ambien wellbutrin online adipex online buy propecia free real ringtones buy diethylpropion polyphonic ringtones rivotril online free jazz ringtones cheap lipitor lorazepam online cheap prozac carisoprodol online polyphonic ringtones online tenuate valium online free polyphonic ringtones lipitor online free ringtones phentermine online sagem ringtones free ringtones ultracet online ortho online vigrx online nexium online buy meridia sharp ringtones free music ringtones cheap diazepam cheap carisoprodol but wellbutrin order meridia free free ringtones xanax online free mtv ringtones cheap fioricet free mp3 ringtones free nextel ringtones adipex online xanax online sagem ringtones cheap diazepam clonazepam online polyphonic ringtones carisoprodol online buy wellbutrin kyocera ringtones cheap ativan viagra online lorazepam online cheap ultram free kyocera ringtones cheap alprazolam free alltel ringtones ambien online vicodin online free motorola ringtones sony ericsson ringtones free punk ringtones buy viagra phentermine xanax online buy ultram valium online free cingular ringtones adipex online cyclobenzaprine online propecia online cheap tenuate cheap carisoprodol ultracet online pharmacy online online free wwe ringtones diazepam online cheap xenical nokia ringtones free qwest ringtones zanaflex online cheap diazepam free verizon ringtones free motorola ringtones lortab online prozac online free ericsson ringtones ortho cheap cyclobenzaprine celexa online free free ringtones phentermine free cool ringtones cheap prozac free qwest ringtones cialis online free sprint ringtones cheap nexium free real ringtones free sagem ringtones free tracfone ringtones free nokia ringtones free punk ringtones free mp3 ringtones free sony ringtones buy ativan but hgh free midi ringtones alltel ringtones cheap flexeril free sony ericsson ringtones motorola ringtones cheap vicodin free tracfone ringtones soma online levitra online motorola ringtones didrex online sildenafil online cheap pharmacy online cheap zoloft hydrocodone online sony ringtones free cingular ringtones online viagra buy paxil ambien online lortab online hydrocodone online vigrx online ativan online hgh online cheap sildenafil viagra online ortho online nextel ringtones lisinopril free funny ringtones free sony ericsson ringtones buy vicodin but hydrocodone ativan online free mono ringtones clonazepam levitra free sprint ringtones cialis online sony ringtones levitra online zanaflex online but phentermine order celexa cheap ultracet wwe ringtones free sharp ringtones norco online online soma ultracet online cingular ringtones cheap adipex xenical online order albuterol tenuate online cheap ortho free music ringtones sagem ringtones cheap lisinopril meridia online cheap propecia vigrx online Here's straightforward instructions on how to set up a complete windows environment for building a distribution. If you just want to hack on the game, you only need these instructions up to big step 3. These are here to help newcomers to get into hacking the trunk quickly, but their also here to document how releases are built for windows.

There are 4 big steps, each comprising of many little steps. Each step is for building the trunk. Building a release tarball based on the trunk should follow logically from here, but may not. Consult specific release documentation for more information on building a release tarball, if it's there.

Installing the IDE

We use Code::Blocks. The trunk should be built with the latest available nightly snapshot. We're somewhat dismayed at this situation as we made the switch to Code::Blocks when 1.0rc2 was the latest release and we thought the 1.0 release was impending. We are open to alternatives, but we need feedback from actual windows developers, unless you all want us to pick a linux-centric build system.

The original instructions can be found here.

To build and run the game, you will need Python and Code::Blocks. Code::Blocks itself requires MingW, and additional tools available from MingW will be needed to build the trunk. Here's a list, in no particular order.

  • Code::Blocks nightly
    • requires a mingw dll that we recommend you put in %WINDOWS%\system32 and a wxWidgets dll that we make the same recommendation for. Following this recommendation allows you to upgrade your Code::Blocks installation by just unzipping a new nightly snapshot.
  • Python. 2.4 is known to work, 2.5 is experimental for us at this time, but we'll be moving to 2.5 as various Linux distributions pick it up.
  • NSIS is needed to build a binary distribution
  • Subversion client
    • TortoiseSVN gives you a nice GUI around SVN, but is considered optional.
    • Subversion, from subversion.tigris.org is required for the automated build to work, and many of the scripts needed to make a regular build likely require it.
    • Neither of these clients are needed if you're building a source release.
  • MingW
    • Use the latest version of MingW available. It can be a real pain to install, we hope they'll take care of that sometime soon.
    • This has to be installed before Code::Blocks is run, ideally. The requirement may be imaginary, but it's good practice to install MingW first anyway.
    • You'll need gcc, g , bison, and swig, at the very least to build the trunk. A release tarball may not need bison and swig.

Note: At the time of writing, the trunk doesn't build in windows. Hopefully we'll remember to update this page when it does.

Satisfying Dependencies

Satisfying dependencies in Windows is very easy. You just download the most recent release of the winlibs.zip file to build the trunk, generally. Sometimes that won't work, such as when the trunk requires new libraries that aren't required by the most recent release. If you're building from the trunk, you'll want to checkout the winlibs module.

This is early to talk about checking out the source, but it's needed. The directory structure you need looks like this:

  • Armagetron Project directory (you create it, you name it what you want)
    • armagetronad
    • winlibs

You'll create this directory structure by either unzipping a source release and a winlibs archive, or by using subversion to checkout the two modules listed. For reference, the url for the modules is:

armagetronad
https://armagetronad.svn.sourceforge.net/svnroot/armagetronad/armagetronad/trunk/armagetronad
winlibs
https://armagetronad.svn.sourceforge.net/svnroot/armagetronad/armagetronad/trunk/winlibs

That's all there is to it.

Well, not really. We need to figure out how to get Ruby in there, and Boost is a bit problematic right now. Those two are the main reasons the trunk doesn't build, at the time of writing. (However, there are miscellaneous problems in the build files from regular changes made in Linux that have been migrated to Mac OS X, but due to lack of developer interest, and lack of developers, haven't yet been migrated to Windows)

Building Armagetron Advanced

Building the game isn't as straightforward as the last step. Sorry. Here's what you do, assuming a fresh checkout:

  1. Run win32\update_version.bat
  2. Start Code::Blocks
  3. Open win32\code_blocks\ArmagetronAd.workspace
  4. Build
  5. Run win32\makedist.bat

Now you should be able to play the game.

Gotchas:

  • update_version.bat and makedist.bat both need to know where python is installed. The easiest way to deal with this is to put python in your path. In Windows 2000, right-click My Computer, select Properties. Go to the Advanced tab, and in the middle you have Environment Variables. Open that. Find the Path variable and edit it, by putting ";C:\Python24" on the end (if you used the default installation location. If you didn't, put the right path to python.exe).
  • Not running the batch files will result in version.h not being found while building. If you see that error, it's because you didn't run update_version.bat.

Building a Self-Extracting Installer

Right now, nobody knows how to build an installer from the trunk. Z-man knew back in 0.3.0, and hopefully he'll chime in and tell us how he did it then.

  1. Download and install NSIS http://nsis.sourceforge.net/Download
  2. Open the file: win32/armagetronad.nsis

Troubleshooting

If you want to build armagetronad (tested with 0.2.8.2 branch, target dedicated) in windows you may have this errors:

  • src/defs.h:105: error: new declaration `bool isblank(int)': in file armagetronad\src\defs.h change this:
    • inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); } => //inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); }