March 23, 2010
The posix.mak file in the root of druntime outputs the file to lib/:

DRUNTIME=lib/libdruntime.a

No?

Regarding object.d, hmmm... probably we'd want to be as independent of dmd.conf as possible. I made the change you suggest and checked in.


Andrei

On 03/23/2010 04:55 AM, Lars Tandle Kyllingstad wrote:
> I am experiencing some problems with the new makefile.
>
>
> Firstly, the location of libdruntime.a is specified as
>
> DRUNTIME = $(DRUNTIME_PATH)/lib/libdruntime.a
>
> while I believe it should be
>
> DRUNTIME = $(DRUNTIME_PATH)/libdruntime.a
>
> Secondly, when I just enter 'make', DMD complains that it can't find object.d. I have to run
>
> make -f GNUmakefile OS=posix BUILD=debug DFLAGS=-I../druntime/import
>
> to make it work. It seems DMD isn't receiving the druntime imports directory by default.
>
>
> -Lars
>
>
> Andrei Alexandrescu wrote:
>> I finally found time to rewrite the makefile. It's now short, sweet and easy to look at and modify.
>>
>> The key is to use recursive invocations of make, each focused on one build (a given OS and a given flavor). That way dependencies are easy to set up without duplication. It took me a while to figure out how to do that stuff... the result is quite simple.
>>
>> I actually copied Walter's description below as the documentation. The only differences are that I changed "doc" to "html" because some day we might have other doc formats, and also that I do not remove the successful unittests. This is because I don't want two successive invocations of make unittest to redo all successful unittests before it stops at the failing one.
>>
>> I've only tested the Linux build, but I'm confident that the others need only minor adjustments, and most importantly that it's not difficult to figure how to make those adjustments. Let me know!
>>
>>
>> Andrei
>>
>> On 02/18/2010 01:32 PM, Walter Bright wrote:
>>> make clean => removes all targets built by the makefile
>>> make zip => creates a zip file of all the sources (not targets) referred
>>> to by the makefile, including the makefile
>>> make release => makes release build of the library (this is also the
>>> default target)
>>> make doc => makes html documentation
>>> make debug => makes debug build of the library
>>> make unittest => builds all unittests, runs them, deletes all built
>>> unittest files upon successful completion
>>> make install => copies library to /usr/lib
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
March 24, 2010
Andrei Alexandrescu wrote:
> The posix.mak file in the root of druntime outputs the file to lib/:
> 
> DRUNTIME=lib/libdruntime.a
> 
> No?

I'm pretty sure it doesn't.  I'm looking at posix.mak in the druntime SVN now, and the relevant lines are:

     6  DFLAGS=-O -release -nofloat -w -d -Iimport -Isrc
   ...
    11  DRUNTIME=libdruntime.a
   ...
   458  $(DMD) -lib -of$(DRUNTIME) $(DFLAGS) $(SRCS) $(OBJS)

Actually, searching the makefile I find no mention of a lib/ directory at all.

-Lars
March 24, 2010
Oh, indeed. I'd modified the makefile myself, but didn't check it in.

I'm unclear what the best practice is. Walter prefers to have as few directories as possible, and I'm with him. On the other hand I prefer to put generated files in a separate directory so as to not have them in my source open dialogs. Please vote. Until then, dsource.org is down anyway.


Andrei

On 03/24/2010 03:06 AM, Lars Tandle Kyllingstad wrote:
> Andrei Alexandrescu wrote:
>> The posix.mak file in the root of druntime outputs the file to lib/:
>>
>> DRUNTIME=lib/libdruntime.a
>>
>> No?
>
> I'm pretty sure it doesn't. I'm looking at posix.mak in the druntime SVN now, and the relevant lines are:
>
> 6 DFLAGS=-O -release -nofloat -w -d -Iimport -Isrc
> ...
> 11 DRUNTIME=libdruntime.a
> ...
> 458 $(DMD) -lib -of$(DRUNTIME) $(DFLAGS) $(SRCS) $(OBJS)
>
> Actually, searching the makefile I find no mention of a lib/ directory at all.
>
> -Lars
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
March 24, 2010
I like having generated files in their own directory so they don't clutter up the source directories.  This is practically necessary if you want to have both debug and release builds anyway (without a clean in between).

