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 4491 - (view) (download)

1 : jhr 3715 # Makefile_mlton.in
2 :     #
3 :     # This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu)
4 :     #
5 :     # COPYRIGHT (c) 2015 The University of Chicago
6 :     # All rights reserved.
7 :     #
8 :     # @configure_input@
9 :     #
10 :     # A Makefile for when we are using mlton to build the compiler
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 4318 PARSER_FILES = parser/diderot.grm.sml parser/diderot.lex.sml
60 : jhr 3722 #
61 :     # preprocess files that contain UTF-8 multibyte sequences
62 :     #
63 : jhr 4318 UTF8_FILES = cfg-ir/dom-tree-fn.sml \
64 :     ein/ein-pp.sml \
65 :     parse-tree/operators.sml \
66 :     typechecker/check-expr.sml
67 : jhr 3722 EXPANDED_FILES = $(patsubst %.sml,%_mlton.sml,$(UTF8_FILES))
68 :    
69 : jhr 4318 SRC_FILES = $(wildcard */sources.mlb) $(wildcard */*sml)
70 : jhr 3715
71 : jhr 4318 CODE_FRAG_DIRS = codegen cxx-util target-cpu
72 : jhr 3816
73 : jhr 4318 CODE_FRAG_FILES = $(patsubst %,%/fragments.sml,$(CODE_FRAG_DIRS))
74 :     CODE_FRAG_MKFILES = $(patsubst %,%/fragments.gmk,$(CODE_FRAG_DIRS))
75 : jhr 3816
76 : jhr 4318 .PHONY: local-install
77 :     local-install: $(PROGRAM)
78 :     cp -p $(PROGRAM) $(BINDIR)
79 : jhr 3715
80 : jhr 4318 .PHONY: install
81 :     install: $(HEAP_IMAGE)
82 :     cp -p $(PROGRAM) $(INSTALL_BINDIR)
83 : jhr 3715
84 : jhr 4318 .PHONY: build
85 :     build: $(PROGRAM)
86 : jhr 3715
87 : jhr 3816 $(PROGRAM): $(ROOT_MLB) $(SRC_FILES) $(CODE_FRAG_FILES) $(PARSER_FILES) $(EXPANDED_FILES)
88 : jhr 4318 $(MLTON) $(MLTON_FLAGS) -output $(PROGRAM) $(ROOT_MLB)
89 : jhr 3715
90 : jhr 4318 .PHONY: typecheck
91 : jhr 3816 typecheck:
92 : jhr 4318 $(MLTON) -stop tc $(MLTON_FLAGS) $(ROOT_MLB)
93 : jhr 3715
94 : jhr 3722 #
95 :     # Generate the scanner and parser from specs
96 :     #
97 : jhr 4491 parser/diderot-1.0.grm.sml: parser/diderot-1.0.grm
98 :     cd parser; ml-antlr diderot-1.0.grm
99 :    
100 :     parser/diderot-1.0.lex.sml: parser/diderot-1.0.lex
101 :     cd parser; ml-ulex --strict-sml diderot-1.0.lex
102 :    
103 : jhr 3715 parser/diderot.grm.sml: parser/diderot.grm
104 : jhr 4318 cd parser; ml-antlr diderot.grm
105 : jhr 3715
106 :     parser/diderot.lex.sml: parser/diderot.lex
107 : jhr 4318 cd parser; ml-ulex --strict-sml diderot.lex
108 : jhr 3715
109 : jhr 3722 #
110 :     # preprocess files that contain UTF-8 multibyte sequences
111 :     #
112 :    
113 :     $(EXPANDED_FILES): %_mlton.sml: %.sml expand-utf8
114 : jhr 4318 expand-utf8 < $< > $@
115 : jhr 3726
116 : jhr 4318 .phony: UTF8
117 : jhr 3722 UTF8:
118 : jhr 4318 expand-utf8: $(CONFIGDIR)/expand-utf8.c
119 :     $(CC) -o expand-utf8 $(CONFIGDIR)/expand-utf8.c
120 : jhr 3816 #
121 :     # Rules for generating the fragment dependency and source files
122 :     #
123 : jhr 3722
124 : jhr 3898 codegen/fragments.gmk: codegen/fragments/CATALOG $(wildcard codegen/fragments/*in)
125 : jhr 4318 $(MKMK) codegen
126 : jhr 3898
127 :     codegen/fragments.sml:
128 : jhr 4318 $(MKFRAGS) codegen
129 : jhr 3898
130 : jhr 3888 cxx-util/fragments.gmk: cxx-util/fragments/CATALOG $(wildcard cxx-util/fragments/*in)
131 : jhr 4318 $(MKMK) cxx-util
132 : jhr 3816
133 : jhr 3888 cxx-util/fragments.sml:
134 : jhr 4318 $(MKFRAGS) cxx-util
135 : jhr 3816
136 : jhr 3908 target-cpu/fragments.gmk: target-cpu/fragments/CATALOG $(wildcard target-cpu/fragments/*in)
137 : jhr 4318 $(MKMK) target-cpu
138 : jhr 3908
139 :     target-cpu/fragments.sml:
140 : jhr 4318 $(MKFRAGS) target-cpu
141 : jhr 3908
142 : jhr 3816 #
143 :     # Dependency file rules
144 :     #
145 :    
146 :     ifneq ($(MAKECMDGOALS),clean)
147 :     ifneq ($(MAKECMDGOALS),devclean)
148 :     ifneq ($(MAKECMDGOALS),distclean)
149 : jhr 3898 sinclude codegen/fragments.gmk
150 : jhr 3888 sinclude cxx-util/fragments.gmk
151 : jhr 3908 sinclude target-cpu/fragments.gmk
152 : jhr 3816 endif
153 :     endif
154 :     endif
155 :    
156 : jhr 3715 #################### Cleanup ####################
157 :    
158 :     CLEAN_SUBDIRS =
159 :    
160 : jhr 4318 CLEAN_FILES += $(PROGRAM) \
161 :     $(CODE_FRAG_MKFILES) \
162 :     $(CODE_FRAG_FILES) \
163 :     $(PARSER_FILES) \
164 :     $(EXPANDED_FILES) \
165 :     expand-utf8
166 : jhr 3715
167 : jhr 4318 DISTCLEAN_FILES += Makefile \
168 :     common/paths.sml \
169 :     common/size-of.sml \
170 :     nrrd/run-dnorm.sml \
171 :     options/version.sml \
172 :     $(MKMK) $(MKFRAGS)
173 : jhr 3715
174 :     DEVCLEAN_FILES =
175 :    
176 :     include @DIDEROT_MKDIR@/clean-rules.gmk

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0