adamc@378
|
1 BIN := /usr/local/bin
|
adamc@378
|
2 LIB := /usr/local/lib/urweb
|
adamc@378
|
3 INCLUDE := /usr/local/include/urweb
|
adamc@378
|
4 SITELISP := /usr/local/share/emacs/site-lisp/urweb-mode
|
adamc@378
|
5
|
adamc@378
|
6 LIB_UR := $(LIB)/ur
|
adamc@378
|
7 LIB_C := $(LIB)/c
|
adamc@378
|
8
|
adamc@102
|
9 all: smlnj mlton c
|
adamc@0
|
10
|
adamc@378
|
11 .PHONY: all smlnj mlton c clean install
|
adamc@0
|
12
|
adamc@244
|
13 smlnj: src/urweb.cm
|
adamc@244
|
14 mlton: bin/urweb
|
adamc@244
|
15 c: clib/urweb.o clib/driver.o
|
adamc@0
|
16
|
adamc@0
|
17 clean:
|
adamc@0
|
18 rm -f src/*.mlton.grm.* src/*.mlton.lex.* \
|
adamc@244
|
19 src/urweb.cm src/urweb.mlb \
|
adamc@102
|
20 clib/*.o
|
adamc@0
|
21 rm -rf .cm src/.cm
|
adamc@0
|
22
|
adamc@244
|
23 clib/urweb.o: src/c/urweb.c
|
adamc@244
|
24 gcc -O3 -I include -c src/c/urweb.c -o clib/urweb.o
|
adamc@102
|
25
|
adamc@102
|
26 clib/driver.o: src/c/driver.c
|
adamc@117
|
27 gcc -O3 -I include -c src/c/driver.c -o clib/driver.o
|
adamc@102
|
28
|
adamc@244
|
29 src/urweb.cm: src/prefix.cm src/sources
|
adamc@0
|
30 cat src/prefix.cm src/sources \
|
adamc@244
|
31 >src/urweb.cm
|
adamc@0
|
32
|
adamc@244
|
33 src/urweb.mlb: src/prefix.mlb src/sources src/suffix.mlb
|
adamc@0
|
34 cat src/prefix.mlb src/sources src/suffix.mlb \
|
adamc@0
|
35 | sed 's/^\(.*\).grm$$/\1.mlton.grm.sig\n\1.mlton.grm.sml/' \
|
adamc@0
|
36 | sed 's/^\(.*\).lex$$/\1.mlton.lex.sml/' \
|
adamc@244
|
37 >src/urweb.mlb
|
adamc@0
|
38
|
adamc@0
|
39 %.mlton.lex: %.lex
|
adamc@0
|
40 cp $< $@
|
adamc@0
|
41 %.mlton.grm: %.grm
|
adamc@0
|
42 cp $< $@
|
adamc@0
|
43
|
adamc@0
|
44 %.mlton.lex.sml: %.mlton.lex
|
adamc@0
|
45 mllex $<
|
adamc@0
|
46
|
adamc@0
|
47 %.mlton.grm.sig %.mlton.grm.sml: %.mlton.grm
|
adamc@0
|
48 mlyacc $<
|
adamc@0
|
49
|
adamc@0
|
50 MLTON := mlton
|
adamc@0
|
51
|
adamc@0
|
52 ifdef DEBUG
|
adamc@0
|
53 MLTON += -const 'Exn.keepHistory true'
|
adamc@0
|
54 endif
|
adamc@0
|
55
|
adamc@244
|
56 bin/urweb: src/urweb.mlb src/*.sig src/*.sml \
|
adamc@244
|
57 src/urweb.mlton.lex.sml \
|
adamc@244
|
58 src/urweb.mlton.grm.sig src/urweb.mlton.grm.sml
|
adamc@244
|
59 $(MLTON) -output $@ src/urweb.mlb
|
adamc@378
|
60
|
adamc@378
|
61 install:
|
adamc@378
|
62 cp bin/urweb $(BIN)/
|
adamc@378
|
63 mkdir -p $(LIB_UR)
|
adamc@378
|
64 cp lib/*.urs $(LIB_UR)/
|
adamc@378
|
65 cp lib/*.ur $(LIB_UR)/
|
adamc@378
|
66 mkdir -p $(LIB_C)
|
adamc@378
|
67 cp clib/*.o $(LIB_C)/
|
adamc@378
|
68 mkdir -p $(INCLUDE)
|
adamc@378
|
69 cp include/*.h $(INCLUDE)/
|
adamc@378
|
70 mkdir -p $(SITELISP)
|
adamc@378
|
71 cp src/elisp/*.el $(SITELISP)/
|