1ALEX=../dist/build/alex/alex 2HC=ghc -Wall -fno-warn-unused-binds -fno-warn-missing-signatures -fno-warn-unused-matches -fno-warn-name-shadowing -fno-warn-unused-imports -fno-warn-tabs 3 4HAPPY=happy 5HAPPY_OPTS=-agc 6 7ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" 8exeext=.exe 9else 10exeext=.bin 11endif 12 13PROGS = lit Tokens Tokens_gscan words words_posn words_monad tiny haskell tiger 14 15ALEX_OPTS = --template=.. -g 16# ALEX_OPTS = --template=.. 17 18%.alex.hs : %.x 19 $(ALEX) $(ALEX_OPTS) $< -o $@ 20 21%.happy.hs : %.y 22 $(HAPPY) $(HAPPY_OPTS) $< -o $@ 23 24%.o : %.hs 25 $(HC) $(HC_OPTS) -c -o $@ $< 26 27CLEAN_FILES += *.info *.hi *.o *.bin *.exe 28 29all : $(addsuffix $(exeext),$(PROGS)) 30 31tiny$(exeext) : tiny.happy.hs Tokens_posn.alex.hs 32 $(HC) $(HC_OPTS) -o $@ $^ 33 34lit$(exeext) : lit.alex.hs 35 $(HC) $(HC_OPTS) -o $@ $^ 36 37Tokens$(exeext) : Tokens.alex.hs 38 $(HC) $(HC_OPTS) -o $@ $^ 39 40Tokens_gscan$(exeext) : Tokens_gscan.alex.hs 41 $(HC) $(HC_OPTS) -o $@ $^ 42 43words$(exeext) : words.alex.hs 44 $(HC) $(HC_OPTS) -o $@ $^ 45 46words_posn$(exeext) : words_posn.alex.hs 47 $(HC) $(HC_OPTS) -o $@ $^ 48 49words_monad$(exeext) : words_monad.alex.hs 50 $(HC) $(HC_OPTS) -o $@ $^ 51 52haskell$(exeext) : haskell.alex.hs 53 $(HC) $(HC_OPTS) -o $@ $^ 54 55tiger$(exeext) : tiger.alex.hs 56 $(HC) $(HC_OPTS) -main-is TigerLexer -o $@ $^ 57 58.PHONY: clean 59clean: 60 rm -f *.o *.hi $(addsuffix $(exeext),$(PROGS)) \ 61 *.alex.hs *.happy.hs 62