# Default definitions filled in by config script, included from Makefile.inc include Makefile.inc .SUFFIXES: # To remove default rules like .cpp -> C++ BASIC = Makefile.inc Makefile README INSTALL COPYRIGHT configure HATSCRIPT = script/harch script/hat-trans.inst script/hat-template.inst \ script/echo.c script/confhat script/confhc-hat script/fixghc \ script/hat-graph.inst script/pkgdirlist \ src/Makefile.inc include/*.h HATLIB = src/hatlib/Makefile* src/hatlib/*.[ch] \ src/hatlib/*.hs src/hatlib/*.hx src/hatlib/hat.cabal \ src/hatlib/Hat/*.hs src/hatlib/hat-package.conf \ src/hatlib/Data/*.h[sx] src/hatlib/Hat/Data/*.hs \ src/hatlib/Control/*.hs src/hatlib/Control/Monad/*.hs \ src/hatlib/System/*.hs src/hatlib/System/IO/*.hs \ src/hatlib/System/Console/*.hs src/hatlib/Debug/*.hs \ src/hatlib/Text/*.hs src/hatlib/Text/PrettyPrint/*.hs \ src/hatlib/Text/ParserCombinators/*.hs \ src/hatlib/Text/ParserCombinators/Parsec/*.hs \ src/hatlib/Test/*.hs \ src/hatlib/Foreign/*.h[sx] src/hatlib/Hat/Foreign/*.hs \ src/hatlib/Foreign/Marshal/*.hs #src/hat/lib/Foreign/C/*.hs HATUI = src/hattools/Makefile* src/hattools/*.[ch] src/hattools/*.hs HATTRANS= src/hattrans/Makefile* \ $(shell hmake -package lang -M HatTrans.hs \ -Isrc/hattrans -Isrc/compiler98 \ | cut -d':' -f1 | sed -e 's/\.o$$/.hs/' | sed -e '/^. /d' ) DOC = docs/* MAN = man/*.1.in man/*.1 HATTOOLSET= hat-stack hat-check hat-detect hat-delta hat-anim hat-observe hat-trail hat-view HATTOOLS= $(patsubst %, lib/$(MACHINE)/%, $(HATTOOLSET)) TARGDIR= targets TARGETS= hat-trans-ghc hat-trans-nhc \ hat-lib-nhc hat-lib-ghc \ hat-tools-ghc hat-tools-nhc .PHONY: default all hat help config install hat-trans hat-lib hat-tools ##### build + install scripts default: hat hat: hat-$(BUILDCOMP) all: hat-$(BUILDCOMP) hat-lib-ghc hat-lib-nhc hat-$(BUILDCOMP): hat-trans-$(BUILDCOMP) hat-tools-$(BUILDCOMP) \ hat-lib-$(BUILDCOMP) hat-trans: hat-trans-${BUILDCOMP} hat-lib: hat-lib-${BUILDCOMP} hat-tools: hat-tools-${BUILDCOMP} help: @echo "Default target is: hat" @echo "Main targets include: hat hat-trans hat-lib hat-tools " @echo " all (= for ghc + nhc98)" @echo " config install clean realclean" @echo "For a specific build-compiler: hat-ghc hat-nhc" config: ./configure --config install: ./configure --install $(TARGETS): % : $(TARGDIR)/$(MACHINE)/% $(TARGDIR)/$(MACHINE)/hat-trans-nhc: $(HATTRANS) cd src/hattrans; $(MAKE) HC=$(BUILDWITH) all touch $(TARGDIR)/$(MACHINE)/hat-trans-nhc $(TARGDIR)/$(MACHINE)/hat-trans-ghc: $(HATTRANS) cd src/hattrans; $(MAKE) HC=$(BUILDWITH) all touch $(TARGDIR)/$(MACHINE)/hat-trans-ghc $(TARGDIR)/$(MACHINE)/hat-lib-nhc: $(HATLIB) cd src/hatlib; $(MAKE) HC=$(BUILDWITH) all touch $(TARGDIR)/$(MACHINE)/hat-lib-nhc $(TARGDIR)/$(MACHINE)/hat-lib-ghc: $(HATLIB) cd src/hatlib; $(MAKE) HC=$(BUILDWITH) all touch $(TARGDIR)/$(MACHINE)/hat-lib-ghc $(TARGDIR)/$(MACHINE)/hat-tools-nhc: $(HATUI) cd src/hattools; $(MAKE) HC=$(BUILDWITH) all touch $(TARGDIR)/$(MACHINE)/hat-tools-nhc $(TARGDIR)/$(MACHINE)/hat-tools-ghc: $(HATUI) cd src/hattools; $(MAKE) HC=$(BUILDWITH) all touch $(TARGDIR)/$(MACHINE)/hat-tools-ghc ##### scripts for packaging various distribution formats binDist: srcDist: rm -f hat-$(HATVERSION).tar hat-$(HATVERSION).tar.gz tar cf hat-$(HATVERSION).tar $(BASIC) tar rf hat-$(HATVERSION).tar $(HATSCRIPT) tar rf hat-$(HATVERSION).tar $(HATTRANS) tar rf hat-$(HATVERSION).tar $(HATLIB) tar rf hat-$(HATVERSION).tar $(HATUI) tar rf hat-$(HATVERSION).tar $(MAN) tar rf hat-$(HATVERSION).tar $(DOC) mkdir hat-$(HATVERSION) cd hat-$(HATVERSION); tar xf ../hat-$(HATVERSION).tar tar cf hat-$(HATVERSION).tar hat-$(HATVERSION) rm -r hat-$(HATVERSION) gzip hat-$(HATVERSION).tar ##### cleanup clean: cd src/hattrans; $(MAKE) clean cd src/hatlib; $(MAKE) clean cd src/hattools; $(MAKE) clean rm -rf $(BUILDDIR)/obj* # all object files realclean: clean cd src/hattrans; $(MAKE) realclean cd $(TARGDIR)/$(MACHINE); rm -f $(TARGETS) cd $(TARGDIR)/$(MACHINE); rm -f config.cache rm -rf $(LIBDIR)/$(MACHINE)