diff --git a/mk/suffix.mk b/mk/suffix.mk
index 3793f73b1375223fb01e80d1632067dbffefe87a..79d6c7d6a248dbed9f917e318b29139ba520c901 100644
--- a/mk/suffix.mk
+++ b/mk/suffix.mk
@@ -30,19 +30,6 @@ endif
 #-----------------------------------------------------------------------------
 # Haskell Suffix Rules
 
-HC_SPLIT_PRE= \
- $(RM) $@ ; if [ ! -d $(basename $@) ]; then mkdir $(basename $@); else \
- $(FIND) $(basename $@) -name '*.$(way_)o' -print | xargs $(RM) __rm_food ; fi
-HC_SPLIT_POST  = touch $@
-
-ifeq "$(SplitObjs)" "YES"
-HC_PRE__  = $(HC_SPLIT_PRE) ;
-HC_POST__ = $(HC_SPLIT_POST) ;
-endif
-
-SRC_HC_POST_OPTS += $(HC_POST__)
-SRC_HC_PRE_OPTS  += $(HC_PRE__)
-
 %.$(way_)o : %.hs
 	$(HC_PRE_OPTS)
 	$(HC) $(HC_OPTS) -c $< -o $@ -osuf $(subst .,,$(suffix $@))
diff --git a/mk/target.mk b/mk/target.mk
index b9db06cafa3b9cbec033c96aaffd4bd7d6de0a48..88140d0fb802816a5686dc8a03cf8999d87e9e59 100644
--- a/mk/target.mk
+++ b/mk/target.mk
@@ -450,12 +450,29 @@ endef
 
 ifneq "$(HS_SRCS)" ""
 ifeq "$(SplitObjs)" "YES"
+
 define BUILD_LIB
 $(RM) $@
 TMPDIR=$(TMPDIR); export TMPDIR; $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o' -print | xargs ar q $@
 $(RANLIB) $@
 endef
-endif # $(filter...
+
+# Extra stuff for compiling Haskell files with $(SplitObjs):
+
+HC_SPLIT_PRE= \
+ $(RM) $@ ; if [ ! -d $(basename $@) ]; then mkdir $(basename $@); else \
+ $(FIND) $(basename $@) -name '*.$(way_)o' -print | xargs $(RM) __rm_food ; fi
+HC_SPLIT_POST  = touch $@
+
+ifeq "$(SplitObjs)" "YES"
+HC_PRE__  = $(HC_SPLIT_PRE) ;
+HC_POST__ = $(HC_SPLIT_POST) ;
+endif
+
+SRC_HC_POST_OPTS += $(HC_POST__)
+SRC_HC_PRE_OPTS  += $(HC_PRE__)
+
+endif # $(SplitObjs)
 endif
 
 #