Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 296 lines (235 sloc) 10.813 kB
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
1 #!/usr/bin/env make
fccc685 Initial open-source release
MLstate authored
2
3 # [ Warning ] don't use make to solve dependencies !!
4 #
5 # we rely on ocamlbuild which already handles them ; every rule should
6 # call it only once (no recursion)
7 #
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
8 # More info in tools/build/Makefile.bld
9
10 .PHONY: default
11 default: all
fccc685 Initial open-source release
MLstate authored
12
94ed07b @Aqua-Ye [enhance] build: moved config files in tools/build
Aqua-Ye authored
13 CONFIG_PATH = tools/build
14
15 include $(CONFIG_PATH)/config.make
fccc685 Initial open-source release
MLstate authored
16
1321ba9 @fperrin On FreeBSD check and use gmake, use make elsewhere
fperrin authored
17 MAKE ?= $_
fccc685 Initial open-source release
MLstate authored
18
e7282e7 [enhance] make: do not rebuild opa packages if the variable is set
Louis Gesbert authored
19 ifndef NO_REBUILD_OPA_PACKAGES
8a40e70 [feature] build: support for optional libraries, enabled libnattraver…
Louis Gesbert authored
20 OPAOPT += "--rebuild"
e7282e7 [enhance] make: do not rebuild opa packages if the variable is set
Louis Gesbert authored
21 endif
8a40e70 [feature] build: support for optional libraries, enabled libnattraver…
Louis Gesbert authored
22
23 ifneq ($(HAS_CAMLIDL)$(HAS_LIBNATPMP)$(HAS_MINIUPNPC),111)
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
24 DISABLED_LIBS = libnattraversal
8a40e70 [feature] build: support for optional libraries, enabled libnattraver…
Louis Gesbert authored
25 endif
26
fccc685 Initial open-source release
MLstate authored
27 export
28
6d1dcea @Aqua-Ye [fix] Makefile: carefull with makefiles inclusion
Aqua-Ye authored
29 include tools/build/Makefile.bld
30
fccc685 Initial open-source release
MLstate authored
31 ##
32 ## STANDARD TARGETS
33 ##
34
35 .PHONY: all
a54a2d4 @OpaOnWindowsNow [enhance] Makefile: manpages should be the first thing we build
OpaOnWindowsNow authored
36 all: $(MYOCAMLBUILD)
4a6014e @BourgerieQuentin [enhance] build: install the both set of packages
BourgerieQuentin authored
37 $(OCAMLBUILD) $(call target-tools,$(ALL_TOOLS)) opa-both-packages.stamp
fccc685 Initial open-source release
MLstate authored
38 @$(call copy-tools,$(ALL_TOOLS))
3e3c2e6 @jlmess77 [fix] Makefile: Use $(MAKE) instead of hardcore "make".
jlmess77 authored
39 $(MAKE) manpages
33e6901 @Aqua-Ye [fix] Makefile: re-include opa-create
Aqua-Ye authored
40 $(MAKE) $(OPA_TOOLS)
fccc685 Initial open-source release
MLstate authored
41
42 .PHONY: build
43 build: all
44
45 .PHONY: runtime-libs
46 runtime-libs: $(MYOCAMLBUILD)
47 $(OCAMLBUILD) runtime-libs.stamp
48
37c04ec [cleanup] Makefile,comments: tiny cleanup & fixes
Louis Gesbert authored
49 .PHONY: $(BUILD_DIR)/bin/opa
fccc685 Initial open-source release
MLstate authored
50 $(BUILD_DIR)/bin/opa: $(MYOCAMLBUILD)
4a6014e @BourgerieQuentin [enhance] build: install the both set of packages
BourgerieQuentin authored
51 $(OCAMLBUILD) opa-both-packages.stamp $(target-tool-opa-bin)
fccc685 Initial open-source release
MLstate authored
52 @$(copy-tool-opa-bin)
78a5027 @Aqua-Ye [enhance] install: moving some indstall scripts to appropriate direct…
Aqua-Ye authored
53 @tools/utils/install.sh --quiet --dir $(realpath $(BUILD_DIR)) --ocaml-prefix $(OCAMLLIB)/../../..
fccc685 Initial open-source release
MLstate authored
54
55 .PHONY: opa
56 opa: $(BUILD_DIR)/bin/opa
57
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
58 .PHONY: opa-flat-packages opa-node-packages opa-both-packages
4a6014e @BourgerieQuentin [enhance] build: install the both set of packages
BourgerieQuentin authored
59 opa-flat-packages: $(MYOCAMLBUILD)
662e95e @BourgerieQuentin [enhance] compiler, packages: Allows to have several backends (separa…
BourgerieQuentin authored
60 $(OCAMLBUILD) opa-packages.stamp
75a4f89 @BourgerieQuentin [enhance] build: Added rules to compile stdlib to nodejs backend
BourgerieQuentin authored
61 opa-node-packages: $(MYOCAMLBUILD)
62 $(OCAMLBUILD) opa-node-packages.stamp
4a6014e @BourgerieQuentin [enhance] build: install the both set of packages
BourgerieQuentin authored
63 opa-both-packages: $(MYOCAMLBUILD)
64 $(OCAMLBUILD) opa-both-packages.stamp
fccc685 Initial open-source release
MLstate authored
65
56f5352 @Aqua-Ye [enhance] Makefile: missing .PHONY
Aqua-Ye authored
66 .PHONY: stdlib stdlib-flat stdlib-node
4a6014e @BourgerieQuentin [enhance] build: install the both set of packages
BourgerieQuentin authored
67 stdlib: opa-both-packages
68 stdlib-flat: opa-flat-packages
75a4f89 @BourgerieQuentin [enhance] build: Added rules to compile stdlib to nodejs backend
BourgerieQuentin authored
69 stdlib-node: opa-node-packages
fccc685 Initial open-source release
MLstate authored
70
11f1a77 @Aqua-Ye [fix] Makefile: re-enable opatop
Aqua-Ye authored
71 DISTRIB_TOOLS = opa-bin opa-plugin-builder-bin opa-plugin-browser-bin bslServerLib.ml opa-db-server opa-db-tool opa-cloud opatop opa-translate
fccc685 Initial open-source release
MLstate authored
72
fcef231 @cedricss [enhance] Compile: Makefile improved for opa tools. Built them before…
cedricss authored
73 OPA_TOOLS = opa-create
74
fccc685 Initial open-source release
MLstate authored
75 .PHONY: distrib
76 distrib: $(MYOCAMLBUILD)
0d63254 @Aqua-Ye [fix] Makefile: build both packages for distrib
Aqua-Ye authored
77 $(OCAMLBUILD) $(call target-tools,$(DISTRIB_TOOLS)) opa-both-packages.stamp
fccc685 Initial open-source release
MLstate authored
78 @$(call copy-tools,$(DISTRIB_TOOLS))
33e6901 @Aqua-Ye [fix] Makefile: re-include opa-create
Aqua-Ye authored
79 $(MAKE) $(OPA_TOOLS)
fccc685 Initial open-source release
MLstate authored
80
8c3019b [enhance] manpages: added target install-man to install manpages by d…
Mathieu Baudet authored
81 .PHONY: manpages
5baea24 [fix] manpages: when called from the main Makefile, do not assume 'in…
Mathieu Baudet authored
82 manpages: $(MYOCAMLBUILD)
44fea0f @Aqua-Ye [enhance] Makefile: use NO_MANPAGES on manpages target ans not for al…
Aqua-Ye authored
83 ifndef NO_MANPAGES
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
84 $(MAKE) -C tools/manpages OCAMLBUILD="$(OCAMLBUILD)" BLDDIR=../../$(BUILD_DIR)
44fea0f @Aqua-Ye [enhance] Makefile: use NO_MANPAGES on manpages target ans not for al…
Aqua-Ye authored
85 else
86 @echo "Not building manpages"
87 endif
8c3019b [enhance] manpages: added target install-man to install manpages by d…
Mathieu Baudet authored
88
2b39809 @cedricss [feature] opa-create: new tool to generate application skeletons
cedricss authored
89 .PHONY: opa-create
90 opa-create: $(MYOCAMLBUILD)
91 $(OCAMLBUILD) tools/opa-create/src/opa-create.exe
92 @$(copy-tool-opa-create)
93 .PHONY: install-opa-create
94 install-opa-create:
95 @$(install-opa-create)
96 target-tool-opa-create = tools/opa-create/src/opa-create.exe
97 copy-tool-opa-create = mkdir -p $(BUILD_DIR)/bin && $(INSTALL) $(BUILD_DIR)/tools/opa-create/src/opa-create.exe $(BUILD_DIR)/bin/opa-create
98 install-opa-create = mkdir -p $(PREFIX)/bin && $(INSTALL) $(BUILD_DIR)/bin/opa-create $(INSTALL_DIR)/bin/opa-create
99
100
fccc685 Initial open-source release
MLstate authored
101 ##
102 ## INSTALLATION
103 ##
104
105 .PHONY: install*
106
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
107 STDLIB_DIR = $(INSTALL_DIR)/lib/opa/stdlib
662e95e @BourgerieQuentin [enhance] compiler, packages: Allows to have several backends (separa…
BourgerieQuentin authored
108
109 FLAT_STDLIB_SUFFIX_DIR=stdlib.qmlflat
110 STDLIB_FLAT_DIR=$(STDLIB_DIR)/$(FLAT_STDLIB_SUFFIX_DIR)
111 BUILD_FLAT_DIR=$(BUILD_DIR)/$(FLAT_STDLIB_SUFFIX_DIR)
fccc685 Initial open-source release
MLstate authored
112 define install-package
662e95e @BourgerieQuentin [enhance] compiler, packages: Allows to have several backends (separa…
BourgerieQuentin authored
113 @printf "Installing into $(STDLIB_FLAT_DIR)/$*.opx\r"
114 @mkdir -p "$(STDLIB_FLAT_DIR)/$*.opx/_build"
115 @find "$(BUILD_FLAT_DIR)/$*.opx" -maxdepth 1 ! -type d -exec $(INSTALL) {} "$(STDLIB_FLAT_DIR)/$*.opx/" \;
116 @$(INSTALL) $(BUILD_FLAT_DIR)/$*.opx/_build/*.a "$(STDLIB_FLAT_DIR)/$*.opx/_build/"
117 @$(INSTALL) $(BUILD_FLAT_DIR)/$*.opx/_build/*.cmi "$(STDLIB_FLAT_DIR)/$*.opx/_build/"
118 @$(INSTALL) $(BUILD_FLAT_DIR)/$*.opx/_build/*.cmxa "$(STDLIB_FLAT_DIR)/$*.opx/_build/"
119 endef
120
121 NODE_STDLIB_SUFFIX_DIR=stdlib.qmljs
122 STDLIB_NODE_DIR=$(STDLIB_DIR)/$(NODE_STDLIB_SUFFIX_DIR)
123 BUILD_NODE_DIR=$(BUILD_DIR)/$(NODE_STDLIB_SUFFIX_DIR)
124 define install-node-package
125 @printf "Installing into $(STDLIB_NODE_DIR)/$*.opx\r"
126 @mkdir -p "$(STDLIB_NODE_DIR)/$*.opx/_build"
127 @find "$(BUILD_NODE_DIR)/$*.opx" -maxdepth 1 ! -type d -exec $(INSTALL) {} "$(STDLIB_NODE_DIR)/$*.opx/" \;
128 @$(INSTALL) $(BUILD_NODE_DIR)/$*.opx/*.js "$(STDLIB_NODE_DIR)/$*.opx/"
fccc685 Initial open-source release
MLstate authored
129 endef
130
2fae9ee @Aqua-Ye [fix] Makefile: plugins were not install because of wrong path
Aqua-Ye authored
131 PLUGINS_DIR=lib/plugins
2f55085 @OpaOnWindowsNow [fix] Makefile: install plugins
OpaOnWindowsNow authored
132 define install-plugin
133 @printf "Installing into $(STDLIB_DIR)/$*.opp^[[K\r"
032f272 @arthuraa [enhance] install: raw js files.
arthuraa authored
134 @mkdir -p "$(STDLIB_DIR)/$*.opp"
2fae9ee @Aqua-Ye [fix] Makefile: plugins were not install because of wrong path
Aqua-Ye authored
135 @$(INSTALL) $(BUILD_DIR)/$(PLUGINS_DIR)/$*.opp/*.bypass "$(STDLIB_DIR)/$*.opp/";
136 @for f in `find "$(BUILD_DIR)/$(PLUGINS_DIR)/$*.opp" -mindepth 2 -iname \*.\*js`; do \
032f272 @arthuraa [enhance] install: raw js files.
arthuraa authored
137 nf=`basename $$f | sed 's/[^_]*_\(.*\)/\1/'`; $(INSTALL) $$f "$(STDLIB_DIR)/$*.opp/$$nf"; done
2fae9ee @Aqua-Ye [fix] Makefile: plugins were not install because of wrong path
Aqua-Ye authored
138 @$(if $(wildcard $(BUILD_DIR)/$(PLUGINS_DIR)/$*.opp/*MLRuntime.*), $(INSTALL) $(BUILD_DIR)/$(PLUGINS_DIR)/$*.opp/*MLRuntime.* "$(STDLIB_DIR)/$*.opp/")
2f55085 @OpaOnWindowsNow [fix] Makefile: install plugins
OpaOnWindowsNow authored
139 endef
140
141
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
142 # List all packages and plugins in stdlib
143 OPA_PACKAGES := $(shell cd lib/stdlib && ./all_packages.sh)
144 OPA_PLUGINS := $(shell cd lib/stdlib && ./all_plugins.sh)
fccc685 Initial open-source release
MLstate authored
145
146 # Rules installing everything that has been compiled
147 #
148 # This doesn't rely on install rules generated by Makefile.bld ;
149 # instead it assumes that what you want to install has been properly
8c3019b [enhance] manpages: added target install-man to install manpages by d…
Mathieu Baudet authored
150 # put in $(BUILD_DIR)/{bin,lib/opa,share/opa,share/man}.
fccc685 Initial open-source release
MLstate authored
151 #
152 # This is the case of tools (because of Makefile.bld),
153 # and of opa runtime libs (because build rules copy them
154 # to $(BUILD_DIR)/lib/opa/static).
155 # This doesn't install the other libs though, use target install-libs
156 # for that
157
158 install-packageopt-%:
662e95e @BourgerieQuentin [enhance] compiler, packages: Allows to have several backends (separa…
BourgerieQuentin authored
159 $(if $(wildcard $(BUILD_FLAT_DIR)/$*.opx/_build/*),$(install-package))
160
161 install-node-packageopt-%:
162 $(if $(wildcard $(BUILD_NODE_DIR)/$*.opx/*.js),$(install-node-package))
fccc685 Initial open-source release
MLstate authored
163
164 install-package-%:
165 $(install-package)
166
662e95e @BourgerieQuentin [enhance] compiler, packages: Allows to have several backends (separa…
BourgerieQuentin authored
167 install-node-package-%:
168 $(install-node-package)
169
fccc685 Initial open-source release
MLstate authored
170 install-packages: $(addprefix install-packageopt-,$(OPA_PACKAGES))
662e95e @BourgerieQuentin [enhance] compiler, packages: Allows to have several backends (separa…
BourgerieQuentin authored
171 @printf "Installation to $(STDLIB_FLAT_DIR) done.\n"
172
173 install-node-packages: $(addprefix install-node-packageopt-,$(OPA_PACKAGES))
174 @printf "Installation to $(STDLIB_NODE_DIR) done.\n"
fccc685 Initial open-source release
MLstate authored
175
176 install-all-packages: $(addprefix install-package-,$(OPA_PACKAGES))
662e95e @BourgerieQuentin [enhance] compiler, packages: Allows to have several backends (separa…
BourgerieQuentin authored
177 @printf "Installation to $(STDLIB_FLAT_DIR) done.\n"
fccc685 Initial open-source release
MLstate authored
178
2f55085 @OpaOnWindowsNow [fix] Makefile: install plugins
OpaOnWindowsNow authored
179 install-pluginopt-%:
2fae9ee @Aqua-Ye [fix] Makefile: plugins were not install because of wrong path
Aqua-Ye authored
180 $(if $(wildcard $(BUILD_DIR)/$(PLUGINS_DIR)/$*.opp/),$(install-plugin))
2f55085 @OpaOnWindowsNow [fix] Makefile: install plugins
OpaOnWindowsNow authored
181
182 install-plugin-%:
183 $(install-plugin)
184
185 install-plugins: $(addprefix install-pluginopt-,$(OPA_PLUGINS))
186 @printf "Installation to $(STDLIB_DIR) done.\n"
187
188 install-all-plugins: $(addprefix install-plugin-,$(OPA_PLUGINS))
189 @printf "Installation to $(STDLIB_DIR) done.\n"
190
191
192
fcef231 @cedricss [enhance] Compile: Makefile improved for opa tools. Built them before…
cedricss authored
193 install-bin:
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
194 @printf "Installing into $(INSTALL_DIR)/bin\r"
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
195 @mkdir -p $(INSTALL_DIR)/bin
196 @$(if $(wildcard $(BUILD_DIR)/bin/*),$(INSTALL) -r $(BUILD_DIR)/bin/* $(INSTALL_DIR)/bin)
78a5027 @Aqua-Ye [enhance] install: moving some indstall scripts to appropriate direct…
Aqua-Ye authored
197 @tools/utils/install.sh --quiet --dir $(INSTALL_DIR) --ocamllib $(OCAMLLIB) --ocamlopt $(OCAMLOPT)
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
198 @printf "Installation to $(INSTALL_DIR)/bin done.\n"
fccc685 Initial open-source release
MLstate authored
199
200 install-lib:
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
201 @printf "Installing into $(INSTALL_DIR)/lib/opa\r"
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
202 @mkdir -p $(INSTALL_DIR)/lib/opa
203 @$(if $(wildcard $(BUILD_DIR)/lib/opa/*),$(INSTALL) -r $(BUILD_DIR)/lib/opa/* $(INSTALL_DIR)/lib/opa/)
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
204 @printf "Installation to $(INSTALL_DIR)/lib/opa done.\n"
fccc685 Initial open-source release
MLstate authored
205
206 install-share:
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
207 @printf "Installing into $(INSTALL_DIR)/share/opa\r"
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
208 @mkdir -p $(INSTALL_DIR)/share/opa
209 @$(if $(wildcard $(BUILD_DIR)/share/opa/*),$(INSTALL) -r $(BUILD_DIR)/share/opa/* $(INSTALL_DIR)/share/opa/)
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
210 @printf "Installation to $(INSTALL_DIR)/share/opa done.\n"
fccc685 Initial open-source release
MLstate authored
211
8c3019b [enhance] manpages: added target install-man to install manpages by d…
Mathieu Baudet authored
212 install-man:
213 @printf "Installing into $(INSTALL_DIR)/share/man\r"
214 @if [ -d $(BUILD_DIR)/man/man1 ]; then \
215 mkdir -p $(INSTALL_DIR)/share/man/man1; \
216 $(INSTALL) -r $(BUILD_DIR)/man/man1/*.1 $(INSTALL_DIR)/share/man/man1; \
217 fi
218 @printf "Installation to $(INSTALL_DIR)/share/man done.\n"
219
4a6014e @BourgerieQuentin [enhance] build: install the both set of packages
BourgerieQuentin authored
220 install: install-bin install-lib install-share install-plugins install-packages install-node-packages install-man
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
221 @printf "Installation into $(INSTALL_DIR) done.\n"
fccc685 Initial open-source release
MLstate authored
222
465b551 @Aqua-Ye [enhance] build: added option to not install ocaml
Aqua-Ye authored
223 install-node: install-bin install-lib install-share install-plugins install-node-packages install-man
224 @printf "Installation into $(INSTALL_DIR) done.\n"
225
fccc685 Initial open-source release
MLstate authored
226 .PHONY: uninstall
227 uninstall:
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
228 rm -rf $(INSTALL_DIR)/lib/opa
229 @[ ! -d $(INSTALL_DIR)/lib ] || [ -n "`ls -A $(INSTALL_DIR)/lib`" ] || rmdir $(INSTALL_DIR)/lib
230 rm -rf $(INSTALL_DIR)/share/opa
231 rm -rf $(INSTALL_DIR)/share/doc/opa
a9fdc17 @Aqua-Ye [doc] Makefile: added a TODO
Aqua-Ye authored
232 # TODO: remove all installed opa manpages
233 # rm -rf $(INSTALL_DIR)/share/man/man1/opa*
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
234 @[ ! -d $(INSTALL_DIR)/share ] || [ -n "`ls -A $(INSTALL_DIR)/share`" ] || rmdir $(INSTALL_DIR)/share
1b2772b [fix] Makefile: zealous uninstall
Louis Gesbert authored
235 $(foreach file,$(wildcard $(BUILD_DIR)/bin/*),rm -f $(INSTALL_DIR)/bin/$(notdir $(file));)
78a5027 @Aqua-Ye [enhance] install: moving some indstall scripts to appropriate direct…
Aqua-Ye authored
236 @tools/utils/install.sh --uninstall --dir $(INSTALL_DIR)
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
237 @[ ! -d $(INSTALL_DIR)/bin ] || [ -n "`ls -A $(INSTALL_DIR)/bin`" ] || rmdir $(INSTALL_DIR)/bin
8037018 [fix] Makefiles: using a more portable printf instead of echo
Louis Gesbert authored
238 @printf "Uninstall done.\n"
fccc685 Initial open-source release
MLstate authored
239
538524f @Aqua-Ye [enhance] ocamlbuild: ability to set OCAMLBUILD_OPT
Aqua-Ye authored
240 OCAMLBUILD_OPT ?= -j 6
241
fccc685 Initial open-source release
MLstate authored
242 # Install our ocamlbuild-generation engine
243 install-bld:
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
244 @mkdir -p $(INSTALL_DIR)/bin
22b433a @fperrin Don't assume that bash is in /bin
fperrin authored
245 @echo "#!/usr/bin/env bash" > $(INSTALL_DIR)/bin/bld
246 @echo "set -e" >> $(INSTALL_DIR)/bin/bld
247 @echo "set -u" >> $(INSTALL_DIR)/bin/bld
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
248 @chmod 755 $(INSTALL_DIR)/bin/bld
249 @echo "BLDDIR=$(PREFIX)/share/opa/bld $(PREFIX)/share/opa/bld/gen_myocamlbuild.sh" >> $(INSTALL_DIR)/bin/bld
538524f @Aqua-Ye [enhance] ocamlbuild: ability to set OCAMLBUILD_OPT
Aqua-Ye authored
250 @echo "_build/myocamlbuild -no-plugin $(OCAMLBUILD_OPT) \"\$$@\"" >> $(INSTALL_DIR)/bin/bld
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
251 @mkdir -p $(INSTALL_DIR)/share/opa/bld
6790c3f @Aqua-Ye [fix] Makefile: fix path for gen_myocamlbuild*.sh
Aqua-Ye authored
252 @$(INSTALL) tools/build/gen_myocamlbuild.sh tools/build/myocamlbuild_*fix.ml $(CONFIG_PATH)/config.sh $(CONFIG_PATH)/config.mli $(CONFIG_PATH)/config.ml\
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
253 $(INSTALL_DIR)/share/opa/bld
fccc685 Initial open-source release
MLstate authored
254
255 # Install an opa wrapper with different stdlib and options (for some backwards-compatibility)
256 install-qmlflat: # depends on opabsl_for_compiler, but we don't want to run ocamlbuild twice
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
257 @mkdir -p $(INSTALL_DIR)/bin $(INSTALL_DIR)/share/opa/mlstatebsl
2fae9ee @Aqua-Ye [fix] Makefile: plugins were not install because of wrong path
Aqua-Ye authored
258 @$(INSTALL) $(BUILD_DIR)/$(PLUGINS_DIR)/opabsl.opp/lib/plugins/opabsl/mlstatebsl/opabsl_*.opa $(INSTALL_DIR)/share/opa/mlstatebsl
22b433a @fperrin Don't assume that bash is in /bin
fperrin authored
259 @echo "#!/usr/bin/env bash" > $(INSTALL_DIR)/bin/qmlflat
260 @echo "set -e" >> $(INSTALL_DIR)/bin/qmlflat
261 @echo "set -u" >> $(INSTALL_DIR)/bin/qmlflat
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
262 @chmod 755 $(INSTALL_DIR)/bin/qmlflat
33e6550 @Aqua-Ye [fix] Makefile: fix install-all and install-qmlflat rules
Aqua-Ye authored
263 @echo 'exec opa --parser classic --no-stdlib --no-server --no-cps --no-closure --no-ei --no-constant-sharing --no-undot --separated off --value-restriction disabled --no-warn duplicateL0 --no-warn typer.warncoerce --no-warn unused --no-discard-of-unused-stdlib --no-warn pattern "$$@"' \
894a751 @delroth Support make DESTDIR=... install for easier packaging
delroth authored
264 >> $(INSTALL_DIR)/bin/qmlflat
fccc685 Initial open-source release
MLstate authored
265
266 # installs some dev tools on top of the normal install; these should not change often
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
267 install-all: install install-bld install-qmlflat tools/maxmem
33e6550 @Aqua-Ye [fix] Makefile: fix install-all and install-qmlflat rules
Aqua-Ye authored
268 @$(INSTALL) tools/platform_helper.sh $(INSTALL_DIR)/bin/
d863cc7 @Aqua-Ye [enhance] all: wip compilation
Aqua-Ye authored
269 @$(INSTALL) tools/maxmem $(INSTALL_DIR)/bin/
270 @rm tools/maxmem
271 @$(INSTALL) tools/plotmem $(INSTALL_DIR)/bin/
fccc685 Initial open-source release
MLstate authored
272
273 ##
274 ## DOCUMENTATION
275 ##
276 # (in this section, multiple calls to ocamlbuild are tolerated)
277
278 .PHONY: doc.jsbsl
279 doc.jsbsl: $(MYOCAMLBUILD)
280 $(OCAMLBUILD) $@/index.html
281
282 # this rules provides the doc.html target (from Makefile.bld)
283 # the sed are just there to help sorting by filename-within-directory
284 .PHONY: doc.odocl
285 doc.odocl:
286 echo $(foreach lib,$(ALL_LIBS),$(lib-cmi-$(lib):%.cmi=%)) \
287 | sed 's# \+#\n#g' \
288 | sed 's#\(.*\)/\([^/]*\)#\1 \2#' \
289 | sort -k 2 -u \
290 | sed 's#\(.*\) \([^ ]*\)#\1/\2#' \
291 >$@
292
293 .PHONY: packages-api
294 packages-api: $(MYOCAMLBUILD)
5e9da00 @BourgerieQuentin [enhance] compiler, syntax: Default syntax is now js-like
BourgerieQuentin authored
295 OPAOPT="$(OPAOPT) --rebuild --api --parser classic" $(OCAMLBUILD) opa-packages.stamp
Something went wrong with that request. Please try again.