2017-10-27 22:45:31 +04:00
2017-11-14 02:47:13 +04:00
DEV ?= --dev
2018-05-25 11:56:14 +04:00
PACKAGES := $( patsubst %.opam,%,$( notdir $( shell find src vendors -name \* .opam -print) ) )
2017-11-14 02:47:13 +04:00
2018-07-19 01:15:53 +04:00
active_protocol_versions := $( shell cat active_protocol_versions)
active_protocol_directories := $( shell tr -- - _ < active_protocol_versions)
2018-05-25 11:56:14 +04:00
current_opam_version := $( shell opam --version)
2018-01-18 19:18:55 +04:00
i n c l u d e s c r i p t s / v e r s i o n . s h
2018-05-25 11:56:14 +04:00
i f n e q ( $ { c u r r e n t _ o p a m _ v e r s i o n } , $ { o p a m _ v e r s i o n } )
$(error Unexpected opam version (found : ${current_opam_version }, expected : ${opam_version }))
e n d i f
2018-01-18 19:18:55 +04:00
2018-07-05 01:08:20 +04:00
current_ocaml_version := $( shell opam exec -- ocamlc -version)
2017-10-27 22:45:31 +04:00
all :
2018-07-05 01:08:20 +04:00
i f n e q ( $ { c u r r e n t _ o c a m l _ v e r s i o n } , $ { o c a m l _ v e r s i o n } )
$( error Unexpected ocaml version ( found: ${ current_ocaml_version } , expected: ${ ocaml_version } ) )
e n d i f
2017-11-27 09:13:12 +04:00
@jbuilder build ${ DEV } \
2018-01-16 19:30:58 +04:00
src/bin_node/main.exe \
2018-02-14 14:01:23 +04:00
src/bin_client/main_client.exe \
src/bin_client/main_admin.exe \
2018-05-26 13:11:45 +04:00
src/bin_signer/main_signer.exe \
2018-02-15 20:07:08 +04:00
src/lib_protocol_compiler/main_native.exe \
2018-07-19 01:15:53 +04:00
$( foreach p, $( active_protocol_directories) , src/proto_$( p) /bin_baker/main_baker_$( p) .exe) \
$( foreach p, $( active_protocol_directories) , src/proto_$( p) /bin_endorser/main_endorser_$( p) .exe) \
$( foreach p, $( active_protocol_directories) , src/proto_$( p) /bin_accuser/main_accuser_$( p) .exe)
2018-01-16 19:30:58 +04:00
@cp _build/default/src/bin_node/main.exe tezos-node
2018-02-14 14:01:23 +04:00
@cp _build/default/src/bin_client/main_client.exe tezos-client
@cp _build/default/src/bin_client/main_admin.exe tezos-admin-client
2018-05-26 13:11:45 +04:00
@cp _build/default/src/bin_signer/main_signer.exe tezos-signer
2018-01-30 19:30:22 +04:00
@cp _build/default/src/lib_protocol_compiler/main_native.exe tezos-protocol-compiler
2018-07-19 01:15:53 +04:00
@for p in $( active_protocol_directories) ; do \
cp _build/default/src/proto_$$ p/bin_baker/main_baker_$$ p.exe tezos-` echo $$ p | tr -- _ -` -baker ; \
cp _build/default/src/proto_$$ p/bin_endorser/main_endorser_$$ p.exe tezos-` echo $$ p | tr -- _ -` -endorser ; \
cp _build/default/src/proto_$$ p/bin_accuser/main_accuser_$$ p.exe tezos-` echo $$ p | tr -- _ -` -accuser ; \
done
2017-10-27 22:45:31 +04:00
2018-02-05 23:08:28 +04:00
all.pkg :
@jbuilder build ${ DEV } \
2018-05-25 11:56:14 +04:00
$( patsubst %.opam,%.install, $( shell find src vendors -name \* .opam -print) )
2018-02-05 23:08:28 +04:00
$(addsuffix .pkg,${PACKAGES}) : %.pkg :
@jbuilder build ${ DEV } \
2018-05-25 11:56:14 +04:00
$( patsubst %.opam,%.install, $( shell find src vendors -name $* .opam -print) )
2018-02-05 23:08:28 +04:00
$(addsuffix .test,${PACKAGES}) : %.test :
@jbuilder build ${ DEV } \
2018-05-25 11:56:14 +04:00
@$( patsubst %/$* .opam,%,$( shell find src vendors -name $* .opam) ) /runtest
2018-01-29 04:06:47 +04:00
2018-01-31 15:23:03 +04:00
doc-html : all
2017-11-14 02:47:13 +04:00
@jbuilder build @doc ${ DEV }
2018-07-05 14:08:55 +04:00
@./tezos-client -protocol PtCJ7pwoxe8JasnHY8YonnLYjcVHmhiARPJvqcC6VfHT5s8k8sY man -verbosity 3 -format html | sed " s/ $HOME /\$HOME/g " > docs/api/tezos-client.html
2018-01-31 15:23:03 +04:00
@./tezos-admin-client man -verbosity 3 -format html | sed " s/ $HOME /\$HOME/g " > docs/api/tezos-admin-client.html
2017-11-11 14:40:20 +04:00
@mkdir -p $$ ( pwd ) /docs/_build/api/odoc
@rm -rf $$ ( pwd ) /docs/_build/api/odoc/*
@cp -r $$ ( pwd ) /_build/default/_doc/* $$ ( pwd ) /docs/_build/api/odoc/
2018-03-15 21:25:38 +04:00
@${ MAKE } -C docs
2017-11-03 19:02:38 +04:00
2017-10-27 22:45:31 +04:00
build-test :
2017-11-14 02:47:13 +04:00
@jbuilder build @buildtest ${ DEV }
2017-10-27 22:45:31 +04:00
test :
2017-11-14 02:47:13 +04:00
@jbuilder runtest ${ DEV }
2018-01-29 04:26:41 +04:00
@./scripts/check_opam_test.sh
2017-10-27 22:45:31 +04:00
2018-01-27 14:21:41 +04:00
test-indent :
@jbuilder build @runtest_indent ${ DEV }
2018-02-22 14:07:26 +04:00
fix-indent :
@src/lib_stdlib/test-ocp-indent.sh fix
2017-10-27 22:45:31 +04:00
build-deps :
@./scripts/install_build_deps.sh
docker-image :
@./scripts/create_docker_image.sh
2018-01-26 19:28:13 +04:00
install :
@jbuilder build @install
@jbuilder install
2018-02-21 21:34:55 +04:00
uninstall :
@jbuilder uninstall
2017-10-27 22:45:31 +04:00
clean :
@-jbuilder clean
2018-02-15 20:07:08 +04:00
@-rm -f \
tezos-node \
tezos-client \
2018-07-19 01:15:53 +04:00
tezos-signer \
2018-02-15 20:07:08 +04:00
tezos-admin-client \
tezos-protocol-compiler \
2018-07-19 01:15:53 +04:00
$( foreach p, $( active_protocol_versions) , tezos-$( p) -baker tezos-$( p) -endorser tezos-$( p) -accuser)
2018-03-15 21:25:38 +04:00
@-${ MAKE } -C docs clean
2017-10-27 22:45:31 +04:00
.PHONY : all test build -deps docker -image clean