The NetBSD Project

CVS log for src/usr.bin/make/targ.c

[BACK] Up to [cvs.NetBSD.org] / src / usr.bin / make

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.58 / (download) - annotate - [select for diffs], Sat Aug 23 15:05:40 2014 UTC (10 days, 11 hours ago) by christos
Branch: MAIN
CVS Tags: HEAD
Changes since 1.57: +9 -3 lines
Diff to previous 1.57 (colored)

PR/46096: Jarmo Jaakkola: fix many problems with dependencies (PR 49086)

Quite extensive rewrite of the Suff module.  Some ripple effects into
Parse and Targ modules too.

Dependency searches in general were made to honor explicit rules so
implicit and explicit sources are no longer applied on targets that
do not invoke a transformation rule.

Archive member dependency search was rewritten.  Explicit rules now
work properly and $(.TARGET) is set correctly.  POSIX semantics for
lib(member.o) and .s1.a rules are supported.

.SUFFIXES list maintenance was rewritten so that scanning of existing
rules works when suffixes are added and that clearing the suffix list
removes single suffix rules too.  Transformation rule nodes are now
mixed with regular nodes so they are available as regular targets too
if needed (especially after the known suffixes are cleared).

The .NULL target was documented in the manual page, especially to
warn against using it when a single suffix rule would work.
A deprecation warning was also added to the manual and make also
warns the user if it encounters .NULL.

Search for suffix rules no longer allows the explicit dependencies
to override the selected transformation rule.  A check is made in
the search that the transformation that would be tried does not
already exist in the chain.  This prevents getting stuck in an infinite
loop under specific circumstances.  Local variables are now set
before node's children are expanded so dynamic sources work in
multi-stage transformations.  Make_HandleUse() no longer expands
the added children for transformation nodes, preventing triple
expansion and allowing the Suff module to properly postpone their
expansion until proper values are set for the local variables.

Directory prefix is no longer removed from $(.PREFIX) if the target
is found via directory search.

The last rule defined is now used instead of the first one (POSIX
requirement) in case a rule is defined multiple times.  Everything
defined in the first instance is undone, but things added "globally"
are honored.  To implement this, each node tracks attribute bits
which have been set by special targets (global) instead of special
sources (local).  They also track dependencies that were added by
a rule with commands (local) instead of rule with no commands (global).

New attribute, OP_FROM_SYS_MK is introduced.  It is set on all targets
found in system makefiles so that they are not eligible to become
the main target.  We cannot just set OP_NOTMAIN because it is one of
the attributes inherited from transformation and .USE rules and would
make any eligible target that uses a built-in inference rule ineligible.

The $(.IMPSRC) local variable now works like in gmake: it is set to
the first prerequisite for explicit rules.  For implicit rules it
is still the implied source.

The manual page is improved regarding the fixed features.  Test cases
for the fixed problems are added.

Other improvements in the Suff module include:
  - better debug messages for transformation rule search (length of
    the chain is now visualized by indentation)
  - Suff structures are created, destroyed and moved around by a set
    of maintenance functions so their reference counts are easier
    to track (this also gets rid of a lot of code duplication)
  - some unreasonably long functions were split into smaller ones
  - many local variables had their names changed to describe their
    purpose instead of their type

Revision 1.57 / (download) - annotate - [select for diffs], Tue Jun 12 19:21:51 2012 UTC (2 years, 2 months ago) by joerg
Branch: MAIN
CVS Tags: yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-7-base, netbsd-7, dholland-make-base, agc-symver-base, agc-symver
Changes since 1.56: +6 -6 lines
Diff to previous 1.56 (colored)

Replace __dead, __unused and the various printf format attributes
with versions prefixed by MAKE_ATTR_* to avoid modifying the
implementation namespace. Make sure they are available in all places
using nonints.h to fix bootstrap on Linux.

