www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Build a D project is now easy

reply bioinfornatics <bioinfornatics fedoraproject.org> writes:
hello community,
I have start a project for generate easily a build system for D project.
Currently in d world everyone use his own build system for build a new project
with a new system is a bit hard for everyone, for debug  same thing. My tool
generate
makefile system for your project in one command:
$ dmake --path src --lib src/myProject/
and for user he need ony do:
$ make
$ make install

At this time only works for build a library.
This system is usefull for support ldc, gdc and dmd compiler

You can found the project here: http://gitorious.org/dmake/dmake

Any help are welcome
Nov 21 2010
next sibling parent reply Russel Winder <russel russel.org.uk> writes:
On Mon, 2010-11-22 at 01:50 +0000, bioinfornatics wrote:
 hello community,
 I have start a project for generate easily a build system for D
 project. Currently in d world everyone use his own build system for
 build a new project with a new system is a bit hard for everyone, for
 debug  same thing. My tool generate
 makefile system for your project in one command:
Not entirely true. Many people use make even though it is past it's "use by" date. Many people use SCons, many others use Waf, and some use CMake. GIven that your system is a Makefile manager, you problably need to argue why a new system and not add-ins to CMake -- which is now the default makefile manager system.
 $ dmake --path src --lib src/myProject/
 and for user he need ony do:
 $ make
 $ make install
=20
 At this time only works for build a library.
 This system is usefull for support ldc, gdc and dmd compiler
=20
 You can found the project here: http://gitorious.org/dmake/dmake
=20
 Any help are welcome
Do we really need yet another build framework? The answer may be either yes or no, but just because a given programming language hasn't yet been used to write a new build framework doesn't mean it needs to be. NIH-like syndrome has given rise to SBT, Lancet, GoBuild, GoFR, Rake, etc., etc. Is it certain D has to be used to create a new framework for build? --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Nov 22 2010
next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Russel Winder" <russel russel.org.uk> wrote in message 
news:mailman.555.1290424163.21107.digitalmars-d-announce puremagic.com...
NIH-like syndrome has given rise to SBT, Lancet, GoBuild, GoFR, Rake,
etc., etc. Hey, I like rake :) But that's because I dislike python (SCons) syntax and outright despise make.
Nov 22 2010
next sibling parent bioinfornatics <bioinfornatics fedoraproject.org> writes:
today i have add some fix some for dmake and i have do  a test on ddbi library.
I so some change on ddbi for works with latest tango version:
https://github.com/bioinfornatics/ddbi

so i do:
$ cd ddbi
$ dmake -p src -l src/dbi/
$ cd src
$ make
$ su -m -c 'make install LIBDIR=/usr/lib64'
done
Nov 22 2010
prev sibling parent reply Russel Winder <russel russel.org.uk> writes:
On Mon, 2010-11-22 at 08:47 -0500, Nick Sabalausky wrote:
"Russel Winder" <russel russel.org.uk> wrote in message=20
news:mailman.555.1290424163.21107.digitalmars-d-announce puremagic.com..=
.
NIH-like syndrome has given rise to SBT, Lancet, GoBuild, GoFR, Rake,
etc., etc. =20 Hey, I like rake :) But that's because I dislike python (SCons) syntax a=
nd=20
 outright despise make.
I don't think make is to be despised, it was a revolution and a revelation in 1978, but it has come to the end of its useful life. As for Rake, it would have been fine if there had been any support infrastructure for languages other than Ruby. Rant tried to go this route but sadly the project has stalled into demise. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Nov 22 2010
parent reply "Manfred_Nowak" <svv1999 hotmail.com> writes:
Russel Winder wrote:

 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it. -manfred
Nov 22 2010
next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Manfred_Nowak" <svv1999 hotmail.com> wrote in message 
news:Xns9E38B3AFCD756svv1999hotmailcom 65.204.18.192...
 Russel Winder wrote:

 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
Make's in the same boat as C++: Highly significant in the past, and still used because of intertia, but garbage by modern standards.
Nov 22 2010
parent reply Leandro Lucarella <luca llucax.com.ar> writes:
Nick Sabalausky, el 22 de noviembre a las 12:54 me escribiste:
 "Manfred_Nowak" <svv1999 hotmail.com> wrote in message 
 news:Xns9E38B3AFCD756svv1999hotmailcom 65.204.18.192...
 Russel Winder wrote:

 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
