Make++ (or makepp) is a drop-in replacement for GNU make which has a number of features that guarantee more reliable builds and allow simpler build files. It supports almost all of the syntax that GNU make supports, and can be used with makefiles produced by utilities such as automake.

makepp at present works on Unix/linux systems and on closely similar systems such as Cygwin under Windows NT, since it currently depends Unix filename and directory conventions. Suggestions for porting and code contributions are welcome.

makepp is written entirely in perl. It requires version 5.6 of perl or better. It's distributed under the terms of the perl Artistic License or GPL 2 or newer, which means that it's freely available to anyone for just about any purpose.

Some perl versions have bugs that cause makepp to fail. These are: o perl 5.6.0 fails in really weird ways on the x86 (and maybe other platforms) on large builds.
o perl 5.6.1 has failed for us in different ways on different architectures. On some architectures it seems to work fine, on others it's flaky.

We develop and test mostly with perl 5.8.0 or later, and we have encountered no problems with it.

For the latest distribution, manual pages, and information about mailing lists, please see the makepp home page, http://makepp.sourceforge.net.

Features

libmine.so: *.o

and the compilation will work properly even if none of the .o files exist yet.

Why not cons? cook? bake? icmake? jam?

These are good make utilities too, with some of the same features, especially those relating to reliable builds. I wrote makepp because (at the time) cons wasn't flexible enough.

makepp is likely to work with existing makefiles, because it tries hard to emulate all the features of the standard make implementations while nonetheless being safer. It has been tested successfully on several large systems of makefiles, including large projects controlled by autoconf and automake. And you don't have to learn any new syntax or write any new files to use makepp; you can probably use your old makefiles (with possibly only minor modifications). On the other hand, you can take advantage of makepp's additional features to simply your makefiles.