On Mar 24, 2010, at 5:50 AM, Andrei Alexandrescu wrote:

> Oh, indeed. I'd modified the makefile myself, but didn't check it in.
> 
> I'm unclear what the best practice is. Walter prefers to have as few directories as possible, and I'm with him. On the other hand I prefer to put generated files in a separate directory so as to not have them in my source open dialogs. Please vote. Until then, dsource.org is down anyway.
> 
> 
> Andrei
> 
> On 03/24/2010 03:06 AM, Lars Tandle Kyllingstad wrote:
>> Andrei Alexandrescu wrote:
>>> The posix.mak file in the root of druntime outputs the file to lib/:
>>> 
>>> DRUNTIME=lib/libdruntime.a
>>> 
>>> No?
>> 
>> I'm pretty sure it doesn't. I'm looking at posix.mak in the druntime SVN now, and the relevant lines are:
>> 
>> 6 DFLAGS=-O -release -nofloat -w -d -Iimport -Isrc
>> ...
>> 11 DRUNTIME=libdruntime.a
>> ...
>> 458 $(DMD) -lib -of$(DRUNTIME) $(DFLAGS) $(SRCS) $(OBJS)
>> 
>> Actually, searching the makefile I find no mention of a lib/ directory at all.
>> 
>> -Lars
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos

March 24, 2010
Sold. For now DRUNTIME goes in lib/ and .o files go in obj/. Please svn up inside druntime.

Andrei

On 03/24/2010 10:20 AM, Sean Kelly wrote:
> I like having generated files in their own directory so they don't clutter up the source directories.  This is practically necessary if you want to have both debug and release builds anyway (without a clean in between).
>
> On Mar 24, 2010, at 5:50 AM, Andrei Alexandrescu wrote:
>
>> Oh, indeed. I'd modified the makefile myself, but didn't check it in.
>>
>> I'm unclear what the best practice is. Walter prefers to have as few directories as possible, and I'm with him. On the other hand I prefer to put generated files in a separate directory so as to not have them in my source open dialogs. Please vote. Until then, dsource.org is down anyway.
>>
>>
>> Andrei
>>
>> On 03/24/2010 03:06 AM, Lars Tandle Kyllingstad wrote:
>>> Andrei Alexandrescu wrote:
>>>> The posix.mak file in the root of druntime outputs the file to lib/:
>>>>
>>>> DRUNTIME=lib/libdruntime.a
>>>>
>>>> No?
>>>
>>> I'm pretty sure it doesn't. I'm looking at posix.mak in the druntime SVN now, and the relevant lines are:
>>>
>>> 6 DFLAGS=-O -release -nofloat -w -d -Iimport -Isrc
>>> ...
>>> 11 DRUNTIME=libdruntime.a
>>> ...
>>> 458 $(DMD) -lib -of$(DRUNTIME) $(DFLAGS) $(SRCS) $(OBJS)
>>>
>>> Actually, searching the makefile I find no mention of a lib/ directory at all.
>>>
>>> -Lars
>>> _______________________________________________
>>> phobos mailing list
>>> phobos at puremagic.com
>>> http://lists.puremagic.com/mailman/listinfo/phobos
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
March 26, 2010
The safest way to build druntime and phobos is to override dmd.conf with one specific to the project.  Import paths in dmd.conf take precedence over those specified on the command-line, so if you have existing older core or std files in dmd.conf-specified locations then they'll be read by the compiler instead of the ones you're working on and Weird Things can happen.  What I've been doing recently is just wiping my import directories before building.

On Mar 23, 2010, at 9:01 PM, Andrei Alexandrescu wrote:

