This file loosely explains how to compile Kaya on Windows. You may need to consult the documentation of the packages you install at times. Leave plenty of time. ============================================================================== Step 1: Basic environment ============================================================================== Go to http://www.mingw.org/ and download the following packages: - Binutils, MinGW-make, mingw-runtime, mingw-utils, w32api Unpack them all to the same directory. Download (still from mingw) and install - msys, msysDTK, msys-autoconf, msys-automake, msys-libtool Finally, download and install a C compiler into your mingw package. - 3.2 definitely works, you can try 3.3 or later if you want (they should work, they do on other platforms) Run Msys to generate your home directory. ============================================================================== Step 2: Build-dependencies ============================================================================== Now, get the build dependencies (and compile them in this order via MSys): Always configure with --prefix=/mingw (some of these have windows binaries available at the moment from 3rd parties) - libgc garbage collector Version 6.5 works, probably others do. Make sure you use --enable-threads=win32 --enable-cplusplus. If this bit goes wrong, every Kaya app will immediately segfault when run. If you can't get it to work, and it does seem a bit hit-and-miss, the binary distribution of the windows development environment has working libgc{,cpp}.a files. - libpcre (perl compatible regular expressions) This one is straightforward from gnuwin32.sourceforge.net - libgpg-error This one is straightforward, just get it from GnuPG and compile. - libgcrypt (cryptography) Again, get it from GnuPG. www.securitypunk.com describes how to patch this to make it work on minGW. http://www.securitypunk.com/libgcrypt/index.html The bit missing is that you also need to manually install the libgcrypt-config into /mingw/bin because the build failure on the random file misses that. - zlib (compression) Get it via minGWport (you'll need to either install wget or download the source tarball yourself - it's pretty straightforward to figure out) - libiconv minGWport again - libintl-0.14.4 (wide character support) Available from gnuwin32.sourceforge.net You'll need to make libintl.la and libiconv.la via http://www.wormux.org/wiki/compile_under_mingw.php (or just take the .la files from the binary distribution) - gnutls (TLS) Once the above's in, it will compile from plain sources. The documentation won't compile - if you get to that build error, just do make install and you'll get the libraries (which is the bit you need). - pdcurses (Text console library) www.mingw.org has this one. Easy install. - pthreads (Posix threads) This only actually gets use for a couple of time-related functions on windows (it's essential for everything on Linux, of course). sources.redhat.com has a windows version. ============================================================================== Step 3: Yet more build dependencies ;) ============================================================================== Both of these are from http://www.haskell.org/ - you'll have to install them outside your minGW path. - ghc Haskell compiler Get a windows binary build of this or you'll be here all week. - happy parser generator Again, just get the binary. Edit the /etc/profile file in Msys to put GHC and Happy into your path, restart MSys. ============================================================================== Step 4: Actually compiling Kaya ============================================================================== Put the kaya distribution directory somewhere inside the MinGW tree (Msys-install-directory/home/your-username/... is usual) ./configure --prefix=c:/kaya (or wherever you want to install it) make clean all make test (if you start getting segfaults, go back to the top of step 2 and try poking libgc, if you get other failures, let us know - except test019, which has harmless line-ending issues but appears to fail) make install Edit the /etc/profile in Msys to put c:/kaya/bin into your path and restart Msys. You can now use kayac via Msys.