[Dovecot] Problem Compiling Dovecot-LDA
I'm trying to setup Dovecot-LDA. I grab dovecot beta8 and compiled it with the following options.
$ ./configure --without-deliver --with-mysql $ make # make install
It builds fine, and I have it running fine now.
I then tried to build dovecot-lda from cvs, with the following. $ ./configure --with-dovecot=../dovecot-1.0.beta8/ $ make and it then fails with the following
gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes
-Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
-Wbad-function-cast -o sievec sievec.o libsieve.a
/home/tim/src/dovecot-1.0.beta8/src/lib/liblib.a
libsieve.a(script.o)(.text+0xa23): In function sieve_script_load': /home/tim/src/dovecot-lda/src/libsieve/script.c:435: undefined reference to
map_refresh'
libsieve.a(script.o)(.text+0xaf0): In function sieve_script_unload': /home/tim/src/dovecot-lda/src/libsieve/script.c:462: undefined reference to
map_free'
libsieve.a(sieve.o)(.text+0x1e6e): In function verify_flag': /home/tim/src/dovecot-lda/src/libsieve/sieve.y:951: undefined reference to
imparse_isatom'
collect2: ld returned 1 exit status
make[2]: *** [sievec] Error 1
make[2]: Leaving directory /home/tim/src/dovecot-lda/src/libsieve' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory
/home/tim/src/dovecot-lda/src'
make: *** [all-recursive] Error 1
Any ideas as to what is wrong? Grepping the src files for map_refresh, map_free, and imparse_isatom only show references in dovecot-lda, in src/imparse.c and src/map.c. It seems to be a problem with src/libsieve when trying to build the sieve stuff. But I'm not sure.
Thanks
Tim
Linux Counter user #273956
On Thu, 2006-06-08 at 10:54 +0800, Timothy White wrote:
gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o sievec sievec.o libsieve.a
This is missing map.o and imparse.o files. It should be:
gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o sievec sievec.o map.o imparse.o libsieve.a /home/cras/cvs/m/dovecot/src/lib/liblib.a
Maybe you had it compiled before but didn't now run autogen.sh again to update the makefiles?
On 160, 06 09, 2006 at 02:07:00PM +0300, Timo Sirainen wrote:
On Thu, 2006-06-08 at 10:54 +0800, Timothy White wrote:
gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o sievec sievec.o libsieve.a
This is missing map.o and imparse.o files. It should be:
gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -o sievec sievec.o map.o imparse.o libsieve.a /home/cras/cvs/m/dovecot/src/lib/liblib.a
Maybe you had it compiled before but didn't now run autogen.sh again to update the makefiles?
I think that this problem is related to these automake warnings:
automake: src/libsieve/Makefile.am: not supported: source file ../map.c' is in subdirectory automake: src/libsieve/Makefile.am: not supported: source file
../imparse.c' is in subdirectory
-- Andrey Panin | Linux and UNIX system administrator pazke@donpac.ru | PGP key: wwwkeys.pgp.net
Interesting, that just before you guys replied, I found the solution, and was about to email it to the list!
I think that this problem is related to these automake warnings:
automake: src/libsieve/Makefile.am: not supported: source file
../map.c' is in subdirectory automake: src/libsieve/Makefile.am: not supported: source file
../imparse.c' is in subdirectory
It is directly related to these warning!
tim@mafeking:~/src/dovecot-lda$ ./autogen.sh
configure.in: 4: automake requires
AM_CONFIG_HEADER', not AC_CONFIG_HEADER' configure.in: 11: automake requires
AM_PROG_LEX', not AC_PROG_LEX' automake: configure.in: installing
./install-sh'
automake: configure.in: installing ./mkinstalldirs' automake: configure.in: installing
./missing'
automake: Makefile.am: installing ./INSTALL' configure.in: 4: required file
./[lda-config.h].in' not found
automake: src/libsieve/Makefile.am: not supported: source file
../map.c' is in subdirectory automake: src/libsieve/Makefile.am: not supported: source file
../imparse.c' is in subdirectory
automake: src/libsieve/Makefile.am: lex source seen but
AC_DECL_YYTEXT' not in
configure.in'
automake: configure.in: installing `src/libsieve/ylwrap'
Automake version is 1.4. I upgraded to 1.8 and (on clean src again) I get the following.
tim@mafeking:~/src/dovecot-lda$ ./autogen.sh
configure.in: installing ./install-sh' configure.in: installing
./missing'
Makefile.am: installing ./INSTALL' src/Makefile.am: installing
./depcomp'
configure.in: installing `./ylwrap'
make && make install work fine!
So I'm not sure if we need to ensure people use automake1.8, or if something can be changed so that it works with automake1.4.
Tim
Linux Counter user #273956
participants (3)
-
Andrey Panin
-
Timo Sirainen
-
Timothy White