Compiling Atheme on Windows --------------------------- Since Atheme 7.0.0-alpha13pre2 there has been relatively mature Windows support in Atheme. Unfortunately, as Atheme heavily uses C99/C11 features, you cannot use Microsoft Visual C to compile Atheme, as it does not support anything newer than C89. The solution is to use MinGW. MinGW stands for Minimalist GNU for Windows, and provides a basic GCC development environment. GCC is the compiler typically used to build Atheme on POSIX-compliant platforms. To install MinGW, download the mingw-get-inst.exe installer from their website. The latest one at time of writing can be found at: http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst Run mingw-get-inst to install MinGW. You will need the following components: * C compiler (GCC) * MSYS base system * MSYS developers toolkit Once the installation of MinGW is completed, you will have a new Start Menu entry for "MinGW Shell." Provided you have this, the installation was successful. As of 7.1.0-alpha1, Atheme requires pkg-config to build. You will require additional configuration on Windows for installing pkg-config that will not be addressed here. As of the time of writing, documentation for doing so may be found at: http://www.gaia-gis.it/spatialite-3.0.0-BETA/mingw_how_to.html#pkg-config Versions of Atheme before 7.1.0-alpha1 do not require pkg-config, so if you are using an older version, skip installing pkg-config. This will download and install all MinGW components needed to build Atheme. Now download a tarball containing the Atheme sources which is sufficiently new enough. If the tarball has this file, it is sufficiently new enough. Extract the tarball to a preferred work area. For this example, the sources will be in C:\Users\nenolod\dev-src\atheme. Start the MinGW shell, and change into a temporary directory. $ cd /tmp Before we build Atheme, we need to install a regular expressions library. This is required by Atheme for various reasons and is a hard requirement. The utility "mingw-get" can install a suitable regular expressions library (GNU libregex). However, if we do that, we have to depend on MSYS, which is entirely unnecessary. There is, however, a non-MSYS build of libregex which is libgnurx-0.dll, and you can install it by running the following commands: $ mingw-get install msys-wget $ wget http://prdownloads.sourceforge.net/mingw/mingw-libgnurx-2.5.1-bin.tar.gz $ wget http://prdownloads.sourceforge.net/mingw/mingw-libgnurx-2.5.1-dev.tar.gz $ tar --directory /mingw -xzf mingw-libgnurx-2.5.1-bin.tar.gz $ tar --directory /mingw -xzf mingw-libgnurx-2.5.1-dev.tar.gz If you want to build with OpenSSL support (for SASL mechanisms such as dh-blowfish, and eventually, SSL linking support), you will need to install an OpenSSL SDK. The OpenSSL website recommends "Win32 OpenSSL", which is downloadable here: http://www.slproweb.com/products/Win32OpenSSL.html You need to download the latest OpenSSL that is "recommended for software developers." Run the installer, and you should have a working SDK, once you copy some things in place. $ cp /c/OpenSSL-Win32/lib/MinGW/* /mingw/lib $ cp -r /c/OpenSSL-Win32/include/openssl /mingw/include/openssl Now change into the atheme sources directory: $ cd /c/Users/nenolod/dev-src/atheme In order to normalize line-endings so that the configure scripts work correctly, you may need to regenerate the configuration files. You may do so by running the following command. $ sh autogen.sh *info* running aclocal (-I m4) *info* running autoheader *info* running autoconf This will rebuild the configuration files so that they are usable by MinGW. Now, run configure to configure the sources for building: $ ./configure --prefix=/c/atheme --enable-contrib An explanation of the configuration options: --prefix=/c/atheme: This means that you want the Atheme files installed to the C:\atheme directory. This is a good default, and is what we use for our QA testing purposes. If you want a different destination, that is fine, just make sure that the first directory in the prefix is a drive letter. For example, to install to D:\IRCStuff\atheme, use the following prefix option: --prefix=/d/IRCStuff/atheme --enable-contrib: Enable support for 'contrib' modules. These modules add some additional features, but for some reason are not included in the main distribution. --disable-nls: This disables internationalization support. It should be working properly on Windows now. --enable-ssl: Enable support for additional SASL mechanisms using OpenSSL, such as DH-BLOWFISH. There are some additional options, you might want to give ./configure --help a try. Now to build the sources, run 'make': $ make [build output follows] You will see a lot of lines about compiling specific source files and DLLs, which is normal. To install what you just built to C:\atheme (or wherever you specified they should go), run 'make install': $ make install This should provide you with a working Atheme installation, if launched from MinGW. If you want to launch your Atheme installation from the DOS prompt, you will need to copy some DLLs. To do this, run the following commands: $ cd c:/atheme/bin $ cp /mingw/bin/libgnurx-0.dll . Now you need to configure your services install. The appropriate file for this is in c:\atheme\etc\atheme.conf. You can find a sample file called "atheme.conf.example" that you can copy and use as a starting point. Save that file as atheme.conf when you are done making your changes. This file doesn't cover setting up link blocks to your IRCd. Read your IRCd's documentation for that. This will give you a working services install. Please report any bugs to http://jira.atheme.org/.