1# Unix makefile for calc example
2
3MOSMLHOME=${HOME}/mosml
4MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools
5MOSMLLEX=${MOSMLHOME}/bin/mosmllex
6MOSMLYACC=${MOSMLHOME}/bin/mosmlyac
7
8MOSMLC=mosmlc -c
9MOSMLL=mosmlc
10
11# Unix
12REMOVE=rm -f
13MOVE=mv
14EXEFILE=
15
16# DOS
17#REMOVE=del
18#MOVE=move
19#EXEFILE=.exe
20
21.SUFFIXES :
22.SUFFIXES : .sig .sml .ui .uo
23
24OBJS=Parser.uo Lexer.uo calc.uo
25
26all: calc
27
28calc: $(OBJS)
29	$(MOSMLL) -o calc$(EXEFILE) calc.uo
30
31Parser.sml Parser.sig: Parser.grm
32	$(MOSMLYACC) Parser.grm
33
34Lexer.sml: Lexer.lex
35	$(MOSMLLEX) Lexer.lex
36
37clean:
38	$(REMOVE) Makefile.bak
39	$(REMOVE) Parser.sig
40	$(REMOVE) Parser.sml
41	$(REMOVE) Lexer.sml
42	$(REMOVE) calc
43	$(REMOVE) *.ui
44	$(REMOVE) *.uo
45
46.sig.ui:
47	$(MOSMLC) $<
48
49.sml.uo:
50	$(MOSMLC) $<
51
52depend: Lexer.sml Parser.sml Parser.sig
53	$(REMOVE) Makefile.bak
54	$(MOVE) Makefile Makefile.bak
55	$(MOSMLTOOLS)/cutdeps < Makefile.bak > Makefile
56	$(MOSMLTOOLS)/mosmldep >> Makefile
57
58### DO NOT DELETE THIS LINE
59Parser.uo: Parser.ui
60calc.uo: Parser.ui Lexer.uo
61Lexer.uo: Parser.ui
62