Sfoglia il codice sorgente

Merge pull request #187 from basho/adt-dialyzer-mad-science

Rework how dialyzer PLTs are built and used
pull/191/merge
Andrew Thompson 11 anni fa
parent
commit
d65b91a6bc
3 ha cambiato i file con 42 aggiunte e 35 eliminazioni
  1. +1
    -0
      .gitignore
  2. +2
    -35
      Makefile
  3. +39
    -0
      tools.mk

+ 1
- 0
.gitignore Vedi File

@ -7,3 +7,4 @@ erl_crash.dump
.project
log
deps
.local_dialyzer_plt

+ 2
- 35
Makefile Vedi File

@ -15,39 +15,6 @@ clean:
distclean: clean
./rebar delete-deps
test:
./rebar compile eunit
##
## Doc targets
##
docs:
./rebar doc
APPS = kernel stdlib sasl erts ssl tools os_mon runtime_tools crypto inets \
xmerl webtool snmp public_key mnesia eunit
PLT ?= $(HOME)/.riak_combo_dialyzer_plt
check_plt: compile
dialyzer --check_plt --plt $(PLT) --apps $(APPS)
build_plt: compile
dialyzer --build_plt --output_plt $(PLT) --apps $(APPS)
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 -Wunmatched_returns --plt $(PLT) ebin | \
fgrep -v -f ./dialyzer.ignore-warnings
cleanplt:
@echo
@echo "Are you sure? It takes about 1/2 hour to re-build."
@echo Deleting $(PLT) in 5 seconds.
@echo
sleep 5
rm $(PLT)
DIALYZER_APPS = kernel stdlib erts sasl eunit syntax_tools compiler crypto
include tools.mk

+ 39
- 0
tools.mk Vedi File

@ -0,0 +1,39 @@
test: compile
./rebar eunit skip_deps=true
docs:
./rebar doc skip_deps=true
PLT ?= $(HOME)/.riak_combo_dialyzer_plt
LOCAL_PLT = .local_dialyzer_plt
DIALYZER_FLAGS ?= -Wunmatched_returns
${PLT}: compile
ifneq (,$(wildcard $(PLT)))
dialyzer --check_plt --plt $(PLT) --apps $(DIALYZER_APPS) && \
dialyzer --add_to_plt --plt $(PLT) --output_plt $(PLT) --apps $(DIALYZER_APPS) ; test $$? -ne 1
else
dialyzer --build_plt --output_plt $(PLT) --apps $(DIALYZER_APPS); test $$? -ne 1
endif
${LOCAL_PLT}: compile
ifneq (,$(wildcard $(LOCAL_PLT)))
dialyzer --check_plt --plt $(LOCAL_PLT) deps/*/ebin && \
dialyzer --add_to_plt --plt $(LOCAL_PLT) --output_plt $(LOCAL_PLT) deps/*/ebin ; test $$? -ne 1
else
dialyzer --build_plt --output_plt $(LOCAL_PLT) deps/*/ebin ; test $$? -ne 1
endif
dialyzer: ${PLT} ${LOCAL_PLT}
@echo "==> $(shell basename $(shell pwd)) (dialyzer)"
dialyzer $(DIALYZER_FLAGS) --plts $(PLT) $(LOCAL_PLT) -c ebin
cleanplt:
@echo
@echo "Are you sure? It takes several minutes to re-build."
@echo Deleting $(PLT) and $(LOCAL_PLT) in 5 seconds.
@echo
sleep 5
rm $(PLT)
rm $(LOCAL_PLT)

Caricamento…
Annulla
Salva