aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/objdir-writable.mk
diff options
context:
space:
mode:
authorSimon J. Gerraty <sjg@FreeBSD.org>2020-11-20 03:54:37 +0000
committerSimon J. Gerraty <sjg@FreeBSD.org>2020-11-20 03:54:37 +0000
commit1b65f0bd2bda7121a90f8cb4c1cacaa20f1b681d (patch)
tree90c374b8513ec5109e1ec4e2228e2edf648e8756 /unit-tests/objdir-writable.mk
parent302da1a3d35c15cb29d76e0a939f8bcb13f7ad80 (diff)
downloadsrc-1b65f0bd2bda7121a90f8cb4c1cacaa20f1b681d.tar.gz
src-1b65f0bd2bda7121a90f8cb4c1cacaa20f1b681d.zip
Import bmake-20201117vendor/NetBSD/bmake/20201117
o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable checks in InitObjdir. Explicit .OBJDIR target always allows read-only directory. o Fix building and unit-tests on non-BSD. o More code cleanup and refactoring. o More unit tests
Notes
Notes: svn path=/vendor/NetBSD/bmake/dist/; revision=367860 svn path=/vendor/NetBSD/bmake/20201117/; revision=367861; tag=vendor/NetBSD/bmake/20201117
Diffstat (limited to 'unit-tests/objdir-writable.mk')
-rw-r--r--unit-tests/objdir-writable.mk31
1 files changed, 31 insertions, 0 deletions
diff --git a/unit-tests/objdir-writable.mk b/unit-tests/objdir-writable.mk
new file mode 100644
index 000000000000..9fc1c69afb56
--- /dev/null
+++ b/unit-tests/objdir-writable.mk
@@ -0,0 +1,31 @@
+# $NetBSD: objdir-writable.mk,v 1.4 2020/11/14 07:36:00 sjg Exp $
+
+# test checking for writable objdir
+
+RO_OBJDIR?= ${TMPDIR:U/tmp}/roobj
+
+.if make(do-objdir)
+# this should succeed
+.OBJDIR: ${RO_OBJDIR}
+
+do-objdir:
+.else
+all: no-objdir ro-objdir explicit-objdir
+
+# make it now
+x!= echo; mkdir -p ${RO_OBJDIR}; chmod 555 ${RO_OBJDIR}
+
+.END: rm-objdir
+rm-objdir:
+ @rmdir ${RO_OBJDIR}
+
+no-objdir:
+ @MAKEOBJDIR=${RO_OBJDIR} ${.MAKE} -r -f /dev/null -C /tmp -V .OBJDIR
+
+ro-objdir:
+ @MAKEOBJDIR=${RO_OBJDIR} ${.MAKE} -r -f /dev/null -C /tmp -V .OBJDIR MAKE_OBJDIR_CHECK_WRITABLE=no
+
+explicit-objdir:
+ @MAKEOBJDIR=/tmp ${.MAKE} -r -f ${MAKEFILE:tA} -C /tmp do-objdir -V .OBJDIR
+.endif
+