> The posix.mak file in the root of druntime outputs the file to lib/:
> 
> DRUNTIME=lib/libdruntime.a
> 
> No?
> 
> Regarding object.d, hmmm... probably we'd want to be as independent of dmd.conf as possible. I made the change you suggest and checked in.
> 
> 
> Andrei
> 
> On 03/23/2010 04:55 AM, Lars Tandle Kyllingstad wrote:
>> I am experiencing some problems with the new makefile.
>> 
>> 
>> Firstly, the location of libdruntime.a is specified as
>> 
>> DRUNTIME = $(DRUNTIME_PATH)/lib/libdruntime.a
>> 
>> while I believe it should be
>> 
>> DRUNTIME = $(DRUNTIME_PATH)/libdruntime.a
>> 
>> Secondly, when I just enter 'make', DMD complains that it can't find object.d. I have to run
>> 
>> make -f GNUmakefile OS=posix BUILD=debug DFLAGS=-I../druntime/import
>> 
>> to make it work. It seems DMD isn't receiving the druntime imports directory by default.
>> 
>> 
>> -Lars
>> 
>> 
>> Andrei Alexandrescu wrote:
>>> I finally found time to rewrite the makefile. It's now short, sweet and easy to look at and modify.
>>> 
>>> The key is to use recursive invocations of make, each focused on one build (a given OS and a given flavor). That way dependencies are easy to set up without duplication. It took me a while to figure out how to do that stuff... the result is quite simple.
>>> 
>>> I actually copied Walter's description below as the documentation. The only differences are that I changed "doc" to "html" because some day we might have other doc formats, and also that I do not remove the successful unittests. This is because I don't want two successive invocations of make unittest to redo all successful unittests before it stops at the failing one.
>>> 
>>> I've only tested the Linux build, but I'm confident that the others need only minor adjustments, and most importantly that it's not difficult to figure how to make those adjustments. Let me know!
>>> 
>>> 
>>> Andrei
>>> 
>>> On 02/18/2010 01:32 PM, Walter Bright wrote:
>>>> make clean => removes all targets built by the makefile
>>>> make zip => creates a zip file of all the sources (not targets) referred
>>>> to by the makefile, including the makefile
>>>> make release => makes release build of the library (this is also the
>>>> default target)
>>>> make doc => makes html documentation
>>>> make debug => makes debug build of the library
>>>> make unittest => builds all unittests, runs them, deletes all built
>>>> unittest files upon successful completion
>>>> make install => copies library to /usr/lib
>>> 
>>> 
>>> ------------------------------------------------------------------------
>>> 
>>> _______________________________________________
>>> phobos mailing list
>>> phobos at puremagic.com
>>> http://lists.puremagic.com/mailman/listinfo/phobos
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos

April 01, 2010
The new makefile works as-is on OSX.  I'm now using it instead of osx.mak.

Sent from my iPhone

On Mar 21, 2010, at 7:51 PM, Andrei Alexandrescu <andrei at erdani.com> wrote:

> I finally found time to rewrite the makefile. It's now short, sweet and easy to look at and modify.
>
> The key is to use recursive invocations of make, each focused on one build (a given OS and a given flavor). That way dependencies are easy to set up without duplication. It took me a while to figure out how to do that stuff... the result is quite simple.
>
> I actually copied Walter's description below as the documentation. The only differences are that I changed "doc" to "html" because some day we might have other doc formats, and also that I do not remove the successful unittests. This is because I don't want two successive invocations of make unittest to redo all successful unittests before it stops at the failing one.
>
> I've only tested the Linux build, but I'm confident that the others need only minor adjustments, and most importantly that it's not difficult to figure how to make those adjustments. Let me know!
>
>
> Andrei
>
> On 02/18/2010 01:32 PM, Walter Bright wrote:
>> make clean => removes all targets built by the makefile
>> make zip => creates a zip file of all the sources (not targets)
>> referred
>> to by the makefile, including the makefile
>> make release => makes release build of the library (this is also the
>> default target)
>> make doc => makes html documentation
>> make debug => makes debug build of the library
>> make unittest => builds all unittests, runs them, deletes all built
>> unittest files upon successful completion
>> make install => copies library to /usr/lib
> <linux.mak>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
1 2
Next ›   Last »