Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/vis15/src/compiler/Makefile_mlton.in
ViewVC logotype

Annotation of /branches/vis15/src/compiler/Makefile_mlton.in

Parent Directory Parent Directory | Revision Log 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