Instructions for installing MinGW/MSYS
Instructions for building all these Libraries:
Gettext: SDL: SDL_image: SDL_mixer: SDL_ttf: |
FLTK:
FriBidi:
gperf:
librsvg: SDL_Pango: |
(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.
First thing to do is to install MinGW and MSYS. Fortunately, this process has been greatly improved recently.Also, if you just want to get on with it, I've provided a snap-shot with most of the following already installed and updated. Skip to the quick install.
MinGW/MSYS official install
Download the latest version of mingw-get-0.3-mingw32-alpha-2-bin.zip and extract the contents into 'C:\mingw\'.
Add the path 'C:\mingw\bin\' to the PATH environment variable by opening the control panel, clicking the 'System' icon (on Win7, you need to click on the 'Advanced system settings' option at this point) and then selecting the 'Advanced' tab on the 'System Properties' panel. Click on the 'Environment Variables' button, and then edit the PATH variable in the 'System variables' section. Add the following to the end of the PATH:
;C:\mingw\binNotice the semi-colon at the start, this separates each path. For example, mine looks like this:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QT Lite\QTSystem;C:\mingw\binNow open a Windows command prompt and run the following:
mingw-get install gcc g++ msys-base mingw-dtk msys-wget msys-autoconf msys-autogen msys-automake msys-unzipFirst the program downloads up-to date catalogs, then it downloads the packages to satisfy the requested install, followed by an installation procedure - all automated.
Let's get the MSYS shell working. Locate the file 'msys.bat' in the directory 'C:\mingw\msys\1.0\', select it, and then using the right-mouse button (the other one) drag-and-drop it onto the desktop. A menu will pop-up when you release the mouse button: select 'Create shortcuts here'. Now, right-click on the icon (it will have a default appearance and look a bit odd) and select 'Properties' at the bottom: this will show a panel. Make sure the 'Shortcut' tab is selected and click on the 'Change Icon...' button. You may get a warning about the file 'msys.bat' not having an icon, just click OK. Now browse to the 'C:\mingw\msys\1.0\' directory using the 'Browse...' button and select either the 'm.ico' or the 'msys.ico' file and 'Ok' your way out. I use the newer 'msys.ico' file myself.
I think the MSYS shell inherits the dimensions of the Windows command prompt, so mine is 100x50 and has a 3000 line scrollback buffer. If you want to change yours, click on the system menu icon at the top-left, choose 'Defaults' and then select the 'Layout' tab. Change both widths to 100, change the 'Screen Buffer Size' height to 3000 (or more) and set 'Window size' height to 50.
Try a simple command like 'ls' and use 'exit' to close it.
If you've got any GNU tools installed like UnxUtils or GNUWin32 or languages like Perl or Python it is useful to disable them now to avoid 'weird' problems. I do this by removing them from the PATH whilst working with MSYS.
Start the MSYS shell again. Now we'll make a HOME directory, make a directory to build all the libraries and applications in, add HOME to the environment variables, create a CVS '.cvsrc' config file and create a '.profile' file that will set some essential environment variables for the build process:
mkdir /c/home mkdir /c/tp-dev mkdir /c/tp-dev/patches mkdir /c/tp-dev/zips cat >/c/home/.profile <<EOF # points builds at their dependencies export set LIBRARY_PATH=/usr/local/bin:/usr/local/lib:/c/mingw/lib export set CPATH=/usr/local/include export set PKG_CONFIG_PATH=/usr/local/lib/pkgconfig # Set CC for the Tux Paint Makefile export set CC=gcc # change working directory to where the source lives cd "/c/tp-dev" EOF cat >/c/home/.cvsrc <<EOF diff -uN rdiff -u update -dP cvs -q -z3 EOF exitTo add the HOME environment variable, open the control panel, click the 'System' icon (on Win7, you need to click on the 'Advanced system settings' option at this point) and then select the 'Advanced' tab on the 'System Properties' panel. Click on the 'Environment Variables' button, and then click 'New' in the 'User variables...' section. Set the Variable name to HOME, set the path to 'C:\home' and 'Ok' your way out.
We are almost done, but we still need some header files and tools for building SDL, a working 'pkg-config' and a 'wspiapi.h' modified to work with gcc. Also, it turns out that some of the mingw libtool archive files (*.la) are wrong.
directx-devel.tar.gz
opengl-devel.tar.gz
nasm.exe
msys-pkg-config-win32-1.zip
WSPiApi.h
mingw-msys-la-fixes.tar.gz
wget -c -O/c/tp-dev/zips/directx-devel.tar.gz http://www.libsdl.org/extras/win32/common/directx-devel.tar.gz wget -c -O/c/tp-dev/zips/opengl-devel.tar.gz http://www.libsdl.org/extras/win32/common/opengl-devel.tar.gz wget -c -O/c/tp-dev/zips/nasm.exe http://www.libsdl.org/extras/win32/mingw32/nasm.exe wget -c -O/c/tp-dev/zips/msys-pkg-config-win32-1.zip http://johnnypops.co.uk/tuxpaint/msys-pkg-config-win32-1.zip wget -c -O/c/tp-dev/zips/WSPiApi.h http://johnnypops.co.uk/tuxpaint/WSPiApi.h wget -c -O/c/tp-dev/zips/mingw-msys-la-fixes.tar.gz http://johnnypops.co.uk/tuxpaint/mingw-msys-la-fixes.tar.gz tar xzf /c/tp-dev/zips/directx-devel.tar.gz -C /c/mingw/ tar xzf /c/tp-dev/zips/opengl-devel.tar.gz -C /c/mingw/ unzip -d/c/mingw /c/tp-dev/zips/msys-pkg-config-win32-1.zip cp /c/tp-dev/zips/nasm.exe /c/mingw/bin/ cp /c/tp-dev/zips/WSPiApi.h /c/mingw/include/ tar xzf /c/tp-dev/zips/mingw-msys-la-fixes.tar.gz -C /c/mingw/lib/Skip to check installation.
MinGW/MSYS Quick Install
Download the above file and use 7zip to extract it into your 'C' drive. It will create a single directory: 'C:\mingw\'. Add the path 'C:\mingw\bin\' to the PATH environment variable by opening the control panel, clicking the 'System' icon (on Win7, you need to click on the 'Advanced system settings' option at this point) and then selecting the 'Advanced' tab on the 'System Properties' panel. Click on the 'Environment Variables' button, and then edit the PATH variable in the 'System variables' section. Add the following to the end of the PATH:;C:\mingw\binNotice the semi-colon at the start, this separates each path. For example, mine looks like this:
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QT Lite\QTSystem;C:\mingw\binLet's get the MSYS shell working. Locate the file 'msys.bat' in the directory 'C:\mingw\msys\1.0\', select it, and then using the right-mouse button (the other one) drag-and-drop it onto the desktop. A menu will pop-up when you release the mouse button: select 'Create shortcuts here'. Now, right-click on the icon (it will have a default appearance and look a bit odd) and select 'Properties' at the bottom: this will show a panel. Make sure the 'Shortcut' tab is selected and click on the 'Change Icon...' button. You may get a warning about the file 'msys.bat' not having an icon, just click OK. Now browse to the 'C:\mingw\msys\1.0\' directory using the 'Browse...' button and select either the 'm.ico' or the 'msys.ico' file and 'Ok' your way out. I use the newer 'msys.ico' file myself.
I think the MSYS shell inherits the dimensions of the Windows command prompt, so mine is 100x50 and has a 3000 line scrollback buffer. If you want to change yours, click on the system menu icon at the top-left, choose 'Defaults' and then select the 'Layout' tab. Change both widths to 100, change the 'Screen Buffer Size' height to 3000 (or more) and set 'Window size' height to 50.
Now we'll make a HOME directory, make a directory to build all the libraries and applications in, add HOME to the environment variables, create a CVS '.cvsrc' config file and create a '.profile' file that will set some essential environment variables for the build process:
mkdir /c/home mkdir /c/tp-dev mkdir /c/tp-dev/patches mkdir /c/tp-dev/zips cat >/c/home/.profile <<EOF # points builds at their dependencies export set LIBRARY_PATH=/usr/local/bin:/usr/local/lib:/c/mingw/lib export set CPATH=/usr/local/include export set PKG_CONFIG_PATH=/usr/local/lib/pkgconfig # Set CC for the Tux Paint Makefile export set CC=gcc # change working directory to where the source lives cd "/c/tp-dev" EOF cat >/c/home/.cvsrc <<EOF diff -uN rdiff -u update -dP cvs -q -z3 EOF exitTo add the HOME environment variable, open the control panel, click the 'System' icon (on Win7, you need to click on the 'Advanced system settings' option at this point) and then select the 'Advanced' tab on the 'System Properties' panel. Click on the 'Environment Variables' button, and then click 'New' in the 'User variables...' section. Set the Variable name to HOME, set the path to 'C:\home' and 'Ok' your way out.
MinGW/MSYS Check Installation
Let's check the versions of the autotools stuff:
autoconf --version && automake --version && aclocal --version && libtool --version && m4 --versionShould display this:
autoconf (GNU Autoconf) 2.67 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+/Autoconf: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David J. MacKenzie and Akim Demaille. automake (GNU automake) 1.11.1 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Tom Tromey <tromey@redhat.com> and Alexandre Duret-Lutz <adl@gnu.org>. aclocal (GNU automake) 1.11.1 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Tom Tromey <tromey@redhat.com> and Alexandre Duret-Lutz <adl@gnu.org>. libtool (GNU libtool) 2.4 Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 Copyright (C) 2010 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. m4 (GNU M4) 1.4.14 Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Rene' Seindal.Finally, let's check 'gcc', 'bash', 'nasm' and 'pkg-config':
gcc --version && bash --version && nasm -v && echo "pkg-config:" `pkg-config --version`Should display this:
gcc.exe (GCC) 4.5.2 Copyright (C) 2010 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. GNU bash, version 3.1.17(1)-release (i686-pc-msys) Copyright (C) 2005 Free Software Foundation, Inc. NASM version 0.98.31 compiled on May 18 2002 pkg-config: 0.20At 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.
You might find it useful to install the 7zip archive tool, it will expand most *nix-style archives: 7-zip Home Page
Here's another tool you'll find useful if you run into problems:
![[WWW]](images/moin-www.png)
gettext
First we need to get some boring bits installed locally: gettext and libiconv We'll need to compile/install gettext twice, the second time after compiling/installing libiconv (which uses gettext, I think).
wget -c -O/c/tp-dev/zips/gettext-0.18.1.1.tar.gz http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz tar xzf /c/tp-dev/zips/gettext-0.18.1.1.tar.gz -C /c/tp-dev cd /c/tp-dev/gettext-0.18.1.1 ./configure --enable-threads=win32 && 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.
libiconv
wget -c -O/c/tp-dev/zips/libiconv-1.13.1.tar.gz http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xzf /c/tp-dev/zips/libiconv-1.13.1.tar.gz -C /c/tp-dev cd /c/tp-dev/libiconv-1.13.1/ ./configure && make && make install
Test it with:
$ make check
which takes a while to run.
Now it's time to build gettext again:
rm -rf /c/tp-dev/gettext-0.18.1.1/ tar xzf /c/tp-dev/zips/gettext-0.18.1.1.tar.gz -C /c/tp-dev cd /c/tp-dev/gettext-0.18.1.1 ./configure --enable-threads=win32 && make && make install
SDL
SDL itself builds fine without any patches, but for various test programs, it is useful if console output works (it is supressed by default). The following instructions build SDL twice, once normally, the second time after a patch to enable console output. This produces the extra files 'sdl-config-console' and 'libSDLmain_console.a'.Using the MSYS shell, run the following commands:
wget -c -O/c/tp-dev/zips/SDL-1.2.14.tar.gz http://www.libsdl.org/release/SDL-1.2.14.tar.gz wget -c -O/c/tp-dev/patches/sdl-stdio-redirect.patch http://johnnypops.co.uk/tuxpaint/sdl-stdio-redirect.patch wget -c -O/c/tp-dev/patches/sdl-config-console http://johnnypops.co.uk/tuxpaint/sdl-config-console tar xzf /c/tp-dev/zips/SDL-1.2.14.tar.gz -C /c/tp-dev cd /c/tp-dev/SDL-1.2.14/ ./configure && make && make install patch -p0 < /c/tp-dev/patches/sdl-stdio-redirect.patch make cp build/libSDLmain.a /usr/local/lib/libSDLmain_console.a cp /c/tp-dev/patches/sdl-config-console /usr/local/bin/
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
The supplied 'Makefile' doesn't work so I've provided a modified version.Using the MSYS shell, run the following commands:
wget -c -O/c/tp-dev/zips/zlib-1.2.5.tar.bz2 http://zlib.net/zlib-1.2.5.tar.bz2 wget -c -O/c/tp-dev/patches/Makefile-zlib-1.2.5-mingw http://johnnypops.co.uk/tuxpaint/Makefile-zlib-1.2.5-mingw tar xjf /c/tp-dev/zips/zlib-1.2.5.tar.bz2 -C /c/tp-dev cd /c/tp-dev/zlib-1.2.5 cp /c/tp-dev/patches/Makefile-zlib-1.2.5-mingw ./Makefile make && make install
Test it with:
$ example zlib version 1.2.5 = 0x1250, 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! $ example_d zlib version 1.2.5 = 0x1250, 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!Now's a good chance to see what we are making. Using the Windows Explorer, navigate to the 'c:/mingw/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
The supplied 'configure' script doesn't work properly so I've provided a modified 'Makefile' that uses the zlib DLL and the resource script.wget -c -O/c/tp-dev/zips/libpng-1.2.44.tar.gz ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.44.tar.gz wget -c -O/c/tp-dev/patches/Makefile-libpng-1.2.44-mingw http://johnnypops.co.uk/tuxpaint/Makefile-libpng-1.2.44-mingw tar xzf /c/tp-dev/zips/libpng-1.2.44.tar.gz -C /c/tp-dev cd /c/tp-dev/libpng-1.2.44/ cp /c/tp-dev/patches/Makefile-libpng-1.2.44-mingw ./Makefile make && make install
Test it with:
$ pngtest Testing libpng version 1.2.44 with zlib version 1.2.5 libpng version 1.2.44 - June 26, 2010 Copyright (c) 1998-2010 Glenn Randers-Pehrson Copyright (c) 1996-1997 Andreas Dilger Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. library (10244): libpng version 1.2.44 - June 26, 2010 pngtest (10244): libpng version 1.2.44 - June 26, 2010 sizeof(png_struct)=648, 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 testIf you look into 'c:/mingw/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
wget -c -O/c/tp-dev/zips/jpegsrc.v8c.tar.gz http://www.ijg.org/files/jpegsrc.v8c.tar.gz tar xzf /c/tp-dev/zips/jpegsrc.v8c.tar.gz -C /c/tp-dev cd /c/tp-dev/jpeg-8c ./configure && make && make install
Test it with:
$ make check make check-local make[1]: Entering directory `/c/tp-dev/jpeg-8c' rm -f testout* ./djpeg -dct int -ppm -outfile testout.ppm ./testorig.jpg ./djpeg -dct int -bmp -colors 256 -outfile testout.bmp ./testorig.jpg ./cjpeg -dct int -outfile testout.jpg ./testimg.ppm ./djpeg -dct int -ppm -outfile testoutp.ppm ./testprog.jpg ./cjpeg -dct int -progressive -opt -outfile testoutp.jpg ./testimg.ppm ./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 make[1]: Leaving directory `/c/tp-dev/jpeg-8c'Wow! Much easier than the old jpeg-6b version.
libtiff
By default, the library links to the static version of zlib. I supply a patch to make it link with the zlib DLL.wget -c -O/c/tp-dev/zips/tiff-3.9.5.tar.gz ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.9.5.tar.gz wget -c -O/c/tp-dev/patches/tiff-3.9.5-configure-mingw.patch http://johnnypops.co.uk/tuxpaint/tiff-3.9.5-configure-mingw.patch tar xzf /c/tp-dev/zips/tiff-3.9.5.tar.gz -C /c/tp-dev cd /c/tp-dev/tiff-3.9.5 patch -p0 < /c/tp-dev/patches/tiff-3.9.5-configure-mingw.patch ./configure && make && make install
Test it like this:
$ make check ... make check-TESTS make[2]: Entering directory `/c/tp-dev/tiff-3.9.5/test' make[3]: Entering directory `/c/tp-dev/tiff-3.9.5/test' PASS: ascii_tag.exe PASS: long_tag.exe PASS: short_tag.exe PASS: strip_rw.exe ================== All 4 tests passed ================== ...
SDL_image
In order to get SDL_image to dynamically load 'libjpeg-8.dll', 'libpng12.dll' and 'libtiff-3.dll' I have provided a patch to 'configure'.wget -c -O/c/tp-dev/zips/SDL_image-1.2.10.tar.gz http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.10.tar.gz wget -c -O/c/tp-dev/patches/SDL_image-1.2.10-configure.patch http://johnnypops.co.uk/tuxpaint/SDL_image-1.2.10-configure.patch tar xzf /c/tp-dev/zips/SDL_image-1.2.10.tar.gz -C /c/tp-dev cd /c/tp-dev/SDL_image-1.2.10 patch -p0 < /c/tp-dev/patches/SDL_image-1.2.10-configure.patch
Configure it with:
PKG_CONFIG= SDL_CONFIG=/usr/local/bin/sdl-config-console ./configureAt the end of the configure step you should see these lines which confirm that the DLLs will be loaded dynamically:
... -- dynamic libtiff -> libtiff-3.dll -- dynamic libjpeg -> libjpeg-8.dll -- dynamic libpng -> libpng12.dll ...Build it with:
make && make install
Test it in MSYS with:
showimage ../jpeg-8c/testimg.bmp showimage ../jpeg-8c/testimg.jpg showimage ../jpeg-8c/testimg.ppm showimage ../libpng-1.2.44/pngbar.png showimage ../libpng-1.2.44/pngnow.png showimage ../libpng-1.2.44/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.
wget -c -O/c/tp-dev/zips/pics-3.8.0.tar.gz ftp://ftp.remotesensing.org/pub/libtiff/pics-3.8.0.tar.gz tar xzf /c/tp-dev/zips/pics-3.8.0.tar.gz -C /c/tp-dev 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
libogg
wget -c -O/c/tp-dev/zips/libogg-1.2.2.tar.gz http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz tar xzf /c/tp-dev/zips/libogg-1.2.2.tar.gz -C /c/tp-dev cd /c/tp-dev/libogg-1.2.2 ./configure && make && make installTest it with:
make check ... ./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 page spill expansion... 0, (0), granule:0 1, (1), granule:4103 2, (2), granule:5127 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. ...
libvorbis
wget -c -O/c/tp-dev/zips/libvorbis-1.3.2.tar.gz http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz tar xzf /c/tp-dev/zips/libvorbis-1.3.2.tar.gz -C /c/tp-dev cd /c/tp-dev/libvorbis-1.3.2 ./configure && make && make installTest using:
make check ... ./test_sharedbook.exe Dequant test 1... OK Dequant test 2... OK Dequant test 3... OK Dequant test 4... OK Dequant test 5... OK ... ./test.exe Testing 1 channel vorbis_1ch_q-0.5_44100.ogg : ok vorbis_1ch_q-0.5_48000.ogg : ok vorbis_1ch_q-0.5_32000.ogg : ok vorbis_1ch_q-0.5_22050.ogg : ok vorbis_1ch_q-0.5_16000.ogg : ok vorbis_1ch_q-0.5_96000.ogg : ok vorbis_1ch_q0.5_44100.ogg : ok ... Testing 8 channels vorbis_8ch_q-0.5_44100.ogg : ok vorbis_8ch_q-0.5_48000.ogg : ok vorbis_8ch_q-0.5_32000.ogg : ok vorbis_8ch_q-0.5_22050.ogg : ok vorbis_8ch_q-0.5_16000.ogg : ok vorbis_8ch_q-0.5_96000.ogg : ok ...
smpeg
Checkout the current version from svn using the instructions on the
above page. If you don't already have 'Subversion' installed try:
svn-1.4.5-setup.exe.
For example, in a Windows command prompt:
C:\>cd \tp-dev C:\tp-dev\>svn co svn://svn.icculus.org/smpeg/trunk smpeg
A patch is required to enable building of the DLL. Back in the MSYS shell:
cd /c/tp-dev/smpeg ./autogen.sh PKG_CONFIG= SDL_CONFIG=/usr/local/bin/sdl-config-console ./configure --disable-opengl-player --disable-gtk-player wget -c -O/c/tp-dev/patches/smpeg-makefile-20091215.patch http://johnnypops.co.uk/tuxpaint/smpeg-makefile-20091215.patch patch -p0 Makefile < ../patches/smpeg-makefile-20091215.patch make && make installTest 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.mp3
libmikmod (optional)
If you want MOD file support (not required for Tux Paint) we'll need to extract the archive 'libmikmod-3.1.12.zip' from SDL_mixer-1.2.11, apply a patch, run configure, copy 'libtool' from the SDL-1.2.14 directory and then finally build it:wget -c -O/c/tp-dev/zips/SDL_mixer-1.2.11.tar.gz http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.11.tar.gz tar xzf /c/tp-dev/zips/SDL_mixer-1.2.11.tar.gz -C /c/tp-dev unzip -d/c/tp-dev /c/tp-dev/SDL_mixer-1.2.11/libmikmod-3.1.12.zip wget -c -O/c/tp-dev/patches/libmikmod-3.1.12.patch http://johnnypops.co.uk/tuxpaint/libmikmod-3.1.12.patch cd /c/tp-dev/libmikmod-3.1.12.patched patch -p0 <../patches/libmikmod-3.1.12.patch ./configure cp ../SDL-1.2.14/libtool ./ make && make install
SDL_mixer
In order to get SDL_mixer to dynamically load 'libogg.dll', 'smpeg.dll' and 'libmikmod.dll' I have provided a patch to 'configure'.wget -c -O/c/tp-dev/zips/SDL_mixer-1.2.11.tar.gz http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.11.tar.gz tar xzf /c/tp-dev/zips/SDL_mixer-1.2.11.tar.gz -C /c/tp-dev wget -c -O/c/tp-dev/patches/SDL_mixer-1.2.11-configure.patch http://johnnypops.co.uk/tuxpaint/SDL_mixer-1.2.11-configure.patch cd /c/tp-dev/SDL_mixer-1.2.11 patch -p0 <../patches/SDL_mixer-1.2.11-configure.patch PKG_CONFIG= SDL_CONFIG=/usr/local/bin/sdl-config-console ./configure make && make installTest it with:
cd build/.libs 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
freetype
Includes a patch to make the freetype DLL use the zlib DLL.wget -c -O/c/tp-dev/zips/freetype-2.4.4.tar.bz2 http://download.savannah.gnu.org/releases/freetype/freetype-2.4.4.tar.bz2 tar xjf /c/tp-dev/zips/freetype-2.4.4.tar.bz2 -C /c/tp-dev wget -c -O/c/tp-dev/patches/freetype-2.4.4-zlib.patch http://johnnypops.co.uk/tuxpaint/freetype-2.4.4-zlib.patch cd /c/tp-dev/freetype-2.4.4 patch -p0 <../patches/freetype-2.4.4-zlib.patch ./configure && make && make install
SDL_ttf
wget -c -O/c/tp-dev/zips/SDL_ttf-2.0.10.tar.gz http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.10.tar.gz tar xzf /c/tp-dev/zips/SDL_ttf-2.0.10.tar.gz -C /c/tp-dev cd /c/tp-dev/SDL_ttf-2.0.10 SDL_CONFIG=/usr/local/bin/sdl-config-console ./configure make && make install
Test it with:
showfont c:/windows/fonts/arial.ttf 32 "Hello world." (or showfont c:/winnt/fonts/arial.ttf 32 "Hello world.") showfont -solid c:/windows/fonts/arial.ttf 32 "Hello world." (or showfont -solid c:/winnt/fonts/arial.ttf 32 "Hello world.") glfont c:/windows/fonts/arial.ttf 32 "Hello world." (or glfont c:/winnt/fonts/arial.ttf 32 "Hello world.")
fltk
wget -c -O/c/tp-dev/zips/fltk-1.1.10-source.tar.bz2 http://ftp.easysw.com/pub/fltk/1.1.10/fltk-1.1.10-source.tar.bz2 tar xjf /c/tp-dev/zips/fltk-1.1.10-source.tar.bz2 -C /c/tp-dev cd /c/tp-dev/fltk-1.1.10 ./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.
FriBidi
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).
wget -c -O/c/tp-dev/zips/fribidi-0.10.9.tar.gz http://fribidi.org/download/fribidi-0.10.9.tar.gz tar xzf /c/tp-dev/zips/fribidi-0.10.9.tar.gz -C /c/tp-dev wget -c -O/c/tp-dev/patches/fribidi-win32.patch http://johnnypops.co.uk/tuxpaint/fribidi-win32.patch cd /c/tp-dev/fribidi-0.10.9 patch -p1 <../patches/fribidi-win32.patch CFLAGS="-DFRIBIDI_EXPORTS -g -O2" ./configure make && make install
gperf
We need this tool to help build Tux Paint. Install it like this:wget -c -O/c/tp-dev/zips/gperf-3.0.4.tar.gz http://ftp.gnu.org/pub/gnu/gperf/gperf-3.0.4.tar.gz tar xzf /c/tp-dev/zips/gperf-3.0.4.tar.gz -C /c/tp-dev cd /c/tp-dev/gperf-3.0.4 ./configure --prefix=/usr && make && make installIf you want to build a version of Tux Paint for win9x/ME systems then you are done building libraries and tools at this point and should skip to the Tux Paint instructions below.
xmllib2
The XML C parser and toolkit of Gnome
libxml2-2.7.8.tar.gz
libxml2-2.7.8-configure-testThreads.patch
wget -c -O/c/tp-dev/zips/libxml2-2.7.8.tar.gz ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz tar xzf /c/tp-dev/zips/libxml2-2.7.8.tar.gz -C /c/tp-dev wget -c -O/c/tp-dev/patches/libxml2-2.7.8-configure-testThreads.patch http://johnnypops.co.uk/tuxpaint/libxml2-2.7.8-configure-testThreads.patch cd /c/tp-dev/libxml2-2.7.8 patch -p0 <../patches/libxml2-2.7.8-configure-testThreads.patch ./configure && make && make installIt takes quite a while to build.
fontconfig
fontconfig - Font customization and configuration
fontconfig-2.8.0.tar.gz
fontconfig-2.8.0-jfp-20091224.diff
wget -c -O/c/tp-dev/zips/fontconfig-2.8.0.tar.gz http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.8.0.tar.gz tar xzf /c/tp-dev/zips/fontconfig-2.8.0.tar.gz -C /c/tp-dev wget -c -O/c/tp-dev/patches/fontconfig-2.8.0-jfp-20091224.diff http://johnnypops.co.uk/tuxpaint/fontconfig-2.8.0-jfp-20091224.diff cd /c/tp-dev/fontconfig-2.8.0 patch -p0 <../patches/fontconfig-2.8.0-jfp-20091224.diff ./configure --enable-libxml2 --disable-docs make && make install
glib
The patch ensures that glib links to the zlib DLL and improves the timer resolution on XP. The performance test was failing because the timer granularity was so poor that division-by-zero errors were occuring!wget -c -O/c/tp-dev/zips/glib-2.26.1.tar.bz2 http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.26/glib-2.26.1.tar.bz2 tar xjf /c/tp-dev/zips/glib-2.26.1.tar.bz2 -C /c/tp-dev wget -c -O/c/tp-dev/patches/glib-2.26.1-zlib-timer.patch http://johnnypops.co.uk/tuxpaint/glib-2.26.1-zlib-timer.patch cd /c/tp-dev/glib-2.26.1 patch -p0 <../patches/glib-2.26.1-zlib-timer.patch ./configure && make && make installTest it by running:
make checkAll tests should pass.
bzip2
The provided Makefile doesn't perform an install so I made a modified version.wget -c -O/c/tp-dev/zips/bzip2-1.0.6.tar.gz http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz tar xzf /c/tp-dev/zips/bzip2-1.0.6.tar.gz -C /c/tp-dev wget -c -O/c/tp-dev/patches/Makefile-libbz2_so-mingw http://johnnypops.co.uk/tuxpaint/Makefile-libbz2_so-mingw cp /c/tp-dev/patches/Makefile-libbz2_so-mingw /c/tp-dev/bzip2-1.0.6/Makefile-libbz2_so-mingw cd /c/tp-dev/bzip2-1.0.6 make -f Makefile-libbz2_so-mingw && make -f Makefile-libbz2_so-mingw install
cairo
wget -c -O/c/tp-dev/zips/pixman-0.20.2.tar.gz http://cairographics.org/releases/pixman-0.20.2.tar.gz tar xzf /c/tp-dev/zips/pixman-0.20.2.tar.gz -C /c/tp-dev cd /c/tp-dev/pixman-0.20.2 ./configure && make && make installTest it with:
make checkAll the tests should pass. The 'blitters-test', 'scaling-test' and 'affine-test' tests takes some time.
wget -c -O/c/tp-dev/zips/cairo-1.10.2.tar.gz http://cairographics.org/releases/cairo-1.10.2.tar.gz tar xzf /c/tp-dev/zips/cairo-1.10.2.tar.gz -C /c/tp-dev wget -c -O/c/tp-dev/patches/cairo-1.10.2-zlib.patch http://johnnypops.co.uk/tuxpaint/cairo-1.10.2-zlib.patch cd /c/tp-dev/cairo-1.10.2 patch -p0 <../patches/cairo-1.10.2-zlib.patch ./configure && make && make install
pango
wget -c -O/c/tp-dev/zips/pango-1.28.3.tar.gz http://ftp.gnome.org/pub/GNOME/sources/pango/1.28/pango-1.28.3.tar.gz tar xzf /c/tp-dev/zips/pango-1.28.3.tar.gz -C /c/tp-dev cd /c/tp-dev/pango-1.28.3 ./configure && make && make installTest it by running:
make check
libcroco
wget -c -O/c/tp-dev/zips/libcroco-0.6.2.tar.gz http://ftp.acc.umu.se/pub/GNOME/sources/libcroco/0.6/libcroco-0.6.2.tar.gz tar xzf /c/tp-dev/zips/libcroco-0.6.2.tar.gz -C /c/tp-dev cd /c/tp-dev/libcroco-0.6.2 ./configure && make && make install
intltool
wget -c -O/c/tp-dev/zips/intltool-0.35.5.tar.bz2 http://ftp.gnome.org/pub/gnome/sources/intltool/0.35/intltool-0.35.5.tar.bz2 tar xjf /c/tp-dev/zips/intltool-0.35.5.tar.bz2 -C /c/tp-dev cd /c/tp-dev/intltool-0.35.5 ./configure && make && make install
gdk-pixbuf
wget -c -O/c/tp-dev/zips/gdk-pixbuf-2.22.1.tar.bz2 http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.22/gdk-pixbuf-2.22.1.tar.bz2 tar xjf /c/tp-dev/zips/gdk-pixbuf-2.22.1.tar.bz2 -C /c/tp-dev cd /c/tp-dev/gdk-pixbuf-2.22.1 ./configure && make && make install
libgsf
wget -c -O/c/tp-dev/zips/libgsf-1.14.21.tar.bz2 http://ftp.acc.umu.se/pub/GNOME/sources/libgsf/1.14/libgsf-1.14.21.tar.bz2 tar xjf /c/tp-dev/zips/libgsf-1.14.21.tar.bz2 -C /c/tp-dev wget -c -O/c/tp-dev/patches/libgsf-1.14.21-zlib.patch http://johnnypops.co.uk/tuxpaint/libgsf-1.14.21-zlib.patch cd /c/tp-dev/libgsf-1.14.21 patch -p0 <../patches/libgsf-1.14.21-zlib.patch ./configure --without-python && make && make install
librsvg
wget -c -O/c/tp-dev/zips/librsvg-2.26.3.tar.bz2 http://ftp.acc.umu.se/pub/GNOME/sources/librsvg/2.26/librsvg-2.26.3.tar.bz2 tar xjf /c/tp-dev/zips/librsvg-2.26.3.tar.bz2 -C /c/tp-dev cd /c/tp-dev/librsvg-2.26.3 ./configure && make && make install
SDL_Pango
The patch fixes the SDL version detection and builds a working libtool. It also adds some extra (required) functionality to SDL_Pango.
wget -c -O/c/tp-dev/zips/SDL_Pango-0.1.2.tar.gz http://surfnet.dl.sourceforge.net/sourceforge/sdlpango/SDL_Pango-0.1.2.tar.gz tar xzf /c/tp-dev/zips/SDL_Pango-0.1.2.tar.gz -C /c/tp-dev wget -c -O/c/tp-dev/patches/SDL_Pango-configure-extra-api.patch http://johnnypops.co.uk/tuxpaint/SDL_Pango-configure-extra-api.patch cd /c/tp-dev/SDL_Pango-0.1.2 patch -p0 <../patches/SDL_Pango-configure-extra-api.patch ./configure && make && make install
Pre-built Dependencies
You need to install MinGW/MSYS to use these pre-built files.
NOTE: these pre-built archives were made using gcc-4.5.2 but *should* be good for the gcc-4.5.X series.
To build Tux Paint for Win9x/ME use the following pre-built dependencies:
wget -c -O/c/tp-dev/zips/mingw-msys-prebuilt-win9x-usr-local-2011-06-26.tar.xz http://johnnypops.co.uk/tuxpaint/mingw-msys-prebuilt-win9x-usr-local-2011-06-26.tar.xz tar xJf /c/tp-dev/zips/mingw-msys-prebuilt-win9x-usr-local-2011-06-26.tar.xz -C /c/mingw/msys/1.0/Now skip to the Tux Paint section.
To build Tux Paint for Win2K/XP/V/7 use the following pre-built dependencies:
wget -c -O/c/tp-dev/zips/mingw-msys-prebuilt-win2KXPV7-usr-local-2011-06-26.tar.xz http://johnnypops.co.uk/tuxpaint/mingw-msys-prebuilt-win2KXPV7-usr-local-2011-06-26.tar.xz tar xJf /c/tp-dev/zips/mingw-msys-prebuilt-win2KXPV7-usr-local-2011-06-26.tar.xz -C /c/mingw/msys/1.0/Now skip to the Tux Paint section.
These archives were built using the following command:
cd /c/mingw/msys/1.0/ tar -cJf mingw-msys-prebuilt-XXXXX-usr-local-YYYY-MM-DD.tar.xz local bin/gperf.exe
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 an MSYS shell like this:
cd /c/tp-dev cvs -d:pserver:anonymous@tuxpaint.cvs.sourceforge.net:/cvsroot/tuxpaint login
You might get a warning 'cvs login: warning: failed to open c:\home\.cvspass for reading: No such file or directory'. Re-running the above line should work without warnings. Just hit ENTER when it asks for the 'CVS password:'. Grab the source files by running the following:
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 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 an MSYS shell like this:
cd /c/tp-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) 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 an MSYS shell like this:
cd /c/tp-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 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 Win9x/ME version use the Win9X/ME pre-built dependancies to setup the correct environment (missing the more advanced libraries) and use the following commands:
cd tuxpaint BDIST_WIN9X=1 make bdist-win32
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.
Additional Libraries (not required for Tux Paint)
SDL_Sound
The patch adds -no-undefined when linking the DLL, the SDL libtool helps build the DLL.
wget -c -O/c/tp-dev/zips/SDL_sound-1.0.3.tar.gz http://icculus.org/SDL_sound/downloads/SDL_sound-1.0.3.tar.gz tar xzf /c/tp-dev/zips/SDL_sound-1.0.3.tar.gz -C /c/tp-dev cd /c/tp-dev/SDL_sound-1.0.3 patch -p0 <../patches/sdl_sound-makefile-in.patch SDL_CONFIG=/usr/local/bin/sdl-config-console CFLAGS="-I/usr/local/include/smpeg -D__NO_INLINE__ -DSDL_SOUND_DLL_EXPORTS" ./configure --prefix=/usr/local cp ../SDL-1.2.14/libtool . make && make install
