Automake Support for cyrus-imapd 2.5

Greg Banks gnb at fastmail.fm
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 "*/Makefile.in: add top_builddir"

Looks good.

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

Looks good

commit "*/Makefile.in: add top_(builddir,srcdir) to CPPFLAGS"

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

Surely the correct order is

-I$(top_builddir)
-I$(top_srcdir)
-I$(top_builddir)/lib
-I$(top_srcdir)/lib

?

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

commit "(timsieved,sieve)/Makefile.in: OBJS order alphabetically"

Looks good.

commit "(master,perl/sieve/lib)/Makefile.in: add $(top_builddir) to
LIBS"

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
Makefile.PL.in 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/Makefile.in: remove linking with tls.o, when libimap.a
linked"

Looks good.

commit "imap/Makefile.in: remove linking with mupdate-client.o, when
libimap.a"

Looks good

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

Looks good

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

Looks good

commit "imap/Makefile.in: order everything alphabetically"

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

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

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/Makefile.in: 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 Makefile.in, as it is unused"

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

commit "configure.ac: remove check for libfl"

Looks good,

commit "configure.ac: remove AC_DEFINE(WITH_PTS,[],[Build in PTS
support?])"

Looks good

commit "configure.ac: 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 "configure.ac: 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"

$(top_builddir)

commit "Makefile.am: merge man/Makefile.in"

Looks good.

This time I really have to go, more tomorrow.


-- 
Greg.


More information about the Cyrus-devel mailing list