Make's in the same boat as C++: Highly significant in the past, and still used because of intertia, but garbage by modern standards.
!? Generally people that say that is people that don't understand Make. Make is not a build system, make is a unix tool, it does one thing and it do it well, and that thing is rebuilding something based on dependencies. Usually Make is a tool to use as a building block when you need something more complex. Make is a great tool, just don't ask it to do things it doesn't suppose to do. -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- 22% of the time a pizza will arrive faster than an ambulance in Great-Britain
Nov 22 2010
parent reply "Nick Sabalausky" <a a.a> writes:
"Leandro Lucarella" <luca llucax.com.ar> wrote in message 
news:20101123050406.GJ8411 llucax.com.ar...
 Nick Sabalausky, el 22 de noviembre a las 12:54 me escribiste:
 "Manfred_Nowak" <svv1999 hotmail.com> wrote in message
 news:Xns9E38B3AFCD756svv1999hotmailcom 65.204.18.192...
 Russel Winder wrote:

 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
Make's in the same boat as C++: Highly significant in the past, and still used because of intertia, but garbage by modern standards.
!? Generally people that say that is people that don't understand Make.
See, that's a big part of the issue I have with make. I've spent an enormus amout of time with it and with various documentation for it (including O'Rielly books), and trying to use it still feels like complete voodoo. I *don't* understand make despite my many attempts. That's the problem. Every non-make-based alternative that I've tried, I've understood just fine.
 Make is not a build system, make is a unix tool, it does one thing and
 it do it well, and that thing is rebuilding something based on
 dependencies. Usually Make is a tool to use as a building block when you
 need something more complex.

 Make is a great tool, just don't ask it to do things it doesn't suppose
 to do.
In other words, it's great as long as you have limited requirements or like to toss a pile of different programs, likely each with their own DSL, at a single damn task (project building)...and if you actually understand it.
Nov 23 2010
next sibling parent Leandro Lucarella <luca llucax.com.ar> writes:
Nick Sabalausky, el 23 de noviembre a las 08:54 me escribiste:
 "Leandro Lucarella" <luca llucax.com.ar> wrote in message 
 news:20101123050406.GJ8411 llucax.com.ar...
 Nick Sabalausky, el 22 de noviembre a las 12:54 me escribiste:
 "Manfred_Nowak" <svv1999 hotmail.com> wrote in message
 news:Xns9E38B3AFCD756svv1999hotmailcom 65.204.18.192...
 Russel Winder wrote:

 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
Make's in the same boat as C++: Highly significant in the past, and still used because of intertia, but garbage by modern standards.
!? Generally people that say that is people that don't understand Make.
See, that's a big part of the issue I have with make. I've spent an enormus amout of time with it and with various documentation for it (including O'Rielly books), and trying to use it still feels like complete voodoo. I *don't* understand make despite my many attempts. That's the problem. Every non-make-based alternative that I've tried, I've understood just fine.
I agree with a lot of that. I had several attempts at learning it and failed a lot of times. I found Ask Mr. Make (and the GMake ML) very good resources for learning: http://www.cmcrossroads.com/ask-mr-make Is really hard to learn, but when you get it, it makes sense. That doesn't mean it doesn't have quite a few things that can be improved (like detecting file changes using some hash instead of mtime). But still I think is a pretty good tool, very flexible.
 Make is not a build system, make is a unix tool, it does one thing and
 it do it well, and that thing is rebuilding something based on
 dependencies. Usually Make is a tool to use as a building block when you
 need something more complex.

 Make is a great tool, just don't ask it to do things it doesn't suppose
 to do.
In other words, it's great as long as you have limited requirements or like to toss a pile of different programs, likely each with their own DSL, at a single damn task (project building)...and if you actually understand it.
Yes, or you can use something done by somebody else (like dmake, cmake, etc. :). I think of Make as some kind of C of build systems. You can write C directly but is hard, you can provide a decently easy to use C interface to do complex thing with a high level specification, or you can directly build a tool that spits C to do the work. And I don't think C is obsolete or going away in a near future. My real problem with other build system was, they were not flexible enough, or harder to use/maintain than a good makefile, and I looked hard. -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- Robar un alfajor es revolucionario, pues rompe con la idea de propiedad, incluso más que si se tratara de dinero. -- publikazion anarkista mdp (hablando de los destrozos de la Cumbre de las Americas en Mar del Plata, 2005)
Nov 23 2010
prev sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Nick Sabalausky" <a a.a> wrote in message 
news:icgh49$6bl$1 digitalmars.com...
 "Leandro Lucarella" <luca llucax.com.ar> wrote in message 
 news:20101123050406.GJ8411 llucax.com.ar...
 Nick Sabalausky, el 22 de noviembre a las 12:54 me escribiste:
 "Manfred_Nowak" <svv1999 hotmail.com> wrote in message
 news:Xns9E38B3AFCD756svv1999hotmailcom 65.204.18.192...
 Russel Winder wrote:

 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
Make's in the same boat as C++: Highly significant in the past, and still used because of intertia, but garbage by modern standards.
!? Generally people that say that is people that don't understand Make.
See, that's a big part of the issue I have with make. I've spent an enormus amout of time with it and with various documentation for it (including O'Rielly books), and trying to use it still feels like complete voodoo. I *don't* understand make despite my many attempts. That's the problem. Every non-make-based alternative that I've tried, I've understood just fine.
 Make is not a build system, make is a unix tool, it does one thing and
 it do it well, and that thing is rebuilding something based on
 dependencies. Usually Make is a tool to use as a building block when you
 need something more complex.

 Make is a great tool, just don't ask it to do things it doesn't suppose
 to do.
In other words, it's great as long as you have limited requirements or like to toss a pile of different programs, likely each with their own DSL, at a single damn task (project building)...and if you actually understand it.
I should apologize to bioinfornatics. He did all the work of making a make-based build system tool for D, and then I take the announcement thread and use it to start bitching about make.
Nov 23 2010
parent bioinfornatics <bioinfornatics fedoraproject.org> writes:
thanks nick

i have pushed a fix for dmake and in same time for ddbi

i think they are a little bug easy to fix when you set a lib do not put at the
end '/' character
example: dmake -p src -l src/dbi instead  dmake -p src -l src/dbi/

To do change all path string and array Path string to Path object

if someone could do this i think i can't do this before 1 week
Nov 24 2010
prev sibling parent reply Russel Winder <russel russel.org.uk> writes:
On Mon, 2010-11-22 at 16:41 +0000, Manfred_Nowak wrote:
 Russel Winder wrote:
=20
 but it has come to the end of its useful life
=20 why. I ask because I just realized, that llvm still uses it.
For really small systems compiled on a single platform, Make can still "cut it". But being an external DSL, the separation of relationship specification notation and action notation, and especially the platform specific action notation lead to insurmountable problems. Go is trying to persevere with Make but the cracks show readily. Also Make shows the cracks for large projects, it doesn't really scale. Autotools was a brave attempt to make Make make big projects for Posix-compliant platforms. CMake is a bold attempt to ensure Make handles things in a more platform independent way. Autotools is, I think also reaching the end of its useful life -- it was an immense bit of m4 hackery, and deserves respect, just as Make does. The alternative to all this is to use an internal DSL, i.e. use a programming language directly. SCons and Waf plough this furrow -- to name but the main two in a C, C++, D, LaTeX context. SCons and Waf both suffer some serious issues, but they are the current market leaders for a more modern system. In the JVM-based arena, Make gave way to Ant 10+ years ago then Maven came on the scene leading to Maven vs Ant warfare. With Groovy came Gant which led to Gradle and the Groovy front end to Ant. Also Groovy hit Maven hard leading to Polyglot Maven. However unless you have mixed JVM/native systems, as a D person, you are probably not that interested in these frameworks. The summary is: we should always be on the lookout for the next evolution of build systems. In the JVM arena the question is whether SBT is a step forward or two steps back. In the C, C++, Fortran arena legacy generally rules hence Make and Autotools still have a big install base. The issue that the JVM-based frameworks address head on that the C, C++, Fortran, D, etc. communities seems to studiously ignore is the one of dependency. Not an issue for static compilation, but a huge issue for executables reliant on dynamic linking. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Nov 22 2010
next sibling parent "Nick Sabalausky" <a a.a> writes:
"Russel Winder" <russel russel.org.uk> wrote in message 
news:mailman.567.1290452956.21107.digitalmars-d-announce puremagic.com...


Most likely MSBuild. It's XML-based, and from what I recall, it's basically an official MS-branded version of NAnt.
Nov 22 2010
prev sibling parent reply Leandro Lucarella <luca llucax.com.ar> writes:
Russel Winder, el 22 de noviembre a las 19:10 me escribiste:
 On Mon, 2010-11-22 at 16:41 +0000, Manfred_Nowak wrote:
 Russel Winder wrote:
 
 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
For really small systems compiled on a single platform, Make can still "cut it". But being an external DSL, the separation of relationship specification notation and action notation, and especially the platform specific action notation lead to insurmountable problems. Go is trying to persevere with Make but the cracks show readily. Also Make shows the cracks for large projects, it doesn't really scale.
False.
 Autotools was a brave attempt to make Make make big projects for
 Posix-compliant platforms.  CMake is a bold attempt to ensure Make
Automake is one of the biggest mistakes *ever*.
 handles things in a more platform independent way.  Autotools is, I
 think also reaching the end of its useful life -- it was an immense bit
 of m4 hackery, and deserves respect, just as Make does.
There is no point of comparison between Make and Autotools, Autotools is a huge hack. Make is limited in scope, but it does what it's supposed to do extremely well.
 The alternative to all this is to use an internal DSL, i.e. use a
 programming language directly.  SCons and Waf plough this furrow -- to
 name but the main two in a C, C++, D, LaTeX context.  SCons and Waf both
 suffer some serious issues, but they are the current market leaders for
 a more modern system.
I tried quite a few build systems for a big project (cmake, waf, aap, scons, omake) and all had their own issues and specially limitations. Eventually I decided to learn Make seriously, wrote a good Makefile and never looked back... Make can be very hard to learn, specially because people tend to use it wrongly and there are very few good examples and tutorials/docs. PS: I'm really talking about GMake :) -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- - Los romanos no tenían paz, loco... Necesitaban un poco de chala...
Nov 22 2010
next sibling parent reply Don <nospam nospam.com> writes:
Leandro Lucarella wrote:
 Make can be very hard to learn, specially because people tend to use it
 wrongly and there are very few good examples and tutorials/docs.
 
 PS: I'm really talking about GMake :)
Gmake != make. incompatible dialects.
Nov 23 2010
parent reply Leandro Lucarella <luca llucax.com.ar> writes:
Don, el 23 de noviembre a las 09:06 me escribiste:
 Leandro Lucarella wrote:
Make can be very hard to learn, specially because people tend to use it
wrongly and there are very few good examples and tutorials/docs.

PS: I'm really talking about GMake :)
Gmake != make.
I know, that's why I clarified.

 incompatible dialects.
I don't find that problematic at all, just use the standard for simple things or GMake for more complex stuff (it has some features that can be a life saver). I don't find using GMake problematic because is available virtually everywhere, is almost a de facto standard. -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- <Damian_Des> Me anDa MaL eL CaPSLoCK
Nov 23 2010
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 11/23/10 7:52 AM, Leandro Lucarella wrote:
 Don, el 23 de noviembre a las 09:06 me escribiste:
 Leandro Lucarella wrote:
 Make can be very hard to learn, specially because people tend to use it
 wrongly and there are very few good examples and tutorials/docs.

 PS: I'm really talking about GMake :)
Gmake != make.
I know, that's why I clarified.

 incompatible dialects.
I don't find that problematic at all, just use the standard for simple things or GMake for more complex stuff (it has some features that can be a life saver). I don't find using GMake problematic because is available virtually everywhere, is almost a de facto standard.
A further problem with gmake is that there are important differences between even minor releases, and each computer seems to have a different one. I'm well fluent with gmake and I'd agree with Leandro, except the portability argument pretty much invalidates the entire point. Andrei
Nov 23 2010
prev sibling next sibling parent Lutger Blijdestijn <lutger.blijdestijn gmail.com> writes:
Leandro Lucarella wrote:

 Russel Winder, el 22 de noviembre a las 19:10 me escribiste:
 On Mon, 2010-11-22 at 16:41 +0000, Manfred_Nowak wrote:
 Russel Winder wrote:
 
 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
For really small systems compiled on a single platform, Make can still "cut it". But being an external DSL, the separation of relationship specification notation and action notation, and especially the platform specific action notation lead to insurmountable problems. Go is trying to persevere with Make but the cracks show readily. Also Make shows the cracks for large projects, it doesn't really scale.
False.
 Autotools was a brave attempt to make Make make big projects for
 Posix-compliant platforms.  CMake is a bold attempt to ensure Make
Automake is one of the biggest mistakes *ever*.
 handles things in a more platform independent way.  Autotools is, I
 think also reaching the end of its useful life -- it was an immense bit
 of m4 hackery, and deserves respect, just as Make does.
There is no point of comparison between Make and Autotools, Autotools is a huge hack. Make is limited in scope, but it does what it's supposed to do extremely well.
 The alternative to all this is to use an internal DSL, i.e. use a
 programming language directly.  SCons and Waf plough this furrow -- to
 name but the main two in a C, C++, D, LaTeX context.  SCons and Waf both
 suffer some serious issues, but they are the current market leaders for
 a more modern system.
I tried quite a few build systems for a big project (cmake, waf, aap, scons, omake) and all had their own issues and specially limitations. Eventually I decided to learn Make seriously, wrote a good Makefile and never looked back... Make can be very hard to learn, specially because people tend to use it wrongly and there are very few good examples and tutorials/docs. PS: I'm really talking about GMake :)
Wow, GMake is almost a full blown programming language! If you have one of those few good examples handy, would you mind sharing a link?
Nov 23 2010
prev sibling parent =?UTF-8?B?IkrDqXLDtG1lIE0uIEJlcmdlciI=?= <jeberger free.fr> writes:
Leandro Lucarella wrote:
 Russel Winder, el 22 de noviembre a las 19:10 me escribiste:
 On Mon, 2010-11-22 at 16:41 +0000, Manfred_Nowak wrote:
 Russel Winder wrote:

 but it has come to the end of its useful life
why. I ask because I just realized, that llvm still uses it.
For really small systems compiled on a single platform, Make can still=
 "cut it".  But being an external DSL, the separation of relationship
 specification notation and action notation, and especially the platfor=
m
 specific action notation lead to insurmountable problems.  Go is tryin=
g
 to persevere with Make but the cracks show readily.  Also Make shows t=
he
 cracks for large projects, it doesn't really scale.
=20 False. =20 ... PS: I'm really talking about GMake :) =20
One very big problem about GMake is that parallel build doesn't work when the project is split in several directories... Jerome --=20 mailto:jeberger free.fr http://jeberger.free.fr Jabber: jeberger jabber.fr
Nov 25 2010
prev sibling parent reply Lionello Lunesu <lio lunesu.remove.com> writes:
On 22-11-2010 19:10, Russel Winder wrote:
 On Mon, 2010-11-22 at 01:50 +0000, bioinfornatics wrote:
 hello community,
 I have start a project for generate easily a build system for D
 project. Currently in d world everyone use his own build system for
 build a new project with a new system is a bit hard for everyone, for
 debug  same thing. My tool generate
 makefile system for your project in one command:
Not entirely true. Many people use make even though it is past it's "use by" date. Many people use SCons, many others use Waf, and some use CMake. GIven that your system is a Makefile manager, you problably need to argue why a new system and not add-ins to CMake -- which is now the default makefile manager system.
Did I miss a memo? I never heard of CMake, and suddenly it's the default? L.
Nov 23 2010
parent Russel Winder <russel russel.org.uk> writes:
On Tue, 2010-11-23 at 23:43 +0800, Lionello Lunesu wrote:
 On 22-11-2010 19:10, Russel Winder wrote:
[ . . . ]
 GIven that your system is a Makefile manager, you problably need to
 argue why a new system and not add-ins to CMake -- which is now the
 default makefile manager system.
=20 Did I miss a memo? I never heard of CMake, and suddenly it's the default?
There are defaults and defaults. Perhaps what I should have said was: for those people who wish to continue to use Make as the build tool underneath a modern framework then CMake is the de facto standard tool for managing Make files. Personally I do not like the CMake language, I much prefer Python, Lisp, etc. hence I prefer Waf and SCons. There is no doubt though that many people prefer CMake over SCons, Waf, Autotools , and Make. If anyone involved in any aspect of build has not heard of all of these tools then it is almost certainly in that person's best interest to do a little bit of investigation and learning. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Nov 23 2010
prev sibling next sibling parent Daniel Gibson <metalcaedes gmail.com> writes:
bioinfornatics schrieb:
 hello community,
 I have start a project for generate easily a build system for D project.
Currently in d world everyone use his own build system for build a new project
with a new system is a bit hard for everyone, for debug  same thing. My tool
generate
 makefile system for your project in one command:
 $ dmake --path src --lib src/myProject/
 and for user he need ony do:
 $ make
 $ make install
 
 At this time only works for build a library.
 This system is usefull for support ldc, gdc and dmd compiler
 
 You can found the project here: http://gitorious.org/dmake/dmake
 
 Any help are welcome
I think this is a good thing :-) D compilers are available in many linux distributions (debian, ubuntu and archlinux have gdc and ldc, fedora has ldc, don't know about other distributions), but D specific build-tools/systems like rebuild, dsss, xfbuild etc aren't. Make is part of any linux distribution, of course. So now you can use dmake to conveniently create a makefile so anybody who uses one of the aforementioned linux distributions can easily compile your software - he just needs to install [lg]dc and make from the distributions repository. This could really help any open source D application, because 1. they're painless to compile and install for users 2. your application being packaged in a linux distribution is more likely, because the build dependencies (well, at least the compiler and the make tool) already exist in the distribution Now all we need are killer open source applications written in D ;-) Cheers, - Daniel
Nov 23 2010
prev sibling parent reply Kagamin <spam here.lot> writes:
Leandro Lucarella Wrote:

 Make is not a build system, make is a unix tool, it does one thing and
 it do it well, and that thing is rebuilding something based on
 dependencies.
Being a unix tool means it works only on unix? If it rebuilds something, why it's not a build system?
Nov 28 2010
parent reply Leandro Lucarella <luca llucax.com.ar> writes:
Kagamin, el 28 de noviembre a las 11:34 me escribiste:
 Leandro Lucarella Wrote:
 
 Make is not a build system, make is a unix tool, it does one thing and
 it do it well, and that thing is rebuilding something based on
 dependencies.
Being a unix tool means it works only on unix?
I said it in the sense of the "unix philosophy"[1].
 If it rebuilds something, why it's not a build system?
Call it whatever you want. What I meant is that it doesn't suppose to do everything one could ask for a "build system" nowdays, like automatic dependency handling, automatic installation, configuration, etc. To have all those things, you have to combine it with other tools (again "unix philosophy"). If you expect make to do all that you will be disappointed, but is not Make fault, it wasn't designed for that. Make "just" track dependencies specified by the user and build targets based on that (possible spawning several process to do it concurrently). That's why I say Make is like an C/ASM for "build systems". [1] http://en.wikipedia.org/wiki/Unix_philosophy -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- DESCARRILÓ EL GUSANO LOCO Y QUEDARON CHICOS ATRAPADOS -- Diario La Capital
Nov 28 2010
parent Kagamin <spam here.lot> writes:
Leandro Lucarella Wrote:

 Being a unix tool means it works only on unix?
I said it in the sense of the "unix philosophy"[1].
Does it work on windows? And does it work there well?
 If it rebuilds something, why it's not a build system?
Call it whatever you want. What I meant is that it doesn't suppose to do everything one could ask for a "build system" nowdays, like automatic dependency handling, automatic installation, configuration, etc.
Explicit dependency handling is ok, but it doesn't work: dir/a.o: a.c dir move a.o dir/ dir: mkdir dir What to do? Do you call this "works well"?
Nov 29 2010