DSSS 0.78 released.

Gregor Richards Richards at codu.org
Sun Sep 21 09:55:20 PDT 2008


Leonid Krashenko wrote:
> Gregor Richards wrote:
> 
>> Bill Baxter wrote:
>>> On Sun, Sep 21, 2008 at 8:58 AM, Gregor Richards <Richards at codu.org>
>>> wrote:
>>>> Leonid Krashenko wrote:
>>>>> Gregor Richards wrote:
>>>>>
>>>>> I am getting strange errors using rebuild/dsss:
>>>>> http://codepad.org/MfhzjJFG
>>>>>
>>>>> If I use my own Makefile, everything compiles, links and runs
>>>>> successfully:
>>>>>
>>>>> cc = dmd
>>>>> flags = -unittest
>>>>> link_flags = -L-lX11
>>>>> source_dirs = y std/c/linux/X11 tl
>>>>>
>>>>> src_files = $(addsuffix /*.d, $(source_dirs))
>>>>> src_objs = $(patsubst %.d, %.o, $(wildcard $(src_files)))
>>>>>
>>>>> paint: paint.o $(src_objs)
>>>>>        $(cc) $^ $(link_flags)
>>>>>
>>>>> main: main.o $(src_objs)
>>>>>        $(cc) $^ $(link_flags)
>>>>>
>>>>> VPATH := $(source_dirs) .
>>>>>
>>>>> %.o: %.d
>>>>>        $(cc) -c $^ $(flags) -op
>>>>>
>>>>> clean:
>>>>>        rm -f $(addsuffix /*.o, . $(source_dirs))
>>>>>        rm -f paint
>>>>>        rm -f main
>>>>>
>>>>> What am I doing wrong?
>>>> Rebuild ignores D files in the package 'std', since those should be
>>>> packages provided by the standard library. You really oughtn't to name
>>>> things 'std' anyway, and putting 'X11' in std.c.linux doesn't make much
>>>> sense regardless.
>>> Is that behavior new with DSSS 0.78?
>>> What does that mean for Tangobos, which is not the standard library
>>> but is completely in the std package?
>>>
>>> --bb
>> This is not new. If you're using Tango, you (should) use the rebuild
>> profile for Tango, which doesn't ignore the std package since that's not
>> part of Tango.
>>
>> The only reason it has to actively ignore the std package is because
>> they're .d files instead of the .di files they ought to be.
>>
>>   - Gregor Richards
> 
> But in this case the use of Makefiles is more flexible... And this behavior
> of Rebuild really is not obvious.. isn't it better to change it?

Makefiles are absolutely more flexible. As flexible as a noose. But 
rebuild traces dependencies, and Makefiles don't: Would you have me stop 
tracing dependencies, making rebuild entirely useless, or stop ignoring 
std, making it rebuild the entire core library every time you build 
anything?

  - Gregor Richards


More information about the Digitalmars-d-announce mailing list