I haven't seen a definitive howto here or elsewhere for building 2.0.16 on Mac OS X, so I thought I'd post this for the archives.
I'm using 2.0.16 since the project I'm working on needs OpenLDAP, which doesn't yet support sasl 2.x. I used fink (a package manager, for those of you not familiar with Mac OS X) for: -db3 -openssl Download cyrus: >wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-2.0.16.tar.gz >tar -xvzf cyrus-imapd-2.0.16.tar.gz >pushd cyrus-imapd-2.0.16 Set these environmental variables: >setenv PERL5LIB /System/Library/Perl/darwin *fink sets the one above to it's own value, which fsck's up some assumption on the part of the imapd perl build environment, I think. >setenv LDFLAGS -flat_namespace >setenv CFLAGS -fno-common *Unset the generic -I/sw/include and-L/sw/lib generally used with fink. For best results, point configure options directly at resource. Copy config.guess so we recognize we're on Mac OS X: >cp /usr/libexec/config.* . rm msg.h from imap/mboxlist.c imtest/imtest.c installsieve/request.c perl/sieve/lib/request.c add <#include sys/time.h> to imap/setproctitle.c in perl/imap/Makefile.PL, change my $SASL_LIB = $ENV{SASL_LIB} || "-lsasl"; to my $SASL_LIB = $ENV{SASL_LIB} || "-L/usr/local/lib -lsasl"; I /did not/ have to add the above to the other Makefile.PL's. (sieve, etc). Configure. I found that -with-sasl had to correspond exactly to the location added into perl/imap/Makefile.PL. The configure script is apparently MUCH nicer about finding things than perl is- ie configure would find it in it's simlinked location (/usr) while perl would not. Additionally, as mentioned, unless perl's -L matched -with-sasl=, perl couldn't find -lsasl. >./configure --with-sasl=/usr/local --with-openssl=/sw --with-dbdir=/sw Make, etc: >make depend ;; make all Add Cyrus User to netinfo: >echo 'cyrus:*:23459:6::0:0:Mail:/usr/cyrus:/usr/bin/false' | \ >sudo niload passwd / sudo make install ...everything else goes according to the documentation. --