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/