~ubuntu-branches/ubuntu/utopic/gridengine/utopic

« back to all changes in this revision

Viewing changes to source/3rdparty/qmake/NEWS

  • Committer: Bazaar Package Importer
  • Author(s): Mark Hymers
  • Date: 2008-06-25 22:36:13 UTC
  • Revision ID: james.westby@ubuntu.com-20080625223613-tvd9xlhuoct9kyhm
Tags: upstream-6.2~beta2
ImportĀ upstreamĀ versionĀ 6.2~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
GNU make NEWS                                               -*-indented-text-*-
 
2
  History of user-visible changes.
 
3
  17 Sep 1999
 
4
 
 
5
Copyright (C) 1992,93,94,95,96,97,98,1999 Free Software Foundation, Inc.
 
6
See the end for copying conditions.
 
7
 
 
8
All changes mentioned here are more fully described in the GNU make
 
9
manual, which is contained in this distribution as the file make.texinfo.
 
10
 
 
11
Please send GNU make bug reports to bug-make@gnu.org.
 
12
See the README file and the GNU make manual for details on sending bug
 
13
reports.
 
14
 
 
15
Version 3.78
 
16
 
 
17
* Two new functions, $(error ...) and $(warning ...) are available.  The
 
18
  former will cause make to fail and exit immediately upon expansion of
 
19
  the function, with the text provided as the error message.  The latter
 
20
  causes the text provided to be printed as a warning message, but make
 
21
  proceeds normally.
 
22
 
 
23
* A new function $(call ...) is available.  This allows users to create
 
24
  their own parameterized macros and invoke them later.  Original
 
25
  implementation of this function was provided by Han-Wen Nienhuys
 
26
  <hanwen@cs.uu.nl>.
 
27
 
 
28
* A new function $(if ...) is available.  It provides if-then-else
 
29
  capabilities in a builtin function.  Original implementation of this
 
30
  function was provided by Han-Wen Nienhuys <hanwen@cs.uu.nl>.
 
31
 
 
32
* Make defines a new variable, .LIBPATTERNS.  This variable controls how
 
33
  library dependency expansion (dependencies like ``-lfoo'') is performed.
 
34
 
 
35
* Make accepts CRLF sequences as well as traditional LF, for
 
36
  compatibility with makefiles created on other operating systems.
 
37
 
 
38
* Make accepts a new option: -R, or --no-builtin-variables.  This option
 
39
  disables the definition of the rule-specific builtin variables (CC,
 
40
  LD, AR, etc.).  Specifying this option forces -r (--no-builtin-rules)
 
41
  as well.
 
42
 
 
43
* A "job server" feature, suggested by Howard Chu <hyc@highlandsun.com>.
 
44
 
 
45
  On systems that support POSIX pipe(2) semantics, GNU make can now pass
 
46
  -jN options to submakes rather than forcing them all to use -j1.  The
 
47
  top make and all its sub-make processes use a pipe to communicate with
 
48
  each other to ensure that no more than N jobs are started across all
 
49
  makes.  To get the old behavior of -j back, you can configure make
 
50
  with the --disable-job-server option.
 
51
 
 
52
* The confusing term "dependency" has been replaced by the more accurate
 
53
  and standard term "prerequisite", both in the manual and in all GNU make
 
54
  output.
 
55
 
 
56
* GNU make supports the "big archive" library format introduced in AIX 4.3.
 
57
 
 
58
* GNU make supports large files on AIX, HP-UX, and IRIX.  These changes
 
59
  were provided by Paul Eggert <eggert@twinsun.com>.  (Large file
 
60
  support for Solaris and Linux was introduced in 3.77, but the
 
61
  configuration had issues: these have also been resolved).
 
62
 
 
63
* The Windows 95/98/NT (W32) version of GNU make now has native support
 
64
  for the Cygnus Cygwin release B20.1 shell (bash).
 
65
 
 
66
* The GNU make regression test suite, long available separately "under
 
67
  the table", has been integrated into the release.  You can invoke it
 
68
  by running "make check" in the distribution.  Note that it requires
 
69
  Perl (either Perl 4 or Perl 5) to run.
 
70
 
 
71
Version 3.77
 
72
 
 
73
* Implement BSD make's "?=" variable assignment operator.  The variable
 
74
  is assigned the specified value only if that variable is not already
 
75
  defined.
 
76
 
 
77
* Make defines a new variable, "CURDIR", to contain the current working
 
78
  directory (after the -C option, if any, has been processed).
 
79
  Modifying this variable has no effect on the operation of make.
 
80
 
 
81
* Make defines a new default RCS rule, for new-style master file
 
82
  storage: ``% :: RCS/%'' (note no ``,v'' suffix).
 
83
 
 
84
  Make defines new default rules for DOS-style C++ file naming
 
85
  conventions, with ``.cpp'' suffixes.  All the same rules as for
 
86
  ``.cc'' and ``.C'' suffixes are provided, along with LINK.cpp and
 
87
  COMPILE.cpp macros (which default to the same value as LINK.cc and
 
88
  COMPILE.cc).  Note CPPFLAGS is still C preprocessor flags!  You should
 
89
  use CXXFLAGS to change C++ compiler flags.
 
90
 
 
91
* A new feature, "target-specific variable values", has been added.
 
92
  This is a large change so please see the appropriate sections of the
 
93
  manual for full details.  Briefly, syntax like this:
 
94
 
 
95
    TARGET: VARIABLE = VALUE
 
96
 
 
97
  defines VARIABLE as VALUE within the context of TARGET.  This is
 
98
  similar to SunOS make's "TARGET := VARIABLE = VALUE" feature.  Note
 
99
  that the assignment may be of any type, not just recursive, and that
 
100
  the override keyword is available.
 
101
 
 
102
  COMPATIBILITY: This new syntax means that if you have any rules where
 
103
  the first or second dependency has an equal sign (=) in its name,
 
104
  you'll have to escape them with a backslash: "foo : bar\=baz".
 
105
  Further, if you have any dependencies which already contain "\=",
 
106
  you'll have to escape both of them: "foo : bar\\\=baz".
 
107
 
 
108
* A new appendix listing the most common error and warning messages
 
109
  generated by GNU make, with some explanation, has been added to the
 
110
  GNU make User's Manual.
 
111
 
 
112
* Updates to the GNU make Customs library support (see README.customs).
 
113
 
 
114
* Updates to the Windows 95/NT port from Rob Tulloh (see README.W32),
 
115
  and to the DOS port from Eli Zaretski (see README.DOS).
 
116
 
 
117
Version 3.76.1
 
118
 
 
119
* Small (but serious) bug fix.  Quick rollout to get into the GNU source CD.
 
120
 
 
121
Version 3.76
 
122
 
 
123
* GNU make now uses automake to control Makefile.in generation.  This
 
124
  should make it more consistent with the GNU standards.
 
125
 
 
126
* VPATH functionality has been changed to incorporate the VPATH+ patch,
 
127
  previously maintained by Paul Smith <psmith@baynetworks.com>.  See the
 
128
  manual.
 
129
 
 
130
* Make defines a new variable, `MAKECMDGOALS', to contain the goals that
 
131
  were specified on the command line, if any.  Modifying this variable
 
132
  has no effect on the operation of make.
 
133
 
 
134
* A new function, `$(wordlist S,E,TEXT)', is available: it returns a
 
135
  list of words from number S to number E (inclusive) of TEXT.
 
136
 
 
137
* Instead of an error, detection of future modification times gives a
 
138
  warning and continues.  The warning is repeated just before GNU make
 
139
  exits, so it is less likely to be lost.
 
140
 
 
141
* Fix the $(basename) and $(suffix) functions so they only operate on
 
142
  the last filename, not the entire string:
 
143
 
 
144
      Command              Old Result             New Result
 
145
      -------              ----------             ----------
 
146
    $(basename a.b)        a                      a
 
147
    $(basename a.b/c)      a                      a.b/c
 
148
    $(suffix a.b)          b                      b
 
149
    $(suffix a.b/c)        b/c                    <empty>
 
150
 
 
151
* The $(strip) function now removes newlines as well as TABs and spaces.
 
152
 
 
153
* The $(shell) function now changes CRLF (\r\n) pairs to a space as well
 
154
  as newlines (\n).
 
155
 
 
156
* Updates to the Windows 95/NT port from Rob Tulloh (see README.W32).
 
157
 
 
158
* Eli Zaretskii has updated the port to 32-bit protected mode on MSDOS
 
159
  and MS-Windows, building with the DJGPP v2 port of GNU C/C++ compiler
 
160
  and utilities.  See README.DOS for details, and direct all questions
 
