mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-02 22:54:52 +00:00
8e11a9b425
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 Change-Id: I4d3bcf08b4c864d98b343f602efe5a75dbfa7a94
39 lines
1.2 KiB
Makefile
39 lines
1.2 KiB
Makefile
# $NetBSD: use-inference.mk,v 1.3 2020/12/07 00:53:30 rillig Exp $
|
|
#
|
|
# Demonstrate that .USE rules do not have an effect on inference rules.
|
|
# At least not in the special case where the inference rule does not
|
|
# have any associated commands.
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .from .to
|
|
|
|
all: use-inference.to
|
|
|
|
verbose: .USE
|
|
@echo 'Verbosely making $@ out of $>'
|
|
|
|
.from.to: verbose
|
|
# Since this inference rule does not have any associated commands, it
|
|
# is ignored.
|
|
#
|
|
# @echo 'Building $@ from $<'
|
|
|
|
use-inference.from: # assume it exists
|
|
@echo 'Building $@ from nothing'
|
|
|
|
# Possible but unproven explanation:
|
|
#
|
|
# The main target is "all", which depends on "use-inference.to".
|
|
# The inference connects the .from to the .to file, otherwise make
|
|
# would not know that the .from file would need to be built.
|
|
#
|
|
# The .from file is then built.
|
|
#
|
|
# After this, make stops since it doesn't know how to make the .to file.
|
|
# This is strange since make definitely knows about the .from.to suffix
|
|
# inference rule. But it seems to ignore it, maybe because it doesn't
|
|
# have any associated commands.
|
|
|
|
# Until 2020-12-07, despite the error message "don't know how to make",
|
|
# the exit status was 0. This was inconsistent.
|