Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make/unit-tests make(1): make individual targets in ...
details: https://anonhg.NetBSD.org/src/rev/fd0ca587d7e1
branches: trunk
changeset: 955697:fd0ca587d7e1
user: rillig <rillig%NetBSD.org@localhost>
date: Thu Oct 08 18:37:26 2020 +0000
description:
make(1): make individual targets in test archive.mk visible
This test still fails on FreeBSD, printing the "ar cru, ranlib" lines
twice, and I don't know why.
To get more insights into the inner details, without activating the full
-dA logging, split the output into paragraphs, one per target.
This change reveals another interesting detail: Dependencies without any
commands (in this case create-archive) don't inherit the commands from
.USEBEFORE and .USE sources.
diffstat:
usr.bin/make/unit-tests/archive.exp | 14 ++++++++++++++
usr.bin/make/unit-tests/archive.mk | 27 ++++++++++++++++-----------
2 files changed, 30 insertions(+), 11 deletions(-)
diffs (97 lines):
diff -r 9309721f4d39 -r fd0ca587d7e1 usr.bin/make/unit-tests/archive.exp
--- a/usr.bin/make/unit-tests/archive.exp Thu Oct 08 17:54:20 2020 +0000
+++ b/usr.bin/make/unit-tests/archive.exp Thu Oct 08 18:37:26 2020 +0000
@@ -1,14 +1,28 @@
+Making remove-archive
rm -f libprog.a
+
+Making libprog.a out-of-date archive.mk modmisc.mk varmisc.mk
ar cru libprog.a archive.mk modmisc.mk varmisc.mk
ranlib libprog.a
+
+Making create-archive out-of-date libprog.a
+
+Making list-archive out-of-date libprog.a
ar t libprog.a
archive.mk
modmisc.mk
varmisc.mk
+
+Making list-archive-wildcard out-of-date ternary.mk archive-suffix.mk archive.mk
list-archive-wildcard: archive-suffix.mk
list-archive-wildcard: archive.mk
list-archive-wildcard: ternary.mk
+
+Making depend-on-existing-member out-of-date archive.mk
depend-on-existing-member
+
`depend-on-nonexistent-member' is up to date.
+Making remove-archive
rm -f libprog.a
+
exit status 0
diff -r 9309721f4d39 -r fd0ca587d7e1 usr.bin/make/unit-tests/archive.mk
--- a/usr.bin/make/unit-tests/archive.mk Thu Oct 08 17:54:20 2020 +0000
+++ b/usr.bin/make/unit-tests/archive.mk Thu Oct 08 18:37:26 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: archive.mk,v 1.8 2020/09/07 05:16:32 rillig Exp $
+# $NetBSD: archive.mk,v 1.9 2020/10/08 18:37:26 rillig Exp $
#
# Very basic demonstration of handling archives, based on the description
# in PSD.doc/tutorial.ms.
@@ -17,9 +17,9 @@
.if ${.PARSEDIR:tA} != ${.CURDIR:tA}
@cd ${MAKEFILE:H} && cp ${FILES} [at]*.mk ${.CURDIR}
.endif
-# The following targets are run in sub-makes to ensure that they get the
-# current state of the filesystem right, since they creating and removing
-# files.
+# The following targets create and remove files. The filesystem cache in
+# dir.c would probably not handle this correctly, therefore each of the
+# targets is run in its separate sub-make.
${RUN} ${MAKE_CMD} remove-archive
${RUN} ${MAKE_CMD} create-archive
${RUN} ${MAKE_CMD} list-archive
@@ -28,30 +28,35 @@
${RUN} ${MAKE_CMD} depend-on-nonexistent-member
${RUN} ${MAKE_CMD} remove-archive
-create-archive: ${ARCHIVE}
+create-archive: ${ARCHIVE} pre post
# The indirect references with the $$ cover the code in Arch_ParseArchive
# that calls Var_Parse. It's an esoteric scenario since at the point where
# Arch_ParseArchive is called, the dependency line is already fully expanded.
#
-${ARCHIVE}: $${:Ulibprog.a}(archive.mk modmisc.mk $${:Uvarmisc.mk})
+${ARCHIVE}: $${:Ulibprog.a}(archive.mk modmisc.mk $${:Uvarmisc.mk}) pre post
ar cru ${.TARGET} ${.OODATE}
ranlib ${.TARGET}
-list-archive: ${ARCHIVE}
+list-archive: ${ARCHIVE} pre post
ar t ${.ALLSRC}
# XXX: I had expected that this dependency would select all *.mk files from
# the archive. Instead, the globbing is done in the current directory.
# To prevent an overly long file list, the pattern is restricted to [at]*.mk.
-list-archive-wildcard: ${ARCHIVE}([at]*.mk)
+list-archive-wildcard: ${ARCHIVE}([at]*.mk) pre post
${RUN} printf '%s\n' ${.ALLSRC:O:@member@${.TARGET:Q}': '${member:Q}@}
-depend-on-existing-member: ${ARCHIVE}(archive.mk)
+depend-on-existing-member: ${ARCHIVE}(archive.mk) pre post
${RUN} echo $@
-depend-on-nonexistent-member: ${ARCHIVE}(nonexistent.mk)
+depend-on-nonexistent-member: ${ARCHIVE}(nonexistent.mk) pre post
${RUN} echo $@
-remove-archive:
+remove-archive: pre post
rm -f ${ARCHIVE}
+
+pre: .USEBEFORE
+ @echo Making ${.TARGET} ${.OODATE:C,.+,out-of-date,W} ${.OODATE}
+post: .USE
+ @echo
Home |
Main Index |
Thread Index |
Old Index