GNU bug report logs - #75940
GNU Automake will generate corrupt Makefile if variable containing line breaks.

Previous Next

Package: automake;

Reported by: 陈 溢飞 <wushengwuxi-msctinoulk <at> outlook.com>

Date: Thu, 30 Jan 2025 04:59:02 UTC

Severity: normal

Done: Karl Berry <karl <at> freefriends.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: 陈 溢飞 <wushengwuxi-msctinoulk <at> outlook.com>
To: "bug-automake <at> gnu.org" <bug-automake <at> gnu.org>
Subject: GNU Automake will generate corrupt Makefile if variable containing
 line breaks.
Date: Thu, 30 Jan 2025 02:25:20 +0000
Hi,

GNU Automake will generate a broken Makefile when configuring if some variables containing line
breaks.

If variable A is defined as:

```autoconf
A=$(cat a.txt)`
AC_SUBST([A])
```

And `a.txt` contains:

```text
line 1
  line 2
```

Then the generated `Makefile.in` will contain:

```makefile
A=@A@
```

And the generated `Makefile` will contain:

```makefile
A=line 1
  line 2
```

When configuring, `config.status` will report:

```text
config.status: executing depfiles commands
config.status: error: in '/workspaces/a':
config.status: error: Something went wrong bootstrapping makefile fragments
    for automatic dependency tracking.  If GNU make was not used, consider
    re-running the configure script with MAKE="gmake" (or whatever is
    necessary).  You can also try re-running configure with the
    '--disable-dependency-tracking' option to at least be able to build
    the package (albeit without support for automatic dependency tracking).
See 'config.log' for more details
```

`config.log`:

```text
config.status:1191: executing depfiles commands
config.status:1268: cd srclib       && sed -e '/# am--include-marker/d' Makefile         | make -f - am--depfiles
/tmp/GmXRgxDy:359: *** missing separator.  Stop.
config.status:1273: $? = 2
config.status:1277: error: in '/workspaces/a':
config.status:1279: error: Something went wrong bootstrapping makefile fragments
    for automatic dependency tracking.  If GNU make was not used, consider
    re-running the configure script with MAKE="gmake" (or whatever is
    necessary).  You can also try re-running configure with the
    '--disable-dependency-tracking' option to at least be able to build
    the package (albeit without support for automatic dependency tracking).
See 'config.log' for more details
```

Thanks,

This bug report was last modified 92 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.