From 586daef9bcbefc234734ea3fc49da4db2083e723 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sat, 11 Feb 2006 19:02:21 +0000 Subject: Update copyright and license notices on all files. Added new file strcache.c to various non-UNIX makefiles and build scripts. --- TODO.private | 55 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 25 deletions(-) (limited to 'TODO.private') diff --git a/TODO.private b/TODO.private index 693b7bb..3901d03 100644 --- a/TODO.private +++ b/TODO.private @@ -41,17 +41,13 @@ port the current tests to whatever you do :). The Rest of the List -------------------- - 1) Allow variables/functions to expand to other make rules which are - then interpreted, with newlines handled correctly. This is a - biggee, and is on my plate. I already have partially-working code. - - 2) Option to check more than timestamps to determine if targets have + 1) Option to check more than timestamps to determine if targets have changed. This is also a very big one. It's _close_ to my plate :), and I have very definite ideas about how I would like it done. Please pick something else unless you must have this feature. If you try it, please work _extremely_ closely with me on it. - 2a) Possibly a special case of this is the .KEEP_STATE feature of Sun's + 1a) Possibly a special case of this is the .KEEP_STATE feature of Sun's make. Some great folks at W U. in Canada did an implementation of this for a class project. Their approach is reasonable and workable, but doesn't really fit into my ideas for #2. Maybe @@ -60,7 +56,7 @@ The Rest of the List [K R Praveen ] - 3) Currently you can use "%.foo %.bar : %.baz" to mean that one + 2) Currently you can use "%.foo %.bar : %.baz" to mean that one invocation of the rule builds both targets. GNU make needs a way to do that for explicit rules, too. I heard a rumor that some versions of make all you to say "a.foo + a.bar : a.baz" to do this (i.e., a @@ -68,25 +64,22 @@ The Rest of the List best syntax or not... what if you say "a.foo + a.bar a.bam : a.baz"; what does that mean? - 4) Multi-token pattern rule matching (allow %1/%2.c : %1/obj/%2.o, + 3) Multi-token pattern rule matching (allow %1/%2.c : %1/obj/%2.o, etc., or something like that). I have an implementation of this already, it just needs some refinement... maybe. Additionally I think it only works for static pattern rules; it might need to be fixed up to work with normal pattern rules, too. - 5) More robust clock skew detection algorithm: less false hits. I have - some notes on this from various discussions. - - 6) Provide MAKETARGETS and MAKEVARIABLES variables, containing the - names of the targets and variables defined in the makefile. + 4) Provide a .TARGETS variable, containing the names of the targets + defined in the makefile. - Actually, I now think a $(targets ...) function, at least, would be + Actually, I now think a $(targets ...) function, at least, might be better than a MAKETARGETS variable. The argument would be types of targets to list: "phony" is the most useful one. I suppose "default" might also be useful. Maybe some others; check the - bitfields to see what might be handy. This one is pretty easy. + bitfields to see what might be handy. - 7) Some sort of operating-system independent way of handling paths + 5) Some sort of operating-system independent way of handling paths would be outstanding, so makefiles can be written for UNIX, VMS, DOS, MS-Windows, Amiga, etc. with a minimum of specialization. @@ -95,18 +88,12 @@ The Rest of the List dunno, maybe something like $[...]? This may well not be worth doing until #1 is done. - 9) Right now the .PRECIOUS, .INTERMEDIATE, and .SECONDARY + 6) Right now the .PRECIOUS, .INTERMEDIATE, and .SECONDARY pseudo-targets have different capabilities. For example, .PRECIOUS can take a "%", the others can't. Etc. These should all work the same, insofar as that makes sense. -10) A syntax that specifies a build order _without_ implying a - dependency relationship. That is, a way to say "A must be built - before B" that doesn't force B to be built when A changes. This is - very important for parallel builds: sometimes you need some stuff - done first but you don't want to rebuild everything because of it. - -11) Improved debugging/logging/etc. capabilities. Part of this is done: + 7) Improved debugging/logging/etc. capabilities. Part of this is done: I introduced a number of debugging enhancements. Tim Magill is (I think) looking into options to control output more selectively. One thing I want to do in debugging is add a flag to allow debugging @@ -115,7 +102,7 @@ The Rest of the List you just can't figure it out. The way variables are expanded now means this isn't 100% trivial, but it probably won't be hard. -12) Integration of Guile as an embedded scripting language. This means: + 8) Integration of Guile as an embedded scripting language. This means: allowing Guile functions to be declared in makefiles somehow, then providing a syntax for invoking them. At least one formulation of that would have the function resolve to a string which would be @@ -138,3 +125,21 @@ The Rest of the List in the first place? Something to think about. + + +------------------------------------------------------------------------------- +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make is free software; you can redistribute it and/or modify it under the +terms of the GNU General Public License as published by the Free Software +Foundation; either version 2, or (at your option) any later version. + +GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +GNU Make; see the file COPYING. If not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -- cgit v1.2.3