|
|
@ -1,8 +1,141 @@ |
|
|
|
all: |
|
|
|
REPO ?= riak |
|
|
|
RIAK_TAG = $(shell git describe --tags) |
|
|
|
REVISION ?= $(shell echo $(RIAK_TAG) | sed -e 's/^$(REPO)-//') |
|
|
|
PKG_VERSION ?= $(shell echo $(REVISION) | tr - .) |
|
|
|
|
|
|
|
.PHONY: rel stagedevrel deps |
|
|
|
|
|
|
|
all: deps compile |
|
|
|
|
|
|
|
compile: |
|
|
|
./rebar compile |
|
|
|
|
|
|
|
deps: |
|
|
|
./rebar get-deps |
|
|
|
|
|
|
|
clean: |
|
|
|
./rebar clean |
|
|
|
|
|
|
|
test: all |
|
|
|
./rebar eunit |
|
|
|
distclean: clean devclean relclean ballclean |
|
|
|
./rebar delete-deps |
|
|
|
|
|
|
|
test: |
|
|
|
./rebar skip_deps=true eunit |
|
|
|
|
|
|
|
##
|
|
|
|
## Release targets
|
|
|
|
##
|
|
|
|
rel: deps |
|
|
|
./rebar compile generate |
|
|
|
|
|
|
|
relclean: |
|
|
|
rm -rf rel/riak |
|
|
|
|
|
|
|
##
|
|
|
|
## Developer targets
|
|
|
|
##
|
|
|
|
stagedevrel: dev1 dev2 dev3 dev4 |
|
|
|
$(foreach dev,$^,\
|
|
|
|
$(foreach dep,$(wildcard deps/*), rm -rf dev/$(dev)/lib/$(shell basename $(dep))-* && ln -sf $(abspath $(dep)) dev/$(dev)/lib;)) |
|
|
|
|
|
|
|
devrel: dev1 dev2 dev3 dev4 |
|
|
|
|
|
|
|
dev1 dev2 dev3 dev4: |
|
|
|
mkdir -p dev |
|
|
|
(cd rel && ../rebar generate target_dir=../dev/$@ overlay_vars=vars/$@_vars.config) |
|
|
|
|
|
|
|
devclean: clean |
|
|
|
rm -rf dev |
|
|
|
|
|
|
|
stage : rel |
|
|
|
$(foreach dep,$(wildcard deps/*), rm -rf rel/riak/lib/$(shell basename $(dep))-* && ln -sf $(abspath $(dep)) rel/riak/lib;) |
|
|
|
|
|
|
|
##
|
|
|
|
## Doc targets
|
|
|
|
##
|
|
|
|
docs: |
|
|
|
./rebar skip_deps=true doc |
|
|
|
@cp -R apps/luke/doc doc/luke |
|
|
|
@cp -R apps/riak_core/doc doc/riak_core |
|
|
|
@cp -R apps/riak_kv/doc doc/riak_kv |
|
|
|
|
|
|
|
orgs: orgs-doc orgs-README |
|
|
|
|
|
|
|
orgs-doc: |
|
|
|
@emacs -l orgbatch.el -batch --eval="(riak-export-doc-dir \"doc\" 'html)" |
|
|
|
|
|
|
|
orgs-README: |
|
|
|
@emacs -l orgbatch.el -batch --eval="(riak-export-doc-file \"README.org\" 'ascii)" |
|
|
|
@mv README.txt README |
|
|
|
|
|
|
|
APPS = kernel stdlib sasl erts ssl tools os_mon runtime_tools crypto inets \
|
|
|
|
xmerl webtool snmp public_key mnesia eunit syntax_tools compiler |
|
|
|
COMBO_PLT = $(HOME)/.riak_combo_dialyzer_plt |
|
|
|
|
|
|
|
check_plt: compile |
|
|
|
dialyzer --check_plt --plt $(COMBO_PLT) --apps $(APPS) \
|
|
|
|
deps/*/ebin |
|
|
|
|
|
|
|
build_plt: compile |
|
|
|
dialyzer --build_plt --output_plt $(COMBO_PLT) --apps $(APPS) \
|
|
|
|
deps/*/ebin |
|
|
|
|
|
|
|
dialyzer: compile |
|
|
|
@echo |
|
|
|
@echo Use "'make check_plt'" to check PLT prior to using this target. |
|
|
|
@echo Use "'make build_plt'" to build PLT prior to using this target. |
|
|
|
@echo |
|
|
|
@sleep 1 |
|
|
|
dialyzer -Wno_return --plt $(COMBO_PLT) deps/*/ebin | \
|
|
|
|
fgrep -v -f ./dialyzer.ignore-warnings |
|
|
|
|
|
|
|
cleanplt: |
|
|
|
@echo |
|
|
|
@echo "Are you sure? It takes about 1/2 hour to re-build." |
|
|
|
@echo Deleting $(COMBO_PLT) in 5 seconds. |
|
|
|
@echo |
|
|
|
sleep 5 |
|
|
|
rm $(COMBO_PLT) |
|
|
|
|
|
|
|
# Release tarball creation
|
|
|
|
# Generates a tarball that includes all the deps sources so no checkouts are necessary
|
|
|
|
archivegit = git archive --format=tar --prefix=$(1)/ HEAD | (cd $(2) && tar xf -) |
|
|
|
archivehg = hg archive $(2)/$(1) |
|
|
|
archive = if [ -d ".git" ]; then \
|
|
|
|
$(call archivegit,$(1),$(2)); \
|
|
|
|
else \
|
|
|
|
$(call archivehg,$(1),$(2)); \
|
|
|
|
fi |
|
|
|
|
|
|
|
buildtar = mkdir distdir && \
|
|
|
|
git clone . distdir/riak-clone && \
|
|
|
|
cd distdir/riak-clone && \
|
|
|
|
git checkout $(RIAK_TAG) && \
|
|
|
|
$(call archive,$(RIAK_TAG),..) && \
|
|
|
|
mkdir ../$(RIAK_TAG)/deps && \
|
|
|
|
make deps; \
|
|
|
|
for dep in deps/*; do \
|
|
|
|
cd $${dep} && \
|
|
|
|
$(call archive,$${dep},../../../$(RIAK_TAG)) && \
|
|
|
|
mkdir -p ../../../$(RIAK_TAG)/$${dep}/priv && \
|
|
|
|
git rev-list --max-count=1 HEAD > ../../../$(RIAK_TAG)/$${dep}/priv/git.vsn && \
|
|
|
|
cd ../..; done |
|
|
|
|
|
|
|
distdir: |
|
|
|
$(if $(RIAK_TAG), $(call buildtar), $(error "You can't generate a release tarball from a non-tagged revision. Run 'git checkout <tag>', then 'make dist'")) |
|
|
|
|
|
|
|
dist $(RIAK_TAG).tar.gz: distdir |
|
|
|
cd distdir; \
|
|
|
|
tar czf ../$(RIAK_TAG).tar.gz $(RIAK_TAG) |
|
|
|
|
|
|
|
ballclean: |
|
|
|
rm -rf $(RIAK_TAG).tar.gz distdir |
|
|
|
|
|
|
|
package: dist |
|
|
|
$(MAKE) -C package package |
|
|
|
|
|
|
|
pkgclean: |
|
|
|
$(MAKE) -C package pkgclean |
|
|
|
|
|
|
|
.PHONY: package |
|
|
|
export PKG_VERSION REPO REVISION RIAK_TAG |