161
  concerning this port to Eli Zaretskii <eliz@is.elta.co.il> or DJ
 
162
  Delorie <dj@delorie.com>.
 
163
 
 
164
* John W. Eaton has updated the VMS port to support libraries and VPATH.
 
165
 
 
166
Version 3.75
 
167
 
 
168
* The directory messages printed by `-w' and implicitly in sub-makes,
 
169
  are now omitted if Make runs no commands and has no other messages to print.
 
170
 
 
171
* Make now detects files that for whatever reason have modification times
 
172
  in the future and gives an error.  Files with such impossible timestamps
 
173
  can result from unsynchronized clocks, or archived distributions
 
174
  containing bogus timestamps; they confuse Make's dependency engine
 
175
  thoroughly.
 
176
 
 
177
* The new directive `sinclude' is now recognized as another name for
 
178
  `-include', for compatibility with some other Makes.
 
179
 
 
180
* Aaron Digulla has contributed a port to AmigaDOS.  See README.Amiga for
 
181
  details, and direct all Amiga-related questions to <digulla@fh-konstanz.de>.
 
182
 
 
183
* Rob Tulloh of Tivoli Systems has contributed a port to Windows NT or 95.
 
184
  See README.W32 for details, and direct all Windows-related questions to
 
185
  <rob_tulloh@tivoli.com>.
 
186
 
 
187
Version 3.73
 
188
 
 
189
* Converted to use Autoconf version 2, so `configure' has some new options.
 
190
  See INSTALL for details.
 
191
 
 
192
* You can now send a SIGUSR1 signal to Make to toggle printing of debugging
 
193
  output enabled by -d, at any time during the run.
 
194
 
 
195
Version 3.72
 
196
 
 
197
* DJ Delorie has ported Make to MS-DOS using the GO32 extender.
 
198
  He is maintaining the DOS port, not the GNU Make maintainer;
 
199
  please direct bugs and questions for DOS to <djgpp@sun.soe.clarkson.edu>.
 
200
  MS-DOS binaries are available for FTP from ftp.simtel.net in
 
201
  /pub/simtelnet/gnu/djgpp/.
 
202
 
 
203
* The `MAKEFLAGS' variable (in the environment or in a makefile) can now
 
204
  contain variable definitions itself; these are treated just like
 
205
  command-line variable definitions.  Make will automatically insert any
 
206
  variable definitions from the environment value of `MAKEFLAGS' or from
 
207
  the command line, into the `MAKEFLAGS' value exported to children.  The
 
208
  `MAKEOVERRIDES' variable previously included in the value of `$(MAKE)'
 
209
  for sub-makes is now included in `MAKEFLAGS' instead.  As before, you can
 
210
  reset `MAKEOVERRIDES' in your makefile to avoid putting all the variables
 
211
  in the environment when its size is limited.
 
212
 
 
213
* If `.DELETE_ON_ERROR' appears as a target, Make will delete the target of
 
214
  a rule if it has changed when its commands exit with a nonzero status,
 
215
  just as when the commands get a signal.
 
216
 
 
217
* The automatic variable `$+' is new.  It lists all the dependencies like
 
218
  `$^', but preserves duplicates listed in the makefile.  This is useful
 
219
  for linking rules, where library files sometimes need to be listed twice
 
220
  in the link order.
 
221
 
 
222
* You can now specify the `.IGNORE' and `.SILENT' special targets with
 
223
  dependencies to limit their effects to those files.  If a file appears as
 
224
  a dependency of `.IGNORE', then errors will be ignored while running the
 
225
  commands to update that file.  Likewise if a file appears as a dependency
 
226
  of `.SILENT', then the commands to update that file will not be printed
 
227
  before they are run.  (This change was made to conform to POSIX.2.)
 
228
 
 
229
Version 3.71
 
230
 
 
231
* The automatic variables `$(@D)', `$(%D)', `$(*D)', `$(<D)', `$(?D)', and
 
232
  `$(^D)' now omit the trailing slash from the directory name.  (This change
 
233
  was made to comply with POSIX.2.)
 
234
 
 
235
* The source distribution now includes the Info files for the Make manual.
 
236
  There is no longer a separate distribution containing Info and DVI files.
 
237
 
 
238
* You can now set the variables `binprefix' and/or `manprefix' in
 
239
  Makefile.in (or on the command line when installing) to install GNU make
 
240
  under a name other than `make' (i.e., ``make binprefix=g install''
 
241
  installs GNU make as `gmake').
 
