URL:
<https://savannah.gnu.org/support/?110289>
Summary: "/bin/sh: line 1: ../tests/mktests.sh: not found"
with dmake and separate build dir
Project: Autoconf
Submitted by: zackw
Submitted on: Tue 04 Aug 2020 01:16:20 PM UTC
Category: None
Priority: 5 - Normal
Severity: 3 - Normal
Status: Confirmed
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Operating System: Solaris
_______________________________________________________
Details:
Solaris' dmake mishandles this Makefile rule when the source and build
directories are separate and configure was invoked via a relative path:
tests/mktests.stamp : tests/mktests.sh $(AUTOCONF_FILES)
@rm -f tests/mktests.tmp
@touch tests/mktests.tmp
cd $(srcdir) && $(SHELL) tests/mktests.sh \
`echo " "$(AUTOCONF_FILES) | sed 's, [^ ]*/, lib/autoconf/,g'`
@mv -f tests/mktests.tmp $@
It rewrites all occurrences of the dependencies (tests/mktests.sh and the
files in the expansion of $(AUTOCONF_FILES)) to include the VPATH component
where they were found. For instance, if the build is taking place in a
subdirectory of the source directory, VPATH will be `..` and
`tests/mktests.sh` will become `../tests/mktests.sh`.
But the commands start with `cd $(srcdir)`, which invalidates all of these
paths and causes the rule to fail.
I'm not sure what we can dp for a workaround, or even if we _should_ work
around it in the code, but it probably at least deserves mention in the
release notes.
(Ideally we wouldn't be writing to the source directory during the build _at
all_, ever, but that's a much bigger project.)
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/support/?110289>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/