March 23, 2004
>
>People will be more attracted to "D" when somebody provides makefile for compiler linix distribution. It is hard to figure out on what platform and with what libraries binaries been compiled and linked.
>
Would like a D automake program that can scan a module and the options given, determine what other modules will be imported (for this compile, subject to any versioning), add them, scan them recursively to get everything that is needed. It should be aware of Phobos (which are loaded automatically) and able to deal with packages however we decide to handle that.  This doesn;t seem very terrible, I may do it next after a round of improvement on my wildcard code.


March 23, 2004
I recently started using SCons and have to say, it beats the buttons off of traditional 'make'.  Try giving it a look, at least.
http://www.scons.org/

Of course I guess I'm biased, being a bit of a Python person.  :)

-C. Sauls
-Invironz
March 23, 2004
>
>People will be more attracted to "D" when somebody provides makefile for compiler linix distribution. It is hard to figure out on what platform and with what libraries binaries been compiled and linked.
>
Would like a D automake program that can scan a module and the options given, determine what other modules will be imported (for this compile, subject to any versioning), add them, scan them recursively to get everything that is needed. It should be aware of Phobos (which are loaded automatically) and able to deal with packages however we decide to handle that.  This doesn't seem very terrible, I may do it next after a round of improvement on my wildcard code.


March 23, 2004
C. Sauls wrote:
> I recently started using SCons and have to say, it beats the buttons off of traditional 'make'.  Try giving it a look, at least.
> http://www.scons.org/
> 
> Of course I guess I'm biased, being a bit of a Python person.  :)

Seconded.  SCons is awesome.  I should see if it's possible to make a standalone package with py2exe.

 -- andy
March 23, 2004
,larry cowan wrote:

<snip>
> Would like a D automake program that can scan a module and the options given,
> determine what other modules will be imported (for this compile, subject to any
> versioning), add them, scan them recursively to get everything that is needed.
> It should be aware of Phobos (which are loaded automatically) and able to deal
> with packages however we decide to handle that.  This doesn;t seem very
> terrible, I may do it next after a round of improvement on my wildcard code. 

It would be handy if it would compile the whole lot in one dmd run, enabling the holistic optimisations to take place.  But then again, it would also be handy if OSs supported infinitely long command lines!

Stewart.

-- 
My e-mail is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mail-bombing at the moment.  Please keep replies on the 'group where everyone may benefit.
March 23, 2004
It probably should be switchable to try a single-compile or separate ones at the user's option.  There are potential problems there with pure template modules that require a much smarter code scanner or more user provided info.

In article <c3p3j1$gj3$2@digitaldaemon.com>, Stewart Gordon says...
>
>,larry cowan wrote:
>
><snip>
>> Would like a D automake program that can scan a module and the options given, determine what other modules will be imported (for this compile, subject to any versioning), add them, scan them recursively to get everything that is needed. It should be aware of Phobos (which are loaded automatically) and able to deal with packages however we decide to handle that.  This doesn;t seem very terrible, I may do it next after a round of improvement on my wildcard code.
>
>It would be handy if it would compile the whole lot in one dmd run, enabling the holistic optimisations to take place.  But then again, it would also be handy if OSs supported infinitely long command lines!
>
>Stewart.
>
>-- 
>My e-mail is valid but not my primary mailbox, aside from its being the unfortunate victim of intensive mail-bombing at the moment.  Please keep replies on the 'group where everyone may benefit.


March 24, 2004
On Mon, 22 Mar 2004 19:17:42 -0800, Andy Friesen <andy@ikagames.com> wrote:
> C. Sauls wrote:
> > I recently started using SCons and have to say, it beats the buttons off of traditional 'make'.  Try giving it a look, at least. http://www.scons.org/
> > 
> > Of course I guess I'm biased, being a bit of a Python person.  :)
> 
> Seconded.  SCons is awesome
..
> I should see if it's possible to make a standalone package with py2exe.

Please!

Karl Bocher


March 24, 2004
Karl Bochert wrote:

> On Mon, 22 Mar 2004 19:17:42 -0800, Andy Friesen <andy@ikagames.com> wrote:
> 
>>C. Sauls wrote:
>>
>>>I recently started using SCons and have to say, it beats the buttons off of traditional 'make'.  Try giving it a look, at least.
>>>http://www.scons.org/
>>>
>>>Of course I guess I'm biased, being a bit of a Python person.  :)
>>
>>Seconded.  SCons is awesome
> 
> ..
> 
>>I should see if it's possible to make a standalone package with py2exe.
> 
> 
> Please!
> 
> Karl Bocher
> 
> 

