Here we have note remake changes. For changes to GNU Make, see its NEWS file.
- Allow
--profile
to take an argument to specify callgrind for json PR #132 (Jayson Messenger) - Fix bug in
info var
PR #113 - Typos in make.1 Issue #110
- Support gcc-10 Issue #109
- Document debugger commands
- Debugger commands are in separate
.c
files (not inlined,.h
included)
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 --tasks
is nicer because we use spaces to align columns rather than tabs.
- Commands with file expansion now use
glob()
, notword_expand()
(Thomas did this too). Previouslysource
used 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. load
command addedeval
command removed.eval
never worked and it attempted to be the same thing asload
;load
is the gdb name.$(debugger)
function fixed. This function gave anvirtual memory exhausted
on exit. This has been fixed. The required parameter for this function, a tag name, is now shown on entryinfo tasks
has been added. It is basically the same thing asremake --tasks
- Description lines are now shown on in
info targets
andlist
commands - 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.h
so we don't conflict with GNU make- Propagate
--post-mortem
flag (now short option-!
) in recursive make
Revise documentation to include recent --post-mortem and profiling changes.
- Add the
--post-mortem
option
- Add more information in debugger
write
command: 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
NEWS
for changes
- Fix SEGV in debugger
set
command - Add debugger
setqx
which 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
-verbosity
option. 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
--target
descriptions -X
and-x
are boolean options only use--trace
and--debugger
to supply an optional parameter- GNU readline headers are no longer optional
- small packaging changes
- Add remake
--tasks
descriptions - Fix indentation bug in
--trace
- Give process id in output line when
--jobs
value n != 1 - More correct target depth calculation
- Add
--tasks
(akin torake --tasks
) option to list interesting targets;--targets
is 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 lines
shows the lines. - debugger
list
also allows line numbers now. - Remove duplicate stops in stepping and breakpoints
- Help and error message text greatly improved
- Documentation updated
break
/continue
target run fixedinfo files
more 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
source
command - Add
--no-readline
option 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
edit
command - allow target name on
continue
command - 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
eval
command - 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 rules
andinfo vpath
- Add a debugger
list
d" command. Basically same astarget x depends commands
for 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
cd
andpwd
commands. - "write" command now adds "cd " as a comment.
configure
options:--with-default-shell
to specify the default value for SHELL (useful on say Solaris),--with-shell-trace
to specify the option to turn on tracing, e.g. (-x).- Add
configure
option--with-shell-trace
to 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-errors
and-E
(not in standard GNU Make) have been removed. - debugger command
quit
can 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 debug
shows 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
makedb
tomdb
as 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
eval
no longer cause termination. - Separation of debugger
step
andnext
commands. The default step command granularity is now "Next". "Step" stepping is more fine grained. - debugger
target
command 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 makefiles
to 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
ddd
and 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 distcheck
doesn'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 r
or via--trace = {read,full}
- debugger commadn
where
command 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 set
addedhelp show
works like the othersinfo locals
addedshow 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,command
andcom
, and evenc
is the same ascommands
. - Make option
--trace
(-x
) overrules using the--silent
option and not echoing@
commands. - debugger
list
command renamed totarget
. A futurelist
command 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
remake
by 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
MAKE
variables 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
--debugger
enters debugger- GNU Emacs debug interface
makedb.el
patched intogud.el
Debugger commands are listed by gdb category below.
execution:
step
next
continue
skip
restart
quit
exit
breakpoints:
break
target
delete
target
data:
print
variable
examine
string
up
down
frame
set
setq
where
debugger:
show
info
trace
help