Cyrus 2.3.9: Errors compiling outside source directory
Vincent Fox
vbfox at ucdavis.edu
Sun Sep 23 02:52:20 EDT 2007
It's undoubtedly not the right way, but I patched lib/Makefile.in.
The basic problem in lib I think is twofold:
1) chartable.c being dynamically built during make, so it's
not there when the makedepend is run
2) cyrusdb_quotalegacy.c including glob.h, which has a name
collision with a similar Cyrus file.
I patched Makefile.in as below:
# diff -c Makefile.in.orig Makefile.in
*** Makefile.in.orig Sat Sep 22 21:56:23 2007
--- Makefile.in Sat Sep 22 23:41:38 2007
***************
*** 91,97 ****
LIBCYR_OBJS = acl.o bsearch.o charset.o glob.o retry.o util.o \
libcyr_cfg.o mkgmtime.o prot.o parseaddr.o imclient.o imparse.o \
lsort.o stristr.o rfc822date.o cyrusdb.o strhash.o \
! chartable.o imapurl.o nonblock_ at WITH_NONBLOCK@.o
lock_ at WITH_LOCK@.o \
gmtoff_ at WITH_GMTOFF@.o map_ at WITH_MAP@.o $(ACL) $(AUTH) \
@LIBOBJS@ @CYRUSDB_OBJS@ @MD5OBJ@ \
iptostring.o xmalloc.o wildmat.o byteorder64.o \
--- 91,97 ----
LIBCYR_OBJS = acl.o bsearch.o charset.o glob.o retry.o util.o \
libcyr_cfg.o mkgmtime.o prot.o parseaddr.o imclient.o imparse.o \
lsort.o stristr.o rfc822date.o cyrusdb.o strhash.o \
! imapurl.o nonblock_ at WITH_NONBLOCK@.o lock_ at WITH_LOCK@.o \
gmtoff_ at WITH_GMTOFF@.o map_ at WITH_MAP@.o $(ACL) $(AUTH) \
@LIBOBJS@ @CYRUSDB_OBJS@ @MD5OBJ@ \
iptostring.o xmalloc.o wildmat.o byteorder64.o \
***************
*** 149,154 ****
--- 149,155 ----
> chartable.c \
|| (rm -f chartable.c && exit 1)
@echo "### Done building chartables."
+ $(CC) -c -I${top_srcdir}/lib $(CPPFLAGS) $(CFLAGS) chartable.c
# ./mkchartable -m $(srcdir)/charset/unicode.map
$(srcdir)/charset/*.t >x-chartables.h
# mv x-chartables.h chartables.h
Still getting an error further along though, in the sieve directory:
make[1]: Entering directory `/tmp/cyrus-imapd-2.3.9-obj/sieve'
gcc -c -I..
-I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/../lib
-I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/et
-I/ucd/include -I/ucd/include -I/usr/include -I/ucd/include
-DHAVE_CONFIG_H -g -O \
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve_err.c
gcc -c -I..
-I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/../lib
-I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/et
-I/ucd/include -I/ucd/include -I/usr/include -I/ucd/include
-DHAVE_CONFIG_H -g -O \
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve.c
In file included from
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve_interface.h:37,
from
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/interp.h:31,
from sieve.y:39:
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve_err.h:6:24:
error: et/com_err.h: No such file or directory
In file included from
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve_interface.h:37,
from
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/interp.h:31,
from sieve.y:39:
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve_err.h:19:
warning: 'struct et_list' declared inside parameter list
/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve_err.h:19:
warning: its scope is only this definition or declaration, which is
probably not what you want
make[1]: ***
[/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/sieve/sieve.o]
Error 1
make[1]: Leaving directory `/tmp/cyrus-imapd-2.3.9-obj/sieve'
make: *** [all] Error 1
More information about the Info-cyrus
mailing list