Automake Support for cyrus-imapd 2.5
gnb at fastmail.fm
Mon Apr 16 22:54:21 EDT 2012
On Mon, Apr 16, 2012, at 11:57 AM, Дилян Палаузов wrote:
> My comments on Greg's 2nd comments on my comments on my commits:
> > commit "*/Makefile.in: add top_(builddir,srcdir) to CPPFLAGS"
> > [...]
> > Also, why do we have "-I. -I$(srcdir)" in some CPPFLAGS but not others?
> The final Makefile.am does not have -I$(srcdir), probably as
> intermediate step -I$(srcdir) was necessary.
> > + INSTALLDIRS => 'vendor',
> > Please don't do that! I just had to do a whole bunch of futzing to
> > avoid it :(
> INSTALLDIRS => 'vendor' was initially there, then it was removed by you
> on Friday with commit abd6dcd95abd329b3a (Revert "Bug 3652 - install
> Perl modules into 'vendor' dirs"), but somehow was not merged very
> correctly in my branch.
> > 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().
> Yes, but in the final Makefile.am things are correct.
> In master:Makefile is written: SUBDIRS = @SERVER_SUBDIRS", and
> SERVER_SUBDIRS is "master imap" according to master:configure.in.
> master:master/Makefile.in contains
> LOBJS = service.o service-thread.o
> all: $(LOBJS)
> so I thought the reason for the ordering of master/ before imap/ was to
> make sure, that service.o is compiled in master/, before changing to
> As with linking, in Automake there are _SOURCES and _LDADD. $SERVICE
> goes into _SOURCES, any libraries go into _LDADD.
Ah, that's ok then.
> > commit "Initial Automake support"
> > Do we need the 'depend' target? Surely automake handles that for us.
> The depend target is removed in subsequent commits together with
> > + SIEVE_LIBS="../sieve/libsieve.a"
> > $(top_builddir)
> SIEVE_LIBS can be extended with $(top_builddir). In fact at the end,
> SIEVE_LIBS and SIEVE_OBJS are used only for Cunit checks. So if
> Cunit/Makefile.in can be merged to /Makefile.am SIEVE_LIBS and
> SIEVE_OBJS can be completely removed from configure.ac .
More information about the Cyrus-devel