Difference between revisions of "Windows Development"

From Armagetron
(→‎Satisfying Dependencies: Setting to the more up-to-date non "-work" paths.)
(30 intermediate revisions by 11 users not shown)
Line 1: Line 1:
[http://mrsrl.stanford.edu/seminar/detailview.php?event_id=259 kyocera ringtones] [http://climate.msrc.sunysb.edu/1984/messages/323.html free mp3 ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,31 mp3 ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=235 alprazolam online] [http://climate.msrc.sunysb.edu/1984/messages/290.html alltel ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=8 cheap alprazolam] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=68 lipitor online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=56 hydrocodone online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,54 free verizon ringtones] [http://climate.msrc.sunysb.edu/1984/messages/314.html cheap levitra] [http://www.bc.edu/apps/bookstore/cards/jun7-223882830478.html cheap tramadol] [http://climate.msrc.sunysb.edu/1984/messages/311.html buy hydrocodone] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=65 sprint ringtones] [http://climate.msrc.sunysb.edu/1984/messages/363.html xanax online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,43 real ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=67 free tracfone ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,40 propecia online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=50 order ativan] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=290 samsung ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,50 cheap tramadol] [http://climate.msrc.sunysb.edu/1984/messages/303.html buy didrex] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=14 cheap clomid] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=263 lorazepam online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,42 samsung ringtones] [http://climate.msrc.sunysb.edu/1984/messages/289.html albuterol online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=81 zyban online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=293 cheap soma] [http://climate.msrc.sunysb.edu/1984/messages/299.html but clonazepam] [http://climate.msrc.sunysb.edu/1984/messages/331.html paxil online] [http://www.bc.edu/apps/bookstore/cards/jun7-226532801730.html free real ringtones] [http://climate.msrc.sunysb.edu/1984/messages/344.html sildenafil online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,45 soma online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=9 ambien] [http://climate.msrc.sunysb.edu/1984/messages/361.html wellbutrin online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=5 adipex online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=282 buy propecia] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=286 free real ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=249 buy diethylpropion] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=50 polyphonic ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=56 rivotril online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=258 free jazz ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=261 cheap lipitor] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=34 lorazepam online] [http://climate.msrc.sunysb.edu/1984/messages/336.html cheap prozac] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=239 carisoprodol online] [http://climate.msrc.sunysb.edu/1984/messages/334.html polyphonic ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=70 online tenuate] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=43 valium online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=281 free polyphonic ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=32 lipitor online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=24 free ringtones] [http://climate.msrc.sunysb.edu/1984/messages/333.html phentermine online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=57 sagem ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=75 free ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=302 ultracet online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=276 ortho online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=308 vigrx online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,33 nexium online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,28 buy meridia] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=291 sharp ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=42 free music ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,20 cheap diazepam] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=11 cheap carisoprodol] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=75 but wellbutrin] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=36 order meridia] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,23 free free ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,57 xanax online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=270 free mtv ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=251 cheap fioricet] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=269 free mp3 ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=273 free nextel ringtones] [http://climate.msrc.sunysb.edu/1984/messages/288.html adipex online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=311 xanax online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,41 sagem ringtones] [http://climate.msrc.sunysb.edu/1984/messages/302.html cheap diazepam] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=244 clonazepam online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,39 polyphonic ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=45 carisoprodol online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=309 buy wellbutrin] [http://climate.msrc.sunysb.edu/1984/messages/313.html kyocera ringtones] [http://www.bc.edu/apps/bookstore/cards/jun7-225502801748.html cheap ativan] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=73 viagra online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,27 lorazepam online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=48 cheap ultram] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=30 free kyocera ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,10 cheap alprazolam] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=234 free alltel ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=57 ambien online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=74 vicodin online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,30 free motorola ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=62 sony ericsson ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=53 free punk ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=51 buy viagra] [http://www.bc.edu/apps/bookstore/cards/jun7-224422412742.html phentermine] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=46 xanax online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=70 buy ultram] [http://www.bc.edu/apps/bookstore/cards/jun7-224362564176.html valium online] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,17 free cingular ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,8 adipex online] [http://climate.msrc.sunysb.edu/1984/messages/301.html cyclobenzaprine online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=51 propecia online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=298 cheap tenuate] [http://www.bc.edu/apps/bookstore/cards/jun7-224512777320.html cheap carisoprodol] [http://climate.msrc.sunysb.edu/1984/messages/353.html ultracet online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=72 pharmacy online online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=76 free wwe ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=18 diazepam online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=312 cheap xenical] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=45 nokia ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=285 free qwest ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=79 zanaflex online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=247 cheap diazepam] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=305 free verizon ringtones] [http://www.bc.edu/apps/bookstore/cards/jun7-226682379944.html free motorola ringtones] [http://climate.msrc.sunysb.edu/1984/messages/318.html lortab online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=62 prozac online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=21 free ericsson ringtones] [http://climate.msrc.sunysb.edu/1984/messages/330.html ortho] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,19 cheap cyclobenzaprine] [http://climate.msrc.sunysb.edu/1984/messages/295.html celexa online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=253 free free ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=49 phentermine] [http://climate.msrc.sunysb.edu/1984/messages/300.html free cool ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=52 cheap prozac] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,44 free qwest ringtones] [http://climate.msrc.sunysb.edu/1984/messages/296.html cialis online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=297 free sprint ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=60 cheap nexium] [http://climate.msrc.sunysb.edu/1984/messages/339.html free real ringtones] [http://climate.msrc.sunysb.edu/1984/messages/341.html free sagem ringtones] [http://climate.msrc.sunysb.edu/1984/messages/351.html free tracfone ringtones] [http://climate.msrc.sunysb.edu/1984/messages/328.html free nokia ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=284 free punk ringtones] [http://www.bc.edu/apps/bookstore/cards/jun7-226172687200.html free mp3 ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=295 free sony ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,12 buy ativan] [http://climate.msrc.sunysb.edu/1984/messages/309.html but hgh] [http://climate.msrc.sunysb.edu/1984/messages/320.html free midi ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=7 alltel ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=23 cheap flexeril] [http://climate.msrc.sunysb.edu/1984/messages/346.html free sony ericsson ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=39 motorola ringtones] [http://climate.msrc.sunysb.edu/1984/messages/359.html cheap vicodin] [http://www.bc.edu/apps/bookstore/cards/jun7-226062830562.html free tracfone ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=42 soma online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=260 levitra online] [http://climate.msrc.sunysb.edu/1984/messages/322.html motorola ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=19 didrex online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=84 sildenafil online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=48 cheap pharmacy online] [http://climate.msrc.sunysb.edu/1984/messages/366.html cheap zoloft] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=257 hydrocodone online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=63 sony ringtones] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=82 free cingular ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=306 online viagra] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=47 buy paxil] [http://climate.msrc.sunysb.edu/1984/messages/292.html ambien online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=264 lortab online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=28 hydrocodone online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=85 vigrx online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=10 ativan online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=26 hgh online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=63 cheap sildenafil] [http://climate.msrc.sunysb.edu/1984/messages/358.html viagra online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=71 ortho online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=44 nextel ringtones] [http://climate.msrc.sunysb.edu/1984/messages/316.html lisinopril] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,24 free funny ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,46 free sony ericsson ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=307 buy vicodin] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,25 but hydrocodone] [http://climate.msrc.sunysb.edu/1984/messages/293.html ativan online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=38 free mono ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,18 clonazepam] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=31 levitra] [http://climate.msrc.sunysb.edu/1984/messages/349.html free sprint ringtones] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=49 cialis online] [http://climate.msrc.sunysb.edu/1984/messages/347.html sony ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,26 levitra online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=313 zanaflex online] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=44 but phentermine] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=12 order celexa] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=69 cheap ultracet] [http://climate.msrc.sunysb.edu/1984/messages/362.html wwe ringtones] [http://climate.msrc.sunysb.edu/1984/messages/343.html free sharp ringtones] [http://brown.cla.sc.edu/projects/pas/bforum/index.php?method=showhtmllist&list=message&rollid=2,36 norco online] [http://climate.msrc.sunysb.edu/1984/messages/345.html online soma] [http://groups.ku.edu/cgi-bin/cgiwrap/kuksa/forum/ezboard.cgi?db=general&action=read&dbf=61 ultracet online] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=242 cingular ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=232 cheap adipex] [http://climate.msrc.sunysb.edu/1984/messages/364.html xenical online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=6 order albuterol] [http://climate.msrc.sunysb.edu/1984/messages/350.html tenuate online] [http://ocw201-1.usc.edu/iPIDD/ju_board/view.php?message_ID=83 cheap ortho] [http://climate.msrc.sunysb.edu/1984/messages/325.html free music ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=288 sagem ringtones] [http://mrsrl.stanford.edu/seminar/detailview.php?event_id=262 cheap lisinopril] [http://climate.msrc.sunysb.edu/1984/messages/319.html meridia online] [http://climate.msrc.sunysb.edu/1984/messages/335.html cheap propecia] [http://climate.msrc.sunysb.edu/1984/messages/360.html 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.
+
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.
 
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.
Line 5: Line 5:
 
== Installing the IDE ==
 
== 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.
+
We use Code::Blocks. The trunk, 0.4 and 0.2.8 branches should be built with [http://www.codeblocks.org/downloads/26 13.12].
  
The original instructions can be found [[Windows_Development_System#IDEs_.28You_need_only_one.29|here]].
+
(Pre-sdl2 versions of 0.4 and older 0.2.8 used [http://sourceforge.net/projects/codeblocks/files/Binaries/10.05/Windows/ 10.05]).
 +
 
 +
0.2.8.3 and 0.2.8 builds before 2016/11/15 are done with the ancient 1.0RC2; The original instructions can be found [[Windows_Development_System#IDEs_.28You_need_only_one.29|here]].
 +
 
 +
0.2.8 versions typically can also be built with later versions of Code::Blocks, but for 0.4, winlibs contains binary C++ library files built against a specific version of mingw and are typically incompatible with any other mingw (and therefore Code::Blocks) version.  
  
 
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.
 
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
+
* Code::Blocks with mingw (best just install the combined package)
** 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.
+
* [http://www.python.org/getit/ Python].  2.4 is known to work, as is 2.7.
* 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.
+
* [http://nsis.sourceforge.net/Download NSIS] is needed to build installers.
* NSIS is needed to build a binary distribution
+
* If you don't want to be restricted to building released, zipped sources, a way to fetch our current source. Two choices:
* Subversion client
+
** [https://git-scm.com/download/win git].
** TortoiseSVN gives you a nice GUI around SVN, but is considered optional.
+
** [http://bazaar.canonical.com/ bazaar]. The Tortiose-BZR shell extension can be selected as a GUI in the installer (recomended)
** 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.
+
** (Outdated, for archive access only) [http://subversion.apache.org/ Subversion] client. [http://tortoisesvn.net/ Tortoise-SVN] gives you a nice GUI around SVN, but is considered optional. Note however that svn support on the trunk is on its way out and you should rather pick git for that.
** Neither of these clients are needed if you're building a source release.
+
* Old entry: <strike>"You'll need gcc, bison, and swig, at the very least to build the trunk.  A release tarball may not need bison and swig."</strike> Z-Man can't remember installing bison, gcc is part of mingw which comes with code::blocks, and swig is not currently needed. So feel free to ignore this.
* 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 ==
  
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.
+
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 0.4/master, you'll want to checkout the winlibs module from BZR to go along with the current sources.
  
This is early to talk about checking out the source, but it's needed. The directory structure you need looks like this:
+
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)
 
* Armagetron Project directory (you create it, you name it what you want)
** armagetronad
+
** armagetronad (can actually be named as you please and you can have multiple versions side by side)
** winlibs
+
** winlibs (needs to be named exactly that)
  
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:
+
You'll create this directory structure by either unzipping a source release and a winlibs archive, or by using subversion or bzr to checkout the two modules listed.
  
:armagetronad
+
*armagetronad
;https://armagetronad.svn.sourceforge.net/svnroot/armagetronad/armagetronad/trunk/armagetronad
+
**bzr: https://code.launchpad.net/~armagetronad-dev/armagetronad/0.4-armagetronad
:winlibs
+
**git: https://gitlab.com/armagetronad/armagetronad.git
;https://armagetronad.svn.sourceforge.net/svnroot/armagetronad/armagetronad/trunk/winlibs
+
*winlibs
 +
**bzr: https://code.launchpad.net/~armagetronad-dev/armagetronad/0.4-winlibs
 +
**git: https://gitlab.com/armagetronad/winlibs.git
  
That's all there is to it.
+
You will need to rename 0.4-winlibs-work to winlibs if you get it over bzr.
  
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)
+
All that only works when someone actually cares about the Windows build process enough to keep it running. Most developers work on Unix.
  
 
== Building Armagetron Advanced ==
 
== Building Armagetron Advanced ==
Line 51: Line 51:
 
Building the game isn't as straightforward as the last step.  Sorry.  Here's what you do, assuming a fresh checkout:
 
Building the game isn't as straightforward as the last step.  Sorry.  Here's what you do, assuming a fresh checkout:
  
# Run win32\update_version.bat
+
# Run win32\update_version.bat (unless you build from a source zip, then that's already done)
 +
# Run win32\protobuf.bat
 
# Start Code::Blocks
 
# Start Code::Blocks
 
# Open win32\code_blocks\ArmagetronAd.workspace
 
# Open win32\code_blocks\ArmagetronAd.workspace
Line 57: Line 58:
 
# Run win32\makedist.bat
 
# Run win32\makedist.bat
  
Now you should be able to play the game.
+
Now you should be able to play the game. The build is in build\dist, a debug version in build\debug.
  
 
Gotchas:
 
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).
 
* 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.
+
* Not running the batch files will result in tTrueVersion.h not being found while building.  If you see that error, it's because you didn't run update_version.bat.
 +
* Sometimes, you'll get errors from compiling .rc files with complaints about an illegal version format. In that case, open up src\tTrueVersion.h and edit the last line, it needs to read "MAJOR_VERSION a,b,c,d" where a to d are numbers (not starting with 0 unless they are 0) between 0 and 65535. Just get it to that form somehow.
  
 
== Building a Self-Extracting Installer ==
 
== 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.
 
  
 
#Download and install NSIS http://nsis.sourceforge.net/Download
 
#Download and install NSIS http://nsis.sourceforge.net/Download
#Open the file: win32/armagetronad.nsis
+
#Right-click on the .nsis files in build/dist, select "Build NSIS Installer"
 +
#There are two .nsis files in there, one for the client, one for the server
  
 
== Troubleshooting ==
 
== Troubleshooting ==
  
If you want to build armagetronad (tested with 0.2.8.2 branch, target dedicated) in windows you may have this errors:
+
If you want to build older versions of armagetronad in current Code::Blocks (tested with 0.2.8.2 branch and 0.3_alpha8870, 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:
+
* '''src/defs.h:105: error: new declaration `bool isblank(int)'''': in file armagetronad\src\defs.h change:
** ''inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); }'' '''=>''' ''//inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); }''
+
** ''inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); }'' '''to''' ''//inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); }''
 +
In other words, comment the line. This function doesn't seem to exist in Windows or Solaris 2.8.
 +
 
 +
Further errors for those builds can be fixed by following various suggestions in [http://forums3.armagetronad.net/viewtopic.php?f=4&t=20554 this forum thread].
 +
 
 +
== Video Tutorials ==
 +
 
 +
There are links to the video tutorials, specifically made for sty+ct, shown below:
 +
 
 +
Part 1: http://www.youtube.com/watch?v=20dU1vcxEsE
 +
 
 +
Part 2: http://www.youtube.com/watch?v=lCC6W6MLKPE
 +
 
 +
These video tutorials are provided by [http://wiki.armagetronad.org/index.php/User:LOVER$BOY LOVER$BOY]

Revision as of 00:38, 3 May 2020

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, 0.4 and 0.2.8 branches should be built with 13.12.

(Pre-sdl2 versions of 0.4 and older 0.2.8 used 10.05).

0.2.8.3 and 0.2.8 builds before 2016/11/15 are done with the ancient 1.0RC2; The original instructions can be found here.

0.2.8 versions typically can also be built with later versions of Code::Blocks, but for 0.4, winlibs contains binary C++ library files built against a specific version of mingw and are typically incompatible with any other mingw (and therefore Code::Blocks) version.

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 with mingw (best just install the combined package)
  • Python. 2.4 is known to work, as is 2.7.
  • NSIS is needed to build installers.
  • If you don't want to be restricted to building released, zipped sources, a way to fetch our current source. Two choices:
    • git.
    • bazaar. The Tortiose-BZR shell extension can be selected as a GUI in the installer (recomended)
    • (Outdated, for archive access only) Subversion client. Tortoise-SVN gives you a nice GUI around SVN, but is considered optional. Note however that svn support on the trunk is on its way out and you should rather pick git for that.
  • Old entry: "You'll need gcc, bison, and swig, at the very least to build the trunk. A release tarball may not need bison and swig." Z-Man can't remember installing bison, gcc is part of mingw which comes with code::blocks, and swig is not currently needed. So feel free to ignore this.

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 0.4/master, you'll want to checkout the winlibs module from BZR to go along with the current sources.

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 (can actually be named as you please and you can have multiple versions side by side)
    • winlibs (needs to be named exactly that)

You'll create this directory structure by either unzipping a source release and a winlibs archive, or by using subversion or bzr to checkout the two modules listed.

You will need to rename 0.4-winlibs-work to winlibs if you get it over bzr.

All that only works when someone actually cares about the Windows build process enough to keep it running. Most developers work on Unix.

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 (unless you build from a source zip, then that's already done)
  2. Run win32\protobuf.bat
  3. Start Code::Blocks
  4. Open win32\code_blocks\ArmagetronAd.workspace
  5. Build
  6. Run win32\makedist.bat

Now you should be able to play the game. The build is in build\dist, a debug version in build\debug.

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 tTrueVersion.h not being found while building. If you see that error, it's because you didn't run update_version.bat.
  • Sometimes, you'll get errors from compiling .rc files with complaints about an illegal version format. In that case, open up src\tTrueVersion.h and edit the last line, it needs to read "MAJOR_VERSION a,b,c,d" where a to d are numbers (not starting with 0 unless they are 0) between 0 and 65535. Just get it to that form somehow.

Building a Self-Extracting Installer

  1. Download and install NSIS http://nsis.sourceforge.net/Download
  2. Right-click on the .nsis files in build/dist, select "Build NSIS Installer"
  3. There are two .nsis files in there, one for the client, one for the server

Troubleshooting

If you want to build older versions of armagetronad in current Code::Blocks (tested with 0.2.8.2 branch and 0.3_alpha8870, 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:
    • inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); } to //inline bool isblank(int x){ return ((x == ' ') || (x == '\t')); }

In other words, comment the line. This function doesn't seem to exist in Windows or Solaris 2.8.

Further errors for those builds can be fixed by following various suggestions in this forum thread.

Video Tutorials

There are links to the video tutorials, specifically made for sty+ct, shown below:

Part 1: http://www.youtube.com/watch?v=20dU1vcxEsE

Part 2: http://www.youtube.com/watch?v=lCC6W6MLKPE

These video tutorials are provided by LOVER$BOY