1 #(***********************************************************************)
4 #(* Maxence Guesdon, projet Cristal, INRIA Rocquencourt *)
6 #(* Copyright 2001 Institut National de Recherche en Informatique et *)
7 #(* en Automatique. All rights reserved. This file is distributed *)
8 #(* under the terms of the Q Public License version 1.0. *)
10 #(***********************************************************************)
12 # $Id: Makefile.nt 9272 2009-05-20 12:07:05Z doligez $
14 include ../config/Makefile
16 CAMLRUN =../boot/ocamlrun
17 OCAMLC =$(CAMLRUN) ../ocamlc -warn-error A
18 OCAMLOPT =$(CAMLRUN) ../ocamlopt
19 OCAMLLEX =$(CAMLRUN) ../boot/ocamllex
20 OCAMLYACC=../boot/ocamlyacc
25 OCAMLPP=-pp "grep -v DEBUG"
32 OCAMLDOC_RUN=$(CAMLRUN) $(OCAMLDOC)
33 OCAMLDOC_OPT=$(OCAMLDOC).opt
34 OCAMLDOC_LIBCMA=odoc_info.cma
35 OCAMLDOC_LIBCMI=odoc_info.cmi
36 OCAMLDOC_LIBCMXA=odoc_info.cmxa
37 OCAMLDOC_LIBA=odoc_info.$(A)
38 INSTALL_LIBDIR=$(OCAMLLIB)/ocamldoc
39 INSTALL_CUSTOMDIR=$(INSTALL_LIBDIR)/custom
40 INSTALL_BINDIR=$(OCAMLBIN)
42 INSTALL_MLIS=odoc_info.mli
43 INSTALL_CMIS=$(INSTALL_MLIS:.mli=.cmi)
48 INCLUDES_DEP=-I $(OCAMLSRCDIR)/parsing \
49 -I $(OCAMLSRCDIR)/utils \
50 -I $(OCAMLSRCDIR)/typing \
51 -I $(OCAMLSRCDIR)/driver \
52 -I $(OCAMLSRCDIR)/bytecomp \
53 -I $(OCAMLSRCDIR)/tools \
54 -I $(OCAMLSRCDIR)/toplevel/
56 INCLUDES_NODEP= -I $(OCAMLSRCDIR)/stdlib \
57 -I $(OCAMLSRCDIR)/otherlibs/str \
58 -I $(OCAMLSRCDIR)/otherlibs/dynlink \
59 -I $(OCAMLSRCDIR)/otherlibs/win32unix \
60 -I $(OCAMLSRCDIR)/otherlibs/num \
61 -I $(OCAMLSRCDIR)/otherlibs/win32graph
63 INCLUDES=$(INCLUDES_DEP) $(INCLUDES_NODEP)
66 LINKFLAGS=$(INCLUDES) -nostdlib
68 CMOFILES= odoc_config.cmo \
86 odoc_comments_global.cmo\
105 CMXFILES= $(CMOFILES:.cmo=.cmx)
106 CMIFILES= $(CMOFILES:.cmo=.cmi)
108 EXECMOFILES=$(CMOFILES)\
114 odoc_latex_style.cmo \
121 EXECMXFILES= $(EXECMOFILES:.cmo=.cmx)
122 EXECMIFILES= $(EXECMOFILES:.cmo=.cmi)
124 LIBCMOFILES=$(CMOFILES)
125 LIBCMXFILES= $(LIBCMOFILES:.cmo=.cmx)
126 LIBCMIFILES= $(LIBCMOFILES:.cmo=.cmi)
128 # Les cmo et cmx de la distrib OCAML
129 OCAMLCMOFILES=$(OCAMLSRCDIR)/parsing/printast.cmo \
130 $(OCAMLSRCDIR)/typing/ident.cmo \
131 $(OCAMLSRCDIR)/utils/tbl.cmo \
132 $(OCAMLSRCDIR)/utils/misc.cmo \
133 $(OCAMLSRCDIR)/utils/config.cmo \
134 $(OCAMLSRCDIR)/utils/clflags.cmo \
135 $(OCAMLSRCDIR)/utils/warnings.cmo \
136 $(OCAMLSRCDIR)/utils/ccomp.cmo \
137 $(OCAMLSRCDIR)/utils/consistbl.cmo \
138 $(OCAMLSRCDIR)/parsing/linenum.cmo\
139 $(OCAMLSRCDIR)/parsing/location.cmo\
140 $(OCAMLSRCDIR)/parsing/longident.cmo \
141 $(OCAMLSRCDIR)/parsing/syntaxerr.cmo \
142 $(OCAMLSRCDIR)/parsing/parser.cmo \
143 $(OCAMLSRCDIR)/parsing/lexer.cmo \
144 $(OCAMLSRCDIR)/parsing/parse.cmo \
145 $(OCAMLSRCDIR)/typing/types.cmo \
146 $(OCAMLSRCDIR)/typing/path.cmo \
147 $(OCAMLSRCDIR)/typing/btype.cmo \
148 $(OCAMLSRCDIR)/typing/predef.cmo \
149 $(OCAMLSRCDIR)/typing/datarepr.cmo \
150 $(OCAMLSRCDIR)/typing/subst.cmo \
151 $(OCAMLSRCDIR)/typing/env.cmo \
152 $(OCAMLSRCDIR)/typing/ctype.cmo \
153 $(OCAMLSRCDIR)/typing/primitive.cmo \
154 $(OCAMLSRCDIR)/typing/oprint.cmo \
155 $(OCAMLSRCDIR)/typing/printtyp.cmo \
156 $(OCAMLSRCDIR)/typing/includecore.cmo \
157 $(OCAMLSRCDIR)/typing/typetexp.cmo \
158 $(OCAMLSRCDIR)/typing/parmatch.cmo \
159 $(OCAMLSRCDIR)/typing/typedtree.cmo \
160 $(OCAMLSRCDIR)/typing/stypes.cmo \
161 $(OCAMLSRCDIR)/typing/typecore.cmo \
162 $(OCAMLSRCDIR)/typing/includeclass.cmo \
163 $(OCAMLSRCDIR)/typing/typedecl.cmo \
164 $(OCAMLSRCDIR)/typing/typeclass.cmo \
165 $(OCAMLSRCDIR)/typing/mtype.cmo \
166 $(OCAMLSRCDIR)/typing/includemod.cmo \
167 $(OCAMLSRCDIR)/typing/typemod.cmo \
168 $(OCAMLSRCDIR)/bytecomp/lambda.cmo \
169 $(OCAMLSRCDIR)/bytecomp/typeopt.cmo \
170 $(OCAMLSRCDIR)/bytecomp/printlambda.cmo \
171 $(OCAMLSRCDIR)/bytecomp/switch.cmo \
172 $(OCAMLSRCDIR)/bytecomp/matching.cmo \
173 $(OCAMLSRCDIR)/bytecomp/translobj.cmo \
174 $(OCAMLSRCDIR)/bytecomp/translcore.cmo \
175 $(OCAMLSRCDIR)/bytecomp/translclass.cmo \
176 $(OCAMLSRCDIR)/tools/depend.cmo
178 OCAMLCMXFILES=$(OCAMLCMOFILES:.cmo=.cmx)
182 lib: $(OCAMLDOC_LIBCMA) $(OCAMLDOC_LIBCMI)
184 opt.opt: exeopt libopt
185 exeopt: $(OCAMLDOC_OPT)
186 libopt: $(OCAMLDOC_LIBCMXA) $(OCAMLDOC_LIBCMI)
190 $(OCAMLDOC): $(EXECMOFILES)
191 $(OCAMLC) -o $@ -linkall unix.cma str.cma dynlink.cma $(LINKFLAGS) $(OCAMLCMOFILES) $(EXECMOFILES)
192 $(OCAMLDOC_OPT): $(EXECMXFILES)
193 $(OCAMLOPT) -o $@ unix.cmxa str.cmxa dynlink.cmxa $(LINKFLAGS) $(OCAMLCMXFILES) $(EXECMXFILES)
195 $(OCAMLDOC_LIBCMA): $(LIBCMOFILES)
196 $(OCAMLC) -a -o $@ $(LINKFLAGS) $(OCAMLCMOFILES) $(LIBCMOFILES)
197 $(OCAMLDOC_LIBCMXA): $(LIBCMXFILES)
198 $(OCAMLOPT) -a -o $@ $(LINKFLAGS) $(OCAMLCMXFILES) $(LIBCMXFILES)
203 .SUFFIXES: .mli .ml .cmi .cmo .cmx
206 $(OCAMLC) $(OCAMLPP) $(COMPFLAGS) -c $<
209 $(OCAMLC) $(OCAMLPP) $(COMPFLAGS) -c $<
212 $(OCAMLOPT) $(OCAMLPP) $(COMPFLAGS) -c $<
214 odoc_text_parser.ml odoc_text_parser.mli: odoc_text_parser.mly
215 $(OCAMLYACC) odoc_text_parser.mly
217 odoc_parser.ml odoc_parser.mli: odoc_parser.mly
218 $(OCAMLYACC) odoc_parser.mly
220 odoc_text_lexer.ml: odoc_text_lexer.mll
221 $(OCAMLLEX) odoc_text_lexer.mll
223 odoc_lexer.ml: odoc_lexer.mll
224 $(OCAMLLEX) odoc_lexer.mll
226 odoc_ocamlhtml.ml: odoc_ocamlhtml.mll
227 $(OCAMLLEX) odoc_ocamlhtml.mll
229 odoc_see_lexer.ml: odoc_see_lexer.mll
230 $(OCAMLLEX) odoc_see_lexer.mll
232 # Installation targets
233 ######################
235 $(MKDIR) -p $(INSTALL_BINDIR)
236 $(MKDIR) -p $(INSTALL_LIBDIR)
237 $(CP) $(OCAMLDOC) $(INSTALL_BINDIR)/$(OCAMLDOC).exe
238 $(CP) ocamldoc.hva *.cmi $(OCAMLDOC_LIBCMA) $(INSTALL_LIBDIR)
239 $(CP) $(INSTALL_MLIS) $(INSTALL_CMIS) $(INSTALL_LIBDIR)
242 if test -f $(OCAMLDOC_OPT); then $(MAKEREC) installopt_really; fi
245 $(MKDIR) -p $(INSTALL_BINDIR)
246 $(MKDIR) -p $(INSTALL_LIBDIR)
247 $(CP) $(OCAMLDOC_OPT) $(INSTALL_BINDIR)/$(OCAMLDOC_OPT).exe
248 $(CP) ocamldoc.hva $(OCAMLDOC_LIBA) $(OCAMLDOC_LIBCMXA) $(INSTALL_LIBDIR)
249 $(CP) $(INSTALL_MLIS) $(INSTALL_CMIS) $(INSTALL_LIBDIR)
252 # backup, clean and depend :
253 ############################
257 @rm -f $(OCAMLDOC) $(OCAMLDOC_OPT) *.cma *.cmxa *.cmo *.cmi *.cmx *.$(A) *.$(O)
258 @rm -f odoc_parser.output odoc_text_parser.output
259 @rm -f odoc_lexer.ml odoc_text_lexer.ml odoc_see_lexer.ml odoc_ocamlhtml.ml
260 @rm -f odoc_parser.ml odoc_parser.mli odoc_text_parser.ml odoc_text_parser.mli
264 $(OCAMLYACC) odoc_text_parser.mly
265 $(OCAMLYACC) odoc_parser.mly
266 $(OCAMLLEX) odoc_text_lexer.mll
267 $(OCAMLLEX) odoc_lexer.mll
268 $(OCAMLDEP) $(INCLUDES_DEP) *.mll *.mly *.ml *.mli > .depend