Well, there are...
Posted Nov 7, 2011 16:31 UTC (Mon) by khim
In reply to: Hmm...
Parent article: libabc: a demonstration library for kernel developers
Ok, I know I already replied to this, but I have to make one other comment here. automake projects are not all "unhappy in the same way." There are a lot of different ways of using autotools, and there is no standard.
"./configure ; make ; make install" is pretty well-known standard. Most automake projects follow it.
For example, some projects use libtool. Other projects don't.
Some projects use autoconf, but not automake. The end result is that given a file name, I can't tell whether it's a generated file or an input file without digging around in the source tree and figuring out the overall structure.
Why does it matter?
Some projects have a shell file that you're expected to run before the build, to encapsulate the necessary autotools commands for that project. Other projects don't provide that.
I've not seen many projects which require that from the library user. Sure, someone who'd like to pull files from VCS will need to do that, but mere developer? Rarely if ever.
Different versions of autotools behave differently-- sometimes something valid for one version is a syntax error for another.
Apparently you are doing something very obscure if you go beyond usual things like CFLAGS, --prefix, etc which work everywhere.
In contrast, in CMake, there is one program-- CMake-- that you either have installed, or you don't. There is one way of doing things. That is real standardization.
Somehow this does not stop anyone from creating bunch of FindFoo.cmake files.
I think our fundamental assumptions are different: you assume needs of the developers who writes the library are the most important. This is so stupid it's not even funny. If you write library for your own use then you can use whatever you need. But if you write library for someone else then the amount of human time needed to build it by new developer from a tarball is the most important metric. If "./configure ; make ; make install" works - then you are golden. If not - then your library is part of the problem and it'll be good to replace it with something else.
to post comments)