242
 
 
243
* The built-in Texinfo rules use the new variables `TEXI2DVI_FLAGS' for
 
244
  flags to the `texi2dvi' script, and `MAKEINFO_FLAGS' for flags to the
 
245
  Makeinfo program.
 
246
 
 
247
* The exit status of Make when it runs into errors is now 2 instead of 1.
 
248
  The exit status is 1 only when using -q and some target is not up to date.
 
249
  (This change was made to comply with POSIX.2.)
 
250
 
 
251
Version 3.70
 
252
 
 
253
* It is no longer a fatal error to have a NUL character in a makefile.
 
254
  You should never put a NUL in a makefile because it can have strange
 
255
  results, but otherwise empty lines full of NULs (such as produced by
 
256
  the `xmkmf' program) will always work fine.
 
257
 
 
258
* The error messages for nonexistent included makefiles now refer to the
 
259
  makefile name and line number where the `include' appeared, so Emacs's
 
260
  C-x ` command takes you there (in case it's a typo you need to fix).
 
261
 
 
262
Version 3.69
 
263
 
 
264
* Implicit rule search for archive member references is now done in the
 
265
  opposite order from previous versions: the whole target name `LIB(MEM)'
 
266
  first, and just the member name and parentheses `(MEM)' second.
 
267
 
 
268
* Make now gives an error for an unterminated variable or function reference.
 
269
  For example, `$(foo' with no matching `)' or `${bar' with no matching `}'.
 
270
 
 
271
* The new default variable `MAKE_VERSION' gives the version number of
 
272
  Make, and a string describing the remote job support compiled in (if any).
 
273
  Thus the value (in this release) is something like `3.69' or `3.69-Customs'.
 
274
 
 
275
* Commands in an invocation of the `shell' function are no longer run with
 
276
  a modified environment like target commands are.  As in versions before
 
277
  3.68, they now run with the environment that `make' started with.  We
 
278
  have reversed the change made in version 3.68 because it turned out to
 
279
  cause a paradoxical situation in cases like:
 
280
 
 
281
        export variable = $(shell echo value)
 
282
 
 
283
  When Make attempted to put this variable in the environment for a target
 
284
  command, it would try expand the value by running the shell command
 
285
  `echo value'.  In version 3.68, because it constructed an environment
 
286
  for that shell command in the same way, Make would begin to go into an
 
287
  infinite loop and then get a fatal error when it detected the loop.
 
288
 
 
289
* The commands given for `.DEFAULT' are now used for phony targets with no
 
290
  commands.
 
291
 
 
292
Version 3.68
 
293
 
 
294
* You can list several archive member names inside parenthesis:
 
295
  `lib(mem1 mem2 mem3)' is equivalent to `lib(mem1) lib(mem2) lib(mem3)'.
 
296
 
 
297
* You can use wildcards inside archive member references.  For example,
 
298
  `lib(*.o)' expands to all existing members of `lib' whose names end in
 
299
  `.o' (e.g. `lib(a.o) lib(b.o)'); `*.a(*.o)' expands to all such members
 
300
  of all existing files whose names end in `.a' (e.g. `foo.a(a.o)
 
301
  foo.a(b.o) bar.a(c.o) bar.a(d.o)'.
 
302
 
 
303
* A suffix rule `.X.a' now produces two pattern rules:
 
304
        (%.o): %.X      # Previous versions produced only this.
 
305
        %.a: %.X        # Now produces this as well, just like other suffixes.
 
306
 
 
307
* The new flag `--warn-undefined-variables' says to issue a warning message
 
308
  whenever Make expands a reference to an undefined variable.
 
309
 
 
310
* The new `-include' directive is just like `include' except that there is
 
311
  no error (not even a warning) for a nonexistent makefile.
 
312
 
 
313
* Commands in an invocation of the `shell' function are now run with a
 
314
  modified environment like target commands are, so you can use `export' et
 
315
  al to set up variables for them.  They used to run with the environment
 
316
  that `make' started with.
 
317
 
 
318
Version 3.66
 
319
 
 
320
* `make --version' (or `make -v') now exits immediately after printing
 
321
  the version number.
 
322
 
 
323
Version 3.65
 
324
 
 
325
* Make now supports long-named members in `ar' archive files.
 
326
 
 
327
Version 3.64
 
328
 
 
329
* Make now supports the `+=' syntax for a variable definition which appends
 
