blob: e78602c602b397144d53d535690f023e61a73b66 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
all: smlnj mlton c
.PHONY: all smlnj mlton c clean
smlnj: src/urweb.cm
mlton: bin/urweb
c: clib/urweb.o clib/driver.o
clean:
rm -f src/*.mlton.grm.* src/*.mlton.lex.* \
src/urweb.cm src/urweb.mlb \
clib/*.o
rm -rf .cm src/.cm
clib/urweb.o: src/c/urweb.c
gcc -O3 -I include -c src/c/urweb.c -o clib/urweb.o
clib/driver.o: src/c/driver.c
gcc -O3 -I include -c src/c/driver.c -o clib/driver.o
src/urweb.cm: src/prefix.cm src/sources
cat src/prefix.cm src/sources \
>src/urweb.cm
src/urweb.mlb: src/prefix.mlb src/sources src/suffix.mlb
cat src/prefix.mlb src/sources src/suffix.mlb \
| sed 's/^\(.*\).grm$$/\1.mlton.grm.sig\n\1.mlton.grm.sml/' \
| sed 's/^\(.*\).lex$$/\1.mlton.lex.sml/' \
>src/urweb.mlb
%.mlton.lex: %.lex
cp $< $@
%.mlton.grm: %.grm
cp $< $@
%.mlton.lex.sml: %.mlton.lex
mllex $<
%.mlton.grm.sig %.mlton.grm.sml: %.mlton.grm
mlyacc $<
MLTON := mlton
ifdef DEBUG
MLTON += -const 'Exn.keepHistory true'
endif
bin/urweb: src/urweb.mlb src/*.sig src/*.sml \
src/urweb.mlton.lex.sml \
src/urweb.mlton.grm.sig src/urweb.mlton.grm.sml
$(MLTON) -output $@ src/urweb.mlb
|