Make [was Re: SCons and gdc]

Russel Winder russel at winder.org.uk
Tue Oct 30 02:55:04 PDT 2012


On Tue, 2012-10-30 at 10:08 +0100, Rob T wrote:
[…]

> Also scons has no built-in ability to scan subfolders for source 
> files. You can manually specify sub-level source files, but 
> that's unreasonable to do for large projects. You can write 
> custom Python code to scan subfolders, but that is a lot more 
> complicated than it should be. Do you know of a decent solution 
> to scan sub-folders?

Using os.walk is quite natural in SCons since SCons is just a Python
internal DSL. SConstruct and SConscript are internal DSL files (not
external DSL as Makefiles are), thus they are just Python programs.

> Scons does look like a very powerful tool, and I really do 
> appreciate your input and the other posters as well. I am 
> determined not to continue with Make, so maybe I will have to 
> keep trying to get scons to do what I want.

Mayhap then what you need to do is look at Parts. This is Jason Kenny's
superstructure over SCons to deal with huge projects scattered across
everywhere. This is the build framework Intel uses for their stuff.
Intel have more and bigger C and C++ projects than I think anyone else
around

> One more question: I am wondering how the scons D support locates 
> dependencies from the imports specfied in the source files? So 
> far I have not been able to get automatic dependency inclusions 
> to work, so I end up manually specifying the import files. With 
> C++ and Make, I could get gcc to scan source files for the 
> #include files, and dump the list to a dependency file (.dep), 
> and then I could include the .dep file(s) into the make process. 
> Can scons with D support do something similar, or deal with it 
> better?

Now this is a whole different issue!

I have no idea. If it is a problem it needs fixing.

The general philosophy in SCons is to have scanners that find the
dependencies. In C and C++ this is the awful #include. In D it's import.
The code should create a graph of the dependencies that can be walked to
create the list of inputs. There is a bit of code in the D tooling that
is supposed to do this. If it doesn't then we need a bug report and
preferably a small project exhibiting the problem that can be entered
into the test suite — SCons development is obsessively TDD.

I can only do stuff for Linux and OS X, I cannot do anything for
Windows, and Windows is the "big problem" for the SCons D tooling at the
moment which is why it has not got merged into the SCons mainline for
release in 2.3.0.



A plea for help: in order for SCons to have sane support for D, it needs
people to step up and actively assist evolve the tools either by
providing small test projects exhibiting fails, or running the tests on
Windows and providing patches for fails.

Currently I am not working in D, just in Python, Java, Groovy, Scala,
Ceylon, Kotlin, so I have no D code activity I can use to evolve the D
support in SCons. But if the D community can provide test cases, I can
get SCons evolved to do the needful.  But only on Linux and OS X, I
definitely need a collaborator interested in working on Windows.

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20121030/4a9f62b7/attachment.pgp>


More information about the Digitalmars-d mailing list