330
  to the variable's previous value.  See the section `Appending More Text
 
331
  to Variables' in the manual for full details.
 
332
 
 
333
* The new option `--no-print-directory' inhibits the `-w' or
 
334
  `--print-directory' feature.  Make turns on `--print-directory'
 
335
  automatically if you use `-C' or `--directory', and in sub-makes; some
 
336
  users have found this behavior undesirable.
 
337
 
 
338
* The built-in implicit rules now support the alternative extension
 
339
  `.txinfo' for Texinfo files, just like `.texinfo' and `.texi'.
 
340
 
 
341
Version 3.63
 
342
 
 
343
* Make now uses a standard GNU `configure' script.  See the new file
 
344
  INSTALL for the new (and much simpler) installation procedure.
 
345
 
 
346
* There is now a shell script to build Make the first time, if you have no
 
347
  other `make' program.  `build.sh' is created by `configure'; see README.
 
348
 
 
349
* GNU Make now completely conforms to the POSIX.2 specification for `make'.
 
350
 
 
351
* Elements of the `$^' and `$?' automatic variables that are archive
 
352
  member references now list only the member name, as in Unix and POSIX.2.
 
353
 
 
354
* You should no longer ever need to specify the `-w' switch, which prints
 
355
  the current directory before and after Make runs.  The `-C' switch to
 
356
  change directory, and recursive use of Make, now set `-w' automatically.
 
357
 
 
358
* Multiple double-colon rules for the same target will no longer have their
 
359
  commands run simultaneously under -j, as this could result in the two
 
360
  commands trying to change the file at the same time and interfering with
 
361
  one another.
 
362
 
 
363
* The `SHELL' variable is now never taken from the environment.
 
364
  Each makefile that wants a shell other than the default (/bin/sh) must
 
365
  set SHELL itself.  SHELL is always exported to child processes.
 
366
  This change was made for compatibility with POSIX.2.
 
367
 
 
368
* Make now accepts long options.  There is now an informative usage message
 
369
  that tells you what all the options are and what they do.  Try `make --help'.
 
370
 
 
371
* There are two new directives: `export' and `unexport'.  All variables are
 
372
  no longer automatically put into the environments of the commands that
 
373
  Make runs.  Instead, only variables specified on the command line or in
 
374
  the environment are exported by default.  To export others, use:
 
375
        export VARIABLE
 
376
  or you can define variables with:
 
377
        export VARIABLE = VALUE
 
378
  or:
 
379
        export VARIABLE := VALUE
 
380
  You can use just:
 
381
        export
 
382
  or:
 
383
        .EXPORT_ALL_VARIABLES:
 
384
  to get the old behavior.  See the node `Variables/Recursion' in the manual
 
385
  for a full description.
 
386
 
 
387
* The commands from the `.DEFAULT' special target are only applied to
 
388
  targets which have no rules at all, not all targets with no commands.
 
389
  This change was made for compatibility with Unix make.
 
390
 
 
391
* All fatal error messages now contain `***', so they are easy to find in
 
392
  compilation logs.
 
393
 
 
394
* Dependency file names like `-lNAME' are now replaced with the actual file
 
395
  name found, as with files found by normal directory search (VPATH).
 
396
  The library file `libNAME.a' may now be found in the current directory,
 
397
  which is checked before VPATH; the standard set of directories (/lib,
 
398
  /usr/lib, /usr/local/lib) is now checked last.
 
399
  See the node `Libraries/Search' in the manual for full details.
 
400
 
 
401
* A single `include' directive can now specify more than one makefile to
 
402
  include, like this:
 
403
        include file1 file2
 
404
  You can also use shell file name patterns in an `include' directive:
 
405
        include *.mk
 
406
 
 
407
* The default directories to search for included makefiles, and for
 
408
  libraries specified with `-lNAME', are now set by configuration.
 
409
 
 
410
* You can now use blanks as well as colons to separate the directories in a
 
411
  search path for the `vpath' directive or the `VPATH' variable.
 
412
 
 
413
* You can now use variables and functions in the left hand side of a
 
414
  variable assignment, as in "$(foo)bar = value".
 
415
 
 
416
* The `MAKE' variable is always defined as `$(MAKE_COMMAND) $(MAKEOVERRIDES)'.
 
417
  The `MAKE_COMMAND' variable is now defined to the name with which make
 
418
  was invoked.
 
419
 
 
420
* The built-in rules for C++ compilation now use the variables `$(CXX)' and
 
