True about dependency, however keep in mind that btool.exe is doing limited work in terms of partial rebuilt. Now you can imagine two steps : dependency generation then make. Dependency generation don't need to be done all the time and on all platform so a trade of is may be possible.
gcc itself for example can produce dependency files (-M option) that can be used inside make.
It is may be easy to generate other dependency files for other steps. Some of them can be simple sed and may be they exists already.
What disturbs me with make is the old fashion format. I would prefer an xml format, easier to generate, to parse.
Ant would require a java runtime and support for gcc is not native.
I take a look at the waf scripts. It's new to me. I see a benefit : portability, I am surprised it is very procedural. Large work.
It is : Wscript Waf.bat Waf InkWaf.py
Is there more ?
Still I am somehow wondering about all the wscript files. Any developer willing to add a file will have to know how to modify them and so know at least something about waf and python.
Very occasional helping hands like me could be blocked by that. Specially if it breaks. This is what I face now with btool. I use a recent gcc and so it throw all types of warning and some of them are justified. Uninstalling gcc , pain, setting new compilation options : difficult with btool, so it all kind of questions and you don't want to have a virtual machine per open source project you work on.
Sincerely, -Bruno
Bruno Winck Email: bwinck@...2632... Blog: http://www.kneaver.com/blog Kneaver Corp http://www.kneaver.com/ Twitter:http://twitter.com/kneaver SKYPE:brunowinck PH: +1 (415) 749 5850 CELL: +1 (415) 513 3160
-----Original Message----- From: Krzysztof Kosinski [mailto:tweenk.pl@...400...] Sent: Thursday, June 09, 2011 9:57 PM To: Bruno Winck Cc: inkscape-devel@lists.sourceforge.net Subject: Re: [Inkscape-devel] Use of MINGW64 (minor)
2011/6/9 Bruno Winck <bw@...2632...>:
Could you share with us what the source build file would look like ? Even if we cannot run it, just to see what it looks like.
My work is at lp:~tweenk/inkscape/waf-build It uses a heavily customized Waf. If I changed to Waf 1.6, a lot of the content in InkWaf.py would be unnecessary.
On other project we simply use make, not so bad and everyone knows how to use it, recognized by many frameworks. You can always have a few scripts in whatever language you like to do some configuration. But for simple task like saving a .h file and rebuilding as quickly as possible it works fine.
Using plain make becomes really painful when you have more than a few files with dependencies on each other. The whole point of all the build systems around is to automate dependency generation.
Regards, Krzysztof