Hi Isobel,
 I'll be on vacation for a week, can't give a detailed answer now. But I am not the right person to ask anyway :)

I think _building_ is the easy part, but getting all the include flags correct for all platforms is not. (which is "configuration" that you mean?)

An example of what would be nice to have is the ability to specify additional compiler flags for each folder.

Current architecture's biggest problem is that it is not crossplatform. Note that on Windows, cygwin is cumbersome and not something we want to do.

ciao,  Johan

----- Reply message -----
From: "Isobel Knowles" <ik5@pfw.demon.co.uk>
To: "Johan Engelen" <jbc.engelen@swissonline.ch>
Cc: <inkscape-devel@lists.sourceforge.net>
Subject: [Inkscape-devel] Waf build system, second try
Date: Fri, Jan 31, 2014 00:14

On Thu, 30 Jan 2014 20:11:14 +0100
Johan Engelen <jbc.engelen@swissonline.ch> wrote:
> On 30-1-2014 20:02, Isobel Knowles wrote:
> > PS. My offer to write some 'nice' makefiles is still open.
> No-one is stopping you :-)
> Make us dazzle...
> :)
>    Johan

Dear Johan,

OK. Before I do, do you think you could tell me what it is you want
from the build? What are the essentials and what are the nice-to-haves?
Where do you see the problems in the current architecture and what are
its strengths?

I'm only after some pointers so I don't set off in the wrong direction.

I'll start the ball rolling with these:

- Documentation. People who are new to Inkscape should find it easy to
 edit the makefiles.

- Separate configuration and build cleanly so when the configuration
 phase doesn't do what you want for one reason or another, it is
 straight-forward to manually configure the build options in one or
 two files.

- Separate compilation and installation/packaging. Installation is
 generally performed as root, and all too often in GNU software libtool
 and the like get their teeth into a 'make install', turning it into
 compilation job. This is wrong.

- An ordinary build job should do the minimum work in the minimum time.
 For this I propose a flat makefile structure, perhaps composed of
 included makefiles. Parallel makes like this perform correctly and
 have no scalability issues whereas recursive makefiles are beset with
 problems and complication.

- It should be simple to modify build flags and make alternative
 targets for debugging purposes.

I wouldn't describe it as dazzling, but it's a start.