diff --git a/Makefile b/Makefile
index 620bdd7bebd500ad48adb5c80002c4041827b297..e26dbca452a3ddac970a320e08dd13aaae3407bb 100644
--- a/Makefile
+++ b/Makefile
@@ -32,11 +32,31 @@ TESTXFILES = test
 
 XFILES = fsl_glm fsl_sbca fsl_mvlm fsl_regfilt fsl_schurprod melodic
 
+OTHERFILES =
+
+BUILD_SBCA = $(shell [ -f fsl_sbca.cc ]; echo $$?)
+ifeq ($(BUILD_SBCA), 0)
+	OTHERFILES+=fsl_sbca
+endif
+
+BUILD_MVLM = $(shell [ -f fsl_mvlm.cc ]; echo $$?)
+ifeq ($(BUILD_MVLM), 0)
+        OTHERFILES+=fsl_sbca
+endif
+
+BUILD_SCHUR = $(shell [ -f fsl_schurprod.cc ]; echo $$?)
+ifeq ($(BUILD_SCHUR), 0)
+	OTHERFILES+=fsl_schurprod
+endif
+
+XFILES+=${OTHERFILES}
+
+
 RUNTCLS = Melodic
 
 SCRIPTS = melodicreport dual_regression
 
-all: ggmix fsl_regfilt fsl_glm melodic fsl_sbca fsl_mvlm fsl_schurprod
+all: ggmix fsl_regfilt fsl_glm melodic ${OTHERFILES}
 
 ggmix: ${GGMIX_OBJS}
 	${AR} -r libggmix.a ${GGMIX_OBJS}