Revision 1.56 / (download) - annotate - [select for diffs], Thu Nov 25 21:31:09 2010 UTC (3 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-mips64-premerge-20101231, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache
Changes since 1.55: +6 -5 lines
Diff to previous 1.55 (colored)

Instead of keeping around the mtime of the youngest child, keep a pointer
to it, so that we can print it when we do the out of date determination.

Revision 1.55 / (download) - annotate - [select for diffs], Fri Jan 23 21:26:30 2009 UTC (5 years, 7 months ago) by dsl
Branch: MAIN
CVS Tags: matt-premerge-20091211, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend
Changes since 1.54: +15 -15 lines
Diff to previous 1.54 (colored)

Change 'ClientData' to 'void *' so that relevant parameters can
be made 'const void *'.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Dec 13 15:19:29 2008 UTC (5 years, 8 months ago) by dsl
Branch: MAIN
Changes since 1.53: +15 -15 lines
Diff to previous 1.53 (colored)

Use NULL instead of -1 cast to the relavant type (usually via NIL).
This was a suggestion from christos - so blame him if there is a deep
reason for using -1 :-)

Revision 1.53 / (download) - annotate - [select for diffs], Mon Oct 6 22:09:21 2008 UTC (5 years, 10 months ago) by joerg
Branch: MAIN
CVS Tags: netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2
Changes since 1.52: +5 -5 lines
Diff to previous 1.52 (colored)

Don't use emalloc and friends directly, but call them consistently
bmake_malloc and friends. Implement them via macros for the native case
and provide fallback implementations otherwise. Avoid polluting the
namespace by not defining enomem globally. Don't bother to provide
strdup and strndup, they were only used for the estrdup and estrndup
comapt code.

This addresses the presence of emalloc in system libraries on A/UX and
resulted strange issues as reported by Timothy E. Larson.

