Index: Makefile.inc1
===================================================================
--- Makefile.inc1	(revision 249833)
+++ Makefile.inc1	(working copy)
@@ -91,6 +91,9 @@
 .if ${MK_OFED} != "no"
 SUBDIR+=contrib/ofed
 .endif
+.if ${MK_TESTS} != "no"
+SUBDIR+=tests
+.endif
 #
 # We must do etc/ last for install/distribute to work.
 #
@@ -253,7 +256,8 @@
 		SSP_CFLAGS= \
 		-DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \
 		-DNO_PIC -DNO_PROFILE -DNO_SHARED \
-		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
+		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD \
+		-DNO_TESTS \
 
 # build-tools stage
 TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
@@ -263,12 +267,14 @@
 		BOOTSTRAPPING=${OSRELDATE} \
 		SSP_CFLAGS= \
 		-DNO_LINT \
-		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
+		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD \
+		-DNO_TESTS \
 
 # cross-tools stage
 XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		-DWITHOUT_GDB
+		-DWITHOUT_GDB \
+		-DNO_TESTS \
 
 # world stage
 WMAKEENV=	${CROSSENV} \
@@ -343,7 +349,8 @@
 		-DLIBRARIES_ONLY \
 		-DNO_CPU_CFLAGS \
 		-DNO_CTF \
-		-DNO_LINT
+		-DNO_LINT \
+		-DNO_TESTS \
 
 LIB32WMAKE=	${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \
 		-DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO -DWITHOUT_HTML
@@ -489,7 +496,7 @@
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; \
 	    ${WMAKE} -DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
-	    -DWITHOUT_MAN -DNO_PROFILE libraries
+	    -DWITHOUT_MAN -DNO_PROFILE -DNO_TESTS libraries
 _depend:
 	@echo
 	@echo "--------------------------------------------------------------"
@@ -1734,6 +1741,7 @@
 NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
 	-DWITHOUT_MAN -DWITHOUT_NLS -DNO_PROFILE \
 	-DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS \
+	-DNO_TESTS \
 	TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
 	CPUTYPE=${XDEV_CPUTYPE}
 
Index: share/mk/bsd.own.mk
===================================================================
--- share/mk/bsd.own.mk	(revision 249833)
+++ share/mk/bsd.own.mk	(working copy)
@@ -376,8 +376,16 @@
     NAND \
     OFED \
     OPENSSH_NONE_CIPHER \
-    SHARED_TOOLCHAIN
+    SHARED_TOOLCHAIN \
 
+# bsd.test.mk doesn't work with !bmake. Also don't build tests if NO_TESTS is
+# defined; this is for buildworld and elsewhere (ports potentially).
+.if defined(.PARSEDIR) && !defined(NO_TESTS)
+__DEFAULT_NO_OPTIONS+=TESTS
+.else
+MK_TESTS:=	no
+.endif
+
 #
 # Default behaviour of some options depends on the architecture.  Unfortunately
 # this means that we have to test TARGET_ARCH (the buildworld case) as well
