An open question to Rebuild users

Gregor Richards Richards at codu.org
Thu Apr 19 12:29:05 PDT 2007


Answers posted inline. I will use some of these questions for a FAQ when 
I make one.

These questions are bizarrely similar to Johan's ... :)

Daniel Keep wrote:
> Gregor Richards wrote:
>> Since many of the responses to this thread suggested that people don't
>> understand why DSSS is useful above just a build tool like bud or
>> rebuild. I've created a basic DSSS-by-example page, to describe why DSSS
>> is useful, and what advantages it gives the user. It needs more work,
>> but is a good start.
>>
>> http://www.dsource.org/projects/dsss/wiki/DSSSByExample
>>
>>  - Gregor Richards
> 
> OK, I think I've got a clearer idea of what DSSS is for now, although I
> have a few questions:
> 
> 1. What exactly does 'dsss install' do on Windows?  I mean, I realise
> that linux has standard directories for libraries and binaries, but
> where does it stick these things for Windows?

 From README.use:

Some software can be used directly after building, but most software, 
libraries
in particular, expect to be installed somewhere. DSSS can install 
software to
any directory you choose, but will default to its own directory.


> 
> 2. In addition, does 'dsss build' build everything all at once?  If so,
> is there any way to specify that you only want a particular target built?

Added to README.use:

You can build only a specified target by simply adding it to the command 
line:
$ dsss build dzipper


> 
> 3. I use an awful lot of version statements to control tracing code,
> experimental code, etc.  Can I pass version flags to the compiler from
> the command line (I know about buildflags in the dsss.conf file, but I
> don't want to have to edit that just to add some tracing code for a
> quick run).

 From `dsss --help` (admittedly not the best place for it :) ):

All other options are passed through to rebuild and ultimately the compiler.

So just adding -version=Foo is sufficient.

> 
> 4. I also noticed the bit on special build steps prefixed by a '+': do
> you trigger these from the command line like so: 'dsss build +foo'?

Yes.


> 
> 5. Related to the above, is there any way to add one of these special
> build steps from another one (ie: chain them together)?

There is not at present any way of specifying such a dependency, no. 
Perhaps I should add that...


> 
> 6. I realise this isn't in DSSS' job description, but do you have any
> plans to add support for transforming files?  The major part of my work
> at the moment deals with source files that need to be pre-processed
> before being fed to the D compiler.  Having a build tool able to call
> the processor on-demand only when it's needed would be a *massive*
> help--about 80-90% of the current build time is just my crummy shell
> script checking to make sure no source files need to be processed...

I'm a bit loathe to add anything like this ... I'd recommend setting it 
up something like this:

A non-preprocessed source directory, which creates a preprocessed source 
directory. The preprocessed source directory will have an appropriate 
dsss.conf added to it. In the base dsss.conf:

[+preprocess]
prebuild = preprocess.d

[preprocessed]
type = subdir


> 
> 7. Can we Windows users get a list of what command-line programs DSSS
> depends on?  I don't think I ever finished tracking down all the
> utilities DSSS kept trying to call last time I tried to use it...

All the software DSSS depends on come in the DSSS binary tarball (I 
missed this in one release, but it should be in all the current ones), 
and are retrievable by running getwinbins.d (which is run automatically 
if you build dsss with itself).

> 
> DSSS is actually looking pretty close to what I'm rigging up with bud at
> the moment.  Plus, the whole net install thing is cool :P
> 
> 	-- Daniel
> 

  - Gregor Richards



More information about the Digitalmars-d mailing list