From 33b8769bf789781106b4798a50b01f9ad5ca104d Mon Sep 17 00:00:00 2001 From: varnerac-ubnt Date: Fri, 27 Jun 2014 17:09:04 -0500 Subject: [PATCH] Add typer target This patch adds a typer target to the Makefile. It makes it easier for developers to start adding specs to the codebase. It also as a build_plt target with the built-in applications typer needs to analyze rebar. This also includes the Erlang version in the generated PLT file. typer and dialyzer targets use this file. Finally, the distclean target removed the versioned PLT file. --- Makefile | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index db7d519da..5a896d147 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,9 @@ REBAR=$(PWD)/rebar RETEST=$(PWD)/deps/retest/retest +OTPVSNCMD='io:fwrite("~s",[rebar_utils:otp_release()]), halt().' +OTPVSN = $(shell erl -pa ebin/ -noshell -eval $(OTPVSNCMD)) +PLT_FILENAME=~/.dialyzer_rebar_$(OTPVSN)_plt all: ./bootstrap @@ -13,6 +16,7 @@ clean: distclean: clean @rm -f dialyzer_warnings @rm -rf deps + @rm -f ~/.dialyzer_rebar_*_plt debug: @./bootstrap debug @@ -22,12 +26,35 @@ check: debug xref dialyzer deps test xref: @./rebar xref +build_plt: + -dialyzer --build_plt --output_plt $(PLT_FILENAME) --apps \ + erts \ + kernel \ + stdlib \ + crypto \ + compiler \ + asn1 \ + eunit \ + tools \ + ssl \ + edoc \ + reltool \ + snmp \ + sasl + -dialyzer --add_to_plt --output_plt $(PLT_FILENAME) --apps diameter + dialyzer: dialyzer_warnings @diff -U0 dialyzer_reference dialyzer_warnings dialyzer_warnings: - -@dialyzer -q -nn -n ebin -Wunmatched_returns -Werror_handling \ - -Wrace_conditions > dialyzer_warnings + -@dialyzer --plt $(PLT_FILENAME) -q -nn -n ebin \ + -Wunmatched_returns \ + -Werror_handling \ + -Wrace_conditions \ + > dialyzer_warnings + +typer: + typer -r --plt $(PLT_FILENAME) ./src -I ./include binary: VSN = $(shell ./rebar -V) binary: clean all