views:

368

answers:

5

I'm looking for a make platform. I've read a little about gnu make, and that its got some issues on windows platforms (from slash/backslash, to shell determination ... ) so I would like to hear what are my alternatives to it ?

If it matters, i'm doing fortran development combined with (very)little c on small sized projects (50k lines max), but I don't think that matters since most of those are of the language agnostic type.

What are gnu make drawbacks, and what alternatives do I have, with what advantages?

+2  A: 

There are a couple of good tools for continuous integration and building on windows. The two I have in mind are NAnt which describes itself as .Net build tool, but could be used to build anything - its open source and very extensible, although the UI is lacking. I've recently started to use Hudson which is brilliant, the output is way better than NAnt, making it much easier to use. I have zero experience with these tools and Fortran, so good luck there.

My thought on make and its derivatives is to avoid based on it's age, a good tool in its time but it must 20 years old now, and tech (even in the build area) has moved on a fair bit since then.

MrTelly
I appreciate your advice. Hovewer, among the things which are bothering me is the fact that, athough there appears to be a number of newer tools none of them has any significant user base. So if I should run into problems, I'm left on my own. For example, SCons has almost none (as google can tell).
ldigas
I know the NAnt, and Ant that its derived from have a big user base, CrusiseControl was the tool of choice for .Net but it wasn't great, so its crown is being taken by Hudson.
MrTelly
+1  A: 

There is also nmake, which is Microsoft's version of nmake. I would recommend to stick with gnu make though. My advise is to always use Unix like slashes; they also work for Windows. Gnu make is widely used, you can easily find tutorials and get advices about it's use. It is also a better investment, since you can also use it in other areas in the future. Finally, it is much richer in functionality.

kgiannakakis
nmake is mostly incompatible with make and most projects usually come with make files for both now but some don't so it's usefull to use a gnu make compatible program which is the whole point of this question.
Tim Matthews
+1  A: 

I use GNU make under Windows and have no problems with it. However, I also use bash as my shell. Both make and bash are available as part of the Cygwin package from www.cygwin.com and I strongly recommend you install bash & all the common command line tools (grep, sed etc.) if you are going to use make from the command line.

anon
zab, thank you for answering. Unfortunatelly, that's why I asked - I cannot use any other shell besides cmd. What is your opinion, by using it in cmd, will I have any problems with it ?
ldigas
@ldigas: there's no problem with using GNU make from Windows' cmd shell - both cygwin (which I'm using) or MinGW versions should work
Christoph
+1  A: 

Make has stood the test of time even on windows, and I use it everyday, but there's also msbuild

SqlACID
+2  A: 

You can have a look at cmake. It's a kind of "meta-make" system: You write a make-file for it, which says how your project is structured, what libs and sources it needs, and so on. And it can build make-files for you for GNU make, nmake (i believe), project files for Kdevelop and Visual Studio.

KDE has adopted it for KDE4 onwards and it was since greatly enhanced: CMake

Another such system is Bakefile which was built to generate make-files and project-files for the wxWidgets GUI toolkit. It can be used for non-wx applications too, and is relatively young and modern (uses XML as its makefile description).

Johannes Schaub - litb