• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

build-aux/H15-Mar-2020-18,22116,107

doc/H03-May-2022-33,33527,186

glob/H07-May-2022-3,5842,832

lib/H15-Mar-2020-20,46914,058

m4/H15-Mar-2020-8,4287,933

po/H03-May-2022-89,53071,722

src/H07-May-2022-42,59027,246

tests/H15-Mar-2020-13,80510,058

unittest/H15-Mar-2020-1,5891,438

ABOUT-NLSH A D19-Jan-202091.6 KiB1,2831,244

AUTHORSH A D14-Mar-20203 KiB9172

COPYINGH A D03-Jan-202034.3 KiB675553

ChangeLogH A D11-Mar-2020514 KiB16,12010,177

Makefile.amH A D14-Mar-20206.4 KiB204116

Makefile.inH A D14-Mar-202074.8 KiB2,0501,871

NEWSH A D14-Mar-2020115 32

NEWS-remake.mdH A D15-Mar-202015.6 KiB353276

READMEH A D14-Mar-20206.8 KiB181126

README.customsH A D14-Mar-20204.4 KiB11380

README.remakeH A D14-Mar-2020557 95

REMAKE.todoH A D28-Feb-20201.5 KiB4731

RakefileH A D28-Feb-2020576 3222

acinclude.m4H A D14-Mar-20204.9 KiB133127

aclocal.m4H A D14-Mar-202056.9 KiB1,5911,447

configureH A D14-Mar-2020548.8 KiB20,64016,710

configure.acH A D14-Mar-202022 KiB681580

README

