| 1 | This is a guide about compiling GrafX2 for Windows using a Linux (Debian Strecth) system and mingw. |
| 2 | It may be useful for continuous integration, where Windows running CI slaves are not always an option. |
| 3 | |
| 4 | = Install dependencies = |
| 5 | |
| 6 | {{{ |
| 7 | apt install \ |
| 8 | libz-mingw-w64 \ |
| 9 | libz-mingw-w64-dev \ |
| 10 | binutils-mingw-w64-i686 \ |
| 11 | gcc-mingw-w64-base \ |
| 12 | mingw-w64-common \ |
| 13 | mingw-w64-i686-dev \ |
| 14 | gcc-mingw-w64-i686 \ |
| 15 | mingw-w64-tools \ |
| 16 | win-iconv-mingw-w64-dev |
| 17 | }}} |
| 18 | |
| 19 | = Build more dependencies = |
| 20 | |
| 21 | Some of our dependencies are not available in Debian repos. So we must build them ourselves. |
| 22 | |
| 23 | == libpng == |
| 24 | |
| 25 | {{{ |
| 26 | wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.29.tar.gz |
| 27 | tar xvf libpng-1.6.29.tar.gz |
| 28 | cd libpng-1.6.29 |
| 29 | ./configure --host=i686-w64-mingw32 --prefix=/usr/local/cross-tools/i386-mingw32/ |
| 30 | make |
| 31 | sudo make install |
| 32 | }}} |
| 33 | |
| 34 | == freetype == |
| 35 | |
| 36 | {{{ |
| 37 | wget http://download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.gz |
| 38 | tar xvf freetype-2.7.1.tar.gz |
| 39 | cd freetype-2.7.1 |
| 40 | ./configure --host=i686-w64-mingw32 --prefix=/usr/local/cross-tools/i386-mingw32/ |
| 41 | make |
| 42 | sudo make install |
| 43 | }}} |
| 44 | |
| 45 | == SDL == |
| 46 | |
| 47 | {{{ |
| 48 | wget http://libsdl.org/release/SDL-1.2.15.tar.gz |
| 49 | tar xvf SDL-1.2.15.tar.gz |
| 50 | cd SDL-1.2.15 |
| 51 | ./configure --host=i686-w64-mingw32 |
| 52 | make |
| 53 | sudo make install |
| 54 | }}} |
| 55 | |
| 56 | == SDL-image == |
| 57 | |
| 58 | {{{ |
| 59 | wget https://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz |
| 60 | tar xvf SDL_image-1.2.12.tar.gz |
| 61 | cd SDL_image-1.2.12 |
| 62 | export PKG_CONFIG_PATH=/usr/local/cross-tools/i386-mingw32/lib/pkgconfig/ |
| 63 | ./configure --host=i686-w64-mingw32 --with-sdl-prefix=/usr/local/cross-tools/i386-mingw32 |
| 64 | make |
| 65 | sudo make install |
| 66 | }}} |
| 67 | |
| 68 | == SDL_ttf == |
| 69 | |
| 70 | {{{ |
| 71 | wget https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz |
| 72 | tar xvf SDL_ttf-2.0.11.tar.gz |
| 73 | cd SDL_ttf-2.0.11 |
| 74 | ./configure --host=i686-w64-mingw32 --with-sdl-prefix=/usr/local/cross-tools/i386-mingw32/ --with-freetype-prefix=/usr/local/cross-tools/i386-mingw32 |
| 75 | make |
| 76 | sudo make install |
| 77 | }}} |
| 78 | |
| 79 | |
| 80 | = Do the build = |
| 81 | |
| 82 | {{{ |
| 83 | make WIN32CROSS=1 |
| 84 | }}} |
| 85 | |
| 86 | The output is ../bin/grafx2.exe. It may need some extra DLLs. You can test it with wine32, it should run just fine. |