Makefile 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. .PHONY: rel deps test plugins
  2. APP = emqttd
  3. BASE_DIR = $(shell pwd)
  4. REBAR = $(BASE_DIR)/rebar
  5. DIST = $(BASE_DIR)/rel/$(APP)
  6. all: submods compile
  7. submods:
  8. @git submodule update --init
  9. compile: deps
  10. @$(REBAR) compile
  11. deps:
  12. @$(REBAR) get-deps
  13. update-deps:
  14. @$(REBAR) update-deps
  15. xref:
  16. @$(REBAR) xref skip_deps=true
  17. clean:
  18. @$(REBAR) clean
  19. test:
  20. @$(REBAR) skip_deps=true eunit
  21. edoc:
  22. @$(REBAR) doc
  23. rel: compile
  24. @cd rel && $(REBAR) generate -f
  25. plugins:
  26. @for plugin in ./plugins/* ; do \
  27. if [ -d $${plugin} ]; then \
  28. mkdir -p $(DIST)/$${plugin}/ ; \
  29. cp -R $${plugin}/ebin $(DIST)/$${plugin}/ ; \
  30. [ -d "$${plugin}/priv" ] && cp -R $${plugin}/priv $(DIST)/$${plugin}/ ; \
  31. [ -d "$${plugin}/etc" ] && cp -R $${plugin}/etc $(DIST)/$${plugin}/ ; \
  32. echo "$${plugin} copied" ; \
  33. fi \
  34. done
  35. dist: rel plugins
  36. PLT = $(BASE_DIR)/.emqttd_dialyzer.plt
  37. APPS = erts kernel stdlib sasl crypto ssl os_mon syntax_tools \
  38. public_key mnesia inets compiler
  39. check_plt: compile
  40. dialyzer --check_plt --plt $(PLT) --apps $(APPS) \
  41. deps/*/ebin ./ebin plugins/*/ebin
  42. build_plt: compile
  43. dialyzer --build_plt --output_plt $(PLT) --apps $(APPS) \
  44. deps/*/ebin ./ebin plugins/*/ebin
  45. dialyzer: compile
  46. dialyzer -Wno_return --plt $(PLT) deps/*/ebin ./ebin plugins/*/ebin