421
  `$(CXXFLAGS)' instead of `$(C++)' and `$(C++FLAGS)'.  The old names had
 
422
  problems with shells that cannot have `+' in environment variable names.
 
423
 
 
424
* The value of a recursively expanded variable is now expanded when putting
 
425
  it into the environment for child processes.  This change was made for
 
426
  compatibility with Unix make.
 
427
 
 
428
* A rule with no targets before the `:' is now accepted and ignored.
 
429
  This change was made for compatibility with SunOS 4 make.
 
430
  We do not recommend that you write your makefiles to take advantage of this.
 
431
 
 
432
* The `-I' switch can now be used in MAKEFLAGS, and are put there
 
433
  automatically just like other switches.
 
434
 
 
435
Version 3.61
 
436
 
 
437
* Built-in rules for C++ source files with the `.C' suffix.
 
438
  We still recommend that you use `.cc' instead.
 
439
 
 
440
* If commands are given too many times for a single target,
 
441
  the last set given is used, and a warning message is printed.
 
442
 
 
443
* Error messages about makefiles are in standard GNU error format,
 
444
  so C-x ` in Emacs works on them.
 
445
 
 
446
* Dependencies of pattern rules which contain no % need not actually exist
 
447
  if they can be created (just like dependencies which do have a %).
 
448
 
 
449
Version 3.60
 
450
 
 
451
* A message is always printed when Make decides there is nothing to be done.
 
452
  It used to be that no message was printed for top-level phony targets
 
