An open question to Rebuild users

Gregor Richards Richards at codu.org
Thu Apr 19 12:23:11 PDT 2007


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

Johan Granberg 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
> 
> Thanks this documentation cleared up a lot of things.
> 
> I have a few questions thou, either this was not documented or I could not
> find it. Overall dsss was much more compleat than I thought.
> 
> 1.
> how is libs with subdirs handled?
> 
> //example directory structure
> mylib/
>         lib.d
>         file.d
>         subdir/
>                 somefile.d
>                 someother.d
>         anotherdir/
>                 anotherfile.d
> 
> If building a .a library will the files in the subdirs be compiled, and if
> so when are they included?
> (if I don't import them with a version flag?)

I've improved README.software_engineers to answer this question:

Sections creating libraries from directories will normally include all 
the .d
files in that directory or any subdirectory of it. You may also specify
subdirectories explicitly in dsss.conf, which will cause some .d files to be
reassigned. For example, if you have these files:
dzip/algorithm.d, foo/compression/zip.d
and a section:
[dzip]
then the produced library will include algorithm.d and zip.d.
If you have two sections:
[dzip]
[dzip/compression]
then two libraries will be produced: The library from 'dzip' will contain
algorithm.d, and the library from [dzip/compression] will contain zip.d.

> 
> 2.
> Where does dsss net deps install the deps, 
> current dir or globally, (configurable)?

 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.


> 
> 3.
> The pre/post instal/uninstal/clean are they target specific or common to the
> entire file.

I've made this a bit more explicit in README.software_engineers (I hope 
:) ):

* prebuild, preinstall, preclean, postbuild, postinstall, postclean
   * Commands to be run before/after building/installing/cleaning the 
current
     section.

> 
> 4.
> Is it possible to build a specific target from a file instead of all of them
> (as if specifying make targetname).

I had neglected to mention this in README.use. It is now present:

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


> 
> 5.
> How is library dependencies specified in the dsss file.

In general, they're not. Every package installable via DSSS-net has its 
list of modules well-defined, so `dsss net deps` merely needs to trace 
dependencies. I've made this explicit in README.software_engineers:

There is also a global setting, "requires", which may be used to explicitly
list dependencies:
requires = bintod
In general, it is NOT necessary to use this setting, as DSSS will detect
dependencies based on what is imported from the D source.

  - Gregor Richards



More information about the Digitalmars-d mailing list