61
61
62
62
OCAMLC=ocamlc$(DOTOPT) $(COMPFLAGS)
63
63
OCAMLOPT=ocamlopt$(DOTOPT) $(COMPFLAGS)
64
- OCAMLDEP=ocamldep$(DOTOPT) $(INCLUDES)
64
+ OCAMLDEP=ocamldep$(DOTOPT) -slash $(INCLUDES)
65
65
66
66
# Compilers used for Camlp4-preprocessed code. Note that we cannot
67
67
# use the .opt compilers (because ocamlfind doesn't support them).
@@ -75,9 +75,11 @@ OCAMLLEX=ocamllex -q
75
75
MODORDER=tools/modorder .depend.extr
76
76
77
77
PARSERS=backend/CMparser.mly cparser/pre_parser.mly
78
- LEXERS=backend/CMlexer.mll cparser/Lexer.mll lib/Tokenize.mll
78
+ LEXERS=backend/CMlexer.mll cparser/Lexer.mll \
79
+ lib/Tokenize.mll lib/Readconfig.mll
79
80
80
- LIBS=str.cmxa
81
+ LIBS=str.cmxa unix.cmxa
82
+ CHECKLINK_LIBS=str.cmxa
81
83
82
84
EXECUTABLES=ccomp ccomp.byte cchecklink cchecklink.byte clightgen clightgen.byte
83
85
GENERATED=$(PARSERS:.mly=.mli) $(PARSERS:.mly=.ml) $(LEXERS:.mll=.ml)
@@ -90,23 +92,23 @@ CCOMP_OBJS:=$(shell $(MODORDER) driver/Driver.cmx)
90
92
91
93
ccomp: $(CCOMP_OBJS)
92
94
@echo "Linking $@"
93
- @$(OCAMLOPT) -o $@ $(LIBS) $+ $(LINKERSPEC)
95
+ @$(OCAMLOPT) -o $@ $(LIBS) $+
94
96
95
97
ccomp.byte: $(CCOMP_OBJS:.cmx=.cmo)
96
98
@echo "Linking $@"
97
- @$(OCAMLC) -o $@ $(LIBS:.cmxa=.cma) $+ $(LINKERSPEC)
99
+ @$(OCAMLC) -o $@ $(LIBS:.cmxa=.cma) $+
98
100
99
101
ifeq ($(CCHECKLINK),true)
100
102
101
103
CCHECKLINK_OBJS:=$(shell $(MODORDER) checklink/Validator.cmx)
102
104
103
105
cchecklink: $(CCHECKLINK_OBJS)
104
106
@echo "Linking $@"
105
- @$(OCAMLOPT_P4) -linkpkg -o $@ $(LIBS ) $+
107
+ @$(OCAMLOPT_P4) -linkpkg -o $@ $(CHECKLINK_LIBS ) $+
106
108
107
109
cchecklink.byte: $(CCHECKLINK_OBJS:.cmx=.cmo)
108
110
@echo "Linking $@"
109
- @$(OCAMLC_P4) -linkpkg -o $@ $(LIBS :.cmxa=.cma) $+
111
+ @$(OCAMLC_P4) -linkpkg -o $@ $(CHECKLINK_LIBS :.cmxa=.cma) $+
110
112
111
113
endif
112
114
@@ -156,17 +158,14 @@ clean:
156
158
rm -f $(GENERATED)
157
159
for d in $(ALLDIRS); do rm -f $$d/*.cm[iox] $$d/*.o; done
158
160
159
- cleansource:
160
- rm -f $(EXECUTABLES)
161
- for d in $(ALLDIRS); do rm -f $$d/*.cm[iox] $$d/*.o; done
162
-
163
161
# Generation of .depend.extr
164
162
165
163
depend: $(GENERATED)
166
164
@echo "Analyzing OCaml dependencies"
167
- @for d in $(DIRS); do $(OCAMLDEP) $$d/*.mli $$d/*.ml; done > .depend.extr
165
+ @$(OCAMLDEP) $(foreach d,$(DIRS),$(wildcard $(d)/*.mli $(d)/*.ml)) >.depend.extr
166
+ @$(OCAMLDEP) $(GENERATED) >> .depend.extr
168
167
ifneq ($(strip $(DIRS_P4)),)
169
- @for d in $(DIRS_P4); do $(OCAMLDEP_P4) $$d /*.mli $$d /*.ml; done >> .depend.extr
168
+ @$(OCAMLDEP_P4) $(foreach d,$(DIRS_P4),$(wildcard $(d) /*.mli $(d) /*.ml)) >> .depend.extr
170
169
endif
171
170
172
171
0 commit comments