[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gnubg] Rolling your own Windows w/MinGW & MSYS

From: Michael Petch
Subject: [Bug-gnubg] Rolling your own Windows w/MinGW & MSYS
Date: Sun, 21 Aug 2011 23:34:32 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20110804 Thunderbird/3.1.12

Howdy all,

Among the changes and bug fixes I have been making to GNUBG itself - I
have recently found myself trying to create a new environment for
Windows builds that can be used for generating production releases.

There are a number of options available when building on Win32 platform,
and many have been used over the years. People have hand crafted
makefiles and environments to build directly with the make facilities
and compilers from Microsoft. The other option is to build using Cygwin
(A POSIX environment) that comes complete with an environment that Linux
developers are more use to.

I'd rather opt for a solution that allows use of GCC. Cygwin requires a
3rd party DLL (cygwin.dll) to emulate posix functionality (GNUBG can
build in this environment). Cygwin also allows for X windows builds if
you so desire, and has an X11 server. The third option is MinGW
(Minimalist GNU for Windows). MingW is a set of Compilers (GCC based),
Binutils as well as headers and interface libraries to link directly
against the windows API.  MinGW by itself doesn't provide an environment
where you can use familiar autoconf/automake tools to create a build
environment and set options.

MinGW is currently the environment that is used for current GNUBG
production Windows builds. However, hand crafted make files have been
made to generate windows executables without the autoconf/automake
facilities. It is patchwork of files that are very specific to the
Windows platform. It does work! But if someone puts away changes in
revision control(CVS) regarding the make environment all the hand
crafted Makefiles specific to the windows build have to be modified by
hand as well.  The development environment for MingW is more adhoc than
anything else.

Ideally a solution that uses MinGW but provides autoconf/automake
facilities so that one can use the same processes and procedures for
builds as seen on *nix like systems would be ideal. The environment
should allow for GNUBG to be built without the need for X-Windows(X11).

MinGW has a sister product MSYS. MSYS contains a set of tools like
autoconf,automake,grep,perl, and other common utilities often used in
build environments. MSYS has a very rudimentary package management
tool,  but for the time being I'm not really concerned with that deficiency.

The questions is - could a MinGW/MSYS environment be created that could
build GNUBG with normal ./autogen.sh, ./configure and make processes.
The answer is yes. I have begun committing some changes to the source
tree to accommodate such an environment. 

I am using
as a basis (adding the extra install options of C++Compiler, MSYS Basic
System and MinGW Developer Toolkit). After installation I compiled a
number of other libraries and programs like wget, libgtkglext-1.2.0,
libreadline, termcap among a few others. For GTK+ I used a highly used
and tested set of Win32 binaries and headers from
http://www.gtk.org/download/win32.php . In particular I used the
GTK+2.22 environment:
. I use Python2.7.2 from
http://python.org/ftp/python/2.7.2/python-2.7.2.msi .

These libraries are more recent than the ones I use for current
production GNUBG builds, and will be the basis of all WIN32 builds
starting next month.

I had to make some changes to some files in the environment above to get
everything working as expected.

At present I have a self contained set of files in ZIP format with all
of the files above, and my changes.  This can be downloaded and
installed to a Windows XP/Win7/Vista system. It is 172MB (I haven't
spent time trimming the size). I created a very quick set of basic
instructions on building in this environment. It is a work in
progressand came about because Ian Shaw was interested in rolling his
own builds.

I will be creating (in the near future) a detailed set of instructions
(Web page) to create this environment from scratch, the files to
download, how to make certain libraries, and a few changes needed for
things to work right, as well as usage instructions on using the
autogen/autoconf/make processes.

Until i do that, I am making a 172MB Zip file and build instructions
available to people who contact me directly. Because of the size I am
not making the link public yet. I'm also interested in people testing
with these libraries since I will be migrating future releases of GNUBG
to them.
On an end note: Although I have made changes to support MingW in the
current Makefile's and Configure files in CVS,  I am not quite at the
point of generating official release of executables with this method.
Among other minor tweaks, I still need to add icon and resource support,
options for changing between fixed location builds and relocatable ones,
etc .

I can be contacted at address@hidden if you are interested.

Michael Petch 
CApp::Sysware Consulting Ltd. 
OpenPGP FingerPrint=D81C 6A0D 987E 7DA5 3219 6715 466A 2ACE 5CAE 3304 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]