+
+# Extra stuff for compiling Haskell files with $(SplitObjs):
+
+HC_SPLIT_PRE= \
+if [ ! -d $(basename $@) ]; then mkdir $(basename $@); else \
+ $(FIND) $(basename $@) -name '*.$(way_)o' -print | xargs $(RM) __rm_food ; fi
+HC_SPLIT_POST = touch $@
+
+SRC_HC_PRE_OPTS += $(HC_SPLIT_PRE) ;
+SRC_HC_POST_OPTS += $(HC_SPLIT_POST) ;
+
+#
+# If (Haskell) object files are split, cleaning up
+# consist of descending into the directories where
+# the myriads of object files have been put.
+#
+
+clean ::
+ $(FIND) $(patsubst %.$(way_)o,%,$(HS_OBJS)) -name '*.$(way_)o' -print | xargs $(RM) __rm_food
+ -rmdir $(patsubst %.$(way_)o,%,$(HS_OBJS)) > /dev/null 2>&1
+
+endif # $(SplitObjs)
+endif # $(HS_SRCS)