Makefile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # See LICENSE for licensing information.
  2. PROJECT = ranch
  3. ERLC_OPTS = -Werror +debug_info +warn_export_all # +bin_opt_info +warn_missing_spec
  4. DEPS_DIR ?= $(CURDIR)/deps
  5. export DEPS_DIR
  6. # Makefile tweaks.
  7. V ?= 0
  8. appsrc_verbose_0 = @echo " APP " $(PROJECT).app.src;
  9. appsrc_verbose = $(appsrc_verbose_$(V))
  10. erlc_verbose_0 = @echo " ERLC " $(?F);
  11. erlc_verbose = $(erlc_verbose_$(V))
  12. gen_verbose_0 = @echo " GEN " $@;
  13. gen_verbose = $(gen_verbose_$(V))
  14. .PHONY: all clean-all app clean docs clean-docs tests build-plt dialyze
  15. # Application.
  16. all: app
  17. clean-all: clean clean-docs
  18. $(gen_verbose) rm -rf .$(PROJECT).plt $(DEPS_DIR) logs
  19. MODULES = $(shell ls src/*.erl | sed 's/src\///;s/\.erl/,/' | sed '$$s/.$$//')
  20. app: ebin/$(PROJECT).app
  21. $(appsrc_verbose) cat src/$(PROJECT).app.src \
  22. | sed 's/{modules, \[\]}/{modules, \[$(MODULES)\]}/' \
  23. > ebin/$(PROJECT).app
  24. ebin/$(PROJECT).app: src/*.erl
  25. @mkdir -p ebin/
  26. $(erlc_verbose) erlc -v $(ERLC_OPTS) -o ebin/ -pa ebin/ \
  27. src/$(PROJECT)_transport.erl $?
  28. clean:
  29. $(gen_verbose) rm -rf ebin/ test/*.beam erl_crash.dump
  30. # Documentation.
  31. docs: clean-docs
  32. $(gen_verbose) erl -noshell \
  33. -eval 'edoc:application($(PROJECT), ".", []), init:stop().'
  34. clean-docs:
  35. $(gen_verbose) rm -f doc/*.css doc/*.html doc/*.png doc/edoc-info
  36. # Tests.
  37. CT_RUN = ct_run \
  38. -pa ebin $(DEPS_DIR)/*/ebin \
  39. -dir test \
  40. -logdir logs \
  41. -cover test/cover.spec
  42. tests: clean app
  43. @mkdir -p logs/
  44. @$(CT_RUN) -suite acceptor_SUITE
  45. # Dialyzer.
  46. build-plt: app
  47. @dialyzer --build_plt --output_plt .$(PROJECT).plt \
  48. --apps erts kernel stdlib crypto public_key ssl
  49. dialyze:
  50. @dialyzer --src src --plt .$(PROJECT).plt \
  51. -Werror_handling -Wrace_conditions -Wunmatched_returns # -Wunderspecs