I always make and use a compile.bat for compiling and a debug.bat for debugging. (They're different for each project, but I only have to modify them every so often. For c# and java I have them compile *.cs, or *.java, etc, and only have to modify the compile.bat once or twice. I haven't tried that with D yet.)

Example:
------------------
@echo off
set path=c:\dm\bin;c:\dmd\bin;%path%
set LIB=\dmd\lib;\dm\lib

del D_SpaceSim.exe
dmd.exe spacesim.d mt.d webinterface.d winutil.d socket.d winsock.d windows.d ws2_32.lib D_SpaceSim.exe -debug -g -gt -unittest | more
if exist D_SpaceSim.exe goto g
goto x2
:g
del SpaceSim.exe
dmd.exe spacesim.d mt.d webinterface.d winutil.d socket.d winsock.d windows.d ws2_32.lib SpaceSim.exe -release -O | more
if exist SpaceSim.exe goto g2
goto x2

:x2
pause
:g2
del *.obj /q
pause
------------------

(The pause at the very end is there because DMD still creates an EXE if the linker fails, so I need that to see if there are linker errors :/ - Otherwise it would auto-close when there are no errors, in XP anyways.)

But personally, I never liked make or automake, etc.

Admittedly, a tool which automatically determines what libraries you need and puts them in the command line COULD be useful, but if the time it takes to learn and be able to use it is greater than the time it takes to write a batch file to do the job (Which takes a minute or less), then I would just write the batch file.

-SL
March 24, 2004
I used to use compile.bat myself before switching to SCons, which I did partly so I could have one compile script on both Windows and Linux, since my main projects need that.  But to make a brief point and then hush about it, this is your compile script, converted to SCons...

=======file: %project%\SConstruct=======
env = Environment(
	DC	= '/dmd/bin/dmd',
	DLIB	= '/dm/bin/lib'
)

common = Split("""
	spacesim.d
	mt.d
	webinterface.d
	winutil.d
	socket.d
	winsock.d
	windows.d
	ws2_32.lib
""")
prefix = ''
exe = 'SpaceSim'

if (ARGUMENTS.get('debug', False)):
	env.Append(DCFLAGS = ' -debug -g -gt -unittest ')
	prefix = 'D_'
else:
	env.Append(DCFLAGS = ' -release -O ')
Default(env.Program(prefix + exe, [common]))
=======end file: %project%\SConstruct=======

=======file: %project%\compile.bat=======
@echo off
set D_TARGET=D_SpaceSim.exe
set TARGET=SpaceSim.exe
scons -Q -s debug=1 | more
if exist %D_TARGET% goto good
goto bad
:good
scons -Q -s | more
if exist %TARGET% goto good2
goto bad
:good2
del *.obj /q
:bad
pause
=======end file: %project%\compile.bat=======

Now bear in mind I threw this together literally over the last two minutes, and that I tried to mimic your batch file's behaviour as close as possible, which is the only reason there still is a batch file at all.  Normally I might spend a few more minutes and iron the thing out a little so that I wouldn't need a batch at all...

Plus now with this you would have the added conveniance that the same pair of files would work with any project.  Just replace the two SET's in the batch file, and name the appropriate files and exe in the SConstruct file.

Alrighty then, now I'm done.

-C. Sauls
-Invironz
March 25, 2004
Andy Friesen wrote:
> C. Sauls wrote:
> 
>> I recently started using SCons and have to say, it beats the buttons off of traditional 'make'.  Try giving it a look, at least.
>> http://www.scons.org/
>>
>> Of course I guess I'm biased, being a bit of a Python person.  :)
> 
> 
> Seconded.  SCons is awesome.  I should see if it's possible to make a standalone package with py2exe.
> 
>  -- andy

And of course A-A-P is even better ;). It's syntax is close to make's,
can be scripted by Python and is actually somewhat influenced by
SCons. And it supports dmd (hopefully gdmd and others will follow
soon). I think it works wonderfully.

http://www.a-a-p.org/

Lars Ivar Igesund