
On 3 Jun 2009, at 17:59, Ulrich Eckhardt wrote:
On Wednesday 03 June 2009 15:00:43 Christopher Jefferson wrote:
Now lets imagine I want to include functional (a header-only library).
#include <boost/functional.hpp> // Fails #include <boost-1_39/boost/functional.hpp> // Fails with bizarre errors
So I have to add:
-I/usr/local/include/boost-1_39
Which of course won't work if I then go to another computer, where boost isn't in /usr/local/include
I know this problem. A well-written Makefile should use variables like CFLAGS, CXXFLAGS, CPPFLAGS and LDFLAGS. You can then create a simple script
export CXX=g++-4.4 export CC=gcc-4.4 export CPPFLAGS="-I /home/uli/include -I /home/uli/devel/Boost-trunk" export LDFLAGS="-L /home/uli/lib"
which sets up the environment accordingly. This requires people to understand what these flags mean, but I don't think they can't learn that, and the knowledge is even useful elsewhere.
That still doesn't solve the problem that the libraries' name is mangled strangely with the default build system (although not with -- layout=system it seems). Also, if I just want to transmit a file without a Makefile, for many libraries I still don't need even that. Chris