Makefile revision b9625461755578f3eed04676d42a63fd2caebd0c
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User
59602f2a7c4e4809941583bed3e94cd26e628f1aTinderbox User# hetcats/Makefile
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater# $Id$
c78c39caab4cf8b5daefc9c65878f7f5ed3eb7a0Tinderbox User# Author: Klaus L�ttich
f536382c59dd492a14667b753816d920f9981f1cTinderbox User# Year: 2003
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews# This Makefile will compile the new hetcats system and provides also
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User# targets for test programs during implementation phases.
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User
287a6a8f9040dc43560cd69cddf83bfc0f53b76fTinderbox User# !!! Note: This makefile is written for GNU make !!!
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews# (gmake on solaris ; make on linux)
8de3f14f1c300c3e1ed99084cc03485b42c92bf1Tinderbox User
e5a6871cd0635ecdb2bf792316a2d8c53206f4b2Tinderbox User####################################################################
950d203b64f512b85fcc093ee1e9e3e531a1aea3Tinderbox User## Some varibles, which control the compilation
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox UserINCLUDE_PATH = ghc:hetcats
3759f10fc543747668b1ca4b4671f35b0dea8445Francis DupontCOMMONLIB_PATH = Common/Lib:Common/Lib/Parsec:Common/ATerm
e676a596869d8a80a644c99a848afb53d1c5975eMark AndrewsCLEAN_PATH = Common:Logic:CASL:Syntax:Static:GUI:HasCASL:Haskell:Haskell/Language:Modal:CSP-CASL:$(INCLUDE_PATH)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
3759f10fc543747668b1ca4b4671f35b0dea8445Francis DupontHC = ghc
d5637bdbb931ff79fced3d4858d83212ea58ed15Tinderbox UserPERL = perl
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsHAPPY = happy
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsDRIFT = $(PERL) utils/DrIFT
3759f10fc543747668b1ca4b4671f35b0dea8445Francis DupontAG = $(PERL) utils/ag
d5637bdbb931ff79fced3d4858d83212ea58ed15Tinderbox UserHADDOCK = $(PERL) utils/haddock
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox UserHC_FLAGS = -fglasgow-exts -fallow-overlapping-instances -Wall
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsHC_INCLUDE = -i$(INCLUDE_PATH)
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox UserHC_PACKAGE = -package data
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox UserAG_FLAGS = -mdcfs
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User### Profiling and Warnings (only for debugging)
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews### Attention every module must be compiled with profiling or the linker
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews### cannot link the various .o files properly. So after switching on
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User### Profiling, do an 'gmake clean; gmake'
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews### If you need Profiling comment out the following line
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User#HC_PROF = -prof -auto-all -Wall
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox UserHCI_OPTS = $(HC_FLAGS) $(HC_PACKAGE) $(HC_INCLUDE)
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark AndrewsHC_OPTS = $(HCI_OPTS) $(HC_PROF)
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews### list of directories to run checks in
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox UserTESTDIRS = CASL HasCASL test
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt####################################################################
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User## sources for hetcats (semi - manually produced with a perl script)
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Huntifneq ($(MAKECMDGOALS),clean)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterifneq ($(MAKECMDGOALS),bin_clean)
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupontifneq ($(MAKECMDGOALS),d_clean)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterifneq ($(MAKECMDGOALS),real_clean)
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Huntifneq ($(MAKECMDGOALS),distclean)
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox Userinclude sources_hetcats.mk
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrewsendif
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Huntendif
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Userendif
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updaterendif
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupontendif
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsobjects = $(patsubst %.lhs,%.o,$(sources:%.hs=%.o))
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrewsdrifted_files = Syntax/AS_Architecture.hs Syntax/AS_Library.hs\
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User Common/AS_Annotation.hs CASL/AS_Basic_CASL.hs Syntax/AS_Structured.hs
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# this variable holds the modules that should be documented
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater# the imported parsec library is not included!
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsdoc_sources = $(filter-out Common/Lib/% ,$(sources))
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User####################################################################
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews### targets
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews.PHONY : clean d_clean real_clean bin_clean check
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark Andrews.SECONDARY : %.hs %.d
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#.PRECIOUS: sources_hetcats.mk
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox Userhets: $(objects)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $(RM) $@
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox User $(HC) -o $@ $(HC_OPTS) $(objects)
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User
294e9d4c34462d29a3e766c88f452b46aeb3702fTinderbox Userhetcats-make: hets.hs utils/create_sources.pl $(drifted_files)
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User $(RM) hetcats-make sources_hetcats.mk
4c6bae917bec70e1fc4d1b761a9765075af78441Tinderbox User $(HC) --make -o hets $< $(HC_OPTS) 2>&1 | tee hetcats-make && \
294e9d4c34462d29a3e766c88f452b46aeb3702fTinderbox User $(PERL) utils/create_sources.pl hetcats-make sources_hetcats.mk
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt###############################
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt### TAGS files for (x)emacs
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews# load them with "M-x" "visit-tags-table" from
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User# "HetCATS/hetcats/hetcats.TAGS"
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt# use "M-." to search for a tag
7cc0a5d21ef046bfd630c4769943d896a7d7472cTinderbox User# !!Beware this is somewhat instable, because it uses an absolute path!!
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox Userhetcats.TAGS: $(sources)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews /home/ger/linux/ghc-5.04.2/bin/i386-unknown-linux/hasktags \
ee11dfc481f2ef6a032a715454f6290961a722d2Tinderbox User $(sources); mv TAGS $@; mv tags hetcats.tags
ee11dfc481f2ef6a032a715454f6290961a722d2Tinderbox User
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews###############################
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User### Documentation via haddock
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsdoc: docs/index.html utils/hd-lib
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrewsdocs/index.html: $(doc_sources)
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews $(HADDOCK) $(doc_sources) -o docs -h \
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User -t 'HetCATS -- a heterogenous CASL tool set'
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User###############
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews### clean up
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User### removes *.hi and *.o in all include directories
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonclean: bin_clean
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews (cd $$p ; $(RM) *.hi *.o) ; done
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews### remove binaries
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox Userbin_clean:
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews $(RM) hets
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews $(RM) test_parser
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User $(RM) CASL/capa
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $(RM) HasCASL/hacapa
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(RM) Haskell/hapa
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson $(RM) Haskell/wrap
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(RM) Syntax/hetpa
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews $(RM) Static/hetana
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User $(RM) Static/hetana
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $(RM) GUI/hetdg
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(RM) hetpa
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson $(RM) hetana
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(RM) hetdg
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User### additonally removes *.d (dependency files) in every include directory
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews### also delete *.d.bak (dependency file backups)
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrewsd_clean: clean
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User for p in $(subst :, ,$(CLEAN_PATH)) . ; do \
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews (cd $$p ; $(RM) *.d *.d.bak) ; done
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User
a450977e98155f6e828fe6f8d52cf24674231831Mark Andrews### remove files also in own libraries
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrewslib_clean:
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews for p in $(subst :, ,$(COMMONLIB_PATH):$(CLEANPATH)) . ; do \
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User (cd $$p ; $(RM) *.hi *.d *.o) ; done
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews### additionally removes the files that define the sources-variable
2a31bd531072824ef252c18303859d6af7451b00Francis Dupontreal_clean: bin_clean lib_clean
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User $(RM) hetcats-make sources_hetcats.mk
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews $(RM) AS_*.hs
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews### additionally removes files not in CVS tree
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox Userdistclean: real_clean
5747235bf35e7398984fd6b4632743396895ea7aTinderbox User $(RM) hetcats/Version.hs
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews $(RM) $(drifted_files)
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews $(RM) Haskell/Language/Parser.hs
a03cb08d0c4f1ca5fbc121d2f02bdffa7eb52286Mark Andrews
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews####################################################################
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews### test targets
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews####################################################################
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User
5747235bf35e7398984fd6b4632743396895ea7aTinderbox User### a parser to test annotation parser and Id parsers
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrewstest_parser: Common/test_parser
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox UserCommon/test_parser: Common/test_parser.hs Common/AS_Annotation.der.hs
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews $(RM) $@
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews $(HC) --make -o $@ $< $(HC_OPTS)
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User### interactive
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrewsghci:
01a5c5503482fb3ba52088bf0178a7213273bf96Mark Andrews $(HC)i $(HCI_OPTS)
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User### christian's target
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User### CASL parser
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updatercapa: CASL/capa
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox UserCASL/capa: CASL/capa.lhs Common/*.hs CASL/*.hs
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $(RM) $@
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(HC) --make -o $@ $< $(HC_OPTS)
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updater
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User### HasCASL parser
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrewshacapa: HasCASL/hacapa
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsHasCASL/hacapa: HasCASL/hacapa.lhs CASL/capa HasCASL/*.hs
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(RM) $@
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User $(HC) --make -o $@ $< $(HC_OPTS)
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews### Haskell parser
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox Userhapa: Haskell/hapa
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox UserHaskell/hapa: Haskell/hapa.lhs Haskell/*.hs $(drifted_files) Haskell/Language/Parser.hs
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updater $(RM) $@
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(HC) --make -o $@ $< $(HC_OPTS)
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox UserHaskell/Language/Parser.hs: Haskell/Language/Parser.ly
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $(HAPPY) $<
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson### Haskell wrap parser
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox Userwrap: Haskell/wrap
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox UserHaskell/wrap: Haskell/wrap.lhs Haskell/*.hs
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $(RM) $@
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(HC) --make -o $@ $< $(HC_OPTS)
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User### HetCASL parser
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrewshetpa: Syntax/hetpa.hs $(drifted_files) *.hs
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User $(RM) $@
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $(HC) --make -o $@ $< $(HC_OPTS)
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updater### HetCASL parser
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox Userhetana: Static/hetana.hs $(drifted_files) *.hs
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews $(RM) $@
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User $(HC) --make -o $@ $< $(HC_OPTS)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User### HetCASL with dev graph
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonhetdg: GUI/hetdg.hs $(drifted_files) *.hs
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User $(RM) $@
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews $(HC) --make -o $@ $< $(HC_OPTS) -package-conf ../uni/uni-package.conf -package uni-davinci -package uni-server
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User### run tests in other directories
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox Usercheck: hetcats
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User for i in $(TESTDIRS); do $(MAKE) -C $$i check; done
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User####################################################################
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews## Preparing the version of HetCATS
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox Userhetcats/Version.hs: hetcats/Version.in version_nr
ac2e2800b4ac9cbe4cb756d967f4583c611eb75eMark Andrews $(PERL) utils/build_version.pl version_nr < hetcats/Version.in > $@
70d987def5a58ebeb8243017c0ec2e9b2c326cf4Evan Hunt
70d987def5a58ebeb8243017c0ec2e9b2c326cf4Evan Hunt## two hardcoded dependencies for a correct generation of Version.hs
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrewshetcats/Options.hs: hetcats/Version.hs
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox Userhets.hs: hetcats/Version.hs
bac4435d473c9a0281507524f084480c34aa942aTinderbox User####################################################################
933799f3641f4f78445d015008bad0038900a82aTinderbox User## rules for DrIFT
f0c5e918974bf778af6cd1e25309ad13e30a79a6Tinderbox User
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews%.ly: %.hs
7ca715ad1587a68a531ea1cdea07515d7232567eTinderbox User $(HAPPY) $<
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox User
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater%.hs: %.ag.hs
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater $(AG) $<
bac4435d473c9a0281507524f084480c34aa942aTinderbox User
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews%.hs: %.der.hs
933799f3641f4f78445d015008bad0038900a82aTinderbox User $(DRIFT) $< > $@
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews
933799f3641f4f78445d015008bad0038900a82aTinderbox User%.hs: %.ag
4151211e6649332f7b5a55870cbe37128bcc7b29Tinderbox User $(AG) $< -o $@
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews
ac2e2800b4ac9cbe4cb756d967f4583c611eb75eMark Andrews%.lhs: %.der.lhs
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater $(DRIFT) $< > $@
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
f525041ae26958385b697cf82a30f108577024b6Tinderbox User## compiling rules for object and interface files
b02be031b9ff37b042adc8e68e36b8bbc1f672b7Tinderbox User%.o %.hi: %.hs
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater $(HC) -c $< $(HC_OPTS)
ba8b771c371967dd1254c7fa82ebe4158ee04b24Tinderbox User
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater
3ec8f7777ea2b04fc1ebb63077f0916f63b1011aTinderbox User%.o %.hi: %.lhs
c218e22e3e6cbd409b61a14f1480b5ce5c70bfc1Tinderbox User $(HC) -c $< $(HC_OPTS)
b02be031b9ff37b042adc8e68e36b8bbc1f672b7Tinderbox User
933799f3641f4f78445d015008bad0038900a82aTinderbox User## compiling rules for dependencies
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater%.d : %.hs
19b3dc94bce93fa76bd7e066f9298630dbc9dcb4Automatic Updater $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater%.d : %.lhs
ecbc7ebb243a1f8a5dc6f28185ffe9e61d3b2102Mark Andrews $(HC) -M $< $(HC_OPTS) -optdep-f -optdep$@
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater####################################################################
bac4435d473c9a0281507524f084480c34aa942aTinderbox User## Setting a global search path (for dependency files)
39ae0eafed076ef769fef5c18b22a8051df5c93aTinderbox User
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsifneq ($(MAKECMDGOALS),clean)
c2abd6efeb9affa70aabb63da2acb23e135cf7f2Mark Andrewsifneq ($(MAKECMDGOALS),real_clean)
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupontifneq ($(MAKECMDGOALS),d_clean)
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox Userifneq ($(MAKECMDGOALS),real_clean)
f525041ae26958385b697cf82a30f108577024b6Tinderbox Userifneq ($(MAKECMDGOALS),distclean)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater## include every .d file in INCLUDE_PATH
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater-include $(objects:.o=.d)
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User
5e82fe9a56d17bfbd120817d00d28c5952ab4ddcTinderbox Usersources_hetcats.mk: hetcats-make hetcats/Version.hs
4cda4fd158d6ded5586bacea8c388445d99611eaAutomatic Updaterendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
f2f7a53ba0ba69cfe8c505eea16f71bad9d8d449Tinderbox Userendif
c26604a73c4ce907ef6392f38b3fac838b1873a9Tinderbox Userendif
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsendif
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater