Automake Support for cyrus-imapd 2.5

Дилян Палаузов dilyan.palauzov at aegee.org
Tue Apr 17 16:50:08 EDT 2012


Hello,

> Third and final tranche of review comments.

> commit "Makefile.am: merge com_err/et/Makefile.in"
>
> I think this has already been covered, but using top_builddir in the
> Makefile.in rather than in configure.ac will break when the library is
> actually found in /usr/lib
>
> +LIBS = ${top_builddir}/@COM_ERR_LIBS@

It is now fixed.

imap/imap_err.h imap/imap_err.c: imap/imap_err.et
         cd imap && $(COMPILE_ET) ../$(top_srcdir)/imap/imap_err.et

and the same for sieve/sieve_err.et, imap/mupdate_err.et and 
imap/nntp_err.et

> commit "Makefile.am: merge lib/Makefile.in"
>
> +AM_CFLAGS = @PERL_CCCDLFLAGS@ $(EXTRACFLAGS)
>
> This is wrong.  PERL_CCCDLFLAGS should only be used for the code which
> is built into the perl extension shared library.  In particular, it
> contains -fPIC which we do not want anywhere else if we can avoid it.

Greg, I admit that you have more understanding about Perl than me.  I 
kindly ask you to fix the Perl stuff, including the 
https://bugzilla.cyrusimap.org/show_bug.cgi?id=3678 issue.

Why are those EXTRACFLAGS necessary at all?  Can't AM_CFLAGS be used 
instead?

> +#this is from lib/test/Makefile.in, however testglob.c does not exist
> in
> +#/lib/test, instead testglob2.c is there.
> +#lib_test_testglob_LIRBARIES = lib/libcyrus.a lib/libcyrus_min.a
> -ldb-4.0
>
> Everything in lib/test/ will be either moved to cunit/ or removed,
> eventually, and is currently not built. You probably shouldn't bother
> with it.

Yes, but in order for "make dist" to put the all files in the tarball, 
these files need to mentioned somehow.  Anyway, once the 
automake-building works, I suggest to have a separate discussion on how 
to implement "make snapshot"/"make dist"/generation of xversion.h, etc. 
  Let's stick now to the dependancy and compilation issues.

> commit "Makefile.am: merge sieve/Makefile.in"
>
> +       sieve/test/testExtension ....
>
> Not only is this line far too long, but the directory is sieve/tests/
> not sieve/test/

I renamed all sieve/test/ to sieve/tests/ .

> commit "Makefile.am: merge notifyd/Makefile.in"
>
> Looks good, although I note that notifytest is not built at all
> currently but is built in the new Makefile.

notifytest is build by "make check".

> commit "Makefile.am: merge syslog/Makefile.in"
>
> I think it's time we deleted the entire syslog/ directory.  I don't
> believe there's any platform on which it will be built, nor be useful.

I deleted the syslog/ files and the SYSLOG Automake conditional.

Please check if the syslog checks in configure.ac can be deleted, too.

> commit "Makefile.am: merge ptclient/Makefile.in"
>
> +#ptclient_ptextract_SOURCES = imap/cli_fatal.o imap/mutex_fake.o
> ptclient/ptextrac.c
>
> s/ptextrac/ptextract/
>
> +ptclient_ptloader_SOURCES = ptclient/ptloader.c ptclient/ptloader.h
> ptclient/afskrb.oc ptclient/ldap.c imap/mutex_fake.o
> master/service-thread.c
>
> s/afskrb.oc/afskrb.c/
Fixed.

> commit "Makefile.am: merge installsieve/Makefile.in"
>
>>     It is unclear why this directory exist, since there is no place, that
>>     installs installsieve.
>
> Another relic, let's remove it too.

I deleted installsieve/* .

> commit "Include SIEVE/scripts/sieveshell.pl in "make dist""
>
>>      It is unclear why this script is neede (and installsieve/installsieve)
>>     in parallel to perl/sieve/scripts/(sieveshell|installsieve).pl
>
> I don't see any good reason for this to continue existing.

I deleted it.

> commit "Makefile.am: merge doc/(Makefile.dist, text/Makefile)"
>
> +man/cyradm.1.html:
> +       @$(MKDIR_P) man
> +       pod2html $(top_srcdir)/perl/imap/cyradm.sh>  man/cyradm.1.html
> +       rm man/pod2htm*
>
>
> man/cyradm.1.html should depend on $(top_srcdir)/perl/imap/cyradm.sh

The dependency on cyradm.sh is fixed now.

> Also, why the rm??

master:doc/Makefile.in contains:

dist:
         mkdir -p man
         for man in ../man/*.[1-9]; \
         do \
                 echo "=== $$man ==="; \
                 groff -man -Thtml $$man > man/`basename $$man`.html; \
         done

         pod2html ../perl/imap/cyradm.sh > man/cyradm.1.html
         pod2man ../perl/sieve/scripts/sieveshell.pl > ../man/sieveshell.1
         pod2html ../perl/sieve/scripts/sieveshell.pl > 
man/sieveshell.1.html

         rm -f groff-html-*.png pod2htm*

         fig2dev -L png murder.fig murder.png
         fig2dev -L png netnews.fig netnews.png

         (cd text; make)

And the rm comes from there.

> +       @$(MKDIR_P) doc
> +       @$(MKDIR_P) doc/text
>
> The first of these lines is redundant.

Fixed.

> commit "Makefile.am: merge imap/Makefile.in"
>
> +         $(LN_S) -f lmtpd lmtpprodyx
>
> s/lmtpprodyx/lmtpproxy/
Fixed.

> +       cd imap&&  $(top_builddir)/../$(COMPILE_ET)
> ../$(top_srcdir)/imap/imap_err.et
>
> This is wrong in so many ways.
See above.

> +AM_CONDITIONAL([WITH_OPENSSL], [test "$with_openssl" != "no"])
>
> For consistency, the name of the conditional should be OPENSSL
Fixed.

Със здраве
   Дилян


More information about the Cyrus-devel mailing list