|
|
- 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
-
- 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
|