Login | Register
My pages Projects Community openCollabNet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Catacomb] Building Catacomb on Cygwin

Thanks Ivan,

I'll post this message in our new project page.


-----Original Message-----
From: catacomb-bounces@webdav.org [mailto:catacomb-bounces@webdav.org] On
Behalf Of Ivan Todoroski
Sent: Saturday, November 22, 2003 2:39 PM
To: catacomb@webdav.org
Subject: [Catacomb] Building Catacomb on Cygwin

You can post these instructions on your website untill a more automated

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
wrapper scripts, not stable versions)


We download both source and binary distributions because MySQL cannot be
completely on Cygwin. Install the binary distribution as usual, we will use
source only to compile the MySQL client library on Cygwin.

Unpack MySQL source, and:

./configure --disable-dependency-tracking --without-server
make install

After that, copy or symlink /usr/local/lib/mysql/libmysqlclient.a to
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
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
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
$ 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
$ ./buildconf.sh
./configure --with-mysql=/usr/local --with-apache=/usr/local/apache2
$ cd -
$ ./buildconf
$ ./configure --enable-modules=most --enable-dav
$ make

Now, the Apache build will fail on the very last command which does the
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
it. That should create the httpd.exe and conclude the Apache build.

After that:

$ 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
are in Catacomb's README, but with two caveats:

The directive DavDBMSHost directive MUST specify an IP address
of localhost. If localhost is specfied, the MySQL client lib will try to
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
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

Catacomb mailing list