|
From: David B. <dav...@gm...> - 2010-08-24 17:12:46
|
Hi Brendan, >> Two other things: >> 1. Until recently, there was a bug in configure.ac that caused >> autoreconf to fail, with an error message "Unrecognized macro: >> AC_CHECK_LIB", but if you just ran autoreconf a second time, >> everything worked. However that is fixed in the latest git sources. >Awesome! What was the problem? We have a series of stanzas in configure.ac that first check with pgk-config, falling back to AC_CHECK_LIB as needed. I had put in some echo statements to make configure's output less confusing, and the syntax wasn't quite right (I should have used a macro like AC_MSG_NOTIFY instead of straight shell code). The really baffling thing was that autoconf was generating error messages with line numbers referring to the first occurrence of AC_CHECK_LIB (where it was used *correctly*), rather than the line number of the actual error. My take on autotools at this point: 1. They are fairly hard to learn to use. 2. They are not very hard to use once learned, as long as things are going well. 3. When problems arise, they are way harder to debug than any other type of programming I have done. 4. Fortunately, certain of the core autotools devs (Ralf Wildenheus for Autoconf, Automake, and Libtool and Bruno Haible for Gettext) are extremely nice and responsive. When I've run into problems I've been able to get help from the world's experts on these tools. 5. They provide many highly useful built-in make targets without additional coding (make dist, make distcheck, with built-in options to use either gzip or bzip2, etc). 6. The final product is well-understood and familiar to distro packagers. #4 has a lot to do with why I feel we can rely on the autotools to handle most of our build needs. I don't always have the needed expertise, but there has basically never been an issue that the real experts were unable or unwilling to help me with. Cheers, David |