Here we have note remake changes. For changes to GNU Make, see its NEWS file.
- Allow
--profileto take an argument to specify callgrind for json PR #132 (Jayson Messenger) - Fix bug in
info varPR #113 - Typos in make.1 Issue #110
- Support gcc-10 Issue #109
- Document debugger commands
- Debugger commands are in separate
.cfiles (not inlined,.hincluded)
I'd like to thank Marten Cassel for his sponsorship.
Rebase code on GNU Make 4.3.
This was made possible by Thomas Kupper (boretom) who did all the heavy lifting while rocky looked on in amazement.
Thomas also added OS/X CI testing, and tested on the BSD-ish platforms.
With this release, we've started redoing the texinfo documentation in sphinx and put on readthedocs. Since sphinx supports output into LaTeX, TeXinfo, pdf, epub, and info as well as HTML, the TeXinfo document will be removed when the sphinx documentation is more stable. I expect the in next release to work on this.
Similarly, you'll see that README.md has been redone and includes screencasts. The install docs have also been corrected and expanded.
--search parent-- I really like this one.--tasks-- the definition of a "tasks" has been simplified. Now, it is simply a target that has a description comment (#:) before it. After many years of using this myself, I highly encourage people to start using description comments more. Output from runningremake --tasksis nicer because we use spaces to align columns rather than tabs.
- Commands with file expansion now use
glob(), notword_expand()(Thomas did this too). Previouslysourceused to POSIX.1-2008wordexp(), but this is not available on BSD-ish systems.glob()is more general, and GNU make ships with its ownglob()function when none is provided in the underlying OS library. loadcommand addedevalcommand removed.evalnever worked and it attempted to be the same thing asload;loadis the gdb name.$(debugger)function fixed. This function gave anvirtual memory exhaustedon exit. This has been fixed. The required parameter for this function, a tag name, is now shown on entryinfo taskshas been added. It is basically the same thing asremake --tasks- Description lines are now shown on in
info targetsandlistcommands - The debugger now disallows any "running" command inside post-mortem debugging
- Help as shown inside the debugger has been greatly expanded and more closely matches the sphinx docs. We now show in help text the short command name and any aliases attached to the command
Two small but important changes...
gnumake.h->gnuremake.hso we don't conflict with GNU make- Propagate
--post-mortemflag (now short option-!) in recursive make
Revise documentation to include recent --post-mortem and profiling changes.
- Add the
--post-mortemoption
- Add more information in debugger
writecommand: the complete target name and dependencies Format is a little nicer - Remove more VMS, AMIGA and XENIX code which complicates things
- Sync up with GNU Make 4.2.1 see
NEWSfor changes
- Fix SEGV in debugger
setcommand - Add debugger
setqxwhich is likesetq(set a varable) but expands the value before it assigns
- Add
--profile
This creates callgrind profile output for a given run the callgrind output can be used with kcachegrind, callgrind_annotate,
or gprof2dot to analyze data. You can get not only timings, but a graph of the target dependencies checked.
- Code now based on GNU Make 4.1
- add remake
-verbosityoption. Can be used to suppress version information; version info only shown at level 0. - More targets should have file locations now
- More aggressive on showing
--targetdescriptions -Xand-xare boolean options only use--traceand--debuggerto supply an optional parameter- GNU readline headers are no longer optional
- small packaging changes
- Add remake
--tasksdescriptions - Fix indentation bug in
--trace - Give process id in output line when
--jobsvalue n != 1 - More correct target depth calculation
- Add
--tasks(akin torake --tasks) option to list interesting targets;--targetsis similar - In debugger, allow negative frame numbers to count from the other end
- Output changes to make it easier for front-ends like the emacs-dbgr
- builds better on OS's with various versions of GNU readline
- Allow debugger breakpoints on line numbers;
info linesshows the lines. - debugger
listalso allows line numbers now. - Remove duplicate stops in stepping and breakpoints
- Help and error message text greatly improved
- Documentation updated
break/continuetarget run fixedinfo filesmore user friendly- Correct order-only target display
- Recover from a fatal error when inside the debugger
- Track updating goal targets and more targets in general
- We track more target locations earlier and show that in tracing
- Add debugger
sourcecommand - Add
--no-readlineoption to disable use of GNU Readline - variable names are expanded on "break" and "continue" target names
- bug in history count fixed.
- Update manual to reflect the various changes.
- Don't unstall reremake
- Completely revise using GNU make 3.82 as a base. Much cleaner code, and should support all of GNU make's OS's.
- Stepping now stops before each line of code is run.
- Add debugger
editcommand - allow target name on
continuecommand - breakpoints can now stop after prerequisite checking and after remaking a target.
- Show line number in break command
- Change semantics of debugger "finish" command. Is now more similar to gdb, i.e is a "step out" up to a higher-level target
- Add back in command separator lines
##<<<<and##>>>> - Add stopping-event icons;
--,++,->,<-,||,!! - Added support for making debugger when GNU Readline is not available
- Start debugger tests via RSpec (in Ruby).
- Add debugger
evalcommand - Start to revise documentation for current release.
- Remove emacs debugger. Please use realgud code, available from ELPA or MELPA
mdb<>prompt is nowremake<>- The usual doc fixes after a release
- Bug fixes
- Compiles on Solaris
- Bug in trying to fake file information for a .PHONY target
- Some merge cleanup. Add debugger-specific documentation (from 3.80+dbg-0.61)
- Merge in code from 3.80+dbg-0.63cvs.
- Add debugger
info rulesandinfo vpath
- Add a debugger
listd" command. Basically same astarget x depends commandsfor now.list -shows the parent. - Help commands now show short usage.
- Ctrl-d leaves debugger
- Add GNU Emacs regression test and allow space in filename for MS Windows
- Changes to make more Debian compatibile.
- Track some GNU Make 3.81 changes, which include a bugfix and making more strings "const".
- Miscellaneous bugfixes
- Add comint shell tracking taken from python's
pdbtrack - Add gdb's
cdandpwdcommands. - "write" command now adds "cd " as a comment.
configureoptions:--with-default-shellto specify the default value for SHELL (useful on say Solaris),--with-shell-traceto specify the option to turn on tracing, e.g. (-x).- Add
configureoption--with-shell-traceto specify how to turn on tracing when running shell commands. - Add remake command option
--trace=normal. - run wasn't reading any (optional) arguments supplied.
- Guard against dereferencing NULL pointers.
- Some 3.81 features and bugfixes have been incorporated. At present not everything is there.
- More doxygen documentation and docuementation improvements. Note "debugger options" in Manual page.
- On a fatal error we now show command arguments used to invoke program.
- tracing now sets shell tracing (+x) when invoking commands
- The default behavior on error is to show call trace. To turn off use
--no-extended-errors. Recently added--extended-errorsand-E(not in standard GNU Make) have been removed. - debugger command
quitcan now terminate several levels of nested make (if remake was called directly and not via a shell string). - prompt now shows target and prerequisites.
- Fix bugs and memory leaks involving improper use of memory can weak casting. (shown in the vpath regression test dash-I on cygwin).
- Reorganize help command. Is more ddd-friendly (and more gdb like).
- More explicit free's of memory at termination.
- Give line numbers and target names on
--just-print. Print delimiters around the commands. - More debug tracing funnelled through
db_level. Debugger commandshow debugshows the debug mask in a more understandable way. - Incorporate patches from GNU/Linux make 3.80.
- Incorporate new functions from GNU Make 3.81: abspath, realpath, lastword
- Expand documentation.
- NOTE: the prompt has changed from
makedbtomdbas has the GNU Emacs Lisp command name to run the debugger. This change was made to avoid confusion between the Make debugger and a program which creates a DBM file. If you were using ddd-3.3.12-test.tar.gz you will need to get a newer version.
- Errors in debugger command
evalno longer cause termination. - Separation of debugger
stepandnextcommands. The default step command granularity is now "Next". "Step" stepping is more fine grained. - debugger
targetcommand improvements:- sets file variables when showing is requested
- add "target expand" to list target commands with "make" variables expanded.
- allow @ or $@ as a target name
- Add debugger
info makefilesto show what Makefiles have been read in. - Add debugger
info breakpoints - Breakpoints can now be listed and deleted by number - like gdb.
This also helps
dddand should pave the way for more sophisticated kinds of breaking/watching. - Add a number of debugger command aliases (e.g.
backtrace,bt,!!,L) and via an internal alias mechanism - Remove hash stats on printing variables -- generally not wanted for users (rather than GNU Make maintainers)
- Add explicit memory free and reduce reading uninitialized values.
- Revise testing mechanism for a more modern use of Perl. Can specify test program file name (
./scripts/variables/special) test name (variables/special). The former is works better with command completion. Document some more regression tests. - Make build work outside of source tree.
make distcheckdoesn't bomb. It doesn't run the regression tests though :-( - More documentation and doxygenization.
- Remove AMIGA support :-(
- Add debugger commadn
eval! - Add ability to stop before reading Makefiles - may be useful in debugging macros and variables
--debugger=preread. We can now trace makefile reading activity with-d ror via--trace = {read,full}- debugger commadn
wherecommand expanded to include above new Makefile read stack. - Add call tracing.
- Fix bugs in showing automatic variables
- Line number in Makefile commands is more accurate
- More ddd (gdb/bashdb) compatible:
help setaddedhelp showworks like the othersinfo localsaddedshow command(history) added- file/line reporting more like bash/perl
- write file takes basename of target file (well, at least for POSIX systems)
- Update documentation quite a bit
- Start to remove VMS support
- tracing adds GNU Make "basic" debugging. If debugging, then we also enter the debugger read loop. Hopefully this adds more granularity but not the diarrhea that "make -d" gives. To reduce this, "next" could be used to skip over remaking targets that don't have commands.
- print and examine now show origin status
- print/examine work for automatic variables. examine still has problems with automatic variables in strings though.
- Allow abbreviations of debugger command attributes. As a result some attributes were renamed slighly, e.g.
vars->variables,deps->depends,cmds->commands. But note that since substrings are allowed,commandandcom, and evencis the same ascommands. - Make option
--trace(-x) overrules using the--silentoption and not echoing@commands. - debugger
listcommand renamed totarget. A futurelistcommand will look more like _gdb_s. - fixed compilation issue(s) on systems that have readline, but do not have termcap.
- fixed failure of enter_debugger to exit on an empty line from readline.
- install program as
remakeby default (notmake). - misc bug fixes and compilations fixes for various OS's
- Add ability to print specified attributes of a target, e.g. "time", "deps", "vars"...
- Improve reporting target locations.
- Improve target stack tracking.
- Add "write" command - ability to write target commands to a file with
MAKEvariables expanded, or show that inside a debugger session. - Separate info from show. Make these act more like they do in gdb
- Stay in debugger when a Makefile exits.
- First debugger documentation.
Fork from version 3.80
- New options:
--extended-errors(-E) call stack reporting, extended error reporting--trace(-x) gives tracing information before a command is run. - Line numbers of commands in a target as they execute
--debuggerenters debugger- GNU Emacs debug interface
makedb.elpatched intogud.el
Debugger commands are listed by gdb category below.
execution:
stepnextcontinueskiprestartquitexit
breakpoints:
breaktargetdeletetarget
data:
printvariableexaminestringupdownframesetsetqwhere
debugger:
showinfotracehelp