[opensuse-programming] GCC and make depends
The GCC -MM and -MMD options generate dependencies. However, when I try to build with Rogue Wave, not only to I get the local dependencies, but I also get all the STL and Rogue Wave dependencies. Note that RogueWave has its own version of the STL. The C++ file's header lists is: #include <iostream> #include <rw/tpordvec.h> #include <string> #include <iterator> #include "thisfile.h" The command line is: g++-I$(RWPATH)/include -I$(RWPATH) -D_RWCONFIG_rmd -MMD -c thisfile.cc What I should see in thisfile.d is: thisfile.o: thisfile.cc thisfile.h What I do see is: thisfile.o: thisfile.cc <RWPATH>/include/iostream \ <RWPATH>/include/istream \ .... thisfile.h According to the GCC man page, the -MM (and -MMD) options should exclude system headers (eg. those files included in angle brackets). I've tried a few different options. My partner in Toronto actually found that it was trying to compile some of the RogueWave files such as vector.cc since it is implicitly included as <RWPATH>/include/vector.cc into the .i file by the preprocessor. I'm not worried about the performance implications regarding the inclusion of all the header files, but I am concerned about make implicitly wanting to compile the RW .cc files. One possible solution is to create a script to remove all the lines with <RWPATH>, but I'm looking for a more elegant solution. -- Jerry Feldman <gaf@blu.org> Boston Linux and Unix user group http://www.blu.org PGP key id:C5061EA9 PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9
participants (1)
-
Jerry Feldman