SCM Repository
Annotation of /branches/vis15/src/compiler/Makefile_mlton.in
Parent Directory
|
Revision Log
Revision 5558 - (view) (download)
1 : | jhr | 5169 | # Makefile |
2 : | jhr | 3715 | # |
3 : | jhr | 5169 | # A Makefile for when we are using mlton to build the Diderot compiler |
4 : | # | ||
5 : | jhr | 3715 | # This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu) |
6 : | # | ||
7 : | # COPYRIGHT (c) 2015 The University of Chicago | ||
8 : | # All rights reserved. | ||
9 : | # | ||
10 : | # @configure_input@ | ||
11 : | # | ||
12 : | |||
13 : | #### Start of system configuration section. #### | ||
14 : | |||
15 : | # | ||
16 : | # directories for the install target | ||
17 : | # | ||
18 : | jhr | 4318 | PREFIX = @prefix@ |
19 : | INSTALL_BINDIR = $(PREFIX)/bin | ||
20 : | INSTALL_LIBDIR = $(PREFIX)/lib | ||
21 : | INSTALL_INCDIR = $(PREFIX)/include | ||
22 : | jhr | 3715 | |
23 : | # | ||
24 : | # directories for the local-install target | ||
25 : | # | ||
26 : | jhr | 4318 | SRCDIR = @DIDEROT_ROOT@/src |
27 : | LIBDIR = @DIDEROT_ROOT@/lib | ||
28 : | BINDIR = @DIDEROT_ROOT@/bin | ||
29 : | jhr | 3715 | |
30 : | jhr | 3722 | # |
31 : | # configuration support | ||
32 : | # | ||
33 : | jhr | 4318 | CONFIGDIR = @DIDEROT_ROOT@/config |
34 : | jhr | 3722 | |
35 : | jhr | 4318 | INSTALL = @INSTALL@ |
36 : | SHELL = @SHELL@ | ||
37 : | jhr | 3715 | @SET_MAKE@ |
38 : | |||
39 : | jhr | 3816 | # |
40 : | # generator tools | ||
41 : | # | ||
42 : | jhr | 4318 | MKMK = $(SRCDIR)/compiler/gen/fragments/mkmk.sh |
43 : | MKFRAGS = $(SRCDIR)/compiler/gen/fragments/mkfrags.sh | ||
44 : | jhr | 3816 | |
45 : | # | ||
46 : | # MLton build tools | ||
47 : | # | ||
48 : | jhr | 4318 | MLTON = @MLTON@ |
49 : | MLTON_FLAGS = -const 'Exn.keepHistory true' | ||
50 : | jhr | 3715 | |
51 : | #### End of system configuration section. #### | ||
52 : | |||
53 : | jhr | 4318 | PROGRAM = diderotc |
54 : | ROOT_MLB = driver/sources.mlb | ||
55 : | jhr | 3715 | |
56 : | jhr | 3722 | # |
57 : | # generated parser files | ||
58 : | # | ||
59 : | jhr | 5168 | PARSER_FILES = parser/diderot.grm.sml parser/diderot.lex.sml \ |
60 : | parser/diderot-1.0.grm.sml parser/diderot-1.0.lex.sml | ||
61 : | jhr | 3722 | # |
62 : | jhr | 5558 | # preprocess files that contain UTF-8 multibyte sequences in string literals |
63 : | jhr | 3722 | # |
64 : | jhr | 4318 | UTF8_FILES = cfg-ir/dom-tree-fn.sml \ |
65 : | ein/ein-pp.sml \ | ||
66 : | parse-tree/operators.sml \ | ||
67 : | jhr | 5557 | parse-tree/parse-tree-pp.sml \ |
68 : | jhr | 5558 | simple/simple-pp.sml \ |
69 : | simple/simple-types.sml \ | ||
70 : | jhr | 4318 | typechecker/check-expr.sml |
71 : | jhr | 3722 | EXPANDED_FILES = $(patsubst %.sml,%_mlton.sml,$(UTF8_FILES)) |
72 : | |||
73 : | jhr | 4318 | SRC_FILES = $(wildcard */sources.mlb) $(wildcard */*sml) |
74 : | jhr | 3715 | |
75 : | jhr | 4318 | CODE_FRAG_DIRS = codegen cxx-util target-cpu |
76 : | jhr | 3816 | |
77 : | jhr | 4318 | CODE_FRAG_FILES = $(patsubst %,%/fragments.sml,$(CODE_FRAG_DIRS)) |
78 : | CODE_FRAG_MKFILES = $(patsubst %,%/fragments.gmk,$(CODE_FRAG_DIRS)) | ||
79 : | jhr | 3816 | |
80 : | jhr | 4318 | .PHONY: local-install |
81 : | local-install: $(PROGRAM) | ||
82 : | cp -p $(PROGRAM) $(BINDIR) | ||
83 : | jhr | 3715 | |
84 : | jhr | 4318 | .PHONY: install |
85 : | install: $(HEAP_IMAGE) | ||
86 : | cp -p $(PROGRAM) $(INSTALL_BINDIR) | ||
87 : | jhr | 3715 | |
88 : | jhr | 4318 | .PHONY: build |
89 : | build: $(PROGRAM) | ||
90 : | jhr | 3715 | |
91 : | jhr | 3816 | $(PROGRAM): $(ROOT_MLB) $(SRC_FILES) $(CODE_FRAG_FILES) $(PARSER_FILES) $(EXPANDED_FILES) |
92 : | jhr | 4318 | $(MLTON) $(MLTON_FLAGS) -output $(PROGRAM) $(ROOT_MLB) |
93 : | jhr | 3715 | |
94 : | jhr | 4318 | .PHONY: typecheck |
95 : | jhr | 3816 | typecheck: |
96 : | jhr | 4318 | $(MLTON) -stop tc $(MLTON_FLAGS) $(ROOT_MLB) |
97 : | jhr | 3715 | |
98 : | jhr | 3722 | # |
99 : | # Generate the scanner and parser from specs | ||
100 : | # | ||
101 : | jhr | 4491 | parser/diderot-1.0.grm.sml: parser/diderot-1.0.grm |
102 : | cd parser; ml-antlr diderot-1.0.grm | ||
103 : | |||
104 : | parser/diderot-1.0.lex.sml: parser/diderot-1.0.lex | ||
105 : | cd parser; ml-ulex --strict-sml diderot-1.0.lex | ||
106 : | |||
107 : | jhr | 3715 | parser/diderot.grm.sml: parser/diderot.grm |
108 : | jhr | 4318 | cd parser; ml-antlr diderot.grm |
109 : | jhr | 3715 | |
110 : | parser/diderot.lex.sml: parser/diderot.lex | ||
111 : | jhr | 4318 | cd parser; ml-ulex --strict-sml diderot.lex |
112 : | jhr | 3715 | |
113 : | jhr | 3722 | # |
114 : | # preprocess files that contain UTF-8 multibyte sequences | ||
115 : | # | ||
116 : | |||
117 : | $(EXPANDED_FILES): %_mlton.sml: %.sml expand-utf8 | ||
118 : | jhr | 4318 | expand-utf8 < $< > $@ |
119 : | jhr | 3726 | |
120 : | jhr | 4318 | .phony: UTF8 |
121 : | jhr | 3722 | UTF8: |
122 : | jhr | 4318 | expand-utf8: $(CONFIGDIR)/expand-utf8.c |
123 : | $(CC) -o expand-utf8 $(CONFIGDIR)/expand-utf8.c | ||
124 : | jhr | 3816 | # |
125 : | # Rules for generating the fragment dependency and source files | ||
126 : | # | ||
127 : | jhr | 3722 | |
128 : | jhr | 3898 | codegen/fragments.gmk: codegen/fragments/CATALOG $(wildcard codegen/fragments/*in) |
129 : | jhr | 4318 | $(MKMK) codegen |
130 : | jhr | 3898 | |
131 : | codegen/fragments.sml: | ||
132 : | jhr | 4318 | $(MKFRAGS) codegen |
133 : | jhr | 3898 | |
134 : | jhr | 3888 | cxx-util/fragments.gmk: cxx-util/fragments/CATALOG $(wildcard cxx-util/fragments/*in) |
135 : | jhr | 4318 | $(MKMK) cxx-util |
136 : | jhr | 3816 | |
137 : | jhr | 3888 | cxx-util/fragments.sml: |
138 : | jhr | 4318 | $(MKFRAGS) cxx-util |
139 : | jhr | 3816 | |
140 : | jhr | 3908 | target-cpu/fragments.gmk: target-cpu/fragments/CATALOG $(wildcard target-cpu/fragments/*in) |
141 : | jhr | 4318 | $(MKMK) target-cpu |
142 : | jhr | 3908 | |
143 : | target-cpu/fragments.sml: | ||
144 : | jhr | 4318 | $(MKFRAGS) target-cpu |
145 : | jhr | 3908 | |
146 : | jhr | 3816 | # |
147 : | # Dependency file rules | ||
148 : | # | ||
149 : | |||
150 : | ifneq ($(MAKECMDGOALS),clean) | ||
151 : | ifneq ($(MAKECMDGOALS),devclean) | ||
152 : | ifneq ($(MAKECMDGOALS),distclean) | ||
153 : | jhr | 3898 | sinclude codegen/fragments.gmk |
154 : | jhr | 3888 | sinclude cxx-util/fragments.gmk |
155 : | jhr | 3908 | sinclude target-cpu/fragments.gmk |
156 : | jhr | 3816 | endif |
157 : | endif | ||
158 : | endif | ||
159 : | |||
160 : | jhr | 3715 | #################### Cleanup #################### |
161 : | |||
162 : | jhr | 5168 | CLEAN_SUBDIRS = gen/fragments |
163 : | jhr | 3715 | |
164 : | jhr | 4318 | CLEAN_FILES += $(PROGRAM) \ |
165 : | $(CODE_FRAG_MKFILES) \ | ||
166 : | $(CODE_FRAG_FILES) \ | ||
167 : | $(PARSER_FILES) \ | ||
168 : | $(EXPANDED_FILES) \ | ||
169 : | expand-utf8 | ||
170 : | jhr | 3715 | |
171 : | jhr | 4318 | DISTCLEAN_FILES += Makefile \ |
172 : | common/paths.sml \ | ||
173 : | common/size-of.sml \ | ||
174 : | nrrd/run-dnorm.sml \ | ||
175 : | options/version.sml \ | ||
176 : | $(MKMK) $(MKFRAGS) | ||
177 : | jhr | 3715 | |
178 : | DEVCLEAN_FILES = | ||
179 : | |||
180 : | include @DIDEROT_MKDIR@/clean-rules.gmk |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |