Errata


Print Print Icon

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.


Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question



Version Location Description Submitted By
Printed Page 6
last paragraph

There is a hyphen being interpreted like an in-word break. Text ([c] ... [/c] denotes fixed-width code snippet):

When a prerequisite of the form [c]-l<NAME>[/c] is seen, ...

It has been typeset thus:

When a prerequisite of the form-

Anonymous 
Printed Page 7
The 3rd line from the bottom of the page.

"GNUMakefile" should read "GNUmakefile".

Anonymous 
Printed Page 12
1st paragraph of the section "Wildcards"

"Wildcards are automatically expanded by make whenever a wildcard appears in a
target, prerequisite or command script context."

Because neither "target", "prerequisite" nor "command script" is an adjective, none
of them should be used to modify "context". In fact, it is not clear that "target"
and "prerequisite" are intended to modify "context". There is a disconcerting change
in number of the subject of the sentence following "whenever".

In the last paragraph of the section on "Wildcards", the author makes the distinction
between the expansion done by make and the expansion done by the command shell. It
seems to be an oversimplification to write, "Wildcards are automatically expanded by
make ... in a ... command script context." I would be better to leave out "by make"
here, since "by what" is explained later.

The sentence should be written, "A wildcard is automatically expanded whenever it
appears in the context of a target, prerequisite or command script."

Anonymous 
Printed Page 29
code on the bottom of the page

$(AWK), $(SORT) and $(PR) variables are not defined on my system. Even when I run make -p, I still don't get the names of these variables in the data base. What should the be defined to?

Thank you

Anonymous 
Printed Page 38
Entire section, "Using Libraries as Prerequisites"

That section doesn't appear to explain how to *customize* the library search path
if you use the "-l" form of prerequisite. According to the online make manual:

"When a prerequisite's name has the form `-lname', make handles it specially by
searching for the file `libname.so' in the current directory, in directories
specified by matching vpath search paths and the VPATH search path, and then in the
directories `/lib', `/usr/lib', and `prefix/lib' (normally `/usr/local/lib', but MS-
DOS/MS-Windows versions of make behave as if prefix is defined to be the root of the
DJGPP installation tree).

If that file is not found, then the file `libname.a' is searched for, in the same
directories as above."

There is no mention of vpath or VPATH in that section, and that seems to be a
pretty major omission.

Anonymous 
Printed Page 55
In the example to use "strip" function.

The double quotations don't match: it should read
ifeq "$(strip $(OPTIONS))" "-d"
instead of
ifeq "$(strip $(OPTIONS)) "-d"

Anonymous 
Printed Page 70
In the example at the bottom

First, the comma seems to be missing between the first and the second arguments.

Second, the return value.
The first number which is returned by $(words $1) should be larger than or equal to the second, because the second one is $(sort)ed. Therefore, the first number matches to the second only if there's NO duplicate, and in that case the function is non-null...

Anonymous 
Printed Page 151-152
Last code example on page 151

change:

-e 's/ *\$$$$//'
-e 's/^$$$$/ d'
-e 's/$$$$/ :/' $3.tmp >> $3.tmp

to:

-e 's/ *\$$//'
-e '/^$$/ d'
-e 's/$$/ :/' $3.tmp >> $3.tmp

Anonymous 
Printed Page 151
2nd line of make-depend definition

change

's,\($$(notdir $2)\) *:,$$(dir $2) $3: ,' > $3.tmp

to

's,\($(notdir $2)\) *:,$(dir $2)\1 $3: ,' > $3.tmp

 
Printed Page 151
Last code example on page

change:

-e 's/ *\$$$$//'

to

-e 's/ *\\$$//'

Other errata in this make-depend macro are already listed

Fausto Marzoli 
Printed Page 152
itemized list at top of page

change:

3. Deletes trailing spaces

to:

3. Deletes trailing backslashes

Anonymous