DEPS = $(CURDIR)/deps DIALYZER_OPTS = -Wunderspecs # List dependencies that should be included in a cached dialyzer PLT file. # DIALYZER_DEPS = deps/app1/ebin \ # deps/app2/ebin DEPS_PLT = bench.plt ERLANG_DIALYZER_APPS = asn1 \ compiler \ crypto \ edoc \ edoc \ erts \ eunit \ eunit \ gs \ hipe \ inets \ kernel \ mnesia \ mnesia \ observer \ public_key \ runtime_tools \ runtime_tools \ ssl \ stdlib \ syntax_tools \ syntax_tools \ tools \ webtool \ xmerl all: compile # Clean ebin and .eunit of this project clean: @rebar clean skip_deps=true # Clean this project and all deps allclean: @rebar clean compile: $(DEPS) @rebar compile compile_skip: @rebar compile skip_deps=true test: compile deps/basho_bench/basho_bench @deps/basho_bench/basho_bench pooler.config @deps/basho_bench/priv/summary.r -i tests/current deps/basho_bench/basho_bench: @(cd deps/basho_bench;$(MAKE)) $(DEPS): @rebar get-deps # Full clean and removal of all deps. Remove deps first to avoid # wasted effort of cleaning deps before nuking them. distclean: @rm -rf deps $(DEPS_PLT) @rebar clean # Only include local PLT if we have deps that we are going to analyze ifeq ($(strip $(DIALYZER_DEPS)),) dialyzer: ~/.dialyzer_plt @dialyzer $(DIALYZER_OPTS) -r ebin else dialyzer: ~/.dialyzer_plt $(DEPS_PLT) @dialyzer $(DIALYZER_OPTS) --plts ~/.dialyzer_plt $(DEPS_PLT) -r ebin $(DEPS_PLT): @dialyzer --build_plt $(DIALYZER_DEPS) --output_plt $(DEPS_PLT) endif ~/.dialyzer_plt: @echo "ERROR: Missing ~/.dialyzer_plt. Please wait while a new PLT is compiled." dialyzer --build_plt --apps $(ERLANG_DIALYZER_APPS) @echo "now try your build again" doc: @rebar doc skip_deps=true shell: erl -pa deps/*/ebin ebin tags: find src deps -name "*.[he]rl" -print | etags - .PHONY: all compile eunit test dialyzer clean allclean distclean doc tags