simdest=$(HOME)/public_html
GHC = ghc
GHC_OPTS = -ignore-package monads-fd
# -fglasgow-exts
ghc=$(GHC) $(GHC_OPTS)
simout = risc386
simstems = Util GenSym Frame Intel Wellformed FrameIntel TokenIntel LexIntel ParseIntel StateIntel MainIntel
simsrcs = $(foreach stem,$(simstems),$(stem).hs)
simpack = risc386.cabal Makefile LIESMICH.html README.txt LICENSE LexIntel.x ParseIntel.y $(simsrcs) $(simout) test
.PHONY : dist default sim simship test clean veryclean
default : risc386
sim : $(simout)
$(simout) : $(simsrcs)
$(ghc) --make -o $@ MainIntel.hs
dist : $(simpack)
cabal sdist
cp -p dist/risc386*.tar.gz $(simdest)
simship : sim.tar.gz
cp -p $^ $(simdest)
sim.tar.gz : $(simpack)
tar czf $@ $^
%.hs: %.y
happy -iGRM.LOG $<
%.hs: %.x
alex $<
%.o: %.hs
$(GHC) $(GHC_OPTS) -c -o $@ $<
# Tests
test : succeed fail
succeed :
make -C test/succeed
fail :
make -C test/fail
# Clean
testclean :
-make -C test/succeed clean
-make -C test/fail clean
clean:
-rm *.hi *.o risc386
veryclean: testclean
-rm *.hi *.o MJLex.hs MJParse.hs risc386