Looking for the latest version? Download remake-4.1+dbg1.1.tar.bz2 (1.3 MB)
Home / remake / 4.1+dbg-1.0
Name Modified Size Downloads / Week Status
Parent folder
Totals: 4 Items   3.9 MB 7
remake_4.1+dbg1.0_amd64.deb 2015-06-17 330.1 kB 22 weekly downloads
README.md 2015-06-06 2.4 kB 11 weekly downloads
remake-4.1+dbg1.0.tar.bz2 2015-06-05 1.5 MB 11 weekly downloads
remake-4.1+dbg1.0.tar.gz 2015-06-05 2.1 MB 33 weekly downloads

Build Status

Patched GNU Make 4.1 sources to add improved error reporting, tracing, target listing, graph visualization, and profiling. It also contains debugger. See the remake-3-82 branch for a patched GNU Make 3.82.

Tracing and Debugging

Although there's a full debugger here, most of the time I can get by using no options since normal output is a little more verbose and detailed. When that isn't enough, I use the --trace or -x option, e.g:

remake -x <other make options>

But if you want the full debugger, use --debugger or -X:

remake -X <other make options>

To enter the debugger from inside a Makefile, use the built-in function $(debugger). For example here is a Makefile:

    $(debugger 'arg not used')
    echo Nothing here, move along

When GNU Make is inside the all target, it will make a call to the debugger. The string after debugger is not used, but seems to be needed to get parsing right.

Getting Makefile Information

If there is project that you want a list of "interesting" Makefile targets, try:

remake --tasks

If the project has commented its Makefile using remake-friendly comments you may get output like this:

ChangeLog   # create ChangeLog fom git log via git2cl
build   # Do what it takes to build software locally
check   # Run all tests
clean   # Remove OS- and platform-specific derived files.
dist    # Create source and binary distribution
distclean   # Remove all derived files. Like "clean" on steroids.
install # Install package
test    # Same as check

To get a list of all targets, interesting or not, use --targets instead of --tasks.

To build:

$ autoreconf -i
$ ./configure
$ make update
$ make && make check && sudo make install

Profiling and Visualization

To profile and get a graph of targets encountered used the --profile option. For example:

remake --profile # target...

remake outputs callgrind profile format data which can be used with kcachegrind or other tools that work with this format.

See also

See also https://github.com/rocky/remake/wiki and https://github.com/rocky/remake/blob/master/profile/README.md

Source: README.md, updated 2015-06-06