Tag: msys
HOWTO build DXX-Rebirth for Windows with MSYS/MinGW
by plouj on Mar.07, 2009, under games, HOWTO
Introduction
In this post I’ll document the steps I had to take to build DXX-Rebirth (a modernized Descent game engine) for Windows using MSYS and MinGW.
MinGW, MSYS
FromĀ Pantokrator’s blog:
- install MinGW
- choose a lowercase install path: c:\mingw
- choose to download and install current version
- enable g++ (for physfs)
- install MSYS
- install msysDTK
SDL and SDL_mixer
Also fromĀ Pantokrator’s blog:
- download the SDL source
- in the MSYS shell, compile it with
./configure --prefix=/mingw && make && make install
- download the SDL_mixer source and in a MSYS shell, build it with the same command:
./configure --prefix=/mingw && make && make install
PhysicsFS
- Download the physfs 1.1.0 source.
- Compile with the same command again:
./configure --prefix=/mingw && make && make install
SCons and Python
From Globulation2 MinGW instructions:
- install Python 2.6
- install SCons
- add:
PATH=$PATH:/c/Python26:/c/Python26/Scripts
- to the end of /etc/profile in MSYS so that SCons can run from the MSYS shell.
Subversion
- install TortoiseSVN
DXX-Rebirth
- checkout DXX-Rebirth from https://dxx-rebirth.svn.sourceforge.net/svnroot/dxx-rebirth
- change the SConstruct script to call sdl-config as ‘sh sdl-config ‘:
...
Flags and stuff for all platforms...
env.ParseConfig('sh sdl-config --cflags')
env.ParseConfig('sh sdl-config --libs')
env.Append(CPPFLAGS = ['-Wall', '-funsigned-char'])
...
- finally, in the MSYS shell, built with:
scons sdlmixer=1
Final Remarks
I had trouble with the latest version of PhysicsFS (1.1.1) because it uses cmake. For some reason it failing to find some prerequisites in MSYS. I also had trouble with version 1.0.1 of PhysicsFS (this is the version the official d1x-rebirth_v0.55.1-win.zip is built with) because the built failed with the following error:
warning: cannot find entry symbol _DllMainCRTStartup@12; defaulting to 00401000 ... undefined reference to WinMain@16
If you notice any problems or mistakes in this post, please mention them in the comments.
