?prevdifflink? - Blame
###############################################################################
#
# Generic rules for creating instances of miscellaneous Haskell classes
#
# This makefile requires three global variables:
# DRIFT - program configuration of "DrIFT"
# (in makerules.configuration)
# SYNTAX - Name of the Haskell module that contains the syntax (ast)
# definition file
# (defined in the makefile that imports this)
# HASKELL_MODULE - Definition of the hierarchical namespace of the Haskell
# module to be generated in the format "ABC.XYZ." (note for
# the trailing dot)
# (defined in the makefile that imports this)
#
EqInstances.hs: $(SYNTAX).hs
@echo 'module $(HASKELL_MODULE)EqInstances where' > $@
@echo '' >> $@
@echo 'import $(HASKELL_MODULE)$(SYNTAX)' >> $@
@echo '' >> $@
${DRIFT} -r -g Eq $< >> $@
OrdInstances.hs: $(SYNTAX).hs
@echo 'module $(HASKELL_MODULE)OrdInstances where' > $@
@echo '' >> $@
@echo 'import $(HASKELL_MODULE)$(SYNTAX)' >> $@
@echo '' >> $@
${DRIFT} -r -g Ord $< >> $@
ShowInstances.hs: $(SYNTAX).hs
@echo 'module $(HASKELL_MODULE)ShowInstances where' > $@
@echo '' >> $@
@echo 'import $(HASKELL_MODULE)$(SYNTAX)' >> $@
@echo '' >> $@
${DRIFT} -r -g Show $< >> $@
TermInstances.hs: $(SYNTAX).hs
@echo 'module $(HASKELL_MODULE)TermInstances where' > $@
@echo '' >> $@
@echo 'import $(HASKELL_MODULE)$(SYNTAX)' >> $@
@echo 'import TermRep' >> $@
@echo '' >> $@
${DRIFT} -r -g Term -g Typeable $< | \
sed s/mkAppTy/mkTyConApp/g >> $@
ATermInstances.hs: $(SYNTAX).hs
@echo 'module $(HASKELL_MODULE)ATermInstances where' > $@
@echo '' >> $@
@echo 'import $(HASKELL_MODULE)$(SYNTAX)' >> $@
@echo 'import ATermLib' >> $@
@echo '' >> $@
${DRIFT} -r -g ATermConvertible $< >> $@
ReadInstances.hs: $(SYNTAX).hs
@echo 'module $(HASKELL_MODULE)ReadInstances where' > $@
@echo '' >> $@
@echo 'import $(HASKELL_MODULE)$(SYNTAX)' >> $@
@echo '' >> $@
${DRIFT} -r -g Read $< >> $@
|