Location: Homepage / Procmake

procmake - GNU Make wrapper that replaces output with a progress report

1 Overview
2 Detailed presentation
3 Future development and support
4 Distribution and usage license
5 Download files
6 Maintainer details

1 Overview

procmake is a relatively simple Bash shell script that acts like a wrapper for GNU Make. This means that instead of calling make you call procmake, with any parameters you'd normally use with make, and the exit code is also the one make would produce.

What procmake does is to replace all output from make with a simple percentage and an ETA, which give you an idea about how the make process is coming along. When it's done it displays the exit code from make and also uses it for it's own exit code.

2 Detailed presentation

The trick is simple: procmake first does a simulation run of the make process, with debug flags enabled, and counts the occurances of a certain debug report line. During the following actual run, also with debug enabled, it counts those lines again and displays the percentage. See the source for the gruesome details.

Starting with version 0.3, procmake also attempts to estimate how much more time the make process is going to take. It uses a sliding door tehnique for this (thanks to Kees Cook for the idea). Simply put: if reaching this percentage took this much, the rest will probably take this much. How often it does this estimation can be customized and there are 3 different approaches that can be used. Read the script in order to find out more about them.

In order to change the behaviour for procmake you have to edit it and change some options at the beginning. There are extensive explanations inside the script. Please contact me if you feel something can be improved.

Also starting with version 0.3 there is a batch mode available. In this mode, procmake supresses all its regular output. It only displays the number of debug lines found during the test run, then during the actual run it shows a single dot on a newline for every debug line. All calculations (percentage, ETA) are left for the frontend to do.

procmake does not produce a perfectly reliable percentage or ETA, because the debug lines that it watches for are not evenly distributed accross the make targets and getting from one debug line to the next often doesn't take the same amount of time. In some (few) cases, the debug lines during the actual run are fewer or more than in the test run, which results in weird percentages.

The bottom line is that procmake means simply to offer some peace of mind for the impacient and replace make output with something that might make a little more sense to a newbie.

I've used it to compile many applications, including the kernel. I would say it performs quite satisfactory in almost all cases and I use it regularly now.

3 Future development and support

If you have improvement suggestions or have noticed bugs please see the bottom of the page for my contact details.

4 Distribution and usage license

procmake is free to use and to distribute further, as long as no modifications are made upon it. I make no guarantees for its effects and functionality. By using it you assume all the responsability for the outcome. Software can be based on it without any restrictions.

5 Download files

6 Maintainer details