On Wed, Jan 28, 2015 at 04:38:15PM +0100, David Sterba wrote: > Rebased on 3.18.3, fixed some minor conflicts. > > * I'm a bit surprised that automake is required for the > config.{guess,sub} and install-sh files
well, it's not required, but autoconf does not provide the scripts. You have to maintain the scripts in git three (IMHO not elegant solution) or use the scripts from automake. This problem does not exist if you have fully "autotoolized" project, because automake provides automatically all the scripts. > * my oldish testbox' automake does not support the --print-libdir option > (automake-1.11), enterprise distros ship automake of similar age > > * library build test fails, but this may be because I've mismerged > something, I'll check again > > Otherwise looks ok and I'll merge it, plus a few fixups to make it build > for me. > > > https://github.com/karelzak/btrfs-progs/commits/autoconf > > > > you can merge it (now or later) on command line by: > > > > git pull --log g...@github.com:karelzak/btrfs-progs.git autoconf > > git-pulls are not (yet) established workflow, mailinglist is preferred, > but it does not hurt to publish branches along. OK. > I've noticed the 'automake' branch that switches to automake. Looking at > the amount of changes and the result, I'm not quite happy and don't see > the benefit of automake. An extra layer that only obfuscates the build. I don't think the set of changes is so huge, all the changes are mostly Makefile.am. Anyway, why automake: - it's way how to standardize build-system, the automake rules are really easy to read, the Makefile.am files are almost the same in all projects. - automake+autoconf provides AM_CONDITIONAL(), so you can keep your makefiles pretty simple and maintain all if-then logic in ./configure script where you have available shell and huge number of tests. For example in util-linux we have many internal and external dependencies, but in makefiles we have only "if BUILD_UTILNAME", all logic is strictly in ./configure.ac - provides large set of targets - provides more portable environment (for example: if you want to distribute man pages, then dist_man_MANS += foo.8 is enough, you don't have to care about target directories for the man page section, etc.) - forces maintainer to generate better tarballs, after successful "make diskcheck" you can be sure that your tarballs are really usable (for example -- do you know how many header files are missing in the current btrfs-progs Makefile? Do you have a way how to check it?) - manually write and maintain smart build-system is difficult and result is almost always very complex stuff There is only one disadvantage, developers have to learn something new. Yes, people hate this thing :-) I guess we will see more and more stuff in btrfs-progs, so it's better to the change now than later. See e2fsprogs (sorry Ted), it's result of "automake only obfuscates", many Makefile.in files, '@' everywhere, nightmare. Karel -- Karel Zak <k...@redhat.com> http://karelzak.blogspot.com -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html