Automake Support for cyrus-imapd 2.5

Greg Banks gnb at
Mon Apr 16 05:03:11 EDT 2012

On Mon, Apr 16, 2012, at 04:44 PM, Greg Banks wrote:
> Have to go now, more later.

commit "*/ add top_builddir"

Looks good.

commit "*/ insert $(top_builddir) in all DEPLIBS"

Looks good

commit "*/ add top_(builddir,srcdir) to CPPFLAGS"

+CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)

Surely the correct order is



Also, why do we have "-I. -I$(srcdir)" in some CPPFLAGS but not others?

commit "(timsieved,sieve)/ OBJS order alphabetically"

Looks good.

commit "(master,perl/sieve/lib)/ add $(top_builddir) to

Looks good

commit "perl/Makefile*: enable building perl modules out of srcdir"

+                       if [ -f ../${srcdir}/$$d/Makefile.PL -a ! -f
Makefile ]; then \

This breaks if $srcdir is an absolute rather than a relative path.  In
fact so does this

+                          srcdir="../${srcdir}/$$d" \
+                          top_srcdir="../$(top_srcdir)" \

It might be a whole lot simpler to generate Makefile.PL from at configure time.  Then, you could run the Makefile.PL
from configure using AC_CONFIG_COMMANDS.

+    INSTALLDIRS => 'vendor',

Please don't do that!  I just had to do a whole bunch of futzing to
avoid it :(

commit "perl/imap/IMAP.xs: remove #include <config.h>"

Looks good.

commit "imap/ remove linking with tls.o, when libimap.a

Looks good.

commit "imap/ remove linking with mupdate-client.o, when

Looks good

commit "imap/ remove backend.o and imapparse.o, when -limap"

Looks good

commit "imap/ idled: do not link explicitly with idlemsg.o"

Looks good

commit "imap/ order everything alphabetically"

My comments from lib/ about splitting these up 1 per line
also apply here.

In LOBJS, imapparse,o, message.o, saslclient.o, saslserver.o are out of

In IMAPDOBJS, proxy.o is out of order.

In PROGS, cyr_dbtool and cyrdump are out of order

There's a reason why $SERVICE ought to be linked first, or at the very
least before any libraries from outside the project: it contains main()
and must have the first definition of main() seen by the linker even if
some library also defines main().

cyr_info links masterconf.o but does not depend on it.

commit "imap/ abolish SIEVE_CPPFLAGS"

Looks good.

commit "rename $service_path to $servicedir"

+AC_DEFINE_UNQUOTED(SERVICE_PATH,"$servicedir",[Directory to use for
service binaries])

Don't you want to rename SERVICE_PATH too?

Also, the difference between $servicedir and $bindir is slight; in the
default arrangement one will be /usr/cyrus/bin and the other /usr/bin. 
I would hope that eventually we could eliminate $cyrus_prefix and
replace $servicedir with $bindir.

 commit "remove cyrus_prefix from every, as it is unused"

Since three days ago, it is used, in the perl/ directories to expand
$PERL_PREINSTALL.  Otherwise, looks good.

commit " remove check for libfl"

Looks good,

commit " remove AC_DEFINE(WITH_PTS,[],[Build in PTS

Looks good

commit " remove SNMP_SUBDIRS"

Sure.  I hope to resurrect the SNMP code in some future version, maybe
2.6, but for now we can remove this.

commit " remove ${SQL_LIBS} from IMAP_LIBS"

Looks good

commit "Initial Automake support"

Do we need the 'depend' target?  Surely automake handles that for us.

+       SIEVE_LIBS="../sieve/libsieve.a"


commit " merge man/"

Looks good.

This time I really have to go, more tomorrow.


More information about the Cyrus-devel mailing list