# 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)
syntax highlighted by Code2HTML, v. 0.9.1