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 3888 - (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 :     PREFIX = @prefix@
19 :     INSTALL_BINDIR = $(PREFIX)/bin
20 :     INSTALL_LIBDIR = $(PREFIX)/lib
21 :     INSTALL_INCDIR = $(PREFIX)/include
22 :    
23 :     #
24 :     # directories for the local-install target
25 :     #
26 :     SRCDIR = @DIDEROT_ROOT@/src
27 :     LIBDIR = @DIDEROT_ROOT@/lib
28 :     BINDIR = @DIDEROT_ROOT@/bin
29 :    
30 : jhr 3722 #
31 :     # configuration support
32 :     #
33 :     CONFIGDIR = @DIDEROT_ROOT@/config
34 :    
35 : jhr 3715 INSTALL = @INSTALL@
36 :     SHELL = @SHELL@
37 :     @SET_MAKE@
38 :    
39 : jhr 3816 #
40 :     # generator tools
41 :     #
42 :     MKMK = $(SRCDIR)/compiler/gen/fragments/mkmk.sh
43 :     MKFRAGS = $(SRCDIR)/compiler/gen/fragments/mkfrags.sh
44 :    
45 :     #
46 :     # MLton build tools
47 :     #
48 : jhr 3715 MLTON = @MLTON@
49 : jhr 3726 MLTON_FLAGS = -const 'Exn.keepHistory true'
50 : jhr 3715
51 :     #### End of system configuration section. ####
52 :    
53 :     PROGRAM = diderotc
54 :     ROOT_MLB = driver/sources.mlb
55 :    
56 : jhr 3722 #
57 :     # generated parser files
58 :     #
59 : jhr 3731 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 3726 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 3816 SRC_FILES = $(wildcard */sources.mlb) $(wildcard */*sml)
70 : jhr 3715
71 : jhr 3888 CODE_FRAG_DIRS = cxx-util
72 : jhr 3816
73 :     CODE_FRAG_FILES = $(patsubst %,%/fragments.sml,$(CODE_FRAG_DIRS))
74 :     CODE_FRAG_MKFILES = $(patsubst %,%/fragments.gmk,$(CODE_FRAG_DIRS))
75 :    
76 : jhr 3715 .PHONY: local-install
77 :     local-install: $(PROGRAM)
78 :     cp -p $(PROGRAM) $(BINDIR)
79 :    
80 :     .PHONY: install
81 :     install: $(HEAP_IMAGE)
82 :     cp -p $(PROGRAM) $(INSTALL_BINDIR)
83 :    
84 :     .PHONY: build
85 :     build: $(PROGRAM)
86 :    
87 : jhr 3816 $(PROGRAM): $(ROOT_MLB) $(SRC_FILES) $(CODE_FRAG_FILES) $(PARSER_FILES) $(EXPANDED_FILES)
88 : jhr 3726 $(MLTON) $(MLTON_FLAGS) -output $(PROGRAM) $(ROOT_MLB)
89 : jhr 3715
90 :     .PHONY: typecheck
91 : jhr 3816 typecheck:
92 : jhr 3726 $(MLTON) -stop tc $(MLTON_FLAGS) $(ROOT_MLB)
93 : jhr 3715
94 : jhr 3722 #
95 :     # Generate the scanner and parser from specs
96 :     #
97 : jhr 3715 parser/diderot.grm.sml: parser/diderot.grm
98 :     cd parser; ml-antlr diderot.grm
99 :    
100 :     parser/diderot.lex.sml: parser/diderot.lex
101 :     cd parser; ml-ulex --strict-sml diderot.lex
102 :    
103 : jhr 3722 #
104 :     # preprocess files that contain UTF-8 multibyte sequences
105 :     #
106 :    
107 :     $(EXPANDED_FILES): %_mlton.sml: %.sml expand-utf8
108 :     expand-utf8 < $< > $@
109 : jhr 3726
110 : jhr 3722 .phony: UTF8
111 :     UTF8:
112 :     expand-utf8: $(CONFIGDIR)/expand-utf8.c
113 :     $(CC) -o expand-utf8 $(CONFIGDIR)/expand-utf8.c
114 : jhr 3816 #
115 :     # Rules for generating the fragment dependency and source files
116 :     #
117 : jhr 3722
118 : jhr 3888 cxx-util/fragments.gmk: cxx-util/fragments/CATALOG $(wildcard cxx-util/fragments/*in)
119 :     $(MKMK) cxx-util
120 : jhr 3816
121 : jhr 3888 cxx-util/fragments.sml:
122 :     $(MKFRAGS) cxx-util
123 : jhr 3816
124 :     #
125 :     # Dependency file rules
126 :     #
127 :    
128 :     ifneq ($(MAKECMDGOALS),clean)
129 :     ifneq ($(MAKECMDGOALS),devclean)
130 :     ifneq ($(MAKECMDGOALS),distclean)
131 : jhr 3888 sinclude cxx-util/fragments.gmk
132 : jhr 3816 endif
133 :     endif
134 :     endif
135 :    
136 : jhr 3715 #################### Cleanup ####################
137 :    
138 :     CLEAN_SUBDIRS =
139 :    
140 :     CLEAN_FILES += $(PROGRAM) \
141 : jhr 3816 $(CODE_FRAG_MKFILES) \
142 : jhr 3722 $(CODE_FRAG_FILES) \
143 : jhr 3726 $(PARSER_FILES) \
144 :     $(EXPANDED_FILES) \
145 : jhr 3722 expand-utf8
146 : jhr 3715
147 :     DISTCLEAN_FILES += Makefile \
148 :     common/paths.sml \
149 :     common/size-of.sml \
150 : jhr 3816 nrrd/run-dnorm.sml \
151 :     options/version.sml \
152 :     $(MKMK) $(MKFRAGS)
153 : jhr 3715
154 :     DEVCLEAN_FILES =
155 :    
156 :     include @DIDEROT_MKDIR@/clean-rules.gmk

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