diff --git a/AUTHORS b/AUTHORS
index dc9127e46..3c1cd09aa 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -87,4 +87,4 @@ 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 .
+this program. If not, see .
diff --git a/COPYING b/COPYING
index 94a9ed024..2a000655e 100644
--- a/COPYING
+++ b/COPYING
@@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
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 .
+ along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
@@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
-.
+.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
-.
+.
diff --git a/Makefile.am b/Makefile.am
index 39d983eb0..15ba08f32 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
# This is a -*-Makefile-*-, or close enough
#
-# Copyright (C) 1997-2020, 2026 Free Software Foundation, Inc.
+# Copyright (C) 1997-2022, 2026 Free Software Foundation, Inc.
# This file is part of GNU ReMake.
#
# GNU Make is free software; you can redistribute it and/or modify it
@@ -14,7 +14,7 @@
# details.
#
# You should have received a copy of the GNU General Public License along with
-# this program. If not, see .
+# this program. If not, see .
AUTOMAKE_OPTIONS = 1.8 dist-lzip silent-rules std-options subdir-objects nostdinc
ACLOCAL_AMFLAGS = -I m4
diff --git a/README.customs b/README.customs
index a62e003bd..0be5f9e62 100644
--- a/README.customs
+++ b/README.customs
@@ -109,4 +109,4 @@ 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 .
+this program. If not, see .
diff --git a/README.git b/README.git
index cb738741d..ee1ec7ba7 100644
--- a/README.git
+++ b/README.git
@@ -14,7 +14,7 @@ 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 .
+this program. If not, see .
-------------------------------------------------------------------------------
Obtaining Git Code
diff --git a/README.template b/README.template
index effdb5185..22930b5a5 100644
--- a/README.template
+++ b/README.template
@@ -34,7 +34,7 @@ Downloading
GNU Make can be obtained in many different ways. See a description here:
- http://www.gnu.org/software/software.html
+ https://www.gnu.org/software/software.html
Documentation
@@ -45,9 +45,9 @@ in this distribution as the file make.texinfo. 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.
- http://www.gnu.org/
- http://www.gnu.org/doc/doc.html
- http://www.gnu.org/manual/manual.html
+ https://www.gnu.org/
+ https://www.gnu.org/doc/doc.html
+ https://www.gnu.org/manual/manual.html
Development
@@ -177,4 +177,4 @@ 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 .
+this program. If not, see .
diff --git a/TODO.private b/TODO.private
index 5b43d1107..73c3da706 100644
--- a/TODO.private
+++ b/TODO.private
@@ -139,4 +139,4 @@ 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 .
+this program. If not, see .
diff --git a/acinclude.m4 b/acinclude.m4
index 0ac68aa46..aac5452db 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -15,7 +15,7 @@ dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for.
dnl more details.
dnl
dnl You should have received a copy of the GNU General Public License along
-dnl with this program. If not, see .
+dnl with this program. If not, see .
dnl ---------------------------------------------------------------------------
dnl Got this from the lynx 2.8 distribution.
diff --git a/configure.ac b/configure.ac
index 878bb3612..95140de8d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,7 +14,7 @@
# details.
#
# You should have received a copy of the GNU General Public License along with
-# this program. If not, see .
+# this program. If not, see .
define(_MAKE_VERSION_, 4.4)
AC_INIT([remake],[_MAKE_VERSION_+dbg-1.6],[https://github.com/rocky/remake/issues])
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 3b147362c..069e76466 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -13,7 +13,7 @@
# details.
#
# You should have received a copy of the GNU General Public License along with
-# this program. If not, see .
+# this program. If not, see .
EXTRA_DIST = doxygen/Doxyfile.in doxygen/run_doxygen
diff --git a/doc/doxygen/Doxyfile.in b/doc/doxygen/Doxyfile.in
index 4c8a40485..2d2532791 100644
--- a/doc/doxygen/Doxyfile.in
+++ b/doc/doxygen/Doxyfile.in
@@ -20,7 +20,7 @@
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# built into libc) for the transcoding. See https://www.gnu.org/software/libiconv
# for the list of possible encodings.
# The default value is: UTF-8.
@@ -748,7 +748,7 @@ INPUT = ../../src \
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# documentation (see: https://www.gnu.org/software/libiconv) for the list of
# possible encodings.
# The default value is: UTF-8.
@@ -953,7 +953,7 @@ SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
+# (see https://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
diff --git a/doc/make.1 b/doc/make.1
index 4a948d42b..3af034837 100644
--- a/doc/make.1
+++ b/doc/make.1
@@ -123,7 +123,7 @@ Enables timing and dependency profiling output using the specified
.I TYPE
for formatting.
.I TYPE
-can be either
+can be either
.I callgrind
or
.IR json .
@@ -258,4 +258,4 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
.LP
You should have received a copy of the GNU General Public License along with
this program. If not, see
-.IR http://www.gnu.org/licenses/ .
+.IR https://www.gnu.org/licenses/ .
diff --git a/doc/readthedocs/manpage.rst b/doc/readthedocs/manpage.rst
index bec911e9e..966cac84a 100644
--- a/doc/readthedocs/manpage.rst
+++ b/doc/readthedocs/manpage.rst
@@ -145,6 +145,6 @@ 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 http://www.gnu.org/licenses/ .
+this program. If not, see https://www.gnu.org/licenses/ .
.. _Make: https://www.gnu.org/software/make/
diff --git a/git2cl b/git2cl
index ee8c27601..277d3fd73 100755
--- a/git2cl
+++ b/git2cl
@@ -2,7 +2,7 @@
# Copyright (C) 2007, 2008 Simon Josefsson
# Copyright (C) 2007 Luis Mondesi
-# * calls git directly. To use it just:
+# * calls git directly. To use it just:
# cd ~/Project/my_git_repo; git2cl > ChangeLog
# * implements strptime()
# * fixes bugs in $comment parsing
@@ -59,7 +59,7 @@ Thus, typically you would use it as follows:
=head1 SEE ALSO
Output format specification:
-
+
=head1 AUTHORS
@@ -350,7 +350,7 @@ while (my $_l = <$fh>) {
$state = 1 if ($_l =~ m,^$, and $author and (@date+0>0));
} elsif ($state == 1) {
# * modifying our input text is a bad choice
- # let's make a copy of it first, then we remove spaces
+ # let's make a copy of it first, then we remove spaces
# * if we meet a "merge branch" statement, we need to start
# over and find a real entry
# Luis Mondesi
diff --git a/glob/Makefile.am b/glob/Makefile.am
index b5adf0a2e..d9253cae1 100644
--- a/glob/Makefile.am
+++ b/glob/Makefile.am
@@ -14,7 +14,7 @@
# details.
#
# You should have received a copy of the GNU General Public License along with
-# this program. If not, see .
+# this program. If not, see .
AUTOMAKE_OPTIONS = foreign
diff --git a/gmk-default.scm b/gmk-default.scm
index e7353f941..c5a047c0b 100644
--- a/gmk-default.scm
+++ b/gmk-default.scm
@@ -13,7 +13,7 @@
;; details.
;;
;; You should have received a copy of the GNU General Public License along
-;; with this program. If not, see .
+;; with this program. If not, see .
(define (to-string-maybe x)
(cond
diff --git a/m4/acinclude.m4 b/m4/acinclude.m4
index a812aa082..d7131a810 100644
--- a/m4/acinclude.m4
+++ b/m4/acinclude.m4
@@ -1,7 +1,7 @@
dnl acinclude.m4 -- Extra macros needed for GNU make.
dnl
dnl Automake will incorporate this into its generated aclocal.m4.
-dnl Copyright (C) 1998-2020 Free Software Foundation, Inc.
+dnl Copyright (C) 1998-2022 Free Software Foundation, Inc.
dnl This file is part of GNU Make.
dnl
dnl GNU Make is free software; you can redistribute it and/or modify it under
@@ -15,7 +15,7 @@ dnl FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for.
dnl more details.
dnl
dnl You should have received a copy of the GNU General Public License along
-dnl with this program. If not, see .
+dnl with this program. If not, see .
dnl ---------------------------------------------------------------------------
dnl Got this from the lynx 2.8 distribution.
diff --git a/m4/dospaths.m4 b/m4/dospaths.m4
index 4c77e333c..51deaf0f1 100644
--- a/m4/dospaths.m4
+++ b/m4/dospaths.m4
@@ -1,7 +1,7 @@
# Test if the system uses DOS-style pathnames (drive specs and backslashes)
# By Paul Smith . Based on dos.m4 by Jim Meyering.
#
-# Copyright (C) 1993-2020 Free Software Foundation, Inc.
+# Copyright (C) 1993-2022 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
@@ -15,7 +15,7 @@
# details.
#
# You should have received a copy of the GNU General Public License along with
-# this program. If not, see .
+# this program. If not, see .
AC_DEFUN([pds_AC_DOS_PATHS], [
AC_CACHE_CHECK([whether system uses MSDOS-style paths], [ac_cv_dos_paths], [
diff --git a/src/arscan.c b/src/arscan.c
index fddf63d20..fdcaf746f 100644
--- a/src/arscan.c
+++ b/src/arscan.c
@@ -1,5 +1,5 @@
/* Library function for scanning an archive file.
-Copyright (C) 1987-2020 Free Software Foundation, Inc.
+Copyright (C) 1987-2022 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
@@ -12,7 +12,7 @@ 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 . */
+this program. If not, see . */
#include "makeint.h"
@@ -79,7 +79,7 @@ extern unsigned int LBR$_HDRTRUNC;
Returns -2 if archive has invalid format.
Returns 0 if have scanned successfully. */
-long int
+intmax_t
ar_scan (const char *archive, ar_member_func_t function, const void *varg)
{
char *vms_archive;
@@ -245,8 +245,41 @@ struct ar_hdr
# define AR_HDR_SIZE (sizeof (struct ar_hdr))
#endif
+#include "intprops.h"
+
#include "output.h"
+
+static uintmax_t
+parse_int (const char *ptr, const size_t len, const int base, uintmax_t max,
+ const char *type, const char *archive, const char *name)
+{
+ const char *const ep = ptr + len;
+ const int maxchar = '0' + base - 1;
+ uintmax_t val = 0;
+
+ /* In all the versions I know of the spaces come last, but be safe. */
+ while (ptr < ep && *ptr == ' ')
+ ++ptr;
+
+ while (ptr < ep && *ptr != ' ')
+ {
+ uintmax_t nv;
+
+ if (*ptr < '0' || *ptr > maxchar)
+ OSSS (fatal, NILF,
+ _("Invalid %s for archive %s member %s"), type, archive, name);
+ nv = (val * base) + (*ptr - '0');
+ if (nv < val || nv > max)
+ OSSS (fatal, NILF,
+ _("Invalid %s for archive %s member %s"), type, archive, name);
+ val = nv;
+ ++ptr;
+ }
+
+ return val;
+}
+
/* Takes three arguments ARCHIVE, FUNCTION and ARG.
Open the archive named ARCHIVE, find its members one by one,
@@ -274,7 +307,7 @@ struct ar_hdr
Returns -2 if archive has invalid format.
Returns 0 if have scanned successfully. */
-long int
+intmax_t
ar_scan (const char *archive, ar_member_func_t function, const void *arg)
{
#ifdef AIAMAG
@@ -285,7 +318,7 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
# endif
#endif
char *namemap = 0;
- int namemap_size = 0;
+ unsigned int namemap_size = 0;
int desc = open (archive, O_RDONLY, 0);
if (desc < 0)
return -1;
@@ -381,7 +414,7 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
while (1)
{
- int nread;
+ ssize_t nread;
struct ar_hdr member_header;
#ifdef AIAMAGBIG
struct ar_hdr_big member_header_big;
@@ -390,7 +423,7 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
# define ARNAME_MAX 255
char name[ARNAME_MAX + 1];
int name_len;
- long int dateval;
+ intmax_t dateval;
int uidval, gidval;
long int data_offset;
#else
@@ -402,9 +435,13 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
#endif
long int eltsize;
unsigned int eltmode;
- long int fnval;
+ intmax_t eltdate;
+ int eltuid, eltgid;
+ intmax_t fnval;
off_t o;
+ memset(&member_header, '\0', sizeof (member_header));
+
EINTRLOOP (o, lseek (desc, member_offset, 0));
if (o < 0)
goto invalid;
@@ -534,10 +571,11 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
&& (name[0] == ' ' || name[0] == '/')
&& namemap != 0)
{
- int name_off = atoi (name + 1);
- int name_len;
+ const char* err;
+ unsigned int name_off = make_toui (name + 1, &err);
+ size_t name_len;
- if (name_off < 0 || name_off >= namemap_size)
+ if (err|| name_off >= namemap_size)
goto invalid;
name = namemap + name_off;
@@ -550,14 +588,15 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
&& name[1] == '1'
&& name[2] == '/')
{
- int name_len = atoi (name + 3);
+ const char* err;
+ unsigned int name_len = make_toui (name + 3, &err);
- if (name_len < 1)
+ if (err || name_len == 0 || name_len >= MIN (PATH_MAX, INT_MAX))
goto invalid;
name = alloca (name_len + 1);
nread = readbuf (desc, name, name_len);
- if (nread != name_len)
+ if (nread < 0 || (unsigned int) nread != name_len)
goto invalid;
name[name_len] = '\0';
@@ -710,10 +749,10 @@ ar_name_equal (const char *name, const char *mem, int truncated)
#ifndef VMS
/* ARGSUSED */
-static long int
+static intmax_t
ar_member_pos (int desc UNUSED, const char *mem, int truncated,
long int hdrpos, long int datapos UNUSED, long int size UNUSED,
- long int date UNUSED, int uid UNUSED, int gid UNUSED,
+ intmax_t date UNUSED, int uid UNUSED, int gid UNUSED,
unsigned int mode UNUSED, const void *name)
{
if (!ar_name_equal (name, mem, truncated))
@@ -731,12 +770,13 @@ ar_member_pos (int desc UNUSED, const char *mem, int truncated,
int
ar_member_touch (const char *arname, const char *memname)
{
- long int pos = ar_scan (arname, ar_member_pos, memname);
+ intmax_t pos = ar_scan (arname, ar_member_pos, memname);
+ off_t opos;
int fd;
struct ar_hdr ar_hdr;
off_t o;
int r;
- unsigned int ui;
+ int datelen;
struct stat statbuf;
if (pos < 0)
@@ -744,11 +784,13 @@ ar_member_touch (const char *arname, const char *memname)
if (!pos)
return 1;
+ opos = (off_t) pos;
+
EINTRLOOP (fd, open (arname, O_RDWR, 0666));
if (fd < 0)
return -3;
/* Read in this member's header */
- EINTRLOOP (o, lseek (fd, pos, 0));
+ EINTRLOOP (o, lseek (fd, opos, 0));
if (o < 0)
goto lose;
r = readbuf (fd, &ar_hdr, AR_HDR_SIZE);
@@ -760,10 +802,11 @@ ar_member_touch (const char *arname, const char *memname)
goto lose;
/* Advance member's time to that time */
#if defined(ARFMAG) || defined(ARFZMAG) || defined(AIAMAG) || defined(WINDOWS32)
- for (ui = 0; ui < sizeof ar_hdr.ar_date; ui++)
- ar_hdr.ar_date[ui] = ' ';
- sprintf (TOCHAR (ar_hdr.ar_date), "%lu", (long unsigned) statbuf.st_mtime);
- ar_hdr.ar_date[strlen ((char *) ar_hdr.ar_date)] = ' ';
+ datelen = snprintf (TOCHAR (ar_hdr.ar_date), sizeof ar_hdr.ar_date,
+ "%lu", (intmax_t) statbuf.st_mtime);
+ if (! (0 <= datelen && datelen < (int) sizeof ar_hdr.ar_date))
+ goto lose;
+ memset (ar_hdr.ar_date + datelen, ' ', sizeof ar_hdr.ar_date - datelen);
#else
ar_hdr.ar_date = statbuf.st_mtime;
#endif
@@ -787,18 +830,21 @@ ar_member_touch (const char *arname, const char *memname)
#ifdef TEST
-long int
+intmax_t
describe_member (int desc, const char *name, int truncated,
long int hdrpos, long int datapos, long int size,
- long int date, int uid, int gid, unsigned int mode,
+ intmax_t date, int uid, int gid, unsigned int mode,
const void *arg)
{
extern char *ctime ();
+ time_t d = date;
+ char const *ds;
printf (_("Member '%s'%s: %ld bytes at %ld (%ld).\n"),
name, truncated ? _(" (name might be truncated)") : "",
size, hdrpos, datapos);
- printf (_(" Date %s"), ctime (&date));
+ ds = ctime (&d);
+ printf (_(" Date %s"), ds ? ds : "?");
printf (_(" uid = %d, gid = %d, mode = 0%o.\n"), uid, gid, mode);
return 0;
diff --git a/src/debug.h b/src/debug.h
index bd1e0929e..3e9f3ad45 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -1,5 +1,5 @@
/* Debugging macros and interface.
-Copyright (C) 1999-2020 Free Software Foundation, Inc.
+Copyright (C) 1999-2022 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
@@ -12,7 +12,7 @@ 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 . */
+this program. If not, see . */
#ifndef DEBUG_H
#define DEBUG_H
@@ -40,13 +40,15 @@ typedef enum {
rule searches for each target. Can be
set via --debug=implicit
*/
- DB_TRACE = 0x010, /**< tracing */
- DB_SHELL = 0x020, /**< add +x to SHELL invocations */
- DB_MAKEFILES = 0x100,
- DB_READ_MAKEFILES = 0x200, /**< Reading makefiles */
- DB_CALL = 0x400, /**< GNU Make function call and returns */
- DB_UPDATE_GOAL = 0x800, /**< GNU Make function call and returns */
- DB_ALL = 0xfff /**< Bitmask for all of the above. */
+ DB_TRACE = 0x0010, /**< tracing */
+ DB_SHELL = 0x0020, /**< add +x to SHELL invocations */
+ DB_MAKEFILES = 0x0100,
+ DB_READ_MAKEFILES = 0x0200, /**< Reading makefiles */
+ DB_CALL = 0x0400, /**< GNU Make function call and returns */
+ DB_UPDATE_GOAL = 0x0800, /**< GNU Make function call and returns */
+ DB_PRINT = 0x1000,
+ DB_WHY = 0x2000,
+ DB_ALL = 0x3fff /**< Bitmask for all of the above. */
} debug_level_mask_t;
typedef enum {
diff --git a/src/default.c b/src/default.c
index 4e9618544..7c24216ef 100644
--- a/src/default.c
+++ b/src/default.c
@@ -1,5 +1,5 @@
/* Data base of default implicit rules for GNU Make.
-Copyright (C) 1988-2020 Free Software Foundation, Inc.
+Copyright (C) 1988-2022 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
@@ -12,7 +12,7 @@ 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 . */
+this program. If not, see . */
#include "makeint.h"
@@ -313,7 +313,7 @@ static const char *default_variables[] =
"COMPILE.s", "$(AS) $(ASFLAGS) $(TARGET_MACH)",
"LINK.S", "$(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH)",
"COMPILE.S", "$(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_MACH) -c",
- "PREPROCESS.S", "$(CC) -E $(CPPFLAGS)",
+ "PREPROCESS.S", "$(CPP) $(CPPFLAGS)",
"PREPROCESS.F", "$(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -F",
"PREPROCESS.r", "$(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -F",
"LINT.c", "$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)",
diff --git a/src/dep.h b/src/dep.h
index b7a694c48..246199571 100644
--- a/src/dep.h
+++ b/src/dep.h
@@ -1,5 +1,5 @@
/* Definitions of dependency data structures for GNU Make.
-Copyright (C) 1988-2020 Free Software Foundation, Inc.
+Copyright (C) 1988-2022 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
@@ -12,7 +12,7 @@ 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 . */
+this program. If not, see . */
#ifndef REMAKE_DEP_H
#define REMAKE_DEP_H
@@ -33,22 +33,24 @@ struct nameseq
These flags are saved in the 'flags' field of each
'struct goaldep' in the chain returned by 'read_all_makefiles'. */
+#define RM_NOFLAG 0
#define RM_NO_DEFAULT_GOAL (1 << 0) /* Do not set default goal. */
#define RM_INCLUDED (1 << 1) /* Search makefile search path. */
#define RM_DONTCARE (1 << 2) /* No error if it doesn't exist. */
#define RM_NO_TILDE (1 << 3) /* Don't expand ~ in file name. */
-#define RM_NOFLAG 0
/* Structure representing one dependency of a file.
- Each struct file's 'deps' points to a chain of these,
- chained through the 'next'. 'stem' is the stem for this
- dep line of static pattern rule or NULL.
+ Each struct file's 'deps' points to a chain of these, through 'next'.
+ 'stem' is the stem for this dep line of static pattern rule or NULL.
+ explicit is set when implicit rule search is performed and the prerequisite
+ does not contain %. When explicit is set the file is not intermediate.
Note that the first two words of this match a struct nameseq. */
#define DEP(_t) \
NAMESEQ (_t); \
struct file *file; \
+ _t *shuf; \
const char *stem; \
unsigned int flags : 8; \
unsigned int changed : 1; \
@@ -84,6 +86,7 @@ struct goaldep
#define PARSEFS_EXISTS 0x0008
#define PARSEFS_NOCACHE 0x0010
#define PARSEFS_ONEWORD 0x0020
+#define PARSEFS_WAIT 0x0040
#define PARSE_FILE_SEQ(_s,_t,_c,_p,_f) \
(_t *)parse_file_seq ((_s),sizeof (_t),(_c),(_p),(_f))
@@ -113,16 +116,15 @@ void free_ns_chain (struct nameseq *n);
#if defined(MAKE_MAINTAINER_MODE) && defined(__GNUC__) && !defined(__STRICT_ANSI__)
/* Use inline to get real type-checking. */
#define SI static inline
-SI struct nameseq *alloc_ns() { return alloc_seq_elt (struct nameseq); }
-SI struct dep *alloc_dep() { return alloc_seq_elt (struct dep); }
-SI struct goaldep *alloc_goaldep() { return alloc_seq_elt (struct goaldep); }
-
-SI void free_ns(struct nameseq *n) { free (n); }
-SI void free_dep(struct dep *d) { free_ns ((struct nameseq *)d); }
-SI void free_goaldep(struct goaldep *g) { free_dep ((struct dep *)g); }
-
-SI void free_dep_chain(struct dep *d) { free_ns_chain((struct nameseq *)d); }
-SI void free_goal_chain(struct goaldep *g) { free_dep_chain((struct dep *)g); }
+SI struct nameseq *alloc_ns (void) { return alloc_seq_elt (struct nameseq); }
+SI struct dep *alloc_dep (void) { return alloc_seq_elt (struct dep); }
+SI struct goaldep *alloc_goaldep (void) { return alloc_seq_elt (struct goaldep); }
+
+SI void free_ns (struct nameseq *n) { free (n); }
+SI void free_dep (struct dep *d) { free_ns ((struct nameseq *)d); }
+SI void free_goaldep (struct goaldep *g) { free_dep ((struct dep *)g); }
+SI void free_dep_chain (struct dep *d) { free_ns_chain((struct nameseq *)d); }
+SI void free_goal_chain (struct goaldep *g) { free_dep_chain((struct dep *)g); }
#else
# define alloc_ns() alloc_seq_elt (struct nameseq)
# define alloc_dep() alloc_seq_elt (struct dep)
diff --git a/src/json_format.c b/src/json_format.c
index 529f5ff54..1556f6688 100644
--- a/src/json_format.c
+++ b/src/json_format.c
@@ -13,7 +13,7 @@ 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 . */
+this program. If not, see . */
/** \file json_format.c
*
diff --git a/src/json_format.h b/src/json_format.h
index b1cd0bd2c..8febfaa0c 100644
--- a/src/json_format.h
+++ b/src/json_format.h
@@ -13,7 +13,7 @@ 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 . */
+this program. If not, see . */
/** \file json_format.h
*