[Xapian-tickets] [Xapian] #239: makedepend gets confused with multiple #include "filename..." in same program
Xapian
nobody at xapian.org
Wed Apr 30 14:37:45 BST 2008
#239: makedepend gets confused with multiple #include "filename..." in same
program
-------------------------------+--------------------------------------------
Reporter: caa | Owner: caa
Type: defect | Status: reopened
Priority: normal | Milestone:
Component: MSVC makefiles | Version: SVN HEAD
Severity: major | Resolution:
Keywords: | Blockedby:
Platform: Microsoft Windows | Blocking:
-------------------------------+--------------------------------------------
Old description:
> Test condition:
>
> In foo.cpp:
> #include "bar.hpp"
> #include "test1.hpp"
>
> In test1.cpp:
> #include "bar.hpp:
>
> In test2.cpp:
> #include "bar.hpp"
>
> In test1.hpp:
> #include "bar.hpp"
>
> In bar.hpp:
> #include "caa1.hpp"
> #include "caa2.hpp"
> =========================================
> When makedepend is processing file test1.hpp, it does not detect that
> bar.hpp
> has already been included. It DOES however, detect the fact that
> #include files
> in bar.hpp have already been processed.
>
> Resultant output:
> There are two anomolies here
> 1. bar.hpp appears twice in the list of dependencies for foo.o (low
> priority)
> 2. All subsequent files (to makedepend) that #include bar.hpp do NOT
> specify
> files included by bar.hpp in their dependency list (high priority)
>
> For example:
> The makedepend command line has been supplied source filenames of
> foo.cpp,
> test1.cpp, and test2.cpp
>
> The resultant makedepend output looks something like this:
> foo.o: bar.hpp caa1.hpp caa2.hpp test1.hpp bar.hpp
> test1.o: bar.hpp
> test2.o: bar.hpp
> =========================================
> I am actively debugging the code to see if I can fix the bug. Any help
> would be
> appreciated. I am using MSVC (I ported the project file to VS 2003).
New description:
Test condition:
In foo.cpp:
{{{
#include "bar.hpp"
#include "test1.hpp"
}}}
In test1.cpp:
{{{
#include "bar.hpp:
}}}
In test2.cpp:
{{{
#include "bar.hpp"
}}}
In test1.hpp:
{{{
#include "bar.hpp"
}}}
In bar.hpp:
{{{
#include "caa1.hpp"
#include "caa2.hpp"
}}}
----
When makedepend is processing file test1.hpp, it does not detect that
bar.hpp
has already been included. It DOES however, detect the fact that #include
files
in bar.hpp have already been processed.
Resultant output:
There are two anomolies here
1. bar.hpp appears twice in the list of dependencies for foo.o (low
priority)
2. All subsequent files (to makedepend) that #include bar.hpp do NOT
specify
files included by bar.hpp in their dependency list (high priority)
For example:
The makedepend command line has been supplied source filenames of foo.cpp,
test1.cpp, and test2.cpp
The resultant makedepend output looks something like this:
{{{
foo.o: bar.hpp caa1.hpp caa2.hpp test1.hpp bar.hpp
test1.o: bar.hpp
test2.o: bar.hpp
}}}
----
I am actively debugging the code to see if I can fix the bug. Any help
would be
appreciated. I am using MSVC (I ported the project file to VS 2003).
--
Comment(by olly):
(Description wiki-formatted)
caa: Did you come up with a suitable patch for Charlie to try?
--
Ticket URL: <http://trac.xapian.org/ticket/239#comment:9>
Xapian <http://trac.xapian.org>
Xapian
More information about the Xapian-tickets
mailing list