diff --git a/test/validate/Makefile b/test/validate/Makefile
index 536cf94f958e8438b381d7faa08049793e8e74af..988457f5ecadb24a0091f3dd46dc979945e5e9cd 100644
--- a/test/validate/Makefile
+++ b/test/validate/Makefile
@@ -63,20 +63,14 @@ endif
 #TESTPROD_HOST += ctest
 
 #  Libraries
-PROD_LIBS += seqSoftIoc
 PROD_LIBS += seq pv
 PROD_LIBS += $(EPICS_BASE_IOC_LIBS)
 
-LIBRARY += seqSoftIoc
-
 DBD += seqSoftIoc.dbd
 seqSoftIoc_DBD += base.dbd
 
 seqSoftIoc_SRCS += seqSoftIoc_registerRecordDeviceDriver.cpp
 
-seqSoftIoc_LIBS += seq pv
-seqSoftIoc_LIBS += $(EPICS_BASE_IOC_LIBS)
-
 ifeq '$(EPICS_HAS_UNIT_TEST)' '1'
 seqSoftIoc_SRCS += testSupport.c
 
@@ -94,13 +88,15 @@ vxTestHarness_DBD += $(COMMON_DIR)/vxTestHarnessRegistrars.dbd
 
 USR_DBDFLAGS += -I $(COMMON_DIR)
 
-TOUCH = $(PERL) -MExtUtils::Command -e touch
-
 DB += vxTestHarness.db
-vxTestHarness.db$(DEP):
-	$(TOUCH) $@
 endif
 
+define template_SRCS
+$(1)_SRCS += $(1).st $(seqSoftIoc_SRCS)
+endef
+$(foreach st, $(TESTPROD_HOST), $(eval $(call template_SRCS,$(st))))
+
+
 # PROD_RTEMS = rtemsTestHarness
 # rtemsTestHarness_SRCS += $(TESTPROD_HOST::%=%.st)
 
@@ -110,6 +106,13 @@ include $(TOP)/configure/RULES
 #----------------------------------------
 #  ADD RULES AFTER THIS LINE
 
+ifeq '$(EPICS_HAS_UNIT_TEST)' '1'
+vxTestHarness.db$(DEP):
+	@echo "$(COMMON_DIR)/vxTestHarness.db: ../Makefile" > $@
+vxTestHarness.dbd$(DEP):
+	@echo "$(COMMON_DIR)/vxTestHarness.dbd: ../Makefile" > $@
+endif
+
 SOFTIOC=$(EPICS_BASE_BIN)/softIoc$(HOSTEXE)
 SOFTDBD=$(EPICS_BASE)/dbd/softIoc.dbd