Package: make
Version: 4.3-4
Severity: important
X-Debbugs-Cc: d.caviedes.voulli...@fz-juelich.de
Dear Maintainer,
Here is a minimal (Makefile.test) example to reproduce the problem,
derived from a complex build of Kokkos on a system with Make4.3-4
TMP_FILE=test.tmp
append_header = $(shell echo $1 >> $(TMP_FILE))
tmp := $(shell echo '\#if !defined(MYMACRO)' > $(TMP_FILE))
tmp := $(call append_header,'\#error "Do not include"')
Running
make -f Makefile.test
produces a test.tmp file with the following content
\#if !defined(MYMACRO)
\#error "Do not include"
The expected behaviour should have no \ before #.
I edited one line in Makefile.test, removing the \
tmp := $(shell echo '#if !defined(MYMACRO)' > $(TMP_FILE))
and ran it again. This should produce an error, as the # would be
interpreted as comment. It produces no error. The content of test.tmp is
now
#if !defined(MYMACRO)
\#error "Do not include"
Tests under Make4.2.1 and Make4.1 have no issues and behave as expected.
-- System Information:
Debian Release: bullseye/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 5.9.0-3-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages make depends on:
ii libc6 2.31-4
make recommends no packages.
Versions of packages make suggests:
pn make-doc
-- no debconf information