www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [Annouce] dmake 0.21

reply Helmut Leitner <helmut.leitner wikiservice.at> writes:
If everything is working and the sourcefiles aligned in some import tree,
then:

     dmake mainsource    or
     dmake mainsource [optional external libraries] [optional dmd options]

should make/build your application, analyzing import statements recursively
and optimizing the compiles/link done by calling dmd by using one large
response file or the long linux command line.

More information:
   <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>

-- 
Helmut Leitner    leitner hls.via.at
Graz, Austria   www.hls-software.com
Sep 27 2004
next sibling parent reply John Reimer <brk_6502 NOSP_AM.yahoo.com> writes:
Helmut Leitner wrote:
 If everything is working and the sourcefiles aligned in some import tree,
 then:
 
      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]
 
 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.
 
 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>
 

Very nice! How does this compare to digc?
Sep 27 2004
next sibling parent John Reimer <brk_6502 NOSP_AM.yahoo.com> writes:

Very nice! How does this compare to digc?

Apologies... I should probably have just reviewed some past newsgroup posts for the answer to this one.
Sep 27 2004
prev sibling parent Helmut Leitner <helmut.leitner wikiservice.at> writes:
John Reimer wrote:
 
 Helmut Leitner wrote:
 If everything is working and the sourcefiles aligned in some import tree,
 then:

      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]

 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.

 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>

Very nice! How does this compare to digc?

First, dmake uses substancial parts from digc - Thank you, Burton Radons! If the features of dmake become popular, I'm sure Burton will join its features into digc, and I'll be happy to support that. Currently dmake is a stripped down spike that follows a quite different philosophy. The answer in short: - digc is a reliable product - dmake is late alpha / early beta - digc is built to make library building and using easy - dmake is built to forget about library building and using - digc is built to support proprietary and professional libary products - dmake is built for easy code reuse across the traditional borders of libraries and projects and for easy change of these structures -- Helmut Leitner leitner hls.via.at Graz, Austria www.hls-software.com
Sep 27 2004
prev sibling next sibling parent reply Derek Parnell <derek psych.ward> writes:
On Mon, 27 Sep 2004 23:51:11 +0200, Helmut Leitner wrote:

 If everything is working and the sourcefiles aligned in some import tree,
 then:
 
      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]
 
 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.
 
 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>

Just a couple of points... ** Not everyone has DMD or DM installed in C:\. These locations really shouldn't be hardcoded. ** I altered your source to point to the location of where I've installed D ( r"C:\dparnell\dmd" ). Then ran dmake and it reports "Error: std\c\stdio.d: path not found" -- Derek Melbourne, Australia 9/28/2004 8:42:11 AM
Sep 27 2004
parent reply Helmut Leitner <helmut.leitner wikiservice.at> writes:
Derek Parnell wrote:
 
 On Mon, 27 Sep 2004 23:51:11 +0200, Helmut Leitner wrote:
 
 If everything is working and the sourcefiles aligned in some import tree,
 then:

      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]

 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.

 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>

Just a couple of points... ** Not everyone has DMD or DM installed in C:\. These locations really shouldn't be hardcoded. ** I altered your source to point to the location of where I've installed D ( r"C:\dparnell\dmd" ). Then ran dmake and it reports "Error: std\c\stdio.d: path not found"

Run verbose -v and look at the import roots listing. I think the Phobos root must be missing. dmake doesn't yet interpret relative % P% from the configfile, it needs absolute paths there. -- Helmut Leitner leitner hls.via.at Graz, Austria www.hls-software.com
Sep 27 2004
parent reply Derek Parnell <derek psych.ward> writes:
On Tue, 28 Sep 2004 07:40:25 +0200, Helmut Leitner wrote:

 Derek Parnell wrote:
 
 On Mon, 27 Sep 2004 23:51:11 +0200, Helmut Leitner wrote:
 
 If everything is working and the sourcefiles aligned in some import tree,
 then:

      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]

 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.

 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>

Just a couple of points... ** Not everyone has DMD or DM installed in C:\. These locations really shouldn't be hardcoded. ** I altered your source to point to the location of where I've installed D ( r"C:\dparnell\dmd" ). Then ran dmake and it reports "Error: std\c\stdio.d: path not found"

Run verbose -v and look at the import roots listing. I think the Phobos root must be missing. dmake doesn't yet interpret relative % P% from the configfile, it needs absolute paths there.

