-#
-# Totally evil hack to make the setting of SUBDIRS be dependent
-# on whether we do `make install' or not. Having a $(ifeq ... ) would
-# be preferable..
-CURRENT_TARGET = $(MAKECMDGOALS)
-SUBDIRS = $(shell if (test x$(CURRENT_TARGET) = xinstall) ; then echo $(ProjectsToInstall); else echo $(ProjectsToBuild); fi)
+# find the projects that actually exist...
+ProjectsThatExist = $(filter $(patsubst %/, %, $(wildcard */)), $(AllProjects))
+
+# and filter only those that the user requested, if necessary
+ifeq "$(ProjectsToBuild)" ""
+SUBDIRS = $(ProjectsThatExist)
+else
+SUBDIRS = $(filter $(ProjectsToBuild), $(ProjectsThatExist))
+endif