453
  (because "`phony' is up to date" isn't quite right).  Now a different
 
454
  message "Nothing to be done for `phony'" is printed in that case.
 
455
 
 
456
* Archives on AIX now supposedly work.
 
457
 
 
458
* When the commands specified for .DEFAULT are used to update a target,
 
459
  the $< automatic variable is given the same value as $@ for that target.
 
460
  This is how Unix make behaves, and this behavior is mandated by POSIX.2.
 
461
 
 
462
Version 3.59
 
463
 
 
464
* The -n, -q, and -t options are not put in the `MAKEFLAGS' and `MFLAG'
 
465
  variables while remaking makefiles, so recursive makes done while remaking
 
466
  makefiles will behave properly.
 
467
 
 
468
* If the special target `.NOEXPORT' is specified in a makefile,
 
469
  only variables that came from the environment and variables
 
470
  defined on the command line are exported.
 
471
 
 
472
Version 3.58
 
473
 
 
474
* Suffix rules may have dependencies (which are ignored).
 
475
 
 
476
Version 3.57
 
477
 
 
478
* Dependencies of the form `-lLIB' are searched for as /usr/local/lib/libLIB.a
 
479
  as well as libLIB.a in /usr/lib, /lib, the current directory, and VPATH.
 
480
 
 
481
Version 3.55
 
482
 
 
483
* There is now a Unix man page for GNU Make.  It is certainly not a replacement
 
484
for the Texinfo manual, but it documents the basic functionality and the
 
485
switches.  For full documentation, you should still read the Texinfo manual.
 
486
Thanks to Dennis Morse of Stanford University for contributing the initial
 
487
version of this.
 
488
 
 
489
* Variables which are defined by default (e.g., `CC') will no longer be put
 
490
into the environment for child processes.  (If these variables are reset by the
 
491
environment, makefiles, or the command line, they will still go into the
 
492
environment.)
 
493
 
 
494
* Makefiles which have commands but no dependencies (and thus are always
 
495
  considered out of date and in need of remaking), will not be remade (if they
 
496
  were being remade only because they were makefiles).  This means that GNU
 
497
  Make will no longer go into an infinite loop when fed the makefiles that
 
498
  `imake' (necessary to build X Windows) produces.
 
499
 
 
500
* There is no longer a warning for using the `vpath' directive with an explicit
 
501
pathname (instead of a `%' pattern).
 
502
 
 
503
Version 3.51
 
504
 
 
505
* When removing intermediate files, only one `rm' command line is printed,
 
506
listing all file names.
 
507
 
 
508
* There are now automatic variables `$(^D)', `$(^F)', `$(?D)', and `$(?F)'.
 
509
These are the directory-only and file-only versions of `$^' and `$?'.
 
510
 
 
511
* Library dependencies given as `-lNAME' will use "libNAME.a" in the current
 
512
directory if it exists.
 
513
 
 
514
* The automatic variable `$($/)' is no longer defined.
 
515
 
 
516
* Leading `+' characters on a command line make that line be executed even
 
517
under -n, -t, or -q (as if the line contained `$(MAKE)').
 
518
 
 
519
* For command lines containing `$(MAKE)', `${MAKE}', or leading `+' characters,
 
520
only those lines are executed, not their entire rules.
 
521
(This is how Unix make behaves for lines containing `$(MAKE)' or `${MAKE}'.)
 
522
 
 
523
Version 3.50
 
524
 
 
525
* Filenames in rules will now have ~ and ~USER expanded.
 
526
 
 
527
* The `-p' output has been changed so it can be used as a makefile.
 
528
(All information that isn't specified by makefiles is prefaced with comment
 
529
characters.)
 
530
 
 
531
Version 3.49
 
532
 
 
533
* The % character can be quoted with backslash in implicit pattern rules,
 
534
static pattern rules, `vpath' directives, and `patsubst', `filter', and
 
535
`filter-out' functions.  A warning is issued if a `vpath' directive's
 
536
pattern contains no %.
 
537
 
 
538
* The `wildcard' variable expansion function now expands ~ and ~USER.
 
539
 
 
540
* Messages indicating failed commands now contain the target name:
 
541
        make: *** [target] Error 1
 
542
 
 
543
* The `-p' output format has been changed somewhat to look more like
 
544
makefile rules and to give all information that Make has about files.
 
545
 
 
546
Version 3.48
 
547
 
 
548
Version 3.47
 
549
 
 
550
* The `-l' switch with no argument removes any previous load-average limit.
 
551
 
 
552
* When the `-w' switch is in effect, and Make has updated makefiles,
 
553
it will write a `Leaving directory' messagfe before re-executing itself.
 
554
This makes the `directory change tracking' changes to Emacs's compilation
 
555
commands work properly.
 
556
 
 
557
Version 3.46
 
558
 
 
559
* The automatic variable `$*' is now defined for explicit rules,
 
560
as it is in Unix make.
 
561
 
 
562
Version 3.45
 
563
 
 
564
* The `-j' switch is now put in the MAKEFLAGS and MFLAGS variables when
 
565
specified without an argument (indicating infinite jobs).
 
566
The `-l' switch is not always put in the MAKEFLAGS and MFLAGS variables.
 
567
 
 
568
* Make no longer checks hashed directories after running commands.
 
569
The behavior implemented in 3.41 caused too much slowdown.
 
570
 
 
571
Version 3.44
 
572
 
 
573
* A dependency is NOT considered newer than its dependent if
 
574
they have the same modification time.  The behavior implemented
 
575
in 3.43 conflicts with RCS.
 
576
 
 
577
Version 3.43
 
578
 
 
579
* Dependency loops are no longer fatal errors.
 
580
 
 
581
* A dependency is considered newer than its dependent if
 
582
they have the same modification time.
 
583
 
 
584
Version 3.42
 
585
 
 
586
* The variables F77 and F77FLAGS are now set by default to $(FC) and
 
587
$(FFLAGS).  Makefiles designed for System V make may use these variables in
 
588
explicit rules and expect them to be set.  Unfortunately, there is no way to
 
589
make setting these affect the Fortran implicit rules unless FC and FFLAGS
 
590
are not used (and these are used by BSD make).
 
591
 
 
592
Version 3.41
 
593
 
 
594
* Make now checks to see if its hashed directories are changed by commands.
 
595
Other makes that hash directories (Sun, 4.3 BSD) don't do this.
 
596
 
 
597
Version 3.39
 
598
 
 
599
* The `shell' function no longer captures standard error output.
 
600
 
 
601
Version 3.32
 
602
 
 
603
* A file beginning with a dot can be the default target if it also contains
 
604
a slash (e.g., `../bin/foo').  (Unix make allows this as well.)
 
605
 
 
606
Version 3.31
 
607
 
 
608
* Archive member names are truncated to 15 characters.
 
609
 
 
610
* Yet more USG stuff.
 
611
 
 
612
* Minimal support for Microport System V (a 16-bit machine and a
 
613
brain-damaged compiler).  This has even lower priority than other USG
 
614
support, so if it gets beyond trivial, I will take it out completely.
 
615
 
 
616
* Revamped default implicit rules (not much visible change).
 
617
 
 
618
* The -d and -p options can come from the environment.
 
619
 
 
620
Version 3.30
 
621
 
 
622
* Improved support for USG and HPUX (hopefully).
 
623
 
 
624
* A variable reference like `$(foo:a=b)', if `a' contains a `%', is
 
625
equivalent to `$(patsubst a,b,$(foo))'.
 
626
 
 
627
* Defining .DEFAULT with no deps or commands clears its commands.
 
628
 
 
629
* New default implicit rules for .S (cpp, then as), and .sh (copy and make
 
630
executable).  All default implicit rules that use cpp (even indirectly), use
 
631
$(CPPFLAGS).
 
632
 
 
633
Version 3.29
 
634
 
 
635
* Giving the -j option with no arguments gives you infinite jobs.
 
636
 
 
637
Version 3.28
 
638
 
 
639
* New option: "-l LOAD" says not to start any new jobs while others are
 
640
running if the load average is not below LOAD (a floating-point number).
 
641
 
 
642
* There is support in place for implementations of remote command execution
 
643
in Make.  See the file remote.c.
 
644
 
 
645
Version 3.26
 
646
 
 
647
* No more than 10 directories will be kept open at once.
 
648
(This number can be changed by redefining MAX_OPEN_DIRECTORIES in dir.c.)
 
649
 
 
650
Version 3.25
 
651
 
 
652
* Archive files will have their modification times recorded before doing
 
653
anything that might change their modification times by updating an archive
 
654
member.
 
655
 
 
656
Version 3.20
 
657
 
 
658
* The `MAKELEVEL' variable is defined for use by makefiles.
 
659
 
 
660
Version 3.19
 
661
 
 
662
* The recursion level indications in error messages are much shorter than
 
663
they were in version 3.14.
 
664
 
 
665
Version 3.18
 
666
 
 
667
* Leading spaces before directives are ignored (as documented).
 
668
 
 
669
* Included makefiles can determine the default goal target.
 
670
(System V Make does it this way, so we are being compatible).
 
671
 
 
672
Version 3.14.
 
673
 
 
674
* Variables that are defaults built into Make will not be put in the
 
675
environment for children.  This just saves some environment space and,
 
676
except under -e, will be transparent to sub-makes.
 
677
 
 
678
* Error messages from sub-makes will indicate the level of recursion.
 
679
 
 
680
* Hopefully some speed-up for large directories due to a change in the
 
681
directory hashing scheme.
 
682
 
 
683
* One child will always get a standard input that is usable.
 
684
 
 
685
* Default makefiles that don't exist will be remade and read in.
 
686
 
 
687
Version 3.13.
 
688
 
 
689
* Count parentheses inside expansion function calls so you can
 
690
have nested calls: `$(sort $(foreach x,a b,$(x)))'.
 
691
 
 
692
Version 3.12.
 
693
 
 
694
* Several bug fixes, including USG and Sun386i support.
 
695
 
 
696
* `shell' function to expand shell commands a la `
 
697
 
 
698
* If the `-d' flag is given, version information will be printed.
 
699
 
 
700
* The `-c' option has been renamed to `-C' for compatibility with tar.
 
701
 
 
702
* The `-p' option no longer inhibits other normal operation.
 
703
 
 
704
* Makefiles will be updated and re-read if necessary.
 
705
 
 
706
* Can now run several commands at once (parallelism), -j option.
 
707
 
 
708
* Error messages will contain the level of Make recursion, if any.
 
709
 
 
710
* The `MAKEFLAGS' and `MFLAGS' variables will be scanned for options after
 
711
makefiles are read.
 
712
 
 
713
* A double-colon rule with no dependencies will always have its commands run.
 
714
(This is how both the BSD and System V versions of Make do it.)
 
715
 
 
716
Version 3.05
 
717
 
 
718
(Changes from versions 1 through 3.05 were never recorded.  Sorry.)
 
719
 
 
720
----------------------------------------------------------------------
 
721
Copyright information:
 
722
 
 
723
   Permission is granted to anyone to make or distribute verbatim copies
 
724
   of this document as received, in any medium, provided that the
 
725
   copyright notice and this permission notice are preserved, thus
 
726
   giving the recipient permission to redistribute in turn.
 
727
 
 
728
   Permission is granted to distribute modified versions of this
 
729
   document, or of portions of it, under the above conditions, provided
 
730
   also that they carry prominent notices stating who last changed them.