@ -3,7 +3,7 @@ RIAK_TAG = $(shell git describe --tags)
REVISION ?= $( shell echo $( RIAK_TAG) | sed -e 's/^$(REPO)-//' )
REVISION ?= $( shell echo $( RIAK_TAG) | sed -e 's/^$(REPO)-//' )
PKG_VERSION ?= $( shell echo $( REVISION) | tr - .)
PKG_VERSION ?= $( shell echo $( REVISION) | tr - .)
.PHONY : rel stagedevrel deps
.PHONY : rel stagedevrel deps test
all : deps compile
all : deps compile
@ -16,69 +16,27 @@ deps:
clean :
clean :
./rebar clean
./rebar clean
distclean : clean devclean relclean ballclean
distclean : clean
./rebar delete-deps
./rebar delete-deps
test :
test :
./rebar skip_deps = true eunit
##
## Release targets
##
rel : deps
./rebar compile generate
relclean :
rm -rf rel/riak
##
## Developer targets
##
stagedevrel : dev 1 dev 2 dev 3 dev 4
$( foreach dev,$^,\
$( foreach dep,$( wildcard deps/*) , rm -rf dev/$( dev) /lib/$( shell basename $( dep) ) -* && ln -sf $( abspath $( dep) ) dev/$( dev) /lib; ) )
devrel : dev 1 dev 2 dev 3 dev 4
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; )
./rebar eunit
##
##
## Doc targets
## Doc targets
##
##
docs :
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
./rebar doc
APPS = kernel stdlib sasl erts ssl tools os_mon runtime_tools crypto inets \
APPS = kernel stdlib sasl erts ssl tools os_mon runtime_tools crypto inets \
xmerl webtool snmp public_key mnesia eunit syntax_tools compiler
xmerl webtool snmp public_key mnesia eunit syntax_tools compiler
COMBO_PLT = $( HOME) /.riak_combo_dialyzer_plt
COMBO_PLT = $( HOME) /.riak_combo_dialyzer_plt
check_plt : compile
check_plt : compile
dialyzer --check_plt --plt $( COMBO_PLT) --apps $( APPS) \
deps/*/ebin
dialyzer --check_plt --plt $( COMBO_PLT) --apps $( APPS)
build_plt : compile
build_plt : compile
dialyzer --build_plt --output_plt $( COMBO_PLT) --apps $( APPS) \
deps/*/ebin
dialyzer --build_plt --output_plt $( COMBO_PLT) --apps $( APPS)
dialyzer : compile
dialyzer : compile
@echo
@echo
@ -86,7 +44,7 @@ dialyzer: compile
@echo Use "'make build_plt'" to build PLT prior to using this target.
@echo Use "'make build_plt'" to build PLT prior to using this target.
@echo
@echo
@sleep 1
@sleep 1
dialyzer -Wno_return --plt $( COMBO_PLT) deps/*/ ebin | \
dialyzer -Wno_return --plt $( COMBO_PLT) ebin | \
fgrep -v -f ./dialyzer.ignore-warnings
fgrep -v -f ./dialyzer.ignore-warnings
cleanplt :
cleanplt :
@ -97,45 +55,3 @@ cleanplt:
sleep 5
sleep 5
rm $( COMBO_PLT)
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