Remove of .SECONDARY from SGML Makefile

Started by Bruce Momjianover 19 years ago3 messagespatches
Jump to latest
#1Bruce Momjian
bruce@momjian.us

To get the new html dependency to work properly, I removed the
.SECONDARY tag from the Makefile. SECONDARY prevents missing files from
being built. Patch attached and applied. The rules now work properly
and are less error-prone.

--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

Attachments:

/rtmp/difftext/x-diffDownload+14-14
#2Peter Eisentraut
peter_e@gmx.net
In reply to: Bruce Momjian (#1)
Re: Remove of .SECONDARY from SGML Makefile

Bruce Momjian wrote:

To get the new html dependency to work properly, I removed the
.SECONDARY tag from the Makefile. SECONDARY prevents missing files
from being built.

That is not what it does.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/

#3Bruce Momjian
bruce@momjian.us
In reply to: Peter Eisentraut (#2)
Re: Remove of .SECONDARY from SGML Makefile

Peter Eisentraut wrote:

Bruce Momjian wrote:

To get the new html dependency to work properly, I removed the
.SECONDARY tag from the Makefile. SECONDARY prevents missing files
from being built.

That is not what it does.

It does several things, but that is one of the things it does:

`.SECONDARY'
The targets which `.SECONDARY' depends on are treated as
intermediate files, except that they are never automatically
deleted. *Note Chains of Implicit Rules: Chained Rules.

`.SECONDARY' with no prerequisites marks all file targets mentioned
in the makefile as secondary.

and intermediate files are defined as:

Intermediate files are remade using their rules just like all other
files. But intermediate files are treated differently in two ways.

The first difference is what happens if the intermediate file does
not exist. If an ordinary file B does not exist, and `make' considers
---------
a target that depends on B, it invariably creates B and then updates
the target from B. But if B is an intermediate file, then `make' can
leave well enough alone. It won't bother updating B, or the ultimate
--------------------------
target, unless some prerequisite of B is newer than that target or
there is some other reason to update that target.

The second difference is that if `make' _does_ create B in order to
update something else, it deletes B later on after it is no longer
needed. Therefore, an intermediate file which did not exist before
`make' also does not exist after `make'. `make' reports the deletion
to you by printing a `rm -f' command showing which file it is deleting.

This is what caused the dependencies not to run. SECONDARY was added by
you in 2000. What I don't understand is what else we have lost by
removing it:

revision 1.27
date: 2000/12/14 22:30:56; author: petere; state: Exp; lines: +2 -1
Merge functions and operators chapters. Lots of updates.

--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +