| This directory contains the @PACKAGE_VERSION@ release of @PACKAGE_NAME@. |
| |
| See the file NEWS for the user-visible changes from previous releases. |
| In addition, there have been bugs fixed. |
| |
| >> If you are trying to build GNU Make from a Git clone rather than a |
| >> downloaded source distribution, see the README.git file for instructions. |
| |
| Please check the system-specific notes below for any caveats related to your |
| operating system. |
| |
| This README assumes you are building on a POSIX-based operating system. |
| For ports to other operating systems please see the system-specific README |
| files, as described in the "Ports" section below. |
| |
| For source distribution building and installation instructions, see the file |
| INSTALL. |
| |
| If you need to build GNU Make and have no other 'make' program to use, you can |
| use the shell script 'build.sh' instead. To do this, first run 'configure' as |
| described in INSTALL. Then, instead of typing 'make' to build the program, |
| type 'sh build.sh'. This will compile the program in the current directory. |
| Then you will have a 'make' program that you can use for './make install', or |
| whatever else. |
| |
| Some systems' 'make' programs cannot process the Makefile for GNU Make. |
| If you get errors from your system's 'make' when building GNU Make, try using |
| 'build.sh' instead. |
| |
| |
| GNU Make is free software. See the file COPYING for copying conditions. |
| GNU Make is copyright by the Free Software Foundation. Copyright notices |
| condense sequential years into a range; e.g. "1987-1994" means all years |
| from 1987 to 1994 inclusive. |
| |
| |
| Downloading |
| ----------- |
| |
| GNU Make can be obtained in many different ways. See a description here: |
| |
| https://www.gnu.org/software/software.html |
| |
| |
| Documentation |
| ------------- |
| |
| GNU Make is fully documented in the GNU Make manual, which is contained in |
| this distribution as the file make.texi. You can also find on-line and |
| preformatted (PostScript and DVI) versions at the FSF's web site. There is |
| information there about ordering hardcopy documentation. |
| |
| https://www.gnu.org/ |
| https://www.gnu.org/doc/doc.html |
| https://www.gnu.org/manual/manual.html |
| |
| |
| Development |
| ----------- |
| |
| GNU Make development is hosted by Savannah, the FSF's online development |
| management tool. Savannah is here: |
| |
| https://savannah.gnu.org |
| |
| And the GNU Make development page is here: |
| |
| https://savannah.gnu.org/projects/make/ |
| |
| You can find most information concerning the development of GNU Make at |
| this site. |
| |
| |
| Regression Tests |
| ---------------- |
| |
| GNU Make contains a suite of regression tests. To run them use "make check" |
| after building GNU Make. If they fail a tar package will be created |
| containing useful information, which can be emailed (as an attachment) to |
| the <bug-make@gnu.org> mailing list. |
| |
| Please note that since these tests rely on known-good-output comparisons, |
| they can show spurious failures on some systems (particularly non-POSIX systems |
| such as Windows). |
| |
| |
| Bug Reporting |
| ------------- |
| |
| If you need help using GNU Make, try asking on <help-make@gnu.org>. |
| |
| If you found a bug, you can send a bug reports to <bug-make@gnu.org>. |
| Please see the section of the GNU Make manual entitled 'Problems and Bugs' |
| for information on submitting useful and complete bug reports. |
| |
| You do not need to subscribe to these lists first. |
| |
| You can also use the online bug tracking system in the Savannah GNU Make |
| project to submit new problem reports or search for existing ones: |
| |
| https://savannah.gnu.org/bugs/?group=make |
| |
| We prefer to use the bug tracking system ONLY for bugs or enhancements, |
| not for help requests: please use the mailing lists to get help. |
| |
| |
| Submitting Patches |
| ------------------ |
| |
| If you'd like to propose a change to GNU Make, you can provide a patch with |
| your changes. If you are making your changes in a Git workspace you can run |
| "git format-patch" to create a patch file. If not, you can use the diff(1) |
| utility to create a patch file; please use "diff -u". |
| |
| Once you have a patch you can submit it in any of these ways: |
| |
| * Create a bug on Savannah and add the patch as an attachment: |
| https://savannah.gnu.org/bugs/?group=make&func=additem |
| |
| * Send the patch via email to <bug-make@gnu.org>: be sure to add it as an |
| attachment to avoid interference by email processors. |
| |
| All non-trivial changes require FSF copyright paperwork to be completed |
| before they can be accepted. Contact <bug-make@gnu.org> for help. |
| |
| |
| Git Access |
| ---------- |
| |
| The GNU Make source repository is available via Git from the GNU Savannah Git |
| server; look here for details: |
| |
| https://savannah.gnu.org/git/?group=make |
| |
| Please note: you won't be able to build GNU Make from Git without installing |
| appropriate maintainer's tools, such as GNU m4, automake, autoconf, Perl, GNU |
| make, and GCC. |
| |
| See the README.git file for instructions on how to build GNU Make once these |
| tools are available. We make no guarantees about the contents or quality of |
| the latest code in the Git repository: it is not unheard of for code that is |
| known to be broken to be checked in. Use at your own risk. |
| |
| |
| System-specific Notes |
| --------------------- |
| |
| One area that is often a problem in configuration and porting is the code |
| to check the system's current load average. To make it easier to test and |
| debug this code, you can do 'make check-loadavg' to see if it works |
| properly on your system. (You must run 'configure' beforehand, but you |
| need not build 'make' itself to run this test.) |
| |
| Another potential source of porting problems is the support for large |
| files (LFS) in configure for those operating systems that provide it. |
| Please report any bugs that you find in this area. If you run into |
| difficulties, then as a workaround you should be able to disable LFS by |
| adding the '--disable-largefile' option to the 'configure' script. |
| |
| On systems that support micro- and nano-second timestamp values and |
| where stat(2) provides this information, GNU Make will use it when |
| comparing timestamps to get the most accurate possible result. However, |
| note that many current implementations of tools that *set* timestamps do |
| not preserve micro- or nano-second granularity. This means that "cp -p" |
| and other similar tools (tar, etc.) may not exactly duplicate timestamps |
| with micro- and nano-second granularity on some systems. If your build |
| system contains rules that depend on proper behavior of tools like "cp |
| -p", you should consider using the .LOW_RESOLUTION_TIME pseudo-target to |
| force make to treat them properly. See the manual for details. |
| |
| |
| Ports |
| ----- |
| |
| - See README.customs for details on integrating GNU Make with the |
| Customs distributed build environment from the Pmake distribution. |
| |
| - See README.VMS for details about GNU Make on OpenVMS. |
| |
| - See README.zOS for details about GNU Make on z/OS. |
| |
| - See README.W32 for details about GNU Make on Windows NT, 95, or 98. |
| |
| - See README.DOS for compilation instructions on MS-DOS and MS-Windows |
| using DJGPP tools. |
| |
| A precompiled binary of the MSDOS port of GNU Make is available as part |
| of DJGPP; see the WWW page https://www.delorie.com/djgpp/ for more |
| information. |
| |
| The Cygwin project maintains its own port of GNU Make. That port may have |
| patches which are not present in this version. If you are using Cygwin |
| you should use their version of GNU Make, and if you have questions about |
| it you should start by asking on those mailing lists and forums. |
| |
| Please note there are two _separate_ ports of GNU Make for Microsoft |
| systems: a native Windows port built with (for example) MSVC or MinGW, |
| and a DOS-based port built with DJGPP. Please be sure you are looking |
| at the right README! |
| |
| |
| ------------------------------------------------------------------------------- |
| Copyright (C) 1988-2025 Free Software Foundation, Inc. |
| This file is part of GNU Make. |
| |
| GNU Make is free software; you can redistribute it and/or modify it under the |
| terms of the GNU General Public License as published by the Free Software |
| Foundation; either version 3 of the License, or (at your option) any later |
| version. |
| |
| GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY |
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR |
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License along with |
| this program. If not, see <https://www.gnu.org/licenses/>. |