forked from ocaml-batteries-team/batteries-included
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.in
180 lines (150 loc) · 5.9 KB
/
Makefile.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# Makefile for OCaml Batteries Included
#
# Copyright (C) 2008 David Teller, LIFO, Universite d'Orleans
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version,
# with the special exception on linking described in file LICENSE.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
VERSION = @VERSION@
PACKAGE = batteries
OCAMLFIND = @OCAMLFIND@
HAS_GODI = @HAS_GODI@
prefix = @prefix@
datarootdir= @datarootdir@
datadir= @datadir@
# place where your on-line help files are stored
# if you want on-line help, you will need to invoke make as
# make DOCDIR="/some/where/"
# Typical value: "/usr/share/doc/ocaml-batteries-included" (Debian)
# Typical value: "/usr/local/godi/doc/godi-batteries/doc/batteries" (GODI)
ifeq ($(HAS_GODI),yes)
DOCDIR = $(shell ocamlfind printconf destdir)/../../../doc/godi-batteries
else
DOCDIR = @DOCDIR@
endif
# command used to trigger the browser
# if your platform browser is different, you will need to invoke make as
# make BROWSER="some command"
# Typical value: "x-www-browser %S &> /dev/null &" (for Debian/Ubuntu systems)
# Typical value: "htmlview %S &> /dev/null &" (for Fedora/Red Hat)
# Typical value: "start %S /B" (for Windows)
# Typical value: "gnome-open %S &> /dev/null &" (for Gnome)
BROWSER = @BROWSER_COMMAND@
#Flags to pass to OCamlBuild.
#Typical flag: -byte-plugin (if you don't have ocamlopt)
#Typical flag: -classic-display (for more details on the build process)
OBFLAGS =
# findlib destdir, if you need to install in non-standard places invoke make as
# make install DESTDIR=/some/where/
DESTDIR =
ifeq ($(DESTDIR),)
DESTDIR_FLAGS =
else
DESTDIR_FLAGS = -destdir $(DESTDIR)
install: install-mkdir
install-mkdir:
test -d $(DESTDIR) || mkdir -p $(DESTDIR)
endif
DEST_TOP =
ifeq ($(DESTDIR),)
DEST_TOP = $(shell @OCAMLFIND@ query @OCAMLPKG_camomile@ )/../batteries/top.ml
else
DEST_TOP = $(DESTDIR)/batteries/top.ml
endif
OCAMLBUILD=@OCAMLBUILD@ $(OBFLAGS)
#OCAMLBUILD=ocamlbuild -byte-plugin -classic-display
# Replace the first one with the second one if you have build-time
# issue, to help with trouble-shooting
ifeq ($(HAS_GODI),yes)
all: byte syntax top install-doc
else
all: byte syntax top
endif
config.ml: Makefile
@\rm -f config.ml &&\
echo 'let version = "$(VERSION)";;' >> config.ml &&\
echo 'let documentation_root = "$(DOCDIR)";;' >> config.ml &&\
echo 'let (browser: (_, _, _) format) = "$(BROWSER)";;' >> config.ml
#Useful for testing
reinstall: byte opt top syntax uninstall install
rebyte: byte uninstall install
install-doc: doc
install -d $(DOCDIR) &&\
cp -R doc/batteries/* $(DOCDIR)
byte: config.ml
$(OCAMLBUILD) src/main/threads/batteries.cma
$(OCAMLBUILD) src/main/nothreads/batteries.cma
opt: config.ml
$(OCAMLBUILD) src/main/threads/batteries.cmxa
$(OCAMLBUILD) src/main/nothreads/batteries.cmxa
syntax: config.ml
$(OCAMLBUILD) src/syntax/pa_openin/pa_openin.cmo
$(OCAMLBUILD) src/syntax/pa_openin/pa_openin_r.cmo
$(OCAMLBUILD) src/syntax/pa_where/pa_where.cmo
$(OCAMLBUILD) src/syntax/pa_batteries/pa_batteries.cmo
top: src/batteries_toolchain/ocaml src/batteries_toolchain/batteries_help.cmo
src/batteries_toolchain/ocaml:
echo "ocaml -init $(DEST_TOP) \$$@" > $@
chmod ugo+rx src/batteries_toolchain/ocaml*
src/batteries_toolchain/batteries_help.cmo: src/batteries_toolchain/batteries_help.ml src/batteries_toolchain/batteries_help.mli
$(OCAMLBUILD) $@
install:
ocamlfind install $(DESTDIR_FLAGS) batteries \
build/META \
_build/src/core/extlib/IO.cmi \
_build/src/core/extlib/innerIO.cmi \
_build/src/core/extlib.cmi \
_build/src/core/batteries_config.cmi \
_build/src/core/toolchain.cmi \
_build/src/syntax/pa_openin/pa_openin.cmo \
_build/src/syntax/pa_openin/pa_openin_r.cmo \
_build/src/syntax/pa_where/pa_where.cmo \
_build/src/syntax/pa_batteries/pa_batteries.cmo \
_build/src/batteries_toolchain/batteries_help.cmo \
_build/src/batteries_toolchain/batteries_help.cmi \
src/batteries_toolchain/top.ml \
src/batteries_toolchain/ocaml*
ocamlfind install $(DESTDIR_FLAGS) batteries_threads \
build/threaded/META \
_build/src/main/threads/batteries.cmi \
-optional _build/src/main/threads/batteries.cma \
_build/src/main/threads/batteries.cmxa \
_build/src/main/threads/batteries.a
ocamlfind install $(DESTDIR_FLAGS) batteries_nothreads \
build/nothreads/META \
_build/src/main/nothreads/batteries.cmi \
-optional _build/src/main/nothreads/batteries.cma \
_build/src/main/nothreads/batteries.cmxa \
_build/src/main/nothreads/batteries.a
uninstall:
ocamlfind remove $(DESTDIR_FLAGS) batteries
ocamlfind remove $(DESTDIR_FLAGS) batteries_threads
ocamlfind remove $(DESTDIR_FLAGS) batteries_nothreads
doc: byte doc/api.odocl
rm -Rf doc/batteries/html/api
$(OCAMLBUILD) -I src/main/threads doc/api.docdir/index.html
rm -f api.docdir
mv _build/doc/api.docdir/ doc/batteries/html/api
doc/api.odocl:
cp src/main/threads/batteries.mllib doc/api.odocl
examples:
@echo Note: to build the examples, you must first have installed Batteries
@echo If you haven\'t installed Batteries yet, please use make all opt install
cd examples && $(OCAMLBUILD) examples.otarget
clean:
$(OCAMLBUILD) -clean
cd examples && $(OCAMLBUILD) -clean
rm -f `find . -name "*~" -o -name "*#" -o -name "*odoc"`
rm -f META doc/api.odocl doc/batteries/html/api/*
.PHONY: doc/api.odocl batteries.mllib examples