freebsd-dev/contrib/bmake/unit-tests/suff-clear-regular.mk
Simon J. Gerraty 06b9b3e0ad Merge bmake-20210110
Quite a lot of churn on style, but lots of
good work refactoring complicated functions
and lots more unit-tests.
Thanks mostly to rillig at NetBSD

Some interesting entries from ChangeLog

o .MAKE.{UID,GID} represent uid and gid running make.

o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
  checks in InitObjdir.  Explicit .OBJDIR target always allows
  read-only directory.

o add more unit tests for META MODE

Merge commit '8e11a9b4250be3c3379c45fa820bff78d99d5946' into main

Change-Id: I464fd4c013067f0915671c1ccc96d2d8090b2b9c
2021-01-13 22:21:37 -08:00

31 lines
1.0 KiB
Makefile

# $NetBSD: suff-clear-regular.mk,v 1.2 2020/12/07 00:53:30 rillig Exp $
#
# https://gnats.netbsd.org/49086, issue 4:
# Suffix rules do not become regular rules when .SUFFIXES is cleared.
all: .a .a.b .b.a
.SUFFIXES: .a .b .c
# At this point, .a and .b are known suffixes, therefore the following
# targets are interpreted as transformation rules.
.a .a.b .b.a:
: 'Making ${.TARGET} from ${.IMPSRC}.'
# The empty .SUFFIXES discards all previous suffixes.
# This means the above rules should be turned into regular targets.
.SUFFIXES:
# XXX: As of 2020-10-20, the result is unexpected.
# XXX: .a.b is still a transformation rule.
# XXX: .a belongs to "Files that are only sources".
# XXX: .a.b belongs to "Files that are only sources".
# XXX: .b.a belongs to "Files that are only sources".
# XXX: .a is listed in "Transformations".
# XXX: .a.b is listed in "Transformations".
# XXX: .b.a is listed in "Transformations".
# XXX: don't know how to make .a
# XXX: don't know how to make .a.b
# XXX: don't know how to make .b.a
#.MAKEFLAGS: -dg1