Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 42268)
+++ /trunk/Config.kmk	(revision 42269)
@@ -962,4 +962,14 @@
 ifdef VBOX_WITHOUT_LINUX_COMPILER_H
  $(warning VBOX_WITHOUT_LINUX_COMPILER_H was renamed to VBOX_WITH_LINUX_COMPILER_H, the meaning is inverted.)
+endif
+
+#
+# Indicate VBOX_ONLY build if any of the VBOX_ONLY_* variables are set.
+#
+VBOX_ONLY_BUILD := $(strip $(foreach x, ADDITIONS DOCS EXTPACKS SDK TESTSUITE\
+	, $(if-expr defined(VBOX_ONLY_$(x)),VBOX_ONLY_$(x))))
+$(warning VBOX_ONLY_BUILD=$(VBOX_ONLY_BUILD))
+if $(words $(VBOX_ONLY_BUILD)) > 1
+ $(error VBox: More than one VBOX_ONLY build enabled! $(VBOX_ONLY_BUILD))
 endif
 
Index: /trunk/src/Makefile.kmk
===================================================================
--- /trunk/src/Makefile.kmk	(revision 42268)
+++ /trunk/src/Makefile.kmk	(revision 42269)
@@ -27,10 +27,6 @@
  include $(PATH_SUB_CURRENT)/recompiler/Makefile.kmk
 
-else if !defined(VBOX_ONLY_ADDITIONS) \
-     && !defined(VBOX_ONLY_DOCS) \
-     && !defined(VBOX_ONLY_EXTPACKS) \
-     && !defined(VBOX_ONLY_SDK) \
-     && !defined(VBOX_ONLY_TESTSUITE)
- # Normal build, no VBOX_ONLY_*.
+else if !defined(VBOX_ONLY_BUILD)
+ # Normal build.
  if1of ($(KBUILD_TARGET_ARCH), x86 amd64)
   ifdef VBOX_WITH_REM
@@ -47,5 +43,5 @@
   include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
  endif
-endif # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_EXTPACKS && !VBOX_ONLY_DOCS && !VBOX_ONLY_SDK && !VBOX_ONLY_TESTSUITE
+endif # !VBOX_ONLY_BUILD
 
 include $(FILE_KBUILD_SUB_FOOTER)
Index: /trunk/src/bldprogs/Makefile.kmk
===================================================================
--- /trunk/src/bldprogs/Makefile.kmk	(revision 42268)
+++ /trunk/src/bldprogs/Makefile.kmk	(revision 42269)
@@ -33,9 +33,5 @@
 VBoxCmp_SOURCES = VBoxCmp.cpp
 
-if  !defined(VBOX_ONLY_ADDITIONS) \
- && !defined(VBOX_ONLY_DOCS) \
- && !defined(VBOX_ONLY_EXTPACKS) \
- && !defined(VBOX_ONLY_SDK) \
- && !defined(VBOX_ONLY_TESTSUITE)
+ifndef VBOX_ONLY_BUILD
  BLDPROGS += scm
  scm_TEMPLATE = VBoxAdvBldProg
@@ -47,5 +43,12 @@
  	scmsubversion.cpp
 
+ BLDPROGS += VBoxCPP
+ VBoxCPP_TEMPLATE = VBoxAdvBldProg
+ VBoxCPP_SOURCES = \
+ 	VBoxCPP.cpp \
+ 	scmstream.cpp
+endif
 
+if !defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_EXTPACKS)
  BLDPROGS += VBoxTpG
  VBoxTpG_TEMPLATE = VBoxAdvBldProg
@@ -53,11 +56,4 @@
  	VBoxTpG.cpp \
  	scmstream.cpp
-
- BLDPROGS += VBoxCPP
- VBoxCPP_TEMPLATE = VBoxAdvBldProg
- VBoxCPP_SOURCES = \
- 	VBoxCPP.cpp \
- 	scmstream.cpp
-
 endif
 
