Skip to content
This repository
tag: riak-0.14.1rc4
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 142 lines (110 sloc) 3.588 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
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
$(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

dev1 dev2 dev3:
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
Something went wrong with that request. Please try again.