Fix build problem with BSD Make.

* contrib/sboxes/sboxes.am:
* doc/doc.am:
* font/devpdf/devpdf.am:
* tmac/tmac.am: Fix portability problem involving BSD Make.  Define
  `*_builddir` macros without interpolating `top_builddir`.  groff does
  not use recursive make; all file specifications are resolved relative
  to the top of the build tree, so the interpolation is unnecessary, and
  with BSD Make it causes spurious failures because that implementation
  uses strings, not file identities, as the nodes of its dependency
  graph.  So if you ask for "foo" to be built but have only a rule for a
  target named "./foo", BSD Make fails, whereas GNU Make does not.

[If the foregoing explanation is defective, blame me, not Bruno.  --GBR]
This commit is contained in:
Bruno Haible 2026-01-20 11:50:07 +01:00 committed by G. Branden Robinson
parent 3e711ae9c5
commit 7af3bbe4dc
6 changed files with 30 additions and 4 deletions

View File

@ -1,3 +1,17 @@
2026-01-20 Bruno Haible <bruno@clisp.org>
* doc/doc.am:
* font/devpdf/devpdf.am:
* tmac/tmac.am: Fix portability problem involving BSD Make.
Define `*_builddir` macros without interpolating `top_builddir`.
groff does not use recursive make; all file specifications are
resolved relative to the top of the build tree, so the
interpolation is unnecessary, and with BSD Make it causes
spurious failures because that implementation uses strings, not
file identities, as the nodes of its dependency graph. So if
you ask for "foo" to be built but have only a rule for a target
named "./foo", BSD Make fails, whereas GNU Make does not.
2026-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
* font/devps/devps.am: Drop unused macro `devps_builddir`.

View File

@ -1,3 +1,15 @@
2026-01-20 Bruno Haible <bruno@clisp.org>
* sboxes.am: Fix portability problem involving BSD Make. Define
`sboxes_builddir` macro without interpolating `top_builddir`.
groff does not use recursive make; all file specifications are
resolved relative to the top of the build tree, so the
interpolation is unnecessary, and with BSD Make it causes
spurious failures because that implementation uses strings, not
file identities, as the nodes of its dependency graph. So if
you ask for "foo" to be built but have only a rule for a target
named "./foo", BSD Make fails, whereas GNU Make does not.
2025-12-31 G. Branden Robinson <g.branden.robinson@gmail.com>
* sboxes.am (EXTRA_DIST): Ship "COPYRIGHT" file in distribution

View File

@ -24,7 +24,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
sboxes_srcdir = $(top_srcdir)/contrib/sboxes
sboxes_builddir = $(top_builddir)/contrib/sboxes
sboxes_builddir = contrib/sboxes
sboxesnotquine = $(sboxes_srcdir)/notquine.sed
sboxestmacdir = $(tmacdir)

View File

@ -21,7 +21,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
doc_srcdir = $(abs_top_srcdir)/doc
doc_builddir = $(abs_top_builddir)/doc
doc_builddir = doc
# Some document sources are parameterized in configuration options like
# the groff version number and the command prefix. Use this in rules to

View File

@ -20,7 +20,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
devpdf_srcdir = $(top_srcdir)/font/devpdf
devpdf_builddir = $(top_builddir)/font/devpdf
devpdf_builddir = font/devpdf
devpdffont_descriptions_from_devps = \
font/devpdf/S \
font/devpdf/ZD \

View File

@ -20,7 +20,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
tmac_srcdir = $(top_srcdir)/tmac
tmac_builddir = $(top_builddir)/tmac
tmac_builddir = tmac
man7_MANS += \
tmac/groff_ms.7 \