[Catacomb] Building Catacomb on Cygwin
You can post these instructions on your website untill a more automated solution
1. Catacomb source code (latest from CVS with Cygwin patch applied)
2. Apache 2 source code (the Unix source package, not Win32)
3. MySQL 4 source code
4. MySQL 4 binary distribution for Win32
5. Make sure you have a recent Cygwin with the basic development packages
installed (libtool, automake, autoconf must be present - only devel versions and
wrapper scripts, not stable versions)
We download both source and binary distributions because MySQL cannot be built
completely on Cygwin. Install the binary distribution as usual, we will use the
source only to compile the MySQL client library on Cygwin.
Unpack MySQL source, and:
./configure --disable-dependency-tracking --without-server
After that, copy or symlink /usr/local/lib/mysql/libmysqlclient.a to /usr/lib,
in order for ld to find it later.
Forget about loadable Apache modules on Cygwin, it doesn't work (atleast I
wasn't able to do it). You will have to build Apache with Catacomb and the rest
of the modules linked statically into one big httpd.exe.
I'm assuming you are going to install Apache in the default location
/usr/local/apache2 (i.e. without specifying any --prefix arguments to Apache's
configure), and that you checked out Catacomb in /usr/local/src/catacomb.
Open a bash window and let's go:
$ cp /usr/autotool/devel/share/aclocal/* /usr/share/aclocal
$ export AUTO_DEVEL=/usr/autotool/devel
$ export AUTO_STABLE=$AUTO_DEVEL
$ cd /usr/local/src
$ tar xzf /tmp/httpd-2.0.47.tar.gz
$ cd httpd-2.0.47
$ mkdir -p /usr/local/apache2/bin
$ touch /usr/local/apache2/bin/apxs
$ cp -r ../catacomb modules/dav/catacomb
$ cd modules/dav/catacomb
./configure --with-mysql=/usr/local --with-apache=/usr/local/apache2 --with-stat
$ cd -
$ ./configure --enable-modules=most --enable-dav
Now, the Apache build will fail on the very last command which does the final
link of httpd.exe. Scroll up past the errors, and locate the last command. It is
huge, spanning about ten lines, and starts with "/bin/bash
/usr/local/src/httpd-2.0.47/srclib/apr/libtool --silent --mode=link gcc ....".
Paste this in notepad, edit it back into one long line, and append
"-lmysqlclient" at the very end. Then paste it back in the bash window and run
it. That should create the httpd.exe and conclude the Apache build.
$ make install
This will choke again and fail to copy all the executables in their target
location (I'm guessing it is confused by the unexpected .exe extensions). To
complete the install, do:
$ cp httpd.exe support/*.exe /usr/local/apache2/bin
You should now have a working Apache installation in /usr/local/apache2.
All that is left is to edit httpd.conf to enable Catacomb, instructions for that
are in Catacomb's README, but with two caveats:
The directive DavDBMSHost directive MUST specify an IP address 127.0.0.1 instead
of localhost. If localhost is specfied, the MySQL client lib will try to connect
via shared memory which doesn't work under Cygwin. Specifying an IP address
forces it to fall back to TCP/IP connections.
The directive DavDBMSTmpDir must contain a Win32 pathname with a drive letter
but with forward slashes, instead of a Cygwin pathname, e.g. c:/cygwin/tmp
instead of /tmp.
That should be it! Easy, no? :)
I hope I haven't missed anything.
Makefiles not war