Ahhh... I see now. It extracts the 'root' data from the configfile. I've made some changes to dmake.d to parse the configfile better. It now takes quotes and environment symbols into consideration. Plus I've changed it to scan for dmd.exe based on the current PATH variable so it doesn't have to use the recommended location. Plus a couple of other 'enhancements'. Do you want my changes? I can place it on my website or would you prefer email or something else? -- Derek Melbourne, Australia 28/09/2004 5:55:43 PM
Sep 28 2004
parent Helmut Leitner <leitner hls.via.at> writes:
Derek Parnell wrote:
 
 On Tue, 28 Sep 2004 07:40:25 +0200, Helmut Leitner wrote:
 
 Derek Parnell wrote:
 On Mon, 27 Sep 2004 23:51:11 +0200, Helmut Leitner wrote:

 If everything is working and the sourcefiles aligned in some import tree,
 then:

      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]

 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.

 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>

Just a couple of points... ** Not everyone has DMD or DM installed in C:\. These locations really shouldn't be hardcoded. ** I altered your source to point to the location of where I've installed D ( r"C:\dparnell\dmd" ). Then ran dmake and it reports "Error: std\c\stdio.d: path not found"

Run verbose -v and look at the import roots listing. I think the Phobos root must be missing. dmake doesn't yet interpret relative % P% from the configfile, it needs absolute paths there.

Ahhh... I see now. It extracts the 'root' data from the configfile. I've made some changes to dmake.d to parse the configfile better. It now takes quotes and environment symbols into consideration. Plus I've changed it to scan for dmd.exe based on the current PATH variable so it doesn't have to use the recommended location. Plus a couple of other 'enhancements'. Do you want my changes? I can place it on my website or would you prefer email or something else?

Please, send me an e-mail to the address I've given on the Wiki page. If I don't see problems (I for example don't access dmd.exe from the PATH) I would publish it as v.22 and add your name to the program header. Please describe the other enhancements, to make it easier for me to test and document them. Maybe on: <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake/PreparingVs022> -- Helmut Leitner leitner hls.via.at Graz, Austria www.hls-software.com
Sep 28 2004
prev sibling next sibling parent reply Tyro <ridimz_at yahoo.dot.com> writes:
Helmut Leitner wrote:
 If everything is working and the sourcefiles aligned in some import tree,
 then:
 
      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]
 
 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.
 
 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>
 

This is great Helmut. Love it. Two problems thing though: First: it should know how to resolve phobos library files prior to searching elsewhere. There should be no need to recompile std\stdio.d because it's already included in phobos.lib. And if for some reason it wasn't, only then should it attempt to find and use the source code. C:\>dmake main -O -release Error: std\stdio.d: path not found Second: why is the location of the DMD and DMC install directories hard coded? Andrew
Sep 27 2004
parent Helmut Leitner <helmut.leitner wikiservice.at> writes:
Tyro wrote:
 
 Helmut Leitner wrote:
 If everything is working and the sourcefiles aligned in some import tree,
 then:

      dmake mainsource    or
      dmake mainsource [optional external libraries] [optional dmd options]

 should make/build your application, analyzing import statements recursively
 and optimizing the compiles/link done by calling dmd by using one large
 response file or the long linux command line.

 More information:
    <http://www.wikiservice.at/wiki4d/wiki.cgi?Dmake>

This is great Helmut. Love it. Two problems thing though: First: it should know how to resolve phobos library files prior to searching elsewhere. There should be no need to recompile std\stdio.d because it's already included in phobos.lib. And if for some reason it wasn't, only then should it attempt to find and use the source code. C:\>dmake main -O -release Error: std\stdio.d: path not found

use -v and check the import roots listing. The root for phobos will be missing. Check that the dm configfile is in the standard location. (Windows only) Check that the DFLAGS option doesn't contain relative dmd.exe path reference (% P%)
 Second: why is the location of the DMD and DMC install directories hard
 coded?

(Windows only) I think there where recommendations to put them there. Part of it is inherited from digc (env_LIB). Suppose I'll have to change that (sorry for the inconvenience). -- Helmut Leitner leitner hls.via.at Graz, Austria www.hls-software.com
Sep 27 2004
prev sibling parent novice <novice_member pathlink.com> writes:
I suggest changes for sc.ini searching in Windows environment:
1 - sc.ini and dmd.exe searched near dmake.exe
2 - dmd.exe searched by PATH env.variable, then sc.ini near dmd.exe

Because may peoples in Windows put usefull folders to PATH variable. For example
i have D:\D\dmd\bin in PATH, and i type "dmd.exe" to run dmd, not
"D:\D\dmd\bin\dmd.exe". Now it would be nice place dmake.exe near dmd.exe and
type "dmake mysrc.d"

Thanks
Sep 28 2004