File: README.mdb

package info (click to toggle)
remake 3.80%2Bdbg0.62~dfsg.1-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 5,180 kB
  • ctags: 2,081
  • sloc: ansic: 24,673; sh: 6,719; perl: 992; makefile: 230; sed: 16
file content (66 lines) | stat: -rw-r--r-- 3,153 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
$Id: README.mdb,v 1.2 2007/02/27 05:02:26 rockyb Exp $

See the file NEWS for the user-visible changes

With steady progress, this debugger for make has gotten good enough to
be called "alpha" and good enough to make available in public.

What I have here is preliminary; it here so people can get a feel for
what a debugger for GNU Make might look like. I've been able to
compile this on GNU/Linux and other Unixes. For the debugger, you
should have GNU readline installed.

Although there are a number of gaps listed in TODO, (like the ability
to keep global state global across subshell returns), the debugger is
very usable -- at least for me. It passes many (but not all)
regression tests. So I don't recommend this for day-to-day production
where obscure features of GNU Make are used; but it is very handy for
debugging.

In the process of the small changes to add better support for error
reporting and debugging, I've been also making changes to the code to
make more modern conventions. For example:

 - the source code now lives in a src directory,
 - configure.ac rather than configure.in is used, 
 - the prototypes for xxx.c are in xxx.h 
 - typedefs are used
 - "register" removed 
 - documentary comments at are found beginning of a function 
   are in the headers in doxygen format.
 - headers can be included in any order since they include what they need
 - headers have tests to make sure they are included only once. 
 - gcc -Wall warnings have been removed

Although none of this is strictly needed for better error reporting
and debugging, any code I may have to deal with, I may as well make as
palatable as possible. 

On the other hand, what has *not* been all that important has been
ensuring this builds and runs on a C compiler that isn't
C99-compliant.  I've removed support for VMS and AMIGA, EMX and OS/2
and other less-used OS's. There was a bit of specialized conditional
compilation, custom Makefiles, and build systems on OS's that
historically didn't support automake and autoconf.  These custom
Makefiles and scripts too have been removed. For those older OS's,
there's always good old GNU make.

I do not denegrate any of these OS's or tools, but I don't
generally have access to them and don't test releases on them. It
would be dishonest to claim support for them at this
point. Furthermore all of that custom code has made GNU Make much more
bulky, less comprehensible and harder to comprehend and change. Should
someone be fervently devout in the reinstatement or support of these
OS's, they can be added. But it would have to be done in a way that
doesn't make the rest of the code hard to read and maintain.

Given this split in goals, I think it best to maintain this initially
as a separate track. Although this track is alpha, I think it has some
important and useful changes and needs early exposure to best grow
this the right way. I don't think it should be tied down to the GNU
make 3.81 release schedule and similarly I don't think the 3.81
release schedule should be tied down to having this be flawless
either.

Documentation for the revised GNU Make and GNU Make Debugger is in the
doc directory.