Revision 1.52 / (download) - annotate - [select for diffs], Fri Feb 15 21:29:50 2008 UTC (6 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, mjf-devfs2-base, mjf-devfs2, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-nbase, hpcarm-cleanup-base
Changes since 1.51: +2 -5 lines
Diff to previous 1.51 (colored)

back all changes out until I fix it properly.

Revision 1.51 / (download) - annotate - [select for diffs], Thu Feb 14 22:11:20 2008 UTC (6 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: christos-broken
Changes since 1.50: +8 -5 lines
Diff to previous 1.50 (colored)

- use pid_t/size_t as appropriate instead of int.
- use %ld to print pids.
- fix a bit of lint.
- WARNS=4

Revision 1.50 / (download) - annotate - [select for diffs], Fri Dec 21 20:32:24 2007 UTC (6 years, 8 months ago) by dsl
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.49: +5 -3 lines
Diff to previous 1.49 (colored)

If make can't find a rule to create a file it needs to satisfy a rule
that came from .depend then just output a message and contine.

Revision 1.49 / (download) - annotate - [select for diffs], Thu Dec 21 20:05:37 2006 UTC (7 years, 8 months ago) by dsl
Branch: MAIN
CVS Tags: matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, hpcarm-cleanup, cube-autoconf-base, cube-autoconf
Branch point for: matt-armv6
Changes since 1.48: +4 -3 lines
Diff to previous 1.48 (colored)

Fix breakage of previous commit.

Revision 1.48 / (download) - annotate - [select for diffs], Wed Dec 20 20:46:35 2006 UTC (7 years, 8 months ago) by dsl
Branch: MAIN
Changes since 1.47: +3 -4 lines
Diff to previous 1.47 (colored)

Fix detection and reporting of dependency loops in parallel makes.
make's unit_tests should now run again.

Revision 1.47 / (download) - annotate - [select for diffs], Mon Dec 18 15:06:16 2006 UTC (7 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.46: +5 -5 lines
Diff to previous 1.46 (colored)

From Anon Ymous:
Removed two "(void)&" constructs as there is no setjmp() or vfork() insight.
Flagged a few parameters __unused so this will compile with -Wextra now.

Revision 1.46 / (download) - annotate - [select for diffs], Mon Dec 4 21:34:47 2006 UTC (7 years, 9 months ago) by dsl
Branch: MAIN
Changes since 1.45: +4 -5 lines
Diff to previous 1.45 (colored)

There really is no point calling estrdup() to get a copy of the makefile name
into every 'gnode' (aka target), instead just copy a pointer to the string
and avoid freeing the original name when we close the file.
I can't imagine any makefile set where this gives a larger footprint!

Revision 1.45 / (download) - annotate - [select for diffs], Fri Nov 17 22:07:39 2006 UTC (7 years, 9 months ago) by dsl
Branch: MAIN
CVS Tags: netbsd-4-base
Branch point for: netbsd-4
Changes since 1.44: +66 -316 lines
Diff to previous 1.44 (colored)

A rather large rototil in the way the parallel make code schedules jobs.
This gives a considerable speedup in the processing of .WAIT and .ORDER.
Both .WAIT and .ORDER stop both the commands of the node, and its dependant
nodes being built until the LH nodes are complete.
.WAIT only applies to the dependency line on which it appears, whereas
.ORDER applies globally between the two nodes.
In both cases dependant nodes can be built because other targets need them.
make now processes the target list left to right, scheduling child nodes
as they are needed to make other nodes (instead of attempting to generate
a bottom-up dependency graph at the start).  This means that 'make -j1'
will tend to build in the same order as a non-parallel make.
Note that:
    all: x y
    x: a .WAIT b
    y: b .WAIT a
does not generate a dependency loop.
But
    x: y
    .ORDER y x
does (unless something elswhere causes 'y' to be built).

Revision 1.44 / (download) - annotate - [select for diffs], Fri Oct 27 21:00:19 2006 UTC (7 years, 10 months ago) by dsl
Branch: MAIN
Changes since 1.43: +23 -23 lines
Diff to previous 1.43 (colored)

Since 'ClientData' is 'void *', nuke almost all the (ClientData) casts.

Revision 1.43 / (download) - annotate - [select for diffs], Sun Oct 15 08:38:22 2006 UTC (7 years, 10 months ago) by dsl
Branch: MAIN
Changes since 1.42: +49 -49 lines
Diff to previous 1.42 (colored)

Output all debug trace output through 'debug_file' defaulting to 'stdout'.
(Almost all the debug output went there, but some went to stderr.)
Split the parsing of -d (debug flags) out into its own routine.
Allow the output filename to be changed by specifying -dF<file> to create
a log file, or -dF+<file> to append to it. <file> may be stdout or stderr.
Also change so that -d-<flags> acts on <flags> locally but doesn't copy
them to MAKEFLAGS so they aren't inherited by child makes.
I'm not 100% happy with the command line syntax for the above, so they are
currently undocumented.

Revision 1.42 / (download) - annotate - [select for diffs], Sun Feb 26 22:45:46 2006 UTC (8 years, 6 months ago) by apb
Branch: MAIN
CVS Tags: chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Changes since 1.41: +323 -7 lines
Diff to previous 1.41 (colored)

Make ".WAIT" apply recursively to all children of nodes on the right
hand side of the .WAIT, except when the recursive interpretation would
cause a cycle in the dependency graph.

Discussed in tech-toolchain.  Reviewed by christos, sjg.

Revision 1.41 / (download) - annotate - [select for diffs], Sat Feb 11 20:19:36 2006 UTC (8 years, 6 months ago) by dsl
Branch: MAIN
Changes since 1.40: +6 -4 lines
Diff to previous 1.40 (colored)

Delete obsolete static defn.
Trace number of unmade children on pass 1

Revision 1.40 / (download) - annotate - [select for diffs], Sat Feb 11 18:37:36 2006 UTC (8 years, 6 months ago) by dsl
Branch: MAIN
Changes since 1.39: +8 -8 lines
Diff to previous 1.39 (colored)

Debug trace all the targets we are actually intending making.
De-optimise the getting of a job token so we don't re-order the job
list when there are no tokens.
This might have helped etc/Makefile, but isn't enough.

Revision 1.39 / (download) - annotate - [select for diffs], Sun Jan 8 17:43:31 2006 UTC (8 years, 7 months ago) by dsl
Branch: MAIN
Changes since 1.38: +13 -3 lines
Diff to previous 1.38 (colored)

Include the 'preds' and 'successors' in the diag output.
These are the values that are actually used to control what is built.
(I suspect .WAIT info added in the previous delta isn't always useful.)

Revision 1.38 / (download) - annotate - [select for diffs], Sun Jan 8 11:54:13 2006 UTC (8 years, 7 months ago) by dsl
Branch: MAIN
Changes since 1.37: +18 -7 lines
Diff to previous 1.37 (colored)

Include .WAIT in the debug output for dependency lists.

Revision 1.37 / (download) - annotate - [select for diffs], Mon Aug 8 16:42:54 2005 UTC (9 years ago) by christos
Branch: MAIN
Changes since 1.36: +13 -13 lines
Diff to previous 1.36 (colored)

From Max Okumoto:
- Remove casts to NULL.
- Remove space between cast and object.

Revision 1.36 / (download) - annotate - [select for diffs], Fri Aug 5 00:53:18 2005 UTC (9 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.35: +4 -4 lines
Diff to previous 1.35 (colored)

More KNF cleanups from Max Okumoto

Revision 1.35 / (download) - annotate - [select for diffs], Mon Jul 25 22:55:58 2005 UTC (9 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.34: +16 -16 lines
Diff to previous 1.34 (colored)

Whitespace KNF cleanup from Max Okumoto

Revision 1.34 / (download) - annotate - [select for diffs], Wed Feb 16 15:11:53 2005 UTC (9 years, 6 months ago) by christos
Branch: MAIN
CVS Tags: netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3
Changes since 1.33: +37 -37 lines
Diff to previous 1.33 (colored)

PR/29203, PR/29204: Max Okumoto: KNF changes to make [no functional changes]

Revision 1.33 / (download) - annotate - [select for diffs], Thu Jul 1 20:38:09 2004 UTC (10 years, 2 months ago) by jmc
Branch: MAIN
Changes since 1.32: +4 -8 lines
Diff to previous 1.32 (colored)

Change to use __unused instead and provide a compat definition in make.h if
not already defined from cdefs.h

Revision 1.32 / (download) - annotate - [select for diffs], Thu Jul 1 04:39:31 2004 UTC (10 years, 2 months ago) by jmc
Branch: MAIN
Changes since 1.31: +7 -3 lines
Diff to previous 1.31 (colored)

Add some checks for gcc around a few function declarations and note the
unused variables. Also fix a few other warnings that PR#22118 shows when
trying to compile bmake on non-NetBSD hosts

Revision 1.31 / (download) - annotate - [select for diffs], Fri May 7 00:04:40 2004 UTC (10 years, 3 months ago) by ross
Branch: MAIN
Changes since 1.30: +4 -4 lines
Diff to previous 1.30 (colored)

Simplify build, no functional changes.

Instead of adding MAKE_BOOTSTRAP for hosted environments, i.e., when
you want things simple, instead add MAKE_NATIVE to get those hugely
important features like __RCSID().

It's now possible to build make on some hosts with: cc *.c */*.c

Revision 1.30 / (download) - annotate - [select for diffs], Thu Aug 7 11:14:58 2003 UTC (11 years ago) by agc
Branch: MAIN
CVS Tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Changes since 1.29: +33 -3 lines
Diff to previous 1.29 (colored)

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22365, verified by myself.

Revision 1.29 / (download) - annotate - [select for diffs], Mon Jul 14 18:19:13 2003 UTC (11 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.28: +6 -6 lines
Diff to previous 1.28 (colored)

Pass WARNS=3

Revision 1.28 / (download) - annotate - [select for diffs], Sat Jun 15 18:24:58 2002 UTC (12 years, 2 months ago) by wiz
Branch: MAIN
CVS Tags: fvdl_fs64_base
Changes since 1.27: +64 -68 lines
Diff to previous 1.27 (colored)

Remove !__STDC__ stuff, de-__P(), ANSIfy, and de-register.

Revision 1.27 / (download) - annotate - [select for diffs], Wed Mar 20 18:10:31 2002 UTC (12 years, 5 months ago) by pk
Branch: MAIN
CVS Tags: netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001, netbsd-1-6
Changes since 1.26: +5 -3 lines
Diff to previous 1.26 (colored)

Xref: parse.c, rev 1.46; make.c, rev 1.23

In these revisions `::' dependency handling was simplified by not linking
the cohort nodes into the dependency graph. This broke dependency checking
on all but the first instance of a `::' target since all of the cohort nodes
now just form a collection of disconnected dependency graphs.

Fix this by keeping a back-reference in each cohort to its leader (the
first instance of a :: node with the same name) and a count of the number
of cohorts that need to be made before dependent nodes are scheduled.

Classically, we'd need six centurions for cohort, but in this case one
suffices...

Revision 1.26 / (download) - annotate - [select for diffs], Sun Feb 10 12:03:08 2002 UTC (12 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.25: +5 -3 lines
Diff to previous 1.25 (colored)

Targ_PrintType(): include .PHONY and .MADE attributes.

Revision 1.25 / (download) - annotate - [select for diffs], Sun Jan 27 01:50:55 2002 UTC (12 years, 7 months ago) by reinoud
Branch: MAIN
Changes since 1.24: +6 -6 lines
Diff to previous 1.24 (colored)

Fix major bug in make(1) ... due to shadowing of the dotLast path used for
the .DOTLAST primitive by a boolean variable with the same name, this whole
mechanism was broken ... it doesn't save much stat calls but it was wrong.

Thanks to Jason Thorpe for the other shadow-variable fixing patches he
made.

Revision 1.24 / (download) - annotate - [select for diffs], Mon Nov 12 01:33:49 2001 UTC (12 years, 9 months ago) by tv
Branch: MAIN
Changes since 1.23: +4 -3 lines
Diff to previous 1.23 (colored)

Add new make variable .ALLTARGETS, which lists all targets in the Makefile.
(Makes it possible to search the target list for particular things and
apply attributes to all the relevant targets.)

Revision 1.23 / (download) - annotate - [select for diffs], Mon Aug 20 12:00:56 2001 UTC (13 years ago) by wiz
Branch: MAIN
Changes since 1.22: +4 -4 lines
Diff to previous 1.22 (colored)

precede, not preceed.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Jul 3 18:08:51 2001 UTC (13 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.21: +4 -4 lines
Diff to previous 1.21 (colored)

add .USEBEFORE Attribute

Revision 1.21 / (download) - annotate - [select for diffs], Sun Jan 14 05:34:06 2001 UTC (13 years, 7 months ago) by christos
Branch: MAIN
Changes since 1.20: +7 -3 lines
Diff to previous 1.20 (colored)

- make the second list of commands override the first like gmake does
- remember where the first command definition occured so that we can debug
  things.

Revision 1.20 / (download) - annotate - [select for diffs], Thu Sep 16 00:54:15 1999 UTC (14 years, 11 months ago) by mycroft
Branch: MAIN
CVS Tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221, wrstuden-devbsize, netbsd-1-5-base, netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA, netbsd-1-5-ALPHA2, netbsd-1-5, minoura-xpg4dl-base, minoura-xpg4dl, comdex-fall-1999-base, comdex-fall-1999
Changes since 1.19: +5 -5 lines
Diff to previous 1.19 (colored)

Some minor cleanup of :: tests.

Revision 1.19 / (download) - annotate - [select for diffs], Wed Sep 15 10:47:45 1999 UTC (14 years, 11 months ago) by mycroft
Branch: MAIN
Changes since 1.18: +35 -7 lines
Diff to previous 1.18 (colored)

Rework how :: dependencies are handled.
Build a list of `cohorts' as before, but do *not* link each one into all the
parent nodes; instead, copy the `cohort' lists into the stream of targets to
be built inside Make_ExpandUse().  Also do the attribute propagation as a
separate pass after parsing.
This eliminates several O(n^2) algorithms.

Revision 1.18 / (download) - annotate - [select for diffs], Wed Sep 15 08:43:22 1999 UTC (14 years, 11 months ago) by mycroft
Branch: MAIN
Changes since 1.17: +13 -3 lines
Diff to previous 1.17 (colored)

Don't bother iterating through all the data structures to free(3) everything
right before exiting.
(The code is still present, `#ifdef CLEANUP', in case someone needs it...)

Revision 1.17 / (download) - annotate - [select for diffs], Wed Sep 15 02:56:35 1999 UTC (14 years, 11 months ago) by mycroft
Branch: MAIN
Changes since 1.16: +5 -5 lines
Diff to previous 1.16 (colored)

Replace the linear variable list in the GNode with a hash table.  Gives a
small (~10% on my machine) speedup building libc.
Changes by: perry (+ bug fix and minor change by me)
Reviewed by: mycroft sommerfeld

Revision 1.16 / (download) - annotate - [select for diffs], Wed Nov 11 19:37:06 1998 UTC (15 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: netbsd-1-4-base, netbsd-1-4-RELEASE, netbsd-1-4-PATCH003, netbsd-1-4-PATCH002, netbsd-1-4-PATCH001, netbsd-1-4
Changes since 1.15: +4 -5 lines
Diff to previous 1.15 (colored)

This patch fixes the problem introduced in the previous commit where
parents would be get remade, even if children were not really updated
by the commands executed for them. It also makes all the children have
the real modification time set if possible, so it should fix some other
timing weirdnesses...

- collapse childMade and make fields into flags and convert them to bits
  CHILDMADE and REMAKE
- introduce FORCE flag that gets set in all the parents of a child that
  has no sources and does not exist.
- set oodate if the FORCE flag is set, and not if CHILDMADE
- centralize the RECHECK into Make_Recheck() and use this in make.c and compat.c
- use Make_TimeStamp for all child -> parent timestamp propagations

Revision 1.15 / (download) - annotate - [select for diffs], Wed Feb 4 14:47:39 1998 UTC (16 years, 7 months ago) by christos
Branch: MAIN
Changes since 1.14: +5 -12 lines
Diff to previous 1.14 (colored)

Y2K fixes: use strftime(), and add a fake strftime() for systems that do
not have it.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Sep 28 03:31:12 1997 UTC (16 years, 11 months ago) by lukem
Branch: MAIN
CVS Tags: netbsd-1-3-base, netbsd-1-3-RELEASE, netbsd-1-3-PATCH001, netbsd-1-3-BETA
Branch point for: netbsd-1-3
Changes since 1.13: +6 -2 lines
Diff to previous 1.13 (colored)

wrap #include <sys/cdefs.h>, __RCSID(...) stuff in #ifndef MAKE_BOOTSTRAP

Revision 1.13 / (download) - annotate - [select for diffs], Tue Jul 1 21:17:42 1997 UTC (17 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.12: +3 -2 lines
Diff to previous 1.12 (colored)

Add WARNS=1
RCSID police

Revision 1.12 / (download) - annotate - [select for diffs], Fri May 2 14:24:33 1997 UTC (17 years, 4 months ago) by christos
Branch: MAIN
Changes since 1.11: +22 -2 lines
Diff to previous 1.11 (colored)

- Target searching addition:
	Make used to only use the search path for nodes that were pure
	sources (not targets of other sources). This has been corrected
	and now gnu-autoconf generated Makefiles work in directories other
	than the source one.

- Suffix transformation rescanning:
	Suffix transformations (.c.o:; cc ...) were only recognized in
	the past when both suffixes were members of the suffix list.
	Thus a sequence like:
		.z.b:
			echo ${.TARGET}
		.SUFFIXES: .z
	would cause .z.b: to be inserted as a regular target (and the main
	target in this case). Other make programs always add rules that
	start with a period in the transformation list and never consider
	them as targets. We cannot do that (consider .depend files) so we
	resort to scanning the list of the current targets every time a
	suffix gets added, and we mutate existing targets that are now
	valid transformation rules into transformation rules. If the
	transformed target was also the main target, we set the main target
	to be the next target in the targets list.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Feb 20 16:51:50 1997 UTC (17 years, 6 months ago) by christos
Branch: MAIN
Changes since 1.10: +5 -2 lines
Diff to previous 1.10 (colored)

Reported by cgd: fix .USE directive problems:
    1. ${.*} variables did not get expanded in dependencies.
    2. expanded ${.*} variables in .USE dependencies can cause tree
       restructuring; handle it.
    3. in compat mode, expand .USE before evaluating the list of targets,
       instead of doing .USE expansions on demand, because they can cause
       tree restructuring.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Nov 6 17:59:27 1996 UTC (17 years, 10 months ago) by christos
Branch: MAIN
Changes since 1.9: +11 -11 lines
Diff to previous 1.9 (colored)

- Merge in FreeBSD and Lite2 changes.
- Fix bug where a non-archive target with a .a suffix would always
  be considered to be out of date, since it does not have a TOC.

Revision 1.9 / (download) - annotate - [select for diffs], Fri Aug 30 17:59:43 1996 UTC (18 years ago) by thorpej
Branch: MAIN
Changes since 1.8: +6 -3 lines
Diff to previous 1.8 (colored)

Tidy up some RCS ids a bit.

Revision 1.8 / (download) - annotate - [select for diffs], Tue Aug 13 16:42:21 1996 UTC (18 years ago) by christos
Branch: MAIN
Changes since 1.7: +3 -3 lines
Diff to previous 1.7 (colored)

Add estrdup(), a checked version of strdup and use it.

Revision 1.7 / (download) - annotate - [select for diffs], Mon Apr 8 18:57:49 1996 UTC (18 years, 4 months ago) by jtc
Branch: MAIN
CVS Tags: netbsd-1-2-base, netbsd-1-2-RELEASE, netbsd-1-2-BETA
Branch point for: netbsd-1-2
Changes since 1.6: +4 -4 lines
Diff to previous 1.6 (colored)

Changed to use 1900 + tm_year instead of hardcoding "19" as the century.
From PR #2308 by Stephen J. Roznowski <sjr@zombie.ncsc.mil>.

Revision 1.6 / (download) - annotate - [select for diffs], Sat Dec 16 05:03:15 1995 UTC (18 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.5: +3 -2 lines
Diff to previous 1.5 (colored)

- Added .WAIT to synchronize between sources like other pmake variants.
- Updated documentation to include .ORDER .PARALLEL .NO_PARALLEL .NONPARALLEL

Revision 1.5 / (download) - annotate - [select for diffs], Wed Jun 14 15:20:08 1995 UTC (19 years, 2 months ago) by christos
Branch: MAIN
CVS Tags: netbsd-1-1-base, netbsd-1-1-RELEASE, netbsd-1-1-PATCH001, netbsd-1-1
Changes since 1.4: +3 -1 lines
Diff to previous 1.4 (colored)

- $NetBSD$ rcsids
- Fixed so that .[A-Z]* targets that do not match keywords are ignored as
  Posix mandates
- Added .PHONY target keyword

Revision 1.4 / (download) - annotate - [select for diffs], Mon Jun 6 22:45:47 1994 UTC (20 years, 3 months ago) by jtc
Branch: MAIN
CVS Tags: netbsd-1-0-base, netbsd-1-0-RELEASE, netbsd-1-0-PATCH1, netbsd-1-0-PATCH06, netbsd-1-0-PATCH05, netbsd-1-0-PATCH04, netbsd-1-0-PATCH03, netbsd-1-0-PATCH02, netbsd-1-0-PATCH0, netbsd-1-0
Changes since 1.3: +99 -27 lines
Diff to previous 1.3 (colored)

Fixes from Christos Zoulas, who used purify, objectcenter and testcenter
to find memory leaks and illegal memory accesses.

Revision 1.3 / (download) - annotate - [select for diffs], Sat Mar 5 00:35:13 1994 UTC (20 years, 6 months ago) by cgd
Branch: MAIN
Changes since 1.2: +10 -6 lines
Diff to previous 1.2 (colored)

fixes/improvements from Christos Zoulas <christos@deshaw.com>.

Revision 1.2 / (download) - annotate - [select for diffs], Sun Aug 1 18:11:39 1993 UTC (21 years, 1 month ago) by mycroft
Branch: MAIN
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 (colored)

Add RCS identifiers.

Revision 1.1 / (download) - annotate - [select for diffs], Sun Mar 21 09:45:37 1993 UTC (21 years, 5 months ago) by cgd
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>