#-----------------------------------------------------------------------------
# C-related suffix rules
+ifeq "$(UseGhcForCc)" ""
+
%.$(way_)o : %.$(way_)s
@$(RM) $@
$(AS) $(AS_OPTS) -o $@ $< || ( $(RM) $@ && exit 1 )
@$(RM) $@
$(CC) $(CC_OPTS) -c $< -o $@
-#%.$(way_)s : %.c
-# @$(RM) $@
-# $(CC) $(CC_OPTS) -S $< -o $@
+%.$(way_)s : %.c
+ @$(RM) $@
+ $(CC) $(CC_OPTS) -S $< -o $@
+
+else
-%.c : %.flex
+%.$(way_)o : %.$(way_)s
@$(RM) $@
- $(FLEX) -t $(FLEX_OPTS) $< > $@ || ( $(RM) $@ && exit 1 )
-%.c : %.lex
+ $(HC) $(GHC_CC_OPTS) -c $< -o $@
+
+%.$(way_)o : %.c
@$(RM) $@
- $(FLEX) -t $(FLEX_OPTS) $< > $@ || ( $(RM) $@ && exit 1 )
+ $(HC) $(GHC_CC_OPTS) -c $< -o $@
+
+%.$(way_)o : %.S
+ @$(RM) $@
+ $(HC) $(GHC_CC_OPTS) -c $< -o $@
+
+%.$(way_)s : %.c
+ @$(RM) $@
+ $(HC) $(GHC_CC_OPTS) -c $< -o $@
+
+endif
# stubs are automatically generated and compiled by GHC
%_stub.$(way_)o: %.o
@:
+# -----------------------------------------------------------------------------
+# Flex/lex
+
+%.c : %.flex
+ @$(RM) $@
+ $(FLEX) -t $(FLEX_OPTS) $< > $@ || ( $(RM) $@ && exit 1 )
+%.c : %.lex
+ @$(RM) $@
+ $(FLEX) -t $(FLEX_OPTS) $< > $@ || ( $(RM) $@ && exit 1 )
+
#-----------------------------------------------------------------------------
# Yacc stuff