
On Nov 16, 2007, at 2:52 PM, Jens Seidel wrote:
On Thu, Nov 15, 2007 at 08:43:49PM +0100, Benoit Sigoure wrote:
I wrote a set of M4 macros to use the Boost libraries with GNU Autoconf. I did not find any macro that was reliable enough. If
I just want to mention that there exist also http://autoconf-archive.cryp.to/macros-by-category.html#BOOST. See also http://randspringer.de/boost/index.html.
The 2nd link seem to be an empty article that forwards you to the 1st link. The Boost macros in the (non official) `Autoconf Macro Archive' had issues and the code was almost impossible to maintain. In particular, these macros did not work well with cross-compilation, they were mixings LDFLAGS and LIBS, they did not handle the various `layout' (in particular they did not work *at all* if you didn't use `bjam install --layout=system'), they often failed to detect properly the version of Boost, or failed to find an installation of Boost that matches your version requirements, or finds the headers in one place and the libs in another place (which leads to all sorts of problems especially when you have a system-wide Boost under /usr/local compiled for GCC4 and you want to use another install of Boost for GCC3, for instance) etc etc. Some things were hard coded instead of being tested at configure time (which is against the Autoconf philosophy and is fated to fail) and the whole thing was hard to extend and had tons and tons of code duplication for the various Boost libraries.
Benoit, can you compare your macros with these from the autoconf archives? What is different?
My macros don't have all the problems mentioned above and they can easily be extended (you can handle new Boost libraries by adding 2 or 3 lines of M4 which was very useful, for instance, when a friend of mine wanted to detect Boost.Asio -- which isn't even released at this time).
I vague remember also a few problems with ax_boost_base and friends. Some stuff was fixed by the author, other not yet (I contacted him of course).
I also started with these macros and started to fix them, but overall it was more work than Doing It Right straight away.
you're interested, you can have a look at the code: http://repo.or.cz/w/boost.m4.git
Will do.
The code is currently under GPLv3+ but if Boost wants to ship this with Boost itself, and if doing this requires license adaptations, I'm inclined to use another Free license.
I'm not sure but this requires all software projects using it to use the same license? At least the autoconf archive contains a special exception to the GPL. See e.g. the bottom of http://autoconf-archive.cryp.to/acx_pthread.html
I'm not a license expert but I guess that using a GPL macro in a non- GPL project is fine, as the project doesn't require linking with code generated by the macro (since the macro doesn't generate actual code). But since I'm not an expert with licensing issues, and since, ideally, I'd like to have these macros integrated in Boost itself, I was just mentioning that I'm open to other Free licenses, if that is required. Cheers, -- Benoit Sigoure aka Tsuna EPITA Research and Development Laboratory