Thank you for your response, please allow me to explain the problem
a bit clearer:
The -MM option in gcc does the following (from the man page on my
Linux system): "instead of outputting the result of preprocessing,
output a rule suitable for make describing the dependencies of the
main source file. The preprocessor outputs one make rule containing
the object file name for that source file, a colon, and the names of
all the included files, including those coming from -include or
-imacros command line options."
In projects using the gcc compiler, this is a preferred way to take
care of the dependencies. However, this does not work anymore with the
new boost version, because, unless the macro BOOST_PARAMETER_MAX_ARITY
is defined to no less than 7, the preprocessor aborts, whilst
figuring out the dependencies, due to the following lines in
signals2/signal_type.hpp:
#if !defined(BOOST_PARAMETER_MAX_ARITY)
#define BOOST_PARAMETER_MAX_ARITY 7
#else
#if BOOST_PARAMETER_MAX_ARITY < 7
#error This header requires BOOST_PARAMETER_MAX_ARITY to be defined as
7 or greater prior to including Boost.Parameter headers
#endif // BOOST_PARAMETER_MAX_ARITY < 7
#endif // !defined(BOOST_PARAMETER_MAX_ARITY)
This means that the gcc native way of figuring out dependencies, is
broken. I believe this cannot be intended.
Please let me know if the problem is still not understood, or if you
have a different view on this matter.
Kind regards,
Ytsen.
2011/9/13 Dave Abrahams
on Mon Sep 05 2011, Ytsen de Boer
wrote: Hi,
To take care of dependencies in my project using boost, I used to invoke gcc with the option -MM.
What does -MM do?
However, since using boost 1.47, this does not work anymore. The precompiler aborts with the message:
/usr/local/include/boost-1_47/boost/signals2/signal_type.hpp:29:2: error: #error This header requires BOOST_PARAMETER_MAX_ARITY to be defined as 7 or greater prior to including Boost.Parameter headers
Because the macro BOOST_PARAMETER_MAX_ARITY plays no role whatsover in this invocation of gcc, I think that boost should solve their internal problem with the "arity" in some other way.
I don't know what you mean. It defaults to 5, but signals2 apparently needs support for 7 arguments.
In the mean time I define the macro in my make rules to generate the dependencies, but there it is obviously misplaced (any tips or tricks are welcome here).
I don't understand your problem, sorry.
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users