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.
This commit is contained in:
varnerac-ubnt 2014-06-27 17:09:04 -05:00 committed by Tuncer Ayaz
parent a467abbb16
commit 33b8769bf7

View file

@ -2,6 +2,9 @@
REBAR=$(PWD)/rebar REBAR=$(PWD)/rebar
RETEST=$(PWD)/deps/retest/retest 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: all:
./bootstrap ./bootstrap
@ -13,6 +16,7 @@ clean:
distclean: clean distclean: clean
@rm -f dialyzer_warnings @rm -f dialyzer_warnings
@rm -rf deps @rm -rf deps
@rm -f ~/.dialyzer_rebar_*_plt
debug: debug:
@./bootstrap debug @./bootstrap debug
@ -22,12 +26,35 @@ check: debug xref dialyzer deps test
xref: xref:
@./rebar 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 dialyzer: dialyzer_warnings
@diff -U0 dialyzer_reference dialyzer_warnings @diff -U0 dialyzer_reference dialyzer_warnings
dialyzer_warnings: dialyzer_warnings:
-@dialyzer -q -nn -n ebin -Wunmatched_returns -Werror_handling \ -@dialyzer --plt $(PLT_FILENAME) -q -nn -n ebin \
-Wrace_conditions > dialyzer_warnings -Wunmatched_returns \
-Werror_handling \
-Wrace_conditions \
> dialyzer_warnings
typer:
typer -r --plt $(PLT_FILENAME) ./src -I ./include
binary: VSN = $(shell ./rebar -V) binary: VSN = $(shell ./rebar -V)
binary: clean all binary: clean all