* NEWS: Use GNU Make instead of GNU make

* README.git: Ditto.
* README.Amiga: Ditto.
* README.DOS: Ditto.
* README.OS2: Ditto.
* README.VMS: Ditto.
* README.W32: Ditto.
* README.customs: Ditto.
* make-gdb.py: Ditto.
* tests/run_make_tests.pl: Ditto.
This commit is contained in:
Paul Smith 2022-10-16 15:50:13 -04:00
parent d9fc1ac5d2
commit 4ec74e568d
10 changed files with 102 additions and 102 deletions

46
NEWS
View file

@ -1,12 +1,12 @@
GNU make NEWS -*-indented-text-*- GNU Make NEWS -*-indented-text-*-
History of user-visible changes. History of user-visible changes.
20 September 2022 20 September 2022
See the end of this file for copyrights and conditions. See the end of this file for copyrights and conditions.
All user-visible changes are more fully described in the GNU make manual, All user-visible changes are more fully described in the GNU Make manual,
which is contained in this distribution as the file doc/make.texi. which is contained in this distribution as the file doc/make.texi.
See the README file and the GNU make manual for instructions for See the README file and the GNU Make manual for instructions for
reporting bugs. reporting bugs.
Version 4.3.91 (20 Sep 2022) Version 4.3.91 (20 Sep 2022)
@ -20,25 +20,25 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
- OS/2 (EMX) - OS/2 (EMX)
- AmigaOS - AmigaOS
- Xenix - Xenix
In the NEXT release of GNU make, support for these systems will be removed. In the NEXT release of GNU Make, support for these systems will be removed.
If you want to see them continue to be supported, contact <bug-make@gnu.org>. If you want to see them continue to be supported, contact <bug-make@gnu.org>.
* WARNING: Future backward-incompatibility! * WARNING: Future backward-incompatibility!
In the NEXT release of GNU make, pattern rules will implement the same In the NEXT release of GNU Make, pattern rules will implement the same
behavior change for multiple targets as explicit grouped targets, below: if behavior change for multiple targets as explicit grouped targets, below: if
any target of the rule is needed by the build, the recipe will be invoked if any target of the rule is needed by the build, the recipe will be invoked if
any target of the rule is missing or out of date. During testing some any target of the rule is missing or out of date. During testing some
makefiles were found to contain pattern rules that do not build all targets; makefiles were found to contain pattern rules that do not build all targets;
this can cause issues so we are delaying this change for one release cycle this can cause issues so we are delaying this change for one release cycle
to allow these makefiles to be updated. GNU make show a warning if it to allow these makefiles to be updated. GNU Make shows a warning if it
detects this situation: "pattern recipe did not update peer target". detects this situation: "pattern recipe did not update peer target".
* WARNING: Backward-incompatibility! * WARNING: Backward-incompatibility!
GNU make now uses temporary files in more situations than previous releases. GNU Make now uses temporary files in more situations than previous releases.
If your build system sets TMPDIR (or TMP or TEMP on Windows) and deletes the If your build system sets TMPDIR (or TMP or TEMP on Windows) and deletes the
contents during the build, or uses restrictive permissions, this may cause contents during the build, or uses restrictive permissions, this may cause
problems. You can choose an alternative temporary directory only for use by problems. You can choose an alternative temporary directory only for use by
GNU make by setting the new MAKE_TMPDIR environment variable before invoking GNU Make by setting the new MAKE_TMPDIR environment variable before invoking
make. Note that this value CANNOT be set inside the makefile, since make make. Note that this value CANNOT be set inside the makefile, since make
needs to find its temporary directory before the makefiles are parsed. needs to find its temporary directory before the makefiles are parsed.
@ -61,7 +61,7 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
stated, but it was (roughly) the inverse of the order in which they were stated, but it was (roughly) the inverse of the order in which they were
processed by make. In this release, the order in which makefiles are processed by make. In this release, the order in which makefiles are
rebuilt is the same order in which make processed them, and this is defined rebuilt is the same order in which make processed them, and this is defined
to be true in the GNU make manual. to be true in the GNU Make manual.
* WARNING: Backward-incompatibility! * WARNING: Backward-incompatibility!
Previously only simple (one-letter) options were added to the MAKEFLAGS Previously only simple (one-letter) options were added to the MAKEFLAGS
@ -78,14 +78,14 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
To detect this change search for 'shell-export' in the .FEATURES variable. To detect this change search for 'shell-export' in the .FEATURES variable.
* WARNING: New build requirement * WARNING: New build requirement
GNU make utilizes facilities from GNU Gnulib: Gnulib requires certain C99 GNU Make utilizes facilities from GNU Gnulib: Gnulib requires certain C99
features in the C compiler and so these features are required by GNU make: features in the C compiler and so these features are required by GNU Make:
https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html https://www.gnu.org/software/gnulib/manual/html_node/C99-features-assumed.html
The configure script should verify the compiler has these features. The configure script should verify the compiler has these features.
* New feature: The .WAIT special target * New feature: The .WAIT special target
If the .WAIT target appears between two prerequisites of a target, then If the .WAIT target appears between two prerequisites of a target, then
GNU make will wait for all of the targets to the left of .WAIT in the list GNU Make will wait for all of the targets to the left of .WAIT in the list
to complete before starting any of the targets to the right of .WAIT. to complete before starting any of the targets to the right of .WAIT.
This feature is available in some other versions of make, and it will be This feature is available in some other versions of make, and it will be
required by an upcoming version of the POSIX standard for make. required by an upcoming version of the POSIX standard for make.
@ -115,7 +115,7 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
Implementation provided by Jouke Witteveen <j.witteveen@gmail.com> Implementation provided by Jouke Witteveen <j.witteveen@gmail.com>
* New feature: Improved support for -l / --load-average * New feature: Improved support for -l / --load-average
On systems that provide /proc/loadavg (Linux), GNU make will use it to On systems that provide /proc/loadavg (Linux), GNU Make will use it to
determine the number of runnable jobs and use this as the current load, determine the number of runnable jobs and use this as the current load,
avoiding the need for heuristics. avoiding the need for heuristics.
Implementation provided by Sven C. Dack <sdack@gmx.com> Implementation provided by Sven C. Dack <sdack@gmx.com>
@ -130,14 +130,14 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
* New feature: The --jobserver-style command line option and named pipes * New feature: The --jobserver-style command line option and named pipes
A new jobserver method is used on systems where mkfifo(3) is supported. A new jobserver method is used on systems where mkfifo(3) is supported.
This solves a number of obscure issues related to using the jobserver This solves a number of obscure issues related to using the jobserver
and recursive invocations of GNU make. This change means that sub-makes and recursive invocations of GNU Make. This change means that sub-makes
will connect to the jobserver even if they are not marked as recursive. will connect to the jobserver even if they are not marked as recursive.
It also means that other tools that want to participate in the jobserver It also means that other tools that want to participate in the jobserver
will need to be enhanced as described in the GNU make manual. will need to be enhanced as described in the GNU Make manual.
You can force GNU make to use the simple pipe-based jobserver (perhaps if You can force GNU Make to use the simple pipe-based jobserver (perhaps if
you are integrating with other tools or older versions of GNU make) by you are integrating with other tools or older versions of GNU Make) by
adding the '--jobserver-style=pipe' option to the command line of the adding the '--jobserver-style=pipe' option to the command line of the
top-level invocation of GNU make, or via MAKEFLAGS or GNUMAKEFLAGS. top-level invocation of GNU Make, or via MAKEFLAGS or GNUMAKEFLAGS.
To detect this change search for 'jobserver-fifo' in the .FEATURES variable. To detect this change search for 'jobserver-fifo' in the .FEATURES variable.
* Some POSIX systems (*BSD) do not allow locks to be taken on pipes, which * Some POSIX systems (*BSD) do not allow locks to be taken on pipes, which
@ -147,16 +147,16 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
performance characteristics, but is not portable) create a temporary file performance characteristics, but is not portable) create a temporary file
and lock that. Windows continues to use a mutex as before. and lock that. Windows continues to use a mutex as before.
* GNU make has sometimes chosen unexpected, and sub-optimal, chains of * GNU Make has sometimes chosen unexpected, and sub-optimal, chains of
implicit rules due to the definition of "ought to exist" in the implicit implicit rules due to the definition of "ought to exist" in the implicit
rule search algorithm, which considered any prerequisite mentioned in the rule search algorithm, which considered any prerequisite mentioned in the
makefile as "ought to exist". This algorithm has been modified to prefer makefile as "ought to exist". This algorithm has been modified to prefer
prerequisites mentioned explicitly in the target being built and only if prerequisites mentioned explicitly in the target being built and only if
that results in no matching rule, will GNU make consider prerequisites that results in no matching rule, will GNU Make consider prerequisites
mentioned in other targets as "ought to exist". mentioned in other targets as "ought to exist".
Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net> Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net>
* GNU make was performing secondary expansion of all targets, even targets * GNU Make was performing secondary expansion of all targets, even targets
which didn't need to be considered during the build. In this release which didn't need to be considered during the build. In this release
only targets which are considered will be secondarily expanded. only targets which are considered will be secondarily expanded.
Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net> Implementation provided by Dmitry Goncharov <dgoncharov@users.sf.net>
@ -168,7 +168,7 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
* The -I option accepts an argument "-" (e.g., "-I-") which means "reset the * The -I option accepts an argument "-" (e.g., "-I-") which means "reset the
list of search directories to empty". Among other things this can be used list of search directories to empty". Among other things this can be used
to prevent GNU make from searching in its default list of directories. to prevent GNU Make from searching in its default list of directories.
* New debug option "print" will show the recipe to be run, even when silent * New debug option "print" will show the recipe to be run, even when silent
mode is set, and new debug option "why" will show why a target is rebuilt mode is set, and new debug option "why" will show why a target is rebuilt
@ -185,7 +185,7 @@ https://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=109&se
* Special targets like .POSIX are detected upon definition, ensuring that any * Special targets like .POSIX are detected upon definition, ensuring that any
change in behavior takes effect immediately, before the next line is parsed. change in behavior takes effect immediately, before the next line is parsed.
* When the jobserver is enabled and GNU make decides it is invoking a non-make * When the jobserver is enabled and GNU Make decides it is invoking a non-make
sub-process and closes the jobserver pipes, it will now add a new option to sub-process and closes the jobserver pipes, it will now add a new option to
the MAKEFLAGS environment variable that disables the jobserver. the MAKEFLAGS environment variable that disables the jobserver.
This prevents sub-processes that invoke make from accidentally using other This prevents sub-processes that invoke make from accidentally using other

View file

@ -1,11 +1,11 @@
Short: Port of GNU make with SAS/C (no ixemul.library required) Short: Port of GNU Make with SAS/C (no ixemul.library required)
Author: GNU, Amiga port by Aaron "Optimizer" Digulla Author: GNU, Amiga port by Aaron "Optimizer" Digulla
Uploader: Aaron "Optimizer" Digulla (digulla@fh-konstanz.de) Uploader: Aaron "Optimizer" Digulla (digulla@fh-konstanz.de)
Type: dev/c Type: dev/c
This is a pure Amiga port of GNU make. It needs no extra libraries or This is a pure Amiga port of GNU Make. It needs no extra libraries or
anything. It has the following features (in addition to any features of anything. It has the following features (in addition to any features of
GNU make): GNU Make):
- Runs Amiga-Commands with SystemTags() (Execute) - Runs Amiga-Commands with SystemTags() (Execute)
- Can run multi-line statements - Can run multi-line statements
@ -44,9 +44,9 @@ COMPILING FROM SCRATCH
To recompile, you need SAS/C 6.51. To recompile, you need SAS/C 6.51.
As of GNU make 4.3, the build environment has been cleaned up and alternate As of GNU Make 4.3, the build environment has been cleaned up and alternate
make files (including smakefiles) have been removed. If you have an existing make files (including smakefiles) have been removed. If you have an existing
version of GNU make available you _should_ be able to run: version of GNU Make available you _should_ be able to run:
make -f Basic.mk make -f Basic.mk

View file

@ -79,7 +79,7 @@ To build from sources:
6. To install copy make.exe to the preferred location. 6. To install copy make.exe to the preferred location.
Since GNU make 4.3, support for customized platform installations Since GNU Make 4.3, support for customized platform installations
has been removed. If you'd like to collaborate on reinstating has been removed. If you'd like to collaborate on reinstating
these capabilities, contact bug-make@gnu.org. these capabilities, contact bug-make@gnu.org.

View file

@ -1,6 +1,6 @@
Port of GNU make to OS/2. Port of GNU Make to OS/2.
Features of GNU make that do not work under OS/2: Features of GNU Make that do not work under OS/2:
- remote job execution - remote job execution
- dynamic load balancing - dynamic load balancing
@ -9,7 +9,7 @@ Special features of the OS/2 version:
Due to the fact that some people might want to use sh syntax in Due to the fact that some people might want to use sh syntax in
Makefiles while others might want to use OS/2's native shell cmd.exe, Makefiles while others might want to use OS/2's native shell cmd.exe,
GNU make supports both shell types. The following list defines the order GNU Make supports both shell types. The following list defines the order
that is used to determine the shell: that is used to determine the shell:
1. The shell specified by the environment variable MAKESHELL. 1. The shell specified by the environment variable MAKESHELL.
@ -37,7 +37,7 @@ I. ***** SPECIAL OPTIONS *****
cmd or by specifying SHELL=cmd in your Makefile. cmd or by specifying SHELL=cmd in your Makefile.
- At compile time you can set CPPFLAGS="-DNO_CHDIR2" to turn off that - At compile time you can set CPPFLAGS="-DNO_CHDIR2" to turn off that
GNU make prints drive letters. This is necessary if you want to run GNU Make prints drive letters. This is necessary if you want to run
the testsuite. the testsuite.
@ -59,7 +59,7 @@ A standard Unix like build environment:
- gawk - gawk
- grep - grep
- sed - sed
- GNU make 3.79.1 (special OS/2 patched version) or higher - GNU Make 3.79.1 (special OS/2 patched version) or higher
- perl 5.005 or higher - perl 5.005 or higher
- GNU texinfo (you can use 3.1 (gnuinfo.zip), but I recommend 4.0) - GNU texinfo (you can use 3.1 (gnuinfo.zip), but I recommend 4.0)
@ -105,15 +105,15 @@ Note: You can add -DNO_CMD_DEFAULT and -DNO_CHDIR2 to CPPFLAGS.
IV. ***** NLS support ***** IV. ***** NLS support *****
GNU make has NLS (National Language Support), with the following GNU Make has NLS (National Language Support), with the following
caveats: caveats:
a) It will only work with GNU gettext, and a) It will only work with GNU gettext, and
b) GNU gettext support is not included in the GNU make package. b) GNU gettext support is not included in the GNU Make package.
Therefore, if you wish to enable the internationalization features of Therefore, if you wish to enable the internationalization features of
GNU make you must install GNU gettext on your system before configuring GNU Make you must install GNU gettext on your system before configuring
GNU make. GNU Make.
You can choose the languages to be installed. To install support for You can choose the languages to be installed. To install support for
English, German and French only enter: English, German and French only enter:

View file

@ -1,7 +1,7 @@
Overview: -*-text-mode-*- Overview: -*-text-mode-*-
--------- ---------
This version of GNU make has been tested on: This version of GNU Make has been tested on:
OpenVMS V8.3/V8.4 (Alpha) and V8.4 (Integrity) AND V7.3 (VAX) OpenVMS V8.3/V8.4 (Alpha) and V8.4 (Integrity) AND V7.3 (VAX)
This version of GNU Make is intended to be run from DCL to run This version of GNU Make is intended to be run from DCL to run
@ -14,7 +14,7 @@ Overview: -*-text-mode-*-
detect that it is running under a POSIX shell and then operate as close to detect that it is running under a POSIX shell and then operate as close to
GNU Make on Unix as possible. GNU Make on Unix as possible.
The descriptions below are for running GNU make from DCL or equivalent. The descriptions below are for running GNU Make from DCL or equivalent.
Recipe differences: Recipe differences:
------------------- -------------------
@ -84,7 +84,7 @@ Recipe differences:
The format for recipes are a combination of Unix macros, a subset of The format for recipes are a combination of Unix macros, a subset of
simulated UNIX commands, some shell emulation, and OpenVMS commands. simulated UNIX commands, some shell emulation, and OpenVMS commands.
This makes the resulting makefiles unique to the OpenVMS port of GNU make. This makes the resulting makefiles unique to the OpenVMS port of GNU Make.
If you are creating a OpenVMS specific makefile from scratch, you should also If you are creating a OpenVMS specific makefile from scratch, you should also
look at MMK (Madgoat Make) available at https://github.com/endlesssoftware/mmk look at MMK (Madgoat Make) available at https://github.com/endlesssoftware/mmk
@ -177,7 +177,7 @@ Recipe differences:
Since the OpenVMS utilities generally expect OpenVMS format paths, you will Since the OpenVMS utilities generally expect OpenVMS format paths, you will
usually have to use OpenVMS format paths for rules and targets. usually have to use OpenVMS format paths for rules and targets.
BUG: Relative OpenVMS paths may not work in targets, especially combined BUG: Relative OpenVMS paths may not work in targets, especially combined
with vpaths. This is because GNU make will just concatenate the directories with vpaths. This is because GNU Make will just concatenate the directories
as it does on Unix. as it does on Unix.
The variables $^ and $@ separate files with commas instead of spaces. The variables $^ and $@ separate files with commas instead of spaces.
@ -211,9 +211,9 @@ foo: $(addsuffix .3,$(subs $(comma),$(space),$^)
shows them as "environment override". On POSIX the test scripts indicate shows them as "environment override". On POSIX the test scripts indicate
that they should show up just as "environment". that they should show up just as "environment".
When GNU make reads in a symbol or logical name into the environment, it When GNU Make reads in a symbol or logical name into the environment, it
converts any dollar signs found to double dollar signs for convenience in converts any dollar signs found to double dollar signs for convenience in
using DCL symbols and logical names in recipes. When GNU make exports a using DCL symbols and logical names in recipes. When GNU Make exports a
DCL symbol for a child process, if the first dollar sign found is followed DCL symbol for a child process, if the first dollar sign found is followed
by second dollar sign, then all double dollar signs will be converted to by second dollar sign, then all double dollar signs will be converted to
single dollar signs. single dollar signs.
@ -284,7 +284,7 @@ Runtime issues:
MAKE_FAILURE has a POSIX value of 2 and an OpenVMS status of %x1035a012. MAKE_FAILURE has a POSIX value of 2 and an OpenVMS status of %x1035a012.
Output from GNU make may have single quotes around some values where on Output from GNU Make may have single quotes around some values where on
other platforms it does not. Also output that would be in double quotes other platforms it does not. Also output that would be in double quotes
on some platforms may show up as single quotes on VMS. on some platforms may show up as single quotes on VMS.
@ -353,7 +353,7 @@ Unix compatibility features:
A note on appending the redirected output. A simple mechanism is A note on appending the redirected output. A simple mechanism is
implemented to make ">>" work in action lines. In OpenVMS there is no simple implemented to make ">>" work in action lines. In OpenVMS there is no simple
feature like ">>" to have DCL command or program output redirected and feature like ">>" to have DCL command or program output redirected and
appended to a file. GNU make for OpenVMS implements the redirection appended to a file. GNU Make for OpenVMS implements the redirection
of ">>" by using a command procedure. of ">>" by using a command procedure.
The current algorithm creates the output file if it does not exist and The current algorithm creates the output file if it does not exist and
@ -409,7 +409,7 @@ Unimplemented functionality:
The new feature "Loadable objects" is not yet supported. If you need it, The new feature "Loadable objects" is not yet supported. If you need it,
please send a change request or submit a bug report. please send a change request or submit a bug report.
The new option --output-sync (-O) is accepted but has no effect: GNU make The new option --output-sync (-O) is accepted but has no effect: GNU Make
for OpenVMS does not support running multiple commands simultaneously. for OpenVMS does not support running multiple commands simultaneously.
@ -421,7 +421,7 @@ Self test failures and todos:
Need to find a way to set the VMS features before running make as a Need to find a way to set the VMS features before running make as a
child. child.
GNU make was not currently translating the OpenVMS encoded POSIX values GNU Make was not currently translating the OpenVMS encoded POSIX values
returned to it back to the POSIX values. I have temporarily modified the returned to it back to the POSIX values. I have temporarily modified the
Perl test script to compensate for it. This should be being handled Perl test script to compensate for it. This should be being handled
internally to Make. internally to Make.

View file

@ -1,4 +1,4 @@
This version of GNU make has been tested on: This version of GNU Make has been tested on:
Microsoft Windows 2000/XP/2003/Vista/7/8/10 Microsoft Windows 2000/XP/2003/Vista/7/8/10
It has also been used on Windows 95/98/NT, and on OS/2. It has also been used on Windows 95/98/NT, and on OS/2.
@ -25,7 +25,7 @@ also provide you with these dependencies or a URL where to download
them. A precompiled 32-bit Windows build of Guile is available from them. A precompiled 32-bit Windows build of Guile is available from
the ezwinports site mentioned above. the ezwinports site mentioned above.
The Windows port of GNU make is maintained jointly by various people. The Windows port of GNU Make is maintained jointly by various people.
It was originally made by Rob Tulloh. It was originally made by Rob Tulloh.
It is currently maintained by Eli Zaretskii. It is currently maintained by Eli Zaretskii.
@ -53,7 +53,7 @@ Building with (MinGW-)GCC using build_w32.bat
This produces gnumake.exe in the GccRel directory. This produces gnumake.exe in the GccRel directory.
If you want a version of GNU make built with debugging enabled, If you want a version of GNU Make built with debugging enabled,
add the --debug option. Output goes into the GccDebug directory. add the --debug option. Output goes into the GccDebug directory.
The batch file will probe for Guile installation, and will build The batch file will probe for Guile installation, and will build
@ -75,21 +75,21 @@ Building with (MSVC++-)cl using build_w32.bat
file will probe your system and choose the newest MSVC version it can file will probe your system and choose the newest MSVC version it can
find. find.
If you want a 32bit version of GNU make, add the --x86 option. If you want a 32bit version of GNU Make, add the --x86 option.
If you want a Debug build of GNU make, add the --debug option. Output If you want a Debug build of GNU Make, add the --debug option. Output
will go into the .\WinDebug directory. will go into the .\WinDebug directory.
The batch file will probe for Guile installation, and will build The batch file will probe for Guile installation, and will build
gnumake.exe with Guile if it finds it. If Guile is installed, gnumake.exe with Guile if it finds it. If Guile is installed,
but you prefer to build GNU make without Guile support, add the but you prefer to build GNU Make without Guile support, add the
--without-guile option. --without-guile option.
Building with (MinGW-)GCC using GNU make Building with (MinGW-)GCC using GNU Make
---------------------------------------- ----------------------------------------
2. If you already have a version of GNU make available you can use it 2. If you already have a version of GNU Make available you can use it
to build this version. Open a W32 command prompt for your installed to build this version. Open a W32 command prompt for your installed
(MinGW-)GCC, setup a correct PATH and other environment variables (MinGW-)GCC, setup a correct PATH and other environment variables
for it, then execute ... for it, then execute ...
@ -97,7 +97,7 @@ Building with (MinGW-)GCC using GNU make
make -f Basic.mk TOOLCHAIN=gcc make -f Basic.mk TOOLCHAIN=gcc
This produces GccRel\gnumake.exe. This produces GccRel\gnumake.exe.
If you want a version of GNU make built with debugging enabled, If you want a version of GNU Make built with debugging enabled,
add the TARGET_TYPE=debug option: add the TARGET_TYPE=debug option:
make -f Basic.mk TOOLCHAIN=gcc TARGET_TYPE=debug make -f Basic.mk TOOLCHAIN=gcc TARGET_TYPE=debug
@ -106,10 +106,10 @@ Building with (MinGW-)GCC using GNU make
if you want to build with Guile support. if you want to build with Guile support.
Building with (MSVC++-)cl using GNU make Building with (MSVC++-)cl using GNU Make
---------------------------------------- ----------------------------------------
2. If you already have a version of GNU make available you can use it 2. If you already have a version of GNU Make available you can use it
to build this version. Open a W32 command prompt for your installed to build this version. Open a W32 command prompt for your installed
(MSVC++-)cl, setup a correct PATH and other environment variables (MSVC++-)cl, setup a correct PATH and other environment variables
for it (usually via executing vcvars32.bat or vsvars32.bat from the for it (usually via executing vcvars32.bat or vsvars32.bat from the
@ -119,7 +119,7 @@ Building with (MSVC++-)cl using GNU make
make -f Basic.mk make -f Basic.mk
This produces an optimized WinRel/gnumake.exe. This produces an optimized WinRel/gnumake.exe.
If you want a version of GNU make built with debugging enabled, If you want a version of GNU Make built with debugging enabled,
add the TARGET_TYPE=debug option: add the TARGET_TYPE=debug option:
make -f Basic.mk TARGET_TYPE=debug make -f Basic.mk TARGET_TYPE=debug
@ -134,7 +134,7 @@ Running the test suite
3. You will need an installation of Perl. Be sure to use a relatively 3. You will need an installation of Perl. Be sure to use a relatively
modern version: older versions will sometimes throw spurious errors. modern version: older versions will sometimes throw spurious errors.
To run the suite after building using GNU make, use: To run the suite after building using GNU Make, use:
make -f Basic.mk check make -f Basic.mk check
@ -158,7 +158,7 @@ Running the test suite
-- Notes/Caveats -- -- Notes/Caveats --
------------------- -------------------
GNU make on Windows 32-bit platforms: GNU Make on Windows 32-bit platforms:
This version of make is ported natively to Windows32 platforms This version of make is ported natively to Windows32 platforms
(Windows NT 3.51, Windows NT 4.0, Windows 2000, Windows XP, (Windows NT 3.51, Windows NT 4.0, Windows 2000, Windows XP,
@ -168,11 +168,11 @@ GNU make on Windows 32-bit platforms:
officially are the MinGW port of GNU GCC, and the various officially are the MinGW port of GNU GCC, and the various
versions of the Microsoft C compiler. versions of the Microsoft C compiler.
Do not confuse this port of GNU make with other Windows32 projects Do not confuse this port of GNU Make with other Windows32 projects
which provide a GNU make binary. These are separate projects which provide a GNU Make binary. These are separate projects
and are not connected to this port effort. and are not connected to this port effort.
GNU make and sh.exe: GNU Make and sh.exe:
This port prefers if you have a working sh.exe somewhere on This port prefers if you have a working sh.exe somewhere on
your system. If you don't have sh.exe, the port falls back to your system. If you don't have sh.exe, the port falls back to
@ -187,7 +187,7 @@ GNU make and sh.exe:
your own with a package like NutCracker (DataFocus) or Portage your own with a package like NutCracker (DataFocus) or Portage
(Consensys). Also MinGW includes sh. (Consensys). Also MinGW includes sh.
GNU make and brain-dead shells (BATCH_MODE_ONLY_SHELL): GNU Make and brain-dead shells (BATCH_MODE_ONLY_SHELL):
Some versions of Bourne shell do not behave well when invoked Some versions of Bourne shell do not behave well when invoked
as 'sh -c' from CreateProcess(). The main problem is they seem as 'sh -c' from CreateProcess(). The main problem is they seem
@ -213,21 +213,21 @@ Support for parallel builds
Parallel builds (-jN) are supported in this port. The number of Parallel builds (-jN) are supported in this port. The number of
concurrent processes has a hard limit of 4095. concurrent processes has a hard limit of 4095.
GNU make and Cygnus GNU Windows32 tools: GNU Make and Cygnus GNU Windows32 tools:
Good news! Make now has native support for Cygwin sh. To enable, Good news! Make now has native support for Cygwin sh. To enable,
define the HAVE_CYGWIN_SHELL in config.h and rebuild make define the HAVE_CYGWIN_SHELL in config.h and rebuild make
from scratch. This version of make tested with B20.1 of Cygwin. from scratch. This version of make tested with B20.1 of Cygwin.
Do not define BATCH_MODE_ONLY_SHELL if you use HAVE_CYGWIN_SHELL. Do not define BATCH_MODE_ONLY_SHELL if you use HAVE_CYGWIN_SHELL.
GNU make and the MKS shell: GNU Make and the MKS shell:
There is now semi-official support for the MKS shell. To turn this There is now semi-official support for the MKS shell. To turn this
support on, define HAVE_MKS_SHELL in the config.h.W32 before you support on, define HAVE_MKS_SHELL in the config.h.W32 before you
build make. Do not define BATCH_MODE_ONLY_SHELL if you turn build make. Do not define BATCH_MODE_ONLY_SHELL if you turn
on HAVE_MKS_SHELL. on HAVE_MKS_SHELL.
GNU make handling of drive letters in pathnames (PATH, vpath, VPATH): GNU Make handling of drive letters in pathnames (PATH, vpath, VPATH):
There is a caveat that should be noted with respect to handling There is a caveat that should be noted with respect to handling
single character pathnames on Windows systems. When colon is single character pathnames on Windows systems. When colon is
@ -293,7 +293,7 @@ Pathnames and Case insensitivity:
the file with other case permutations will succeed (i.e. opening a the file with other case permutations will succeed (i.e. opening a
file named "target" or "TARGET" will open the file "Target"). file named "target" or "TARGET" will open the file "Target").
By default, GNU make retains its case sensitivity when comparing By default, GNU Make retains its case sensitivity when comparing
target names and existing files or directories. It can be target names and existing files or directories. It can be
configured, however, into a case preserving and case insensitive configured, however, into a case preserving and case insensitive
mode by adding a define for HAVE_CASE_INSENSITIVE_FS to mode by adding a define for HAVE_CASE_INSENSITIVE_FS to
@ -311,10 +311,10 @@ Pathnames and Case insensitivity:
SUBDIR/DepTarget: SubDir/TARGET SUBDIR/DepTarget: SubDir/TARGET
cp $^ $@ cp $^ $@
Reliance on this behavior also eliminates the ability of GNU make Reliance on this behavior also eliminates the ability of GNU Make
to use case in comparison of matching rules. For example, it is to use case in comparison of matching rules. For example, it is
not possible to set up a C++ rule using %.C that is different not possible to set up a C++ rule using %.C that is different
than a C rule using %.c. GNU make will consider these to be the than a C rule using %.c. GNU Make will consider these to be the
same rule and will issue a warning. same rule and will issue a warning.
SAMBA/NTFS/VFAT: SAMBA/NTFS/VFAT:
@ -344,7 +344,7 @@ FAT:
Bug reports: Bug reports:
Please submit bugs via the normal bug reporting mechanism which Please submit bugs via the normal bug reporting mechanism which
is described in the GNU make manual and the base README. is described in the GNU Make manual and the base README.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Copyright (C) 1996-2022 Free Software Foundation, Inc. Copyright (C) 1996-2022 Free Software Foundation, Inc.

View file

@ -1,6 +1,6 @@
-*-indented-text-*- -*-indented-text-*-
GNU make can utilize the Customs library, distributed with Pmake, to GNU Make can utilize the Customs library, distributed with Pmake, to
provide builds distributed across multiple hosts. provide builds distributed across multiple hosts.
In order to utilize this capability, you must first download and build In order to utilize this capability, you must first download and build
@ -21,11 +21,11 @@ please see the pmake and Customs documentation for details. The best
place to look for instructions is in the pmake-2.1.33/INSTALL file. place to look for instructions is in the pmake-2.1.33/INSTALL file.
Note that the 2.1.33 Pmake distribution comes with a set of patches to Note that the 2.1.33 Pmake distribution comes with a set of patches to
GNU make, distributed in the pmake-2.1.33/etc/gnumake/ directory. These GNU Make, distributed in the pmake-2.1.33/etc/gnumake/ directory. These
patches are based on GNU make 3.75 (there are patches for earlier patches are based on GNU Make 3.75 (there are patches for earlier
versions of GNU make, also). The parts of this patchfile which relate versions of GNU Make, also). The parts of this patchfile which relate
directly to Customs support have already been incorporated into this directly to Customs support have already been incorporated into this
version of GNU make, so you should _NOT_ apply the patch file. version of GNU Make, so you should _NOT_ apply the patch file.
However, there are a few non-Customs specific (as far as I could tell) However, there are a few non-Customs specific (as far as I could tell)
changes here which are not incorporated (for example, the modification changes here which are not incorporated (for example, the modification
@ -42,14 +42,14 @@ install' there directly).
BUILDING GNU MAKE BUILDING GNU MAKE
----------------- -----------------
Once you've installed Customs, you can build GNU make to use it. When Once you've installed Customs, you can build GNU Make to use it. When
configuring GNU make, merely use the '--with-customs=DIR' option. configuring GNU Make, merely use the '--with-customs=DIR' option.
Provide the directory containing the 'lib' and 'include/customs' Provide the directory containing the 'lib' and 'include/customs'
subdirectories as DIR. For example, if you installed the customs subdirectories as DIR. For example, if you installed the customs
library in /usr/local/lib and the headers in /usr/local/include/customs, library in /usr/local/lib and the headers in /usr/local/include/customs,
then you'd pass '--with-customs=/usr/local' as an option to configure. then you'd pass '--with-customs=/usr/local' as an option to configure.
Run make (or use build.sh) normally to build GNU make as described in Run make (or use build.sh) normally to build GNU Make as described in
the INSTALL file. the INSTALL file.
See the documentation for Customs for information on starting and See the documentation for Customs for information on starting and
@ -83,7 +83,7 @@ PROBLEMS
SunOS 4.1.x: SunOS 4.1.x:
The customs/sprite.h header file #includes the <malloc.h> header The customs/sprite.h header file #includes the <malloc.h> header
files; this conflicts with GNU make's configuration so you'll get a files; this conflicts with GNU Make's configuration so you'll get a
compile error if you use GCC (or any other ANSI-capable C compiler). compile error if you use GCC (or any other ANSI-capable C compiler).
I commented out the #include in sprite.h:107: I commented out the #include in sprite.h:107:

View file

@ -31,13 +31,13 @@ make source code via Git from the FSF's Savannah project
Changes using Git Changes using Git
----------------- -----------------
If you do not have push privileges to the GNU make Git repository, see the If you do not have push privileges to the GNU Make Git repository, see the
README file section "Submitting Patches" for information. README file section "Submitting Patches" for information.
If you have push privileges to the GNU make Git repository keep this If you have push privileges to the GNU Make Git repository keep this
information in mind: information in mind:
Starting with GNU make 4.0 we no longer keep a separate ChangeLog file in Starting with GNU Make 4.0 we no longer keep a separate ChangeLog file in
source control. We use the Gnulib git-to-changelog conversion script to source control. We use the Gnulib git-to-changelog conversion script to
convert the Git comments into ChangeLog-style entries for release. As a convert the Git comments into ChangeLog-style entries for release. As a
result, please format your Git comments carefully so they will look clean result, please format your Git comments carefully so they will look clean
@ -70,12 +70,12 @@ available which helps a lot.
Coding Standards Coding Standards
---------------- ----------------
GNU make code adheres to the GNU Coding Standards. Please use only spaces and GNU Make code adheres to the GNU Coding Standards. Please use only spaces and
no TAB characters in source code. no TAB characters in source code.
Additionally, GNU make is a foundational bootstrap package for the GNU Additionally, GNU Make is a foundational bootstrap package for the GNU
project; as such it is conservative about language features it expects. project; as such it is conservative about language features it expects.
However, GNU make does rely on the Gnulib portability library, and Gnulib However, GNU Make does rely on the Gnulib portability library, and Gnulib
currently requires a ISO C99 compiler. So features in ISO C99 can be currently requires a ISO C99 compiler. So features in ISO C99 can be
assumed. assumed.
@ -83,7 +83,7 @@ assumed.
Building From Git for POSIX Building From Git for POSIX
--------------------------- ---------------------------
To build GNU make from Git on POSIX systems such as GNU/Linux, you will To build GNU Make from Git on POSIX systems such as GNU/Linux, you will
need to install the following extra software: need to install the following extra software:
* autoconf >= 2.69 * autoconf >= 2.69
@ -93,7 +93,7 @@ need to install the following extra software:
* pkg-config * pkg-config
* texinfo (for makeinfo) * texinfo (for makeinfo)
* GCC * GCC
* GNU make (POSIX make is not sufficient) * GNU Make (POSIX make is not sufficient)
And any tools that those utilities require (GNU m4, etc.) And any tools that those utilities require (GNU m4, etc.)
@ -101,7 +101,7 @@ To run the tests you must install Perl.
To build a release you'll need to install lzip. To build a release you'll need to install lzip.
GNU make requires Gnulib to provide some facilities. If you want to maintain GNU Make requires Gnulib to provide some facilities. If you want to maintain
a local installation of gnulib you can set GNULIB_SRCDIR to point to it. a local installation of gnulib you can set GNULIB_SRCDIR to point to it.
Otherwise, ./bootstrap will obtain a clone for you. Otherwise, ./bootstrap will obtain a clone for you.
@ -141,9 +141,9 @@ That is, you can just run:
$ ./configure $ ./configure
$ make check $ make check
to build and test GNU make. to build and test GNU Make.
NOTE! This method builds GNU make in "maintainer mode". Make programs built NOTE! This method builds GNU Make in "maintainer mode". Make programs built
in this mode it will be slower, possibly MUCH slower: there are various in this mode it will be slower, possibly MUCH slower: there are various
sanity checks enabled. Further this mode assumes a modern GCC, GNU sanity checks enabled. Further this mode assumes a modern GCC, GNU
libc, and well-formed system headers and enables a high level of libc, and well-formed system headers and enables a high level of
@ -174,7 +174,7 @@ script to "prime" your Git workspace:
Next, follow the instructions in the README.W32 file. Next, follow the instructions in the README.W32 file.
Note, neither of these methods are tested regularly by the GNU make Note, neither of these methods are tested regularly by the GNU Make
maintainers. Building for Windows from a distribution tarball IS tested maintainers. Building for Windows from a distribution tarball IS tested
regularly. regularly.
@ -213,7 +213,7 @@ Creating a Package
------------------ ------------------
Once you have performed the above steps (including the configuration and Once you have performed the above steps (including the configuration and
build) you can create a GNU make package. This is very simple, just build) you can create a GNU Make package. This is very simple, just
run: run:
$ make dist-gzip $ make dist-gzip
@ -250,19 +250,19 @@ consistent (that's why we don't finalize the Git tag, etc. until the end).
"Fixed Release" ID number. "Fixed Release" ID number.
* Run "make distcheck" to be sure it all works. * Run "make distcheck" to be sure it all works.
* Run "make check-alt-config" to be sure alternative configurations work * Run "make check-alt-config" to be sure alternative configurations work
* Run "make update-makeweb" to get a copy of the GNU make web pages * Run "make update-makeweb" to get a copy of the GNU Make web pages
* Run "make update-gnuweb" to get a copy of the GNU website boilerplate pages * Run "make update-gnuweb" to get a copy of the GNU website boilerplate pages
* Update the web page boilerplate if necessary: * Update the web page boilerplate if necessary:
../gnu-www/www/server/standards/patch-from-parent ../make-web/make.html \ ../gnu-www/www/server/standards/patch-from-parent ../make-web/make.html \
../gnu-www/www/server/standards/boilerplate.html ../gnu-www/www/server/standards/boilerplate.html
* Run "make gendocs" (requires gnulib) to generate the manual files for * Run "make gendocs" (requires gnulib) to generate the manual files for
the GNU make web pages. the GNU Make web pages.
* Follow the directions from gendocs for the web page repository * Follow the directions from gendocs for the web page repository
* run "make tag-release" to create a Git tag for the release * run "make tag-release" to create a Git tag for the release
* Push everything: * Push everything:
git push --tags origin master git push --tags origin master
Manage the Savannah project for GNU make: Manage the Savannah project for GNU Make:
>>> This is only for real releases, not release candidate builds <<< >>> This is only for real releases, not release candidate builds <<<
@ -276,7 +276,7 @@ Manage the Savannah project for GNU make:
- Rank: 20 - Rank: 20
- Descr: Issues found in code retrieved from Source Code Management (Git), rather than a distributed version. Please include the SHA you are working with. - Descr: Issues found in code retrieved from Source Code Management (Git), rather than a distributed version. Please include the SHA you are working with.
- Descr: Fixed in Source Code Management (Git). The fix will be included in the next release of GNU make. - Descr: Fixed in Source Code Management (Git). The fix will be included in the next release of GNU Make.
Start the next release: Start the next release:
@ -349,7 +349,7 @@ Appendix A - For The Brave
-------------------------- --------------------------
For those of you who trust me implicitly, or are just brave (or For those of you who trust me implicitly, or are just brave (or
foolhardy), here is a canned sequence of commands to build a GNU make foolhardy), here is a canned sequence of commands to build a GNU Make
distribution package from a virgin Git source checkout (assuming all the distribution package from a virgin Git source checkout (assuming all the
prerequisites are available of course). prerequisites are available of course).

View file

@ -1,4 +1,4 @@
"""GDB pretty-printer macros for GNU make.""" """GDB pretty-printer macros for GNU Make."""
import gdb # pylint: disable=import-error import gdb # pylint: disable=import-error
import gdb.printing # pylint: disable=import-error import gdb.printing # pylint: disable=import-error

View file

@ -462,7 +462,7 @@ sub print_help
sub set_defaults sub set_defaults
{ {
# $profile = 1; # $profile = 1;
$testee = "GNU make"; $testee = "GNU Make";
$make_path = "make"; $make_path = "make";
$tmpfilesuffix = "mk"; $tmpfilesuffix = "mk";
if ($port_type eq 'UNIX') { if ($port_type eq 'UNIX') {