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.

-
Sung

-----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
solution
appears.

Prerequisites:
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)

MySQL

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
make
make install

After that, copy or symlink /usr/local/lib/mysql/libmysqlclient.a to
/usr/lib,
in order for ld to find it later.


Apache

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
$ ./buildconf.sh
$
./configure --with-mysql=/usr/local --with-apache=/usr/local/apache2
--with-stat
ic
$ cd -
$ ./buildconf
$ ./configure --enable-modules=most --enable-dav
$ make

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.

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
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




_______________________________________________
Catacomb mailing list
Catacomb@webdav.org
http://mailman.webdav.org/mailman/listinfo/catacomb