home *** CD-ROM | disk | FTP | other *** search
- User-visible changes in GNU Make, excluding bug fixes, since version 3.05:
- ==========================================================================
-
- Version 3.58
-
- * Suffix rules may have dependencies (which are ignored).
-
- Version 3.57
-
- * Dependencies of the form `-lLIB' are searched for as /usr/local/lib/libLIB.a
- as well as libLIB.a in /usr/lib, /lib, the current directory, and VPATH.
-
- Version 3.55
-
- * There is now a Unix man page for GNU Make. It is certainly not a replacement
- for the Texinfo manual, but it documents the basic functionality and the
- switches. For full documentation, you should still read the Texinfo manual.
- Thanks to Dennis Morse of Stanford University for contributing the initial
- version of this.
-
- * Variables which are defined by default (e.g., `CC') will no longer be put
- into the environment for child processes. (If these variables are reset by the
- environment, makefiles, or the command line, they will still go into the
- environment.)
-
- * GNU Make will no longer go into an infinite loop when fed the horrid trash
- that passes for makefiles that `imake' produces (so you can compile X, despite
- the extreme stubbornness and irrationality of its maintainers).
-
- * There is no longer a warning for using the `vpath' directive with an explicit
- pathname (instead of a `%' pattern).
-
- Version 3.51
-
- * When removing intermediate files, only one `rm' command line is printed,
- listing all file names.
-
- * There are now automatic variables `$(^D)', `$(^F)', `$(?D)', and `$(?F)'.
- These are the directory-only and file-only versions of `$^' and `$?'.
-
- * Library dependencies given as `-lNAME' will use "libNAME.a" in the current
- directory if it exists.
-
- * The automatic variable `$($/)' is no longer defined.
-
- * Leading `+' characters on a command line make that line be executed even
- under -n, -t, or -q (as if the line contained `$(MAKE)').
-
- * For command lines containing `$(MAKE)', `${MAKE}', or leading `+' characters,
- only those lines are executed, not their entire rules.
- (This is how Unix make behaves for lines containing `$(MAKE)' or `${MAKE}'.)
-
- Version 3.50
-
- * Filenames in rules will now have ~ and ~USER expanded.
-
- * The `-p' output has been changed so it can be used as a makefile.
- (All information that isn't specified by makefiles is prefaced with comment
- characters.)
-
- Version 3.49
-
- * The % character can be quoted with backslash in implicit pattern rules,
- static pattern rules, `vpath' directives, and `patsubst', `filter', and
- `filter-out' functions. A warning is issued if a `vpath' directive's
- pattern contains no %.
-
- * The `wildcard' variable expansion function now expands ~ and ~USER.
-
- * Messages indicating failed commands now contain the target name:
- make: *** [target] Error 1
-
- * The `-p' output format has been changed somewhat to look more like
- makefile rules and to give all information that Make has about files.
-
- Version 3.48
-
- Version 3.47
-
- * The `-l' switch with no argument removes any previous load-average limit.
-
- * When the `-w' switch is in effect, and Make has updated makefiles,
- it will write a `Leaving directory' messagfe before re-executing itself.
- This makes the `directory change tracking' changes to Emacs's compilation
- commands work properly.
-
- Version 3.46
-
- * The automatic variable `$*' is now defined for explicit rules,
- as it is in Unix make.
-
- Version 3.45
-
- * The `-j' switch is now put in the MAKEFLAGS and MFLAGS variables when
- specified without an argument (indicating infinite jobs).
- The `-l' switch is not always put in the MAKEFLAGS and MFLAGS variables.
-
- * Make no longer checks hashed directories after running commands.
- The behavior implemented in 3.41 caused too much slowdown.
-
- Version 3.44
-
- * A dependency is NOT considered newer than its dependent if
- they have the same modification time. The behavior implemented
- in 3.43 conflicts with RCS.
-
- Version 3.43
-
- * Dependency loops are no longer fatal errors.
-
- * A dependency is considered newer than its dependent if
- they have the same modification time.
-
- Version 3.42
-
- * The variables F77 and F77FLAGS are now set by default to $(FC) and
- $(FFLAGS). Makefiles designed for System V make may use these variables in
- explicit rules and expect them to be set. Unfortunately, there is no way to
- make setting these affect the Fortran implicit rules unless FC and FFLAGS
- are not used (and these are used by BSD make).
-
- Version 3.41
-
- * Make now checks to see if its hashed directories are changed by commands.
- Other makes that hash directories (Sun, 4.3 BSD) don't do this.
-
- Version 3.39
-
- * The `shell' function no longer captures standard error output.
-
- Version 3.32
-
- * A file beginning with a dot can be the default target if it also contains
- a slash (e.g., `../bin/foo'). (Unix make allows this as well.)
-
- Version 3.31
-
- * Archive member names are truncated to 15 characters.
-
- * Yet more USG stuff.
-
- * Minimal support for Microport System V (a 16-bit machine and a
- brain-damaged compiler). This has even lower priority than other USG
- support, so if it gets beyond trivial, I will take it out completely.
-
- * Revamped default implicit rules (not much visible change).
-
- * The -d and -p options can come from the environment.
-
- Version 3.30
-
- * Improved support for USG and HPUX (hopefully).
-
- * A variable reference like `$(foo:a=b)', if `a' contains a `%', is
- equivalent to `$(patsubst a,b,$(foo))'.
-
- * Defining .DEFAULT with no deps or commands clears its commands.
-
- * New default implicit rules for .S (cpp, then as), and .sh (copy and make
- executable). All default implicit rules that use cpp (even indirectly), use
- $(CPPFLAGS).
-
- Version 3.29
-
- * Giving the -j option with no arguments gives you infinite jobs.
-
- Version 3.28
-
- * New option: "-l LOAD" says not to start any new jobs while others are
- running if the load average is not below LOAD (a floating-point number).
-
- * There is support in place for implementations of remote command execution
- in Make. See the file remote.c.
-
- Version 3.26
-
- * No more than 10 directories will be kept open at once.
- (This number can be changed by redefining MAX_OPEN_DIRECTORIES in dir.c.)
-
- Version 3.25
-
- * Archive files will have their modification times recorded before doing
- anything that might change their modification times by updating an archive
- member.
-
- Version 3.20
-
- * The `MAKELEVEL' variable is defined for use by makefiles.
-
- Version 3.19
-
- * The recursion level indications in error messages are much shorter than
- they were in version 3.14.
-
- Version 3.18
-
- * Leading spaces before directives are ignored (as documented).
-
- * Included makefiles can determine the default goal target.
- (System V Make does it this way, so we are being compatible).
-
- Version 3.14.
-
- * Variables that are defaults built into Make will not be put in the
- environment for children. This just saves some environment space and,
- except under -e, will be transparent to sub-makes.
-
- * Error messages from sub-makes will indicate the level of recursion.
-
- * Hopefully some speed-up for large directories due to a change in the
- directory hashing scheme.
-
- * One child will always get a standard input that is usable.
-
- * Default makefiles that don't exist will be remade and read in.
-
- Version 3.13.
-
- * Count parentheses inside expansion function calls so you can
- have nested calls: `$(sort $(foreach x,a b,$(x)))'.
-
- Version 3.12.
-
- * Several bug fixes, including USG and Sun386i support.
-
- * `shell' function to expand shell commands a la `
-
- * If the `-d' flag is given, version information will be printed.
-
- * The `-c' option has been renamed to `-C' for compatibility with tar.
-
- * The `-p' option no longer inhibits other normal operation.
-
- * Makefiles will be updated and re-read if necessary.
-
- * Can now run several commands at once (parallelism), -j option.
-
- * Error messages will contain the level of Make recursion, if any.
-
- * The `MAKEFLAGS' and `MFLAGS' variables will be scanned for options after
- makefiles are read.
-
- * A double-colon rule with no dependencies will always have its commands run.
- (This is how both the BSD and System V versions Make do it.)
-
- Version 3.05
-
- Local Variables:
- version-control: never
- End:
-