1This directory contains the 4.3 release of GNU Make.
2
3See the file NEWS for the user-visible changes from previous releases.
4In addition, there have been bugs fixed.
5
6Please check the system-specific notes below for any caveats related to your
7operating system.
8
9If you are trying to build GNU make from a Git clone rather than a downloaded
10source distribution, see the README.git file for instructions.
11
12For source distribution building and installation instructions, see the file
13INSTALL.
14
15If you need to build GNU Make and have no other 'make' program to use, you can
16use the shell script 'build.sh' instead.  To do this, first run 'configure' as
17described in INSTALL.  Then, instead of typing 'make' to build the program,
18type 'sh build.sh'.  This should compile the program in the current directory.
19Then you will have a Make program that you can use for './make install', or
20whatever else.
21
22Some systems' Make programs cannot process the Makefile for GNU Make.  If you
23get errors from your system's Make when building GNU Make, try using
24'build.sh' instead.
25
26
27GNU Make is free software.  See the file COPYING for copying conditions.
28GNU Make is copyright by the Free Software Foundation.  Copyright notices
29condense sequential years into a range; e.g. "1987-1994" means all years
30from 1987 to 1994 inclusive.
31
32Downloading
33-----------
34
35GNU Make can be obtained in many different ways.  See a description here:
36
37  http://www.gnu.org/software/software.html
38
39
40Documentation
41-------------
42
43GNU make is fully documented in the GNU Make manual, which is contained
44in this distribution as the file make.texinfo.  You can also find
45on-line and preformatted (PostScript and DVI) versions at the FSF's web
46site.  There is information there about ordering hardcopy documentation.
47
48  http://www.gnu.org/
49  http://www.gnu.org/doc/doc.html
50  http://www.gnu.org/manual/manual.html
51
52
53Development
54-----------
55
56GNU Make development is hosted by Savannah, the FSF's online development
57management tool.  Savannah is here:
58
59  http://savannah.gnu.org
60
61And the GNU Make development page is here:
62
63  http://savannah.gnu.org/projects/make/
64
65You can find most information concerning the development of GNU Make at
66this site.
67
68
69Bug Reporting
70-------------
71
72You can send GNU make bug reports to <bug-make@gnu.org>.  Please see the
73section of the GNU make manual entitled 'Problems and Bugs' for
74information on submitting useful and complete bug reports.
75
76You can also use the online bug tracking system in the Savannah GNU Make
77project to submit new problem reports or search for existing ones:
78
79  http://savannah.gnu.org/bugs/?group=make
80
81If you need help using GNU make, try these forums:
82
83  help-make@gnu.org
84  help-utils@gnu.org
85  news:gnu.utils.help
86  news:gnu.utils.bug
87
88
89Git Access
90----------
91
92The GNU make source repository is available via Git from the GNU Savannah Git
93server; look here for details:
94
95  http://savannah.gnu.org/git/?group=make
96
97Please note: you won't be able to build GNU make from Git without installing
98appropriate maintainer's tools, such as GNU m4, automake, autoconf, Perl, GNU
99make, and GCC.
100
101See the README.git file for instructions on how to build GNU make once these
102tools are available.  We make no guarantees about the contents or quality of
103the latest code in the Git repository: it is not unheard of for code that is
104known to be broken to be checked in.  Use at your own risk.
105
106
107System-specific Notes
108---------------------
109
110It has been reported that the XLC 1.2 compiler on AIX 3.2 is buggy such
111that if you compile make with 'cc -O' on AIX 3.2, it will not work
112correctly.  It is said that using 'cc' without '-O' does work.
113
114The standard /bin/sh on SunOS 4.1.3_U1 and 4.1.4 is broken and cannot be
115used to configure GNU make.  Please install a different shell such as
116bash or pdksh in order to run "configure".  See this message for more
117information:
118  http://mail.gnu.org/archive/html/bug-autoconf/2003-10/msg00190.html
119
120One area that is often a problem in configuration and porting is the code
121to check the system's current load average.  To make it easier to test and
122debug this code, you can do 'make check-loadavg' to see if it works
123properly on your system.  (You must run 'configure' beforehand, but you
124need not build Make itself to run this test.)
125
126Another potential source of porting problems is the support for large
127files (LFS) in configure for those operating systems that provide it.
128Please report any bugs that you find in this area.  If you run into
129difficulties, then as a workaround you should be able to disable LFS by
130adding the '--disable-largefile' option to the 'configure' script.
131
132On systems that support micro- and nano-second timestamp values and
133where stat(2) provides this information, GNU make will use it when
134comparing timestamps to get the most accurate possible result.  However,
135note that many current implementations of tools that *set* timestamps do
136not preserve micro- or nano-second granularity.  This means that "cp -p"
137and other similar tools (tar, etc.) may not exactly duplicate timestamps
138with micro- and nano-second granularity on some systems.  If your build
139system contains rules that depend on proper behavior of tools like "cp
140-p", you should consider using the .LOW_RESOLUTION_TIME pseudo-target to
141force make to treat them properly.  See the manual for details.
142
143
144Ports
145-----
146
147  - See README.customs for details on integrating GNU make with the
148    Customs distributed build environment from the Pmake distribution.
149
150  - See README.W32 for details about GNU Make on Windows NT, 95, or 98.
151
152  - See README.DOS for compilation instructions on MS-DOS and MS-Windows
153    using DJGPP tools.
154
155    The Cygwin project maintains its own port of GNU make.  That port may have
156    patches which are not present in this version.  If you are using Cygwin
157    you should use their version of GNU make, and if you have questions about
158    it you should start by asking on those mailing lists and forums.
159
160Please note there are two _separate_ ports of GNU make for Microsoft
161systems: a native Windows tool built with (for example) MSVC or Cygwin,
162and a DOS-based tool built with DJGPP.  Please be sure you are looking
163at the right README!
164
165
166-------------------------------------------------------------------------------
167Copyright (C) 1988-2017 Free Software Foundation, Inc.
168This file is part of GNU Make.
169
170GNU Make is free software; you can redistribute it and/or modify it under the
171terms of the GNU General Public License as published by the Free Software
172Foundation; either version 3 of the License, or (at your option) any later
173version.
174
175GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
176WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
177A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
178
179You should have received a copy of the GNU General Public License along with
180this program.  If not, see <http://www.gnu.org/licenses/>.
181

README.customs

1                                                            -*-indented-text-*-
2
3GNU make can utilize the Customs library, distributed with Pmake, to
4provide builds distributed across multiple hosts.
5
6In order to utilize this capability, you must first download and build
7the Customs library.  It is contained in the Pmake distribution, which
8can be obtained at:
9
10  ftp://ftp.icsi.berkeley.edu/pub/ai/stolcke/software/
11
12This integration was tested (superficially) with Pmake 2.1.33.
13
14
15BUILDING CUSTOMS
16----------------
17
18First, build pmake and Customs.  You need to build pmake first, because
19Customs require pmake to build.  Unfortunately, this is not trivial;
20please see the pmake and Customs documentation for details.  The best
21place to look for instructions is in the pmake-2.1.33/INSTALL file.
22
23Note that the 2.1.33 Pmake distribution comes with a set of patches to
24GNU make, distributed in the pmake-2.1.33/etc/gnumake/ directory.  These
25patches are based on GNU make 3.75 (there are patches for earlier
26versions of GNU make, also).  The parts of this patchfile which relate
27directly to Customs support have already been incorporated into this
28version of GNU make, so you should _NOT_ apply the patch file.
29
30However, there are a few non-Customs specific (as far as I could tell)
31changes here which are not incorporated (for example, the modification
32to try expanding -lfoo to libfoo.so).  If you rely on these changes
33you'll need to re-apply them by hand.
34
35Install the Customs library and header files according to the
36documentation.  You should also install the man pages (contrary to
37comments in the documentation, they weren't installed automatically for
38me; I had to cd to the 'pmake-2.1.33/doc' directory and run 'pmake
39install' there directly).
40
41
42BUILDING GNU MAKE
43-----------------
44
45Once you've installed Customs, you can build GNU make to use it.  When
46configuring GNU make, merely use the '--with-customs=DIR' option.
47Provide the directory containing the 'lib' and 'include/customs'
48subdirectories as DIR.  For example, if you installed the customs
49library in /usr/local/lib and the headers in /usr/local/include/customs,
50then you'd pass '--with-customs=/usr/local' as an option to configure.
51
52Run make (or use build.sh) normally to build GNU make as described in
53the INSTALL file.
54
55See the documentation for Customs for information on starting and
56configuring Customs.
57
58
59INVOKING CUSTOMS-IZED GNU MAKE
60-----------------------------
61
62One thing you should be aware of is that the default build environment
63for Customs requires root permissions.  Practically, this means that GNU
64make must be installed setuid root to use Customs.
65
66If you don't want to do this, you can build Customs such that root
67permissions are not necessary.  Andreas Stolcke <stolcke@speech.sri.com>
68writes:
69
70 > pmake, gnumake or any other customs client program is not required to
71 > be suid root if customs was compiled WITHOUT the USE_RESERVED_PORTS
72 > option in customs/config.h.  Make sure the "customs" service in
73 > /etc/services is defined accordingly (port 8231 instead of 1001).
74
75 > Not using USE_RESERVED_PORTS means that a user with programming
76 > skills could impersonate another user by writing a fake customs
77 > client that pretends to be someone other than himself.  See the
78 > discussion in etc/SECURITY.
79
80
81PROBLEMS
82--------
83
84SunOS 4.1.x:
85  The customs/sprite.h header file #includes the <malloc.h> header
86  files; this conflicts with GNU make's configuration so you'll get a
87  compile error if you use GCC (or any other ANSI-capable C compiler).
88
89  I commented out the #include in sprite.h:107:
90
91    #if defined(sun) || defined(ultrix) || defined(hpux) || defined(sgi)
92    /* #include <malloc.h> */
93    #else
94
95  YMMV.
96
97
98-------------------------------------------------------------------------------
99Copyright (C) 1998-2020 Free Software Foundation, Inc.
100This file is part of GNU Make.
101
102GNU Make is free software; you can redistribute it and/or modify it under the
103terms of the GNU General Public License as published by the Free Software
104Foundation; either version 3 of the License, or (at your option) any later
105version.
106
107GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
108WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
109A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
110
111You should have received a copy of the GNU General Public License along with
112this program.  If not, see <http://www.gnu.org/licenses/>.
113

README.remake

1See the file NEWS-remake.md for the user-visible changes
2
3There is a lot of room for improvement. But since it's only been me working on this, this will have to do.
4
5Although there are a number of gaps the debugger is very usable -- at least for me. It passes the standard GNU Make regression tests, and I
6have now added tests for the debugger. For that you need RSpec (a Ruby "gem").
7
8Documentation for the revised GNU Make Debugger is in the doc directory under the name "remake". The wiki https://github.com/rocky/remake/wiki contains other information.
9