diff --git a/mk/config.mk.in b/mk/config.mk.in
index 9991f26269addd74380ef8236930ec77c731503c..fb9f40fae1f87fbe062a5ed3130d36288549b573 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -464,6 +464,7 @@ INFO_PREFIX    	        = $(FPTOOLS_TOP)/literate/info-utils/
 TEXI2HTML_PREFIX        = $(LITERATE_PREFIX)texi2html/
 
 HAPPY_PREFIX    	= $(FPTOOLS_TOP)/happy/src/
+GREENCARD_PREFIX	= $(FPTOOLS_TOP)/green-card/src/
 
 UNLIT_PREFIX    	= $(FPTOOLS_TOP)/ghc/utils/unlit/
 UGEN_PREFIX             = $(FPTOOLS_TOP)/ghc/utils/ugen/
@@ -603,6 +604,7 @@ VERBATIM		= $(VERBATIM_PREFIX)verbatim
 RUNTEST			= $(RUNTEST_PREFIX)runstdtest
 HAPPY			= @HappyCmd@
 LX			= @LxCmd@
+GREENCARD		= @GreencardCmd@
 
 ifeq "$(HAPPY)" ""
 HAPPY			= $(HAPPY_PREFIX)happy
diff --git a/mk/opts.mk b/mk/opts.mk
index 263de92e70359fdfd280cf7a580278a05405096a..837fe4829e31e00211df09c82cfc4cc5f31f9371 100644
--- a/mk/opts.mk
+++ b/mk/opts.mk
@@ -5,7 +5,7 @@
 #	This file defines Make variables for the
 #	option flags for each utility program
 #
-# 	$Id: opts.mk,v 1.2 1997/03/23 22:31:29 sof Exp $
+# 	$Id: opts.mk,v 1.3 1997/08/22 16:13:01 reid Exp $
 #
 #################################################################################
 
@@ -94,6 +94,7 @@ CTAGS_OPTS         = $(SRC_CTAGS_OPTS) $(WAY$(_way)_CTAGS_OPTS) $(EXTRA_CTAGS_OP
 CC_OPTS            = $(SRC_CC_OPTS) $(WAY$(_way)_CC_OPTS) $($*_CC_OPTS) $(EXTRA_CC_OPTS)
 FLEX_OPTS          = $(SRC_FLEX_OPTS) $(WAY$(_way)_FLEX_OPTS) $(EXTRA_FLEX_OPTS)
 HAPPY_OPTS         = $(SRC_HAPPY_OPTS) $(WAY$(_way)_HAPPY_OPTS) $($*_HAPPY_OPTS) $(EXTRA_HAPPY_OPTS)
+GREENCARD_OPTS     = $(SRC_GREENCARD_OPTS) $(WAY$(_way)_GREENCARD_OPTS) $($*_GREENCARD_OPTS) $(EXTRA_GREENCARD_OPTS)
 HSTAGS_OPTS        = $(SRC_HSTAGS_OPTS) $(WAY$(_way)_HSTAGS_OPTS) $(EXTRA_HSTAGS_OPTS)
 INSTALL_OPTS       = $(SRC_INSTALL_OPTS) $(WAY$(_way)_INSTALL_OPTS) $(EXTRA_INSTALL_OPTS)
 INSTALL_BIN_OPTS   = $(INSTALL_OPTS) $(SRC_INSTALL_BIN_OPTS)
diff --git a/mk/suffix.mk b/mk/suffix.mk
index 6f3c64b7e542f4fe6fcf348c3021821d4036c993..cb68ea160c156db6aebcb8b8ac9bf217ae2449d0 100644
--- a/mk/suffix.mk
+++ b/mk/suffix.mk
@@ -103,6 +103,13 @@ HASKELL_POST_COMPILE=$(patsubst %,$(HASKELL_SPLIT_POST),$(filter -split-objs,$(H
 %.hs : %.lx
 	$(LX) $(LX_OPTS) $<
 
+#-----------------------------------------------------------------------------
+# Green-card Suffix Rules
+#
+
+%.hs : %.gc
+	$(GREENCARD) $(GREENCARD_OPTS) $<
+
 #-----------------------------------------------------------------------------
 # C-related suffix rules