Anonymous | Login | 2024-04-26 22:29 UTC |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Type | Date Submitted | Last Update | ||
0000332 | [1003.1(2008)/Issue 7] Shell and Utilities | Objection | Enhancement Request | 2010-10-12 00:23 | 2011-11-03 15:45 | ||
Reporter | dwheeler | View Status | public | ||||
Assigned To | ajosey | ||||||
Priority | normal | Resolution | Rejected | ||||
Status | Closed | ||||||
Name | David A. Wheeler | ||||||
Organization | |||||||
User Reference | |||||||
Section | make | ||||||
Page Number | 2912 | ||||||
Line Number | 95689 | ||||||
Interp Status | --- | ||||||
Final Accepted Text | |||||||
Summary | 0000332: Add automatic remaking of makefiles | ||||||
Description |
To be productive, many build processes automatically determine the dependencies of files, and then use make (or a make-like program) to build only what is necessary. Articles such as "Recursive Make Considered Harmful" by Peter Miller (http://miller.emu.id.au/pmiller/books/rmch/ [^] and http://aegis.sourceforge.net/auug97.pdf) [^] and "Advanced Auto-Dependency Generation" by Paul D. Smith (http://make.paulandlesley.org/autodep.html) [^] shows how to automatically determine dependencies as part of processing a makefile, but they require functionality *NOT* included in the POSIX specification. One key item is automatic remaking of makefiles, an already-proven ability: * This is already implemented in GNU make, see GNU make section 3.5 http://www.gnu.org/software/make/manual/make.html#Remaking-Makefiles [^] * This is implemented in FreeBSD (http://www.freebsd.org/cgi/man.cgi?query=make&sektion=1) [^] when .MAKEFILEDEPS is present (see its "Remaking Makefiles" section). FreeBSD only enables this capability with .MAKEFILEDEPS, but the proposal below does not require .MAKEFILEDEPS. Checking if a makefile needs updating requires very little time, accidentally *not* including the .MAKEFILEDEPS could cause mysterious problems, and there does not seem to be a reason for *not* doing this check. I did not include ".depend" as part of this (this is part of FreeBSD, but does not appear to be part of many other makes). Automatic rebuilding of makefiles is far more general than handling ".depend" as a special case. |
||||||
Desired Action |
After line 95689, add a new subsection: Remaking makefiles After reading in all makefiles (including via "include"), make must consider each as a goal target and attempt to update them (either via explicit or implicit rules), and then update them as necessary. After all makefiles have been checked, if any were changed (other than targets without prerequisites and without commands), make completely starts over again with a clean slate (this restart would include an attempt to re-update the makefiles). When remaking a source Makefile the options -t (touch), -q (query), and -n (no exec) are ignored, unless the source Makefile is specified explicitly as a target in the command line for make. |
||||||
Tags | No tags attached. | ||||||
Attached Files | |||||||
|
Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group |