Cyrus Imap and Automake
Дилян Палаузов
dilyan.palauzov at aegee.org
Wed Jul 27 09:58:53 EDT 2011
Hello,
if I rewrite the build system of Cyrus imap 2.4(.10) to use Automake to
generate the Makefile.in-files, will the patch be accepted in reasonable
time in git/master?
The advantages of using Automake:
* there is no more need to deal with problems concerning parallel builds
* preferences in /etc/config.site will be honoured
* with a Makefile.am it is very easy to make cyrus imap use shared
libraries with libtool (see bug 3095, and email from 24.06.2011 on
cyrus-devel: currently static binaries are huge). [At least from my
perspective adding libtool support afterwards is easy]
* Makefile.am files are easier to maintain than Makefile.in files
(from my perspective)
* make install, make dist, make distclean will just work (correctly)
* the output of 'make' can be made to look nicer (with silent-rules)
Possible problems:
* I am not sure right now, how can 'make install' be tweaked to
install files in /usr/cyrus/bin, but I guess this can be tweaked in the
worst case by moving the files from /usr/bin to /usr/cyrus/bin
* automake 1.11's lex.am file has to be patched in order to
acknowledge, that lex can output files other than lex.c and lex.
However this tweak is only necessary, when rebuilding Makefile.in from
Makefile.am (=not done by end users).
I like to have one Makefile.am per project, as described in the article
"Recursive Make Considered Harmful" by Peter Miller
(http://aegis.sourceforge.net/auug97.pdf). If it is for some reason not
possible to have at the end a single Makefile.am for cyrus imap, then at
least I would like to reduce the number of automake files as much as
possible. (With a single Makefile, when you change a file in
cyrus-imap/lib and recompile, you are forced to recompile not only
libimap.a, but all binaries, that depend on this library; the output
looks nicer with "silent-rules" as it is not printed, that the directory
is changed; and having a single Makefile speeds up the loading and
proceeding it, compared to loading several Makefiles)
Any comments?
Със здраве
Дилян
More information about the Cyrus-devel
mailing list