Makefile revision 760ae19a92dde8249679a674f93f58d26a7c5f6b
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2004
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte# This Makefile will compile the new hetcats system and provides also
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte# targets for test programs during implementation phases.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte# !!! Note: This makefile is written for GNU make !!!
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte# (gmake on solaris ; make on linux)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte####################################################################
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte## Some varibles, which control the compilation
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteCLEAN_PATH = Common:Logic:CASL:Syntax:Static:GUI:HasCASL:Haskell:Modal:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:Isabelle:$(INCLUDE_PATH):Haskell/Hatchet
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte## set ghc imports properly for your system
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteLINUX_IMPORTS = $(wildcard /home/linux-bkb/ghc/ghc-latest/lib/ghc-*/imports)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:${LINUX_IMPORTS}:${GHC_IMPORTS}'
30e7468f8f41aa30ada067b2c1d5d284046514daPeter DunlapGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte# -fglasgow-exts comes in via ../uni/uni-package.conf
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte### Profiling and Warnings (only for debugging)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte### Attention every module must be compiled with profiling or the linker
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte### cannot link the various .o files properly. So after switching on
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte### Profiling, do an 'gmake clean; gmake'
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte### If you need Profiling comment out the following line
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte#HC_PROF = -prof -auto-all
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte### list of directories to run checks in
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte####################################################################
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte## sources for hetcats (semi - manually produced with a perl script)
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortedrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortegenrule_header_files = $(wildcard ATC/*.header.hs)
#.PRECIOUS: sources_hetcats.mk
$(RM) $@
(cd utils/GenerateRules; \
$(casl_files)
utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
### also delete *.d.bak (dependency file backups)
$(RM) $@
ghci:
$(RM) $@
$(RM) $@
$(RM) $@
$(RM) $@
$(RM) $@
$(RM) $@
$(RM) $@
### ATerm.Lib test system
$(RM) $@
$(RM) $@
$(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
## two hardcoded dependencies for a correct generation of Version.hs
$(HAPPY) $<
%.d : %.hs
%.d : %.lhs