
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 <dave@boostpro.com>:
on Mon Sep 05 2011, Ytsen de Boer <yrdeboer-AT-gmail.com> 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