rules revision e6a8a380ddaac0396c5816163bdb8e8113a6c010
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# hetcats/Makefile
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# $Header$
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# Author: (c) Klaus L�ttich, Christian Maeder, Uni Bremen 2002-2004
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# Year: 2004
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# This Makefile will compile the new hetcats system and provides also
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# targets for test programs during implementation phases.
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# !!! Note: This makefile is written for GNU make !!!
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# (gmake on solaris ; make on linux)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering####################################################################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## Some varibles, which control the compilation
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringINCLUDE_PATH = ghc:hetcats
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringCLEAN_PATH = Common:Logic:CASL:Syntax:Static:GUI:HasCASL:Haskell:Modal:CspCASL:ATC:ToHaskell:Proofs:Comorphisms:Isabelle:$(INCLUDE_PATH):Haskell/Hatchet
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## set ghc imports properly for your system
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringDRIFT_ENV = DERIVEPATH='.:ghc:hetcats:/home/linux-bkb/ghc/ghc-latest/lib/ghc-6.2/imports:${GHC_IMPORTS}'
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringDRIFT_deps = utils/DrIFT-src/*hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringGENERATERULES_deps = utils/GenerateRules/*hs $(DRIFT_deps)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHC = ghc
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringPERL = perl
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHAPPY = happy
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringDRIFT = $(DRIFT_ENV) utils/DrIFT
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHADDOCK = haddock
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHC_FLAGS = -fglasgow-exts -Wall
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHC_INCLUDE = -i$(INCLUDE_PATH)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHC_PACKAGE = -package-conf ../uni/uni-package.conf -package uni-davinci \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering -package uni-server
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### Profiling and Warnings (only for debugging)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### Attention every module must be compiled with profiling or the linker
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### cannot link the various .o files properly. So after switching on
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### Profiling, do an 'gmake clean; gmake'
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### If you need Profiling comment out the following line
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering#HC_PROF = -prof -auto-all
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHC_OPTS = $(HCI_OPTS) $(HC_PROF)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringDRIFT_OPTS = +RTS -K10m -RTS
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### list of directories to run checks in
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringTESTDIRS = Common CASL HasCASL
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering####################################################################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## sources for hetcats (semi - manually produced with a perl script)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),bin_clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),d_clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),real_clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),distclean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),genRules)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),utils/genRules)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),hets-opt)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),hets-optimized)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),derivedSources)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),release)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),check)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),apache_doc)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),clean_genRules)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),atctest2)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringinclude sources_hetcats.mk
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringdrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(gendrifted_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringgenrule_header_files = $(wildcard ATC/*.header.hs)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringgenrule_files = Common/Lib/Graph.hs Common/Id.hs Common/Result.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Common/AS_Annotation.der.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Syntax/AS_Structured.der.hs Syntax/AS_Architecture.der.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Common/GlobalAnnotations.hs Syntax/AS_Library.der.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering CASL/Sublogic.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering CASL/Morphism.hs CASL/Sign.hs CASL/AS_Basic_CASL.der.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering HasCASL/As.hs HasCASL/Le.hs HasCASL/SymbItem.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering HasCASL/Symbol.hs HasCASL/Morphism.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering CspCASL/AS_CSP_CASL.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Static/DevGraph.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Haskell/Hatchet/AnnotatedHsSyn.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Haskell/Hatchet/MultiModuleBasics.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Haskell/Hatchet/HsSyn.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Haskell/Hatchet/Representation.hs\
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Haskell/Hatchet/Class.hs Haskell/Hatchet/KindInference.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Haskell/Hatchet/Env.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering Isabelle/IsaSign.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringgendrifted_files = ATC/Graph.hs ATC/Id.hs ATC/Result.hs ATC/AS_Annotation.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ATC/AS_Library.hs ATC/GlobalAnnotations.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ATC/AS_Structured.hs ATC/AS_Architecture.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ATC/DevGraph.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering CASL/ATC_CASL.hs Haskell/ATC_Haskell.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering HasCASL/ATC_HasCASL.hs CspCASL/ATC_CspCASL.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ATC/IsaSign.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringgenerated_rule_files = $(patsubst %.hs,%.der.hs,$(gendrifted_files))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhappy_files = Haskell/Hatchet/HsParser.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# this variable holds the modules that should be documented
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# the imported parsec library is not included!
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringdoc_sources = $(filter-out ./Isabelle/IsaSign.hs ,$(sources))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering####################################################################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### targets
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering.PHONY : clean d_clean real_clean bin_clean check hetana hetpa hetdg \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering clean_genRules genRules
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering.SECONDARY : %.hs %.d $(generated_rule_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering#.PRECIOUS: sources_hetcats.mk
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringall: hets
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhets: $(sources)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhets-opt: hetcats/Version.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) distclean
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) derivedSources
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) hets-optimized
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhets-optimized:
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -O -o hets hets.hs $(HC_OPTS) 2>&1 | tee hetcats-make
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering strip hets
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhets-old: $(objects)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) -o hets $(HC_OPTS) $(objects)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhetcats-make: hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) hetcats-make sources_hetcats.mk
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering###############################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### TAGS files for (x)emacs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# load them with "M-x" "visit-tags-table" from
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# "HetCATS/hetcats/hetcats.TAGS"
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# use "M-." to search for a tag
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# !!Beware this is somewhat instable, because it uses an absolute path!!
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhetcats.TAGS: $(sources)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(sources); mv TAGS $@; mv tags hetcats.tags
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering###############################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### Documentation via haddock
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringdoc: docs/index.html
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering# index for prelude is missing
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringdocs/index.html: $(doc_sources)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HADDOCK) $(doc_sources) -o docs -h \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering -i docs/base.haddock \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering -t 'hets -- a heterogenous Specification (CASL) tool set'
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringapache_doc:
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) docs/*.*
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) distclean
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering cvs up -d
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) hetcats-make
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) doc
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) post_doc4apache
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringpost_doc4apache:
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(PERL) utils/post_process_docs.pl docs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering 'Common.Lib.Map.html:Common.Lib._Map.html'
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering cp docs/*.* a-docs/
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) docs/index.html
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering###############################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### release management
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringderivedSources: $(drifted_files) $(happy_files) hetcats/Version.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringutils/DrIFT: $(DRIFT_deps)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering (cd utils/DrIFT-src; $(HC) --make DrIFT.hs -o ../DrIFT && \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering strip ../DrIFT)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringutils/genRules: $(GENERATERULES_deps)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering (cd utils/GenerateRules; \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make '-i../..:../DrIFT-src' -package text GenerateRules.hs -o ../genRules && \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering strip ../genRules)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringrelease:
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) -r HetCATS
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering cvs -d :pserver:cvsread@cvs-agbkb.informatik.uni-bremen.de:/repository co HetCATS
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) -r uni
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering ln -s ../uni uni
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering (cd HetCATS; $(MAKE) derivedSources; ./clean.sh; \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering find . -name CVS -o -name \*.o -o -name \*.hi | xargs -r $(RM) -r; \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) clean.*; $(RM) Makefile; mv ReleaseMakefile Makefile)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering tar zcvf HetCATS.tgz HetCATS
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering#############################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### ATC DrIFT-rule generation
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringgenRules: $(generated_rule_files) utils/genRules
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering$(generated_rule_files): $(genrule_files) utils/genRules #$(genrule_header_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(MAKE) clean_genRules
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(foreach file,$(atc_files),$(gen_atc_files))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering utils/genRules -r $(rule) -o CASL -h ATC/CASL.header.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(casl_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering utils/genRules -r $(rule) -o HasCASL -h ATC/HasCASL.header.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(hascasl_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering utils/genRules -r $(rule) -o CspCASL -h ATC/CspCASL.header.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(cspcasl_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering utils/genRules -r $(rule) -o Haskell -h ATC/Haskell.header.hs \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(haskell_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringrule = ShATermConvertible
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringgen_atc_files = if [ -f ATC/$(basename $(basename $(notdir $(file)))).header.hs ]; then \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering utils/genRules -r $(rule) -o ATC -h ATC/$(basename $(basename $(notdir $(file)))).header.hs $(file); \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering else \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering utils/genRules -r $(rule) -o ATC $(file); \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering fi ;
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringatc_files := $(filter-out CASL/% HasCASL/% CspCASL/% Haskell/% ,$(genrule_files))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringcasl_files := $(filter CASL/% ,$(genrule_files))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhascasl_files := $(filter HasCASL/% ,$(genrule_files))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringcspcasl_files := $(filter CspCASL/% ,$(genrule_files))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhaskell_files := $(filter Haskell/%,$(genrule_files))
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringclean_genRules:
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $(generated_rule_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering###############
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### clean up
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### removes *.hi and *.o in all include directories
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringclean: bin_clean
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering (cd $$p ; $(RM) *.hi *.o) ; done
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### remove binaries
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringbin_clean:
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) hets
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) test_parser
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) CASL/capa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) HasCASL/hacapa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) Haskell/hapa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) Haskell/wrap
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) Syntax/hetpa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) Static/hetana
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) Static/hetana
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) GUI/hetdg
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) hetpa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) hetana
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) hetdg
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### additonally removes *.d (dependency files) in every include directory
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### also delete *.d.bak (dependency file backups)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringd_clean: clean
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering (cd $$p ; $(RM) *.d *.d.bak) ; done
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### remove files also in own libraries
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringlib_clean: clean
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering for p in $(subst :, ,$(COMMONLIB_PATH)) . ; do \
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering (cd $$p ; $(RM) *.hi *.d *.o) ; done
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### additionally removes the files that define the sources-variable
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poetteringreal_clean: bin_clean lib_clean
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering $(RM) hetcats-make sources_hetcats.mk
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering### additionally removes files not in CVS tree
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poetteringdistclean: real_clean clean_genRules d_clean
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering $(RM) hetcats/Version.hs
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering $(RM) $(drifted_files)
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering# $(RM) $(happy_files)
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering####################################################################
8bcca7e201b235a7e7ea28d735db142ad96b9d64Lennart Poettering### test targets
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering####################################################################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### a parser to test annotation parser and Id parsers
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringtest_parser: Common/test_parser
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### interactive
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringghci:
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC)i $(HCI_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### christian's target
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### CASL parser
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringcapa: CASL/capa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringCASL/capa: Common/*.hs CASL/*.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### HasCASL parser
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhacapa: HasCASL/hacapa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHasCASL/hacapa: Common/*.hs HasCASL/*.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### Haskell parser
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhapa: Haskell/hapa
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart PoetteringHaskell/hapa: Haskell/hapa.hs Haskell/Hatchet/*.hs $(happy_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### HetCASL parser
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhetpa: Syntax/hetpa.hs Syntax/*.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### HetCASL parser
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhetana: Static/hetana.hs Static/*.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### ATC test system
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringatctest: ATC/ATCTest.hs ATC/*.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringatctest2: ATC/ATCTest2.hs Common/SimpPretty.hs Common/ATerm/*.hs Common/Lib/*.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### ATerm.Lib test system
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringatermlibtest: Common/ATerm/ATermLibTest.hs Common/ATerm/*.hs Common/SimpPretty.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### HetCASL with dev graph
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhetdg: GUI/hetdg.hs $(drifted_files) *.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(RM) $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering### run tests in other directories
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringcheck: hetcats
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering####################################################################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## Preparing the version of HetCATS
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhetcats/Version.hs: hetcats/Version.in version_nr
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## two hardcoded dependencies for a correct generation of Version.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhetcats/Options.hs hetcats/WriteFn.hs hetcats/ReadFn.hs: hetcats/Version.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringhets.hs: hetcats/Version.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering####################################################################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## rules for DrIFT
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering%.hs: %.ly
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HAPPY) $<
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering%.hs: %.der.hs utils/DrIFT
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(DRIFT) $(DRIFT_OPTS) $< > $@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## compiling rules for object and interface files
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering%.o %.hi: %.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) -c $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering%.o %.hi: %.lhs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) -c $< $(HC_OPTS)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## compiling rules for dependencies
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering%.d : %.hs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering%.d : %.lhs
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering####################################################################
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## Setting a global search path (for dependency files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),real_clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),d_clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),real_clean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),distclean)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),genRules)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),utils/genRules)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),derivedSources)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),release)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifneq ($(MAKECMDGOALS),clean_genRules)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringifeq ($(MAKECMDGOALS),hets-old)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering## include every .d file in INCLUDE_PATH
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering-include $(objects:.o=.d)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringsources_hetcats.mk: hetcats-make hetcats/Version.hs hets.hs utils/create_sources.pl $(drifted_files) $(happy_files)
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poetteringendif
6c12b52e19640747e96f89d85422941a23dc6b29Lennart Poettering