File: Makefile

package info (click to toggle)
erlang-bitcask 2.0.6%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,604 kB
  • ctags: 1,436
  • sloc: erlang: 7,929; ansic: 2,954; makefile: 229; exp: 86; sh: 14
file content (90 lines) | stat: -rw-r--r-- 2,248 bytes parent folder | download | duplicates (2)
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
REPO		?= bitcask
BITCASK_TAG	 = $(shell git describe --tags)
BASE_DIR         = $(shell pwd)
REBAR := $(shell which rebar)
ifeq ($(REBAR),)
REBAR = ./rebar
endif

PULSE_TESTS = bitcask_pulse

.PHONY: rel deps package pkgclean

all: deps compile

compile: deps
	$(REBAR) compile

deps:
	$(REBAR) get-deps

clean:
	$(REBAR) clean

BITCASK_IO_MODE=erlang

test: deps compile eunit_nif

eunit_nif:
	BITCASK_IO_MODE="nif" $(REBAR) skip_deps=true eunit

NOW	= $(shell date +%s)
COUNTER = $(PWD)/$(NOW).current_counterexample.eqc
EQCINFO = $(PWD)/$(NOW).eqc-info

pulse:
	@rm -rf $(BASE_DIR)/.eunit
	BITCASK_PULSE=1 $(REBAR) clean compile
	env BITCASK_PULSE=1 $(REBAR) -D PULSE eunit skip_deps=true suites=$(PULSE_TESTS) ; \
	if [ $$? -ne 0 ]; then \
		echo PULSE test FAILED; \
		cp ./.eunit/current_counterexample.eqc $(COUNTER); \
		cp ./.eunit/.eqc-info $(EQCINFO); \
		echo See files $(COUNTER) and $(EQCINFO); \
		exit 1; \
	else \
		exit 0; \
	fi

# 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/$(REPO)-clone && \
		 cd distdir/$(REPO)-clone && \
		 git checkout $(BITCASK_TAG) && \
		 $(call archive,$(BITCASK_TAG),..) && \
		 mkdir ../$(BITCASK_TAG)/deps && \
		 make deps; \
		 for dep in deps/*; do cd $${dep} && $(call archive,$${dep},../../../$(BITCASK_TAG)); cd ../..; done

distdir:
	$(if $(BITCASK_TAG), $(call buildtar), $(error "You can't generate a release tarball from a non-tagged revision. Run 'git checkout <tag>', then 'make dist'"))

dist $(BITCASK_TAG).tar.gz: distdir
	cd distdir; \
	tar czf ../$(BITCASK_TAG).tar.gz $(BITCASK_TAG)

ballclean:
	rm -rf $(BITCASK_TAG).tar.gz distdir

package: dist
	$(MAKE) -C package package

pkgclean:
	$(MAKE) -C package pkgclean

export BITCASK_TAG REPO

DIALYZER_APPS = kernel stdlib sasl erts ssl tools os_mon runtime_tools \
				crypto inets xmerl webtool snmp public_key mnesia eunit \
				syntax_tools compiler

include tools.mk