> > You mean they have a tool that parses GNU Makefiles and generate VC > > project files? Sure, that might be interesting. I've seen I > think two > > others, and tried, but they fell over badly because the pg build > > system was too complicated. But I beleive I'm still allowed > to loko at > > GPL stuff and get ideas as long as I don't copy the code :-) > > [Note: I have no idea how much people have done on this > already. It's just that all this talk of automatic generation > makes me curious. > Myself, I have no idea how VC makefile work.] > > Is it so hard to automatically generate the necessary info?
No. Not really :-) > On a clean source tree, "make -n" will dump all the commands > required to complete the build. You could probably extract > all the info you required from there, although the directory > changing would kill you. Can't do that on a clean source tree, you need to ./configure first. > So my thought is, create a number of tracing scripts, eg > cc-trace which examine their arguments to see what needs to > be done, recording the current directory and such. Then execute: > > make CC="cc-trace" LD="ld-trace" etc... > > And you should be able to build up a tree of what depends on > what. This doesn't take care of the other stuff the makefile > does though (like the generation of pg_config_paths.h, can VC > makefile do things like that?) Again, this requires msys and GNU make to start with. I want it to work without those completely. And the script I have now does this just fine, it just needs some cleanup work and the removing of a couple of hardcoded things. A lot of space in it right now is because I list each project manually in the beginning (postgres, one for each binary in bin/ etc) because the makefiles aren't entirely consistent for that. And it also gorws a bit because the conversion procs are built a different way... //Magnus ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match