]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/ocaml/contrib/ocamldoc/Makefile.nt
Inital import
[l4.git] / l4 / pkg / ocaml / contrib / ocamldoc / Makefile.nt
1 #(***********************************************************************)
2 #(*                            OCamldoc                                 *)
3 #(*                                                                     *)
4 #(*            Maxence Guesdon, projet Cristal, INRIA Rocquencourt      *)
5 #(*                                                                     *)
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.               *)
9 #(*                                                                     *)
10 #(***********************************************************************)
11
12 # $Id: Makefile.nt 9272 2009-05-20 12:07:05Z doligez $
13
14 include ../config/Makefile
15
16 CAMLRUN =../boot/ocamlrun
17 OCAMLC   =$(CAMLRUN) ../ocamlc -warn-error A
18 OCAMLOPT =$(CAMLRUN) ../ocamlopt
19 OCAMLLEX =$(CAMLRUN) ../boot/ocamllex
20 OCAMLYACC=../boot/ocamlyacc
21
22 OCAMLLIB = $(LIBDIR)
23 OCAMLBIN = $(BINDIR)
24
25 OCAMLPP=-pp "grep -v DEBUG"
26
27 # For installation
28 ##############
29 MKDIR=mkdir
30 CP=cp
31 OCAMLDOC=ocamldoc
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)
41
42 INSTALL_MLIS=odoc_info.mli 
43 INSTALL_CMIS=$(INSTALL_MLIS:.mli=.cmi)
44
45 # Compilation
46 #############
47 OCAMLSRCDIR=..
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/
55
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
62
63 INCLUDES=$(INCLUDES_DEP) $(INCLUDES_NODEP)
64
65 COMPFLAGS=$(INCLUDES)
66 LINKFLAGS=$(INCLUDES) -nostdlib
67
68 CMOFILES= odoc_config.cmo \
69         odoc_global.cmo\
70         odoc_messages.cmo\
71         odoc_types.cmo\
72         odoc_misc.cmo\
73         odoc_text_parser.cmo\
74         odoc_text_lexer.cmo\
75         odoc_text.cmo\
76         odoc_name.cmo\
77         odoc_parameter.cmo\
78         odoc_value.cmo\
79         odoc_type.cmo\
80         odoc_exception.cmo\
81         odoc_class.cmo\
82         odoc_module.cmo\
83         odoc_print.cmo \
84         odoc_str.cmo\
85         odoc_args.cmo\
86         odoc_comments_global.cmo\
87         odoc_parser.cmo\
88         odoc_lexer.cmo\
89         odoc_see_lexer.cmo\
90         odoc_env.cmo\
91         odoc_merge.cmo\
92         odoc_sig.cmo\
93         odoc_ast.cmo\
94         odoc_control.cmo\
95         odoc_inherit.cmo\
96         odoc_search.cmo\
97         odoc_scan.cmo\
98         odoc_cross.cmo\
99         odoc_comments.cmo\
100         odoc_dep.cmo\
101         odoc_analyse.cmo\
102         odoc_info.cmo
103
104
105 CMXFILES= $(CMOFILES:.cmo=.cmx)
106 CMIFILES= $(CMOFILES:.cmo=.cmi)
107
108 EXECMOFILES=$(CMOFILES)\
109         odoc_dag2html.cmo\
110         odoc_to_text.cmo\
111         odoc_ocamlhtml.cmo\
112         odoc_html.cmo\
113         odoc_man.cmo\
114         odoc_latex_style.cmo \
115         odoc_latex.cmo\
116         odoc_texi.cmo\
117         odoc_dot.cmo\
118         odoc.cmo
119
120
121 EXECMXFILES= $(EXECMOFILES:.cmo=.cmx)
122 EXECMIFILES= $(EXECMOFILES:.cmo=.cmi)
123
124 LIBCMOFILES=$(CMOFILES)
125 LIBCMXFILES= $(LIBCMOFILES:.cmo=.cmx)
126 LIBCMIFILES= $(LIBCMOFILES:.cmo=.cmi)
127
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
177
178 OCAMLCMXFILES=$(OCAMLCMOFILES:.cmo=.cmx)
179
180 all: exe lib
181 exe: $(OCAMLDOC)
182 lib: $(OCAMLDOC_LIBCMA) $(OCAMLDOC_LIBCMI)
183
184 opt.opt: exeopt libopt
185 exeopt: $(OCAMLDOC_OPT)
186 libopt: $(OCAMLDOC_LIBCMXA) $(OCAMLDOC_LIBCMI)
187 debug:
188         make OCAMLPP=""
189
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)
194
195 $(OCAMLDOC_LIBCMA): $(LIBCMOFILES)
196         $(OCAMLC) -a -o $@ $(LINKFLAGS) $(OCAMLCMOFILES) $(LIBCMOFILES)
197 $(OCAMLDOC_LIBCMXA): $(LIBCMXFILES)
198         $(OCAMLOPT) -a -o $@ $(LINKFLAGS) $(OCAMLCMXFILES) $(LIBCMXFILES)
199
200 # generic rules :
201 #################
202
203 .SUFFIXES: .mli .ml .cmi .cmo .cmx
204
205 .mli.cmi:
206         $(OCAMLC) $(OCAMLPP) $(COMPFLAGS) -c $<
207
208 .ml.cmo:
209         $(OCAMLC) $(OCAMLPP) $(COMPFLAGS) -c $<
210
211 .ml.cmx:
212         $(OCAMLOPT) $(OCAMLPP) $(COMPFLAGS) -c $<
213
214 odoc_text_parser.ml odoc_text_parser.mli: odoc_text_parser.mly
215         $(OCAMLYACC) odoc_text_parser.mly
216
217 odoc_parser.ml odoc_parser.mli: odoc_parser.mly
218         $(OCAMLYACC) odoc_parser.mly
219
220 odoc_text_lexer.ml: odoc_text_lexer.mll
221         $(OCAMLLEX) odoc_text_lexer.mll
222
223 odoc_lexer.ml: odoc_lexer.mll
224         $(OCAMLLEX) odoc_lexer.mll
225
226 odoc_ocamlhtml.ml: odoc_ocamlhtml.mll
227         $(OCAMLLEX) odoc_ocamlhtml.mll
228
229 odoc_see_lexer.ml: odoc_see_lexer.mll
230         $(OCAMLLEX) odoc_see_lexer.mll
231
232 # Installation targets
233 ######################
234 install: dummy
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)
240
241 installopt:
242         if test -f $(OCAMLDOC_OPT); then $(MAKEREC) installopt_really; fi
243
244 installopt_really:
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)
250
251
252 # backup, clean and depend :
253 ############################
254
255 clean:: dummy
256         @rm -f *~ /#*/#
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 
261
262 depend::
263         rm -f .depend
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
269
270 dummy:
271
272 include .depend