Recent changes [2009-01-14]
- Added instructions and a patch for building the FriBidi library.
Recent changes [2008-06-17]
- Corrected the version information reported by libtool (thanks TOYAMA Shin-ichi!).
- Fixed minor typo in the gettext rebuilding libiconv instructions.
- Added patch to fontconfig to correct location of system font directory.
- Added --without-python switch to the libgsf build (thanks TOYAMA Shin-ichi!).
- Added tweak to pango build to fix spurious error dialogs and/or errors on XP (thanks Lee York!).
- Added tweaked instructions for the new Tux Paint Makefile (>=0.9.20).
Instructions for installing MinGW/MSYS
Instructions for building all these Libraries:
SDL: SDL_image: SDL_mixer: SDL_ttf: Gettext: |
FLTK:
librsvg: SDL_Pango: FriBidi: |
(and finally) Instructions for building these Applications:
Use the pre-built dependencies - save yourself a lot of time!
Tux Paint: |
MinGW/MSYS
Provides a Unix-like development environment on Windows.
Download the Automated MinGW Installer from here:
![[WWW]](images/moin-www.png)
Run the installer and choose the 'Download and Install' option, accept the license, choose the 'Current' option, on the 'Minimal' install panel check the 'g++' option and confirm that 'MinGW base tools' is also checked, accept the default installation directory (perhaps just changing the drive), accept the Start Menu folder and click install.
Next, download MSYS from here:
![[WWW]](images/moin-www.png)
Run the installer, click Next, accept the license, skip the readme(!), accept the default installation directory (perhaps just changing the drive), click Next through the Select Components screen, accept the Start Menu folder, click Install.
After a bit, a command prompt will appear to perform a post-install step:
- "Do you wish to continue with the post install?" press y to continue and hit Enter.
- "Do you have MinGW installed?" press y and hit Enter.
- "Where is your MinGW installation?" enter the correct path e.g. d:/mingw, and hit Enter.
- "Press any key to continue" hit Enter.
Next, download msysDTK from here:
![[WWW]](images/moin-www.png)
Run the installer, click Next, accept the license, make sure the Destination directory is the same as the one you used for MSYS (it should be), click Next through the Select Components screen and click Install.
At this point it's worth testing the MSYS shell (the icon should be on your desktop), double-click it to start, type exit and Enter to close it down.
To make the MSYS shell slightly easier to use, customise the file '/msys/1.0/msys.bat' to make the window bigger (120 x 60):
... start rxvt -backspacekey ... -geometry 120x60 -e /bin/sh --login -i ...Create a directory 'D:\home' (check the drive letter) into which you should put this file: .inputrc which makes the <HOME>, <END> and <DEL> keys work properly:
set completion-query-items 100 set completion-ignore-case on set show-all-if-ambiguous off set input-meta on set output-meta on set convert-meta off set bell-style none "\e[2~": paste-from-clipboard "\e[3~": delete-char "\e[5~": beginning-of-history "\e[6~": end-of-history "\e[7~": beginning-of-line "\e[8~": end-of-line
Set a Windows environment variable HOME to 'D:\home' (check the drive letter) using the System Properties, Advanced, Environment Variables panel.
To make things easier later on, make a directory where you want to build all the libraries and applications, I used 'D:/dev' (check the drive letter) and then put this file in your new home directory: .profile. Here are it's contents:
# points builds at their dependencies export set LIBRARY_PATH=/usr/local/bin:/usr/local/lib export set CPATH=/usr/local/include export set PKG_CONFIG_PATH=/usr/local/lib/pkgconfig # change working directory to where the source lives cd "/d/dev"Download all these packages, I put them into 'zips/tools/MSYS':
msys-autoconf-2.59.tar.bz2
msys-automake-1.8.2.tar.bz2
msys-libtool-1.5.tar.bz2
directx-devel.tar.gz
opengl-devel.tar.gz
- msys-pkg-config-win32.zip
- msys-libtool-updates.tar.bz2
nasm.exe
![[WWW]](images/moin-www.png)
![[WWW]](images/moin-www.png)
Using the Windows Explorer (stick a short-cut on the quick-launch bar) navigate to the 'zips/tools/MSYS' directory, right-click on 'msys-autoconf-2.59.tar.bz2' and select 'Extract here'. You should see a file 'msys-autoconf-2.59.tar' appear, right-click on this file and select 'Extract here'.
This should create a set of directories: 'bin', 'info', 'man' and 'share'. Repeat the above process for 'msys-automake-1.8.2.tar.bz2' and 'msys-libtool-1.5.tar.bz2'. If asked about over-writing existing files, just let it over-write them.
Now pick up all the created directories, and (carefully!) drop them into the directory 'D:/msys/1.0'. You will get warnings about the directories already existing, just let it proceed.
Now go back to the 'zips/tools/MSYS' directory and repeat the unpacking process on 'directx-devel.tar.gz' and 'opengl-devel.tar.gz'. This should create the directories: 'include' and 'lib'. Drag and drop these directories into the directory 'D:/mingw' (NOT the msys directory above). You will get warnings about the directories already existing, just let it proceed.
When finished, delete all the intermediate '.tar' files.
Now right-click on 'msys-pkg-config-win32.zip' and select 'Extract Here'. Drag-and-drop the directories created into the directory 'D:/mingw' (NOT the msys directory above). This is a package I put together from files
![[WWW]](images/moin-www.png)
Move the file 'pkg.m4' from 'D:/mingw/share/aclocal/' into the directory 'D:/msys/1.0/local/share/aclocal/'.
Extract the contents of 'msys-libtool-updates.tar.bz2' and put the 'libtool.m4' and the 'ltdl.m4' files into 'D:/msys/1.0/share/aclocal/', replacing the existing files.
Copy 'nasm.exe' into 'D:/mingw/bin'.
Check everything went OK by starting the MSYS shell and typing the line after the '$' followed by Enter:
(Note: you can paste into the MSYS window using the middle mouse button, copy by selecting text)
$ autoconf --version autoconf (GNU Autoconf) 2.59 Written by David J. MacKenzie and Akim Demaille. Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ automake --version automake (GNU automake) 1.8.2 Written by Tom Tromey <tromey@redhat.com>. Copyright 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ libtool --version ltmain.sh (GNU libtool) 1.5 (1.1220 2003/04/05 19:32:58) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ pkg-config --version 0.20 $ nasm -v NASM version 0.98.31 compiled on May 18 2002At this point, if you just want to build Tux Paint, you can download the pre-built dependencies that I made using these instructions, and save yourself a lot of time and effort.
Otherwise, you'll need about 2G of spare disk space.
But first, here's another tool you'll find useful if you run into problems:
![[WWW]](images/moin-www.png)
SDL
Download the source code using the above link into a directory, I used 'zips/src'. Unpack the tar archive by right-clicking and selecting 'Extract Here'. Then right-click on the tar archive select "Extract Files..." and use the browse button the select the D:/dev directory (see above) where you want to build the libraries and applications, then click OK.Now start the MSYS shell and execute the following commands:
(Note: just type 'cd SDL' and hit <TAB> to auto-complete)
$ cd SDL-1.2.12/ $ ./configure && make && make install
For convenience when running test programs build another version of libSDLmain by editing 'src/main/win32/SDL_win32_main.c' and adding:
#define NO_STDIO_REDIRECT
just before the first occurrence of:
#ifndef NO_STDIO_REDIRECT
at about line 41, and run the following:
$ make $ cp build/libSDLmain.a /usr/local/lib/libSDLmain_console.a $ cp /usr/local/bin/sdl-config /usr/local/bin/sdl-config-console
and edit '/msys/1.0/local/bin/sdl-config-console' to look like this:
... --libs) echo -L${exec_prefix}/lib -lmingw32 -lSDLmain_console -lSDL -lcomdlg32 -lgdi32 -mconsole ;; --static-libs) # --libs|--static-libs) echo -L${exec_prefix}/lib -lmingw32 -lSDLmain_console -lSDL -lcomdlg32 -lgdi32 -mconsole ;; ...
Build the SDL test suite like this:
$ cd test $ SDL_CONFIG=/usr/local/bin/sdl-config-console ./configure $ make
When run in the MSYS shell there is a problem with stdio flushing (I guess), so the text usually shows up at the end. It works fine in a 'Command Prompt' though, if you put a copy of 'SDL.dll' into the test directory.
The back-end can be switched between GDI and DirectX using one of the following:
$ export SDL_VIDEODRIVER=windib $ export SDL_VIDEODRIVER=directx
The 'testvidinfo.exe' program is useful (although not very exciting!) when experimenting:
$ export SDL_VIDEODRIVER=windib $ testvidinfo Video driver: windib Current display: 1280x1024, 32 bits-per-pixel Red Mask = 0x00ff0000 Green Mask = 0x0000ff00 Blue Mask = 0x000000ff Fullscreen video modes: 1600x1200x32 1600x600x32 1440x900x32 1360x1024x32 1360x768x32 1280x1024x32 1280x960x32 1280x768x32 1280x720x32 1280x480x32 1152x864x32 1024x768x32 848x480x32 800x1200x32 800x600x32 720x576x32 720x480x32 640x960x32 640x480x32 640x400x32 512x384x32 400x300x32 320x240x32 320x200x32 A window manager is available $ export SDL_VIDEODRIVER=directx $ testvidinfo Video driver: directx Current display: 1280x1024, 32 bits-per-pixel Red Mask = 0x00ff0000 Green Mask = 0x0000ff00 Blue Mask = 0x000000ff Fullscreen video modes: 1600x1200x32 1440x900x32 1360x1024x32 1360x768x32 1280x1024x32 1280x960x32 1280x768x32 1280x720x32 1152x864x32 1024x768x32 848x480x32 800x600x32 720x576x32 720x480x32 640x480x32 640x400x32 512x384x32 400x300x32 320x240x32 320x200x32 A window manager is available Hardware surfaces are available (312151K video memory) Copy blits between hardware surfaces are accelerated Colorkey blits between hardware surfaces are accelerated Copy blits from software surfaces to hardware surfaces are accelerated Colorkey blits from software surfaces to hardware surfaces are accelerated Color fills on hardware surfaces are accelerated
zlib
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following two files into
the 'zips/src' directory:
The provided 'win32/Makefile.gcc' doesn't work on MinGW, so drag-and-drop the above Makefile into the 'dev/zlib-1.2.3' directory and rename it 'Makefile'. It is based on the supplied one, but the install part works correctly. I also tweaked the 'zlib1.rc' file so that the version is consistent. Drag-and-drop the replacement into the 'dev/zlib-1.2.3/win32' directory.
Build it with:
$ cd zlib-1.2.3/ $ make
Test it with:
$ example zlib version 1.2.3 = 0x1230, compile flags = 0x55 uncompress(): hello, hello! gzread(): hello, hello! gzgets() after gzseek: hello! inflate(): hello, hello! large_inflate(): OK after inflateSync(): hello, hello! inflate with dictionary: hello, hello!
Install it with:
$ make installNow's a good chance to see what we are making. Using the Windows Explorer, navigate to the 'D:/msys/1.0/local' directory. Everything we install is put into this directory to avoid affecting MSYS itself. Look into the 'bin' directory, you should see the following files:
SDL.dll sdl-config sdl-config-console zlib1.dllIf you double-click on 'zlib1.dll', and you've installed and configured Dependency Walker (see above), it should open and show you what DLLs 'zlib1.dll' depends on, and what functions 'zlib1.dll' is exporting (for other applications to use).
Don't worry about the size of the .DLL files. They contain symbol information for debugging and unlike the Microsoft toolset where you have to rebuild in release-mode, this information can be removed later using the 'strip' command-line tool.
Anyway, on to the next one.
libpng
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
The provided 'scripts/makefile.mingw' doesn't dynamically link with zlib, doesn't include the resource file and doesn't generate a correct pkg-config file, so drag-and-drop the above Makefile into the 'dev/libpng-1.2.22' directory and rename it 'Makefile'.
Build it with:
$ make
Test it with:
$ pngtest Testing libpng version 1.2.22 with zlib version 1.2.3 libpng version 1.2.22 - October 13, 2007 Copyright (c) 1998-2007 Glenn Randers-Pehrson Copyright (c) 1996-1997 Andreas Dilger Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. library (10222): libpng version 1.2.22 - October 13, 2007 pngtest (10222): libpng version 1.2.22 - October 13, 2007 png_sizeof(png_struct)=636, png_sizeof(png_info)=288 Testing pngtest.png: Pass 0: rwrwrwrwrwrwrwrwrw Pass 1: rwrwrwrwrwrwrwrwrw Pass 2: rwrwrwrwrwrwrwrw Pass 3: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw Pass 4: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw Pass 5: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw rwrwrwrw Pass 6: rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw rwrwrwrwrw PASS (9782 zero samples) Filter 0 was used 21 times Filter 1 was used 15 times Filter 2 was used 52 times Filter 3 was used 10 times Filter 4 was used 33 times tIME = 7 Jun 1996 17:58:08 +0000 libpng passes test
Install it with:
$ make installIf you look into '/msys/1.0/local/bin', right-click on 'libpng12.dll', select 'Properties' and click on the 'Version' tab you should see the relevant version information. Double-click on 'libpng12.dll' to start Dependency Walker and you should see that it is linking to 'zlib1.dll'.
libjpeg
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
The 'configure' script won't build the shared (.dll) version of the
library because the 'ltconfig' and 'ltmain.sh' scripts are outdated.
Also, in order for the .dll to export the correct
functions, a change to the 'jmorecfg.h' header file is required.
The built-in tests and the install process don't work properly either, hence
the replacement makefile template.
Copy the above files into the main directory making sure that you rename them and
then run configure:
$ ./configure --prefix=/usr/local --enable-shared --enable-static
Copy and rename this updated libtool file (from SDL) into the main directory. Then build using this:
$ make CFLAGS="-O2 -DBUILDING_JPEG_DLL"
Test it with:
$ make check rm -f testout* .libs/djpeg -dct int -ppm -outfile testout.ppm ./testorig.jpg .libs/djpeg -dct int -bmp -colors 256 -outfile testout.bmp ./testorig.jpg .libs/cjpeg -dct int -outfile testout.jpg ./testimg.ppm .libs/djpeg -dct int -ppm -outfile testoutp.ppm ./testprog.jpg .libs/cjpeg -dct int -progressive -opt -outfile testoutp.jpg ./testimg.ppm .libs/jpegtran -outfile testoutt.jpg ./testprog.jpg cmp ./testimg.ppm testout.ppm cmp ./testimg.bmp testout.bmp cmp ./testimg.jpg testout.jpg cmp ./testimg.ppm testoutp.ppm cmp ./testimgp.jpg testoutp.jpg cmp ./testorig.jpg testoutt.jpg
Install it with:
$ mkdir /usr/local/man/man1 # missing 'man1' directory - maybe install should create it $ make installThis is something of a mess, but until the missing autotool configuration files are recreated by some kind soul we are stuck with it. Never mind, on to the next one.
libtiff
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
In order to get libtiff to use the shared 'zlib1.dll' copy the above file into the 'D:/dev' directory and then use it on 'configure' like this:
$ cd tiff-3.8.2/ $ patch -p0 configure < ../libtiff-configure.patchand then build and install it:
$ ./configure --prefix=/usr/local $ make && make install
To get the tests to work do this:
$ make checkwhich (eventually) says that the tests failed (including some weird dialog boxes), followed by:
$ cd test $ cp .libs/*.exe . $ cd .. $ make check ... make[1]: Entering directory `/c/HOME/tiff-3.8.2/test' PASS: ascii_tag.exe PASS: long_tag.exe PASS: short_tag.exe PASS: strip_rw.exe ================== All 4 tests passed ================== make[1]: Leaving directory `/c/HOME/tiff-3.8.2/test' ...
SDL_image
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
In order to get SDL_image to dynamically load 'jpeg.dll', 'libpng12.dll' and 'libtiff-3.dll' copy the above file into the 'D:/dev' directory and then use it on 'configure' like this:
$ cd SDL_image-1.2.6/ $ patch -p0 configure < ../SDL_image-configure.patch
Configure it with:
$ SDL_CONFIG=/usr/local/bin/sdl-config-console ./configureBuild it with:
$ make
Test it in MSYS with:
$ showimage ../jpeg-6b/testimg.bmp $ showimage ../jpeg-6b/testimg.jpg $ showimage ../jpeg-6b/testimg.ppm $ showimage ../libpng-1.2.22/pngbar.png $ showimage ../libpng-1.2.22/pngnow.png $ showimage ../libpng-1.2.22/pngtest.png
I found some other image types like '.tga' and '.gif' lurking on my machine, but I
downloaded these
test tif images
to check libtiff.
$ showimage ../libtiffpic/cramps.tif $ showimage ../libtiffpic/cramps-tile.tif $ showimage ../libtiffpic/dscf0013.tif $ showimage ../libtiffpic/fax2d.tif $ showimage ../libtiffpic/g3test.tif $ showimage ../libtiffpic/jello.tif $ showimage ../libtiffpic/jim___ah.tif $ showimage ../libtiffpic/jim___cg.tif $ showimage ../libtiffpic/jim___dg.tif $ showimage ../libtiffpic/jim___gg.tif $ showimage ../libtiffpic/off_l16.tif $ showimage ../libtiffpic/off_luv24.tif $ showimage ../libtiffpic/off_luv32.tif $ showimage ../libtiffpic/oxford.tif $ showimage ../libtiffpic/pc260001.tif $ showimage ../libtiffpic/quad-jpeg.tif $ showimage ../libtiffpic/quad-lzw.tif $ showimage ../libtiffpic/quad-tile.tif $ showimage ../libtiffpic/strike.tif $ showimage ../libtiffpic/text.tif $ showimage ../libtiffpic/ycbcr-cat.tif
Don't forget to install it:
$ make install
libogg
Download the source code using the above link and extract the files in the usual manner into
the 'D:/dev' directory.
Build it with:
$ cd libogg-1.1.3/ $ ./configure $ makeTest it with:
$ cd src $ test_bitwise.exe Small preclipped packing (LSb): ok. Null bit call (LSb): ok. Large preclipped packing (LSb): ok. 32 bit preclipped packing (LSb): ok. Small unclipped packing (LSb): ok. Large unclipped packing (LSb): ok. Single bit unclipped packing (LSb): ok. Testing read past end (LSb): ok. Small preclipped packing (MSb): ok. Null bit call (MSb): ok. Large preclipped packing (MSb): ok. 32 bit preclipped packing (MSb): ok. Small unclipped packing (MSb): ok. Large unclipped packing (MSb): ok. Single bit unclipped packing (MSb): ok. Testing read past end (MSb): ok. $ test_framing.exe testing single page encoding... 0, (0), granule:0 ok. testing basic page encoding... 0, (0), granule:0 1, (1), granule:6151 ok. testing basic nil packets... 0, (0), granule:0 1, (1), granule:10247 ok. testing initial-packet lacing > 4k... 0, (0), granule:0 1, (1), granule:2055 ok. testing single packet page span... 0, (0), granule:0 1, (1), 2, (2), granule:3079 ok. testing max packet segments... 0, (0), granule:0 1, (1), granule:261127 2, (2), granule:262151 ok. testing very large packets... 0, (0), granule:0 1, (1), granule:1031 2, (2), 3, (3), granule:4103 ok. testing continuation resync in very large packets... 0, 1, 2, (2), 3, (3), granule:4103 ok. testing zero data page (1 nil packet)... 0, (0), granule:0 1, (1), granule:1031 2, (2), granule:2055 ok. Testing loss of pages... ok. Testing loss of pages (rollback required)... ok. Testing sync on partial inputs... ok. Testing sync on 1+partial inputs... ok. Testing search for capture... ok. Testing recapture... ok. $ cd ..Install it with:
$ make install
libvorbis
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
In order to get libvorbis to link copy the above file into the 'D:/dev' directory and then use it on 'lib/Makefile.am' like this:
$ cd libvorbis-1.2.0/ $ patch -p0 lib/Makefile.am < ../libvorbis-lib-makefile.am.patch
Then run the following in the main directory to update 'lib/Makefile.in':
$ aclocal && automakeBuild and install using:
$ ./configure $ make && make install
smpeg
Checkout the current version from svn using the instructions on the above page. If you don't already have 'Subversion' installed try:
![[WWW]](images/moin-www.png)
For example, in a Windows command prompt:
D:\>cd \dev D:\dev\>svn co svn://svn.icculus.org/smpeg/trunk smpeg
Configure it with:
$ cd smpeg $ ./autogen.sh $ SDL_CONFIG=/usr/local/bin/sdl-config-console ./configure --disable-opengl-playerDownload this patch smpeg-makefile.patch to make it build the DLL, copy it into the 'D:/dev' directory and apply it like this:
$ patch -p0 Makefile < ../smpeg-makefile.patchBuild it with:
$ makeTest it with:
$ plaympeg ../Media/butterfly.mpg $ plaympeg ../Media/lake.mpg $ plaympeg ../Media/MIX2.2.mpg $ plaympeg --novideo ../Media/piano.mp3 $ plaympeg --novideo ../Media/roadhouse_blues.mp3Install it with:
$ make install
SDL_mixer
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
In order to get SDL_mixer to dynamically load 'libvorbis' and 'smpeg.dll' copy the above file into the 'D:/dev' directory and then use it on 'configure' like this:
$ cd SDL_mixer-1.2.8/ $ patch -p0 configure < ../SDL_mixer-configure.patchThen configure and build using:
$ SDL_CONFIG=/usr/local/bin/sdl-config-console ./configure $ makeTest it with:
$ cd build $ playmus ../../Media/wonrace1-jt.it $ playmus ../../Media/gtrsolo2.mid $ playmus ../../Media/Chipgene.mod $ playmus ../../Media/track1.mp3 $ playmus ../../Media/keepgoin.ogg $ playmus ../../Media/bizzarre-funfair.s3m $ playmus ../../Media/wahoo.wav $ cd ..Install it with:
$ make install
freetype
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
In order to get the freetype DLL to use 'zlib1.dll' copy the above file into the 'D:/dev' directory and then use it on 'configure' like this:
$ cd freetype-2.3.5/ $ patch -p0 builds/unix/configure < ../freetype-zdll-configure.patch
Build and install with:
$ ./configure && make && make install
SDL_ttf
Download the source code using the above link and extract the files in the usual manner into
the 'D:/dev' directory.
Build it with:
$ cd SDL_ttf-2.0.9/ $ SDL_CONFIG=/usr/local/bin/sdl-config-console ./configure $ make
Test it with:
$ showfont D:/windows/fonts/arial.ttf 32 "Hello world." (or showfont D:/winnt/fonts/arial.ttf 32 "Hello world.") $ showfont -solid D:/windows/fonts/arial.ttf 32 "Hello world." (or showfont -solid D:/winnt/fonts/arial.ttf 32 "Hello world.") $ glfont D:/windows/fonts/arial.ttf 32 "Hello world." (or glfont D:/winnt/fonts/arial.ttf 32 "Hello world.")
Install it with:
$ make install
libiconv
If gettext isn't already installed (it isn't if you start from scratch) you need to compile/install libiconv twice, the second time after compiling/installing gettext (which uses libiconv).
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
In order to build a libiconv.dll containing version information copy the above file into the 'D:/dev' directory and then use it on 'lib/Makefile.in' like this:
$ cd libiconv-1.11/ $ patch -p0 < ../libiconv-use-rc.patch
Build and install it with:
$ ./configure $ make $ make install
Test it with:
$ make check
which takes a while to run.
gettext
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
There are some symbol clashes with various #defines in "winnt.h". In order to work round this, copy the above file into the 'D:\dev' directory and then use like this:
$ cd gettext-0.16.1/ $ patch -p0 < ../gettext-symbol-clash.patch
Build and install it with:
$ ./configure $ make $ make install
This particular library takes a long time to build and install especially under MinGW/MSYS. I'm glad I moved development onto something faster then a PIII.
Now that that's done it's time to rebuild libiconv.
$ cd ../libiconv-1.11 $ make clean && make distclean $ ./configure && make && make install
fltk
Build and install it with:
$ cd fltk-1.1.7/ $ ./configure && make && make install
There are some warnings about OpenGL in the configure step, but it all builds OK as a static library (not a DLL).
There are 60+ test programs in the 'test' directory including a complete Sudoku game.
xmllib2
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
To make it use the zlib DLL copy the above file into the 'D:\dev' directory and then use like this:
$ cd libxml2-2.6.30/ $ patch -p0 < ../libxml2-configure-use-zdll.patch $ ./configure
Build with:
$ makeIt takes quite a while to build.
Test with (not recommended):
$ make testsI got huge amounts of output from this, and it takes a *very* long time to run, especially the API regression tests - the machine just sits there with 0% CPU usage, almost no disk activity and the console showing:
## Running the API regression tests this may take a little whileEventually the "Relax-NG regression tests" caused segfaults in "sh.exe" and at that point I had to abandon the tests using the reset button!
Install with:
$ make install
libart
Download the source code using the above link, extract the files in the usual manner into the 'D:/dev' directory.
Build and install it with:
$ cd libart_lgpl-2.3.19/ $ ./configure && make && make install
fontconfig
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
The first patch (from the GTK+ project) makes fontconfig use the users temporary-file location for creating caches, and fixes a few other bugs whilst it's at it. The second patch makes fontconfig use the registry to locate the system fonts rather than building a path using GetWindowsDirectory() and appending 'fonts' to it. Fixes a Citrix related problem. Copy the above files into the 'D:\dev' directory and then use like this:
$ cd fontconfig-2.4.2/ $ patch -p0 < ../fontconfig-2.4.2-tml-20071015.diff $ patch -p0 < ../fontconfig-2.4.2-jfp-20080617.diff $ aclocal -I /usr/local/share/aclocal && autoconf && automake
Build and install it with:
$ ./configure --prefix=/usr/local --enable-libxml2 --disable-docs $ make && make install
glib
Download the source code using the above link, extract the files in the usual manner into the 'D:/dev' directory.
Build and install it with:
$ cd glib-2.14.2/ $ ./configure $ make && make install
cairo
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
There are some .... In order to work round this, copy the above file into the 'D:\dev' directory and then use like this:
$ cd cairo-1.4.10/ $ patch -p0 < ../cairo-configure-use-zdll.patch
Build and install it with:
$ ./configure $ make && make install
pango
Download the source code using the above link, extract the files in the usual manner into the 'D:/dev' directory.
Build and install it with:
$ cd pango-1.17.5/ $ ./configure $ make $ make install
A couple of spurious error dialog boxes appear related to the 'pango-querymodules' wrapper script, but it seems that they can be safely ignored if building on Win2K.
If building on XP, it is necessary to edit 'modules/Makefile' and set RUN_QUERY_MODULES_TEST to false:
#RUN_QUERY_MODULES_TEST = true RUN_QUERY_MODULES_TEST = false all: all-recursive
libcroco
Download the source code using the above link, extract the files in the usual manner into the 'D:/dev' directory.
Build and install it with:
$ cd libcroco-0.6.1/ $ ./configure $ make $ make install
bzip2
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
The provided Makefile doesn't install correctly so drag-and-drop the above Makefile into the 'dev/bzip2-1.0.4/' directory and rename it 'Makefile'.
Build and install it with (there is no configure step):
$ cd bzip2-1.0.4/ $ make $ make install
libgsf
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following files into
the 'zips/src' directory:
To build and install expat-2.0.1, extract the files into 'D:\dev' in the usual manner. Then build and install it like this:
$ cd expat-2.0.1/ $ ./configure $ make && make install
To install XML::Parser, extract the files into 'D:\dev' in the usual manner. Then install like this (the archive includes pre-compiled binaries):
$ cd XML-Parser-2.34/ $ make install
To build libgsf with the zlib DLL, download the following patch for configure:
Copy the above file into 'D:/dev' and use it like this:
$ cd libgsf-1.14.7/ $ patch -p0 < ../libgsf-configure-zdll-bzip2.patch
Build and install libgsf with:
$ ./configure --without-python $ make && make installI originaly built without the '--without-python' which (probably) worked because I had a win32 version of Python installed (thanks TOYAMA Shin-ichi!).
libatk
Download the source code using the above link, extract the files in the usual manner into the 'D:/dev' directory.
Build and install it with:
$ cd atk-1.19.6/ $ ./configure $ make && make install
GTK+
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
There is a problem with the MSYS shell when it calls pkg-config whilst interpolating strings and the return value (1, or CTRL-A) ends up in the string(!). In order to work round this, copy the above file into the 'D:\dev' directory and then use like this:
$ cd gtk+-2.10.14/ $ patch -p0 < ../gtk+-configure-pkgconfig-zdll.patch
I found that exiting the MSYS shell and restarting it before building helped (see below).
Build and install it with:
$ ./configure --with-gdktarget=win32 $ make $ make install
I initially had problems at the 'make install' step with an error in the 'gdk-pixbuf' directory involving the 'install-libLTLIBRARIES' step. Restarting MSYS seemed to work.
At this point I thought I'd try the 'gtk-demo' application. Before running it you need to create a couple of configuration files:
$ pango-querymodules > /usr/local/etc/pango/pango.modules $ gdk-pixbuf-query-loaders > /usr/local/etc/gtk-2.0/gdk-pixbuf.loaders $ gtk-demo
Everything seemed to work OK for me.
librsvg
Download the source code using the above link, extract the files in the usual manner into the 'D:/dev' directory.
I found that exiting the MSYS shell and restarting it before building helped (see below).
Build and install it with:
$ cd librsvg-2.18.2/ $ ./configure $ make $ make install
I initially had problems at the 'make install' step with an error (similar to the one with GTK+ above) in the 'gdk-engine' directory involving the 'install-engineLTLIBRARIES' step. Restarting MSYS seemed to work.
SDL_Pango
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
The first patch fixes the SDL version detection and builds a working libtool. The second patch adds some extra (required) functionality to SDL_Pango. Copy the above files into the 'D:\dev' directory and then use them like this:
$ cd SDL_Pango-0.1.2/ $ patch -p0 < ../SDL_Pango-configure.patch $ patch -p0 < ../SDL_Pango-0.1.2-API-adds.patch
Build and install it with:
$ ./configure $ make && make install
FriBidi
Download the source code using the above link, extract the files in the usual manner into
the 'D:/dev' directory and then download the following file into
the 'zips/src' directory:
The patch fixes a few missing DLL data exports and makes some macro tricks in 'wcwidth.c' work when FRIBIDI_EXPORTS is defined (see below). Copy the above file into the 'D:\dev' directory and then use them like this:
$ cd fribidi-0.10.9/ $ patch -p1 < ../fribidi-win32.patch
Build and install it with:
$ CFLAGS="-DFRIBIDI_EXPORTS -g -O2" ./configure $ make && make install
Pre-built Dependencies
You need to install MinGW/MSYS to use these pre-built files.
Download the dependencies [COMING SOON!] into 'zips/tools/tuxpaint' and extract them in-place by right-clicking and choosing 'Extract Here'. Then drag-and-drop the directory 'local' into 'd:/msys/1.0' and skip to the Tux Paint section.
Tux Paint
First we need to get the source code, you can download a tarball (source-code bundle) or check-out the latest version from CVS.
We'll use CVS. Unless you are already a Tux Paint developer you should use the publicly available, read-only pserver in a Windows Command Prompt like this:
C:\>d: D:\>cd \dev D:\dev>cvs -d:pserver:anonymous@tuxpaint.cvs.sourceforge.net:/cvsroot/tuxpaint login
You might get a warning 'cvs login: warning: failed to open d:\home\.cvspass for reading: No such file or directory'. Re-running the above line should work without warnings.
D:\dev>cvs -z3 -d:pserver:anonymous@tuxpaint.cvs.sourceforge.net:/cvsroot/tuxpaint co -P tuxpaint
If building Tux Paint prior to version 0.9.20, we should be able to build and install it (using the MSYS shell) like this:
$ cd tuxpaint $ make win32 $ make install-win32
If building Tux Paint version 0.9.20 and beyond (the Makefile was greatly improved), we should be able to build and install it (using the MSYS shell) like this:
$ cd tuxpaint $ make $ make install
Run it from inside MSYS like this:
$ tuxpaint
Tux Paint Stamps
First we need to get the source code, you can download a tarball (source-code bundle) or check-out the latest version from CVS.
We'll use CVS. Refer to the above instructions and then check-out the latest files in a Windows Command Prompt like this:
D:\dev>cvs -z3 -d:pserver:anonymous@tuxpaint.cvs.sourceforge.net:/cvsroot/tuxpaint co -P tuxpaint-stamps
Now we should be able to install it (nothing to compile), using the MSYS shell like this:
$ cd tuxpaint-stamps $ make install-all
If you run Tux Paint again you should see a lot more stamps.
Tux Paint Config
First we need to get the source code, you can download a tarball (source-code bundle) or check-out the latest version from CVS.
We'll use CVS. Refer to the above instructions and then check-out the latest files in a Windows Command Prompt like this:
D:\dev>cvs -z3 -d:pserver:anonymous@tuxpaint.cvs.sourceforge.net:/cvsroot/tuxpaint co -P tuxpaint-config
Now we should be able to build and install it, using the MSYS shell, like this:
$ cd tuxpaint-config $ make win32 $ make install-win32
Tux Paint Installer
To build a version of Tux Paint that can be run from anywhere (and packaged with the installer):
$ cd tuxpaint $ make bdist-win32
This rebuilds everything and gathers all the required files together into the 'tuxpaint/win32/bdist/' directory.
To build the installer you'll need Inno Setup Quickstart Pack. Download and install it. Uncheck the 'ISTool' option (optional), check the 'Inno Setup Preprocessor' option (required), uncheck the 'Download and install encryption support' (optional) and then let it install. You'll also need:
Download these files and put them into '/Program Files/Inno Setup 5/Languages/'.
When ready, right-click on the 'tuxpaint/win32/tuxpaint.iss' file and select 'Compile'. This will build the installer and place it in the 'tuxpaint/win32/' directory.
