Compatible but improved replacement for make
Gallery of graphical analysis (with 1.50)Makepp is a drop-in replacement for GNU make which has a number of features that allow for more reliable builds and 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. It is called makepp (or make++) because it was designed for building C++ programs. Also its relationship to make is supposed to be analogous to C++'s relationship to C: it is almost 100% backward compatible but adds a number of new features. In fact, it will work with input files designed for make, but there are much better ways to do things.
Some features that makepp adds to make are: greatly improved handling of builds that involve multiple makefiles (recursive make is no longer necessary); automatic scanning for include files; rebuilds triggered if build command changes; checksum-based signature methods for reliable builds; extensibility through perl (within your makefile); repositories (automatically importing files from another tree). For a more complete feature list, see the manual.
Makepp currently runs only on Unix (or on Cygwin under Windows NT). Some more work needs to be done to run native on Windows.
Makepp 1.40.1 should run with perl 5.005_03 or more recent. Perl 5.6.0, which is the minimum requirement for makepp 1.50, is known to have bugs on the x86 platform that cause failures in large builds. Perl 5.6.1 has some bugs on some platforms that cause weird failures, but on other platforms it works fine. I generally work with perl 5.8.0 or newer.
The new well tested beta snapshot is getting ever faster, again 10% to 15% faster than last one. It fixes various bugs, a must for users of the option combination -kjn. The build cache now offers statistics and can be replicated, giving greater time savings for multiple disks or machines. On Linux and Solaris this also saves much space. All builtin filters (except &sort) can now generate C/C++-style line synchronization. All commands now have abbreviations like mpp for makepp, mppc for makeppclean and mppl for makepplog.
Amadeus Germany GmbH held a kickoff meeting with students of the Johannes Gutenberg Unversität, Mainz, and their lecturer. During the next month they will formalize measurable requirements based on the ideas (german) they were given, the vision (german) they formulated, and the detailed interviews they led. The ideas include rewriting the parser, so that it can be extended with syntactic foreach and while loops. Two ideas concern the internal scheduler and the way command parsers and scanners use it, so as to increase scalability. The fourth idea is to create an autoconf like framework based on makepp and to fill it with portability tests from existing sources. That way build systems can configure themselves for any platform.
By popular request, and since we are so slow about new stable releases, there will now be a well tested beta snapshot from time to time.
To help you use the new makeppgraph utility, there is a gallery with explanations of how the graphs were created.
The new look and feel of the upcoming versions's documentation has been applied to this page and the latest 1.40.1 documentation. GNU Emacs 22.0.50 from their CVS now also comes with a makefile-makepp-mode.
Two of the major makepp developers presented makepp and its role in NVIDIA's giant build system at the Perforce user conference. Read both the white paper and the slides on their presentation site.
This release is identical to 1.40 except that somehow the tar file for 1.40 was corrupted.
This version fixes a lot of bugs in 1.19 (cygwin fixes plus lots of minor problems on unix), has a redesigned scanner interface to support additional languages more easily (e.g., Verilog is supported now), has a client-server interface for faster builds, and a few minor new functions. See the release notes for details.
Only very minor changes occured between 1.40beta1 and the full 1.40 release. The makepp developers are mostly concentrating on the next release, which should have a number of new features.
Please let me know if you have any problems or questions. Or you can post to the sourceforge forum for makepp.