edoc.mk 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # Copyright (c) 2013-2016, Loïc Hoguin <essen@ninenines.eu>
  2. # This file is part of erlang.mk and subject to the terms of the ISC License.
  3. .PHONY: distclean-edoc edoc
  4. # Configuration.
  5. EDOC_OPTS ?=
  6. EDOC_SRC_DIRS ?=
  7. EDOC_OUTPUT ?= doc
  8. define edoc.erl
  9. SrcPaths = lists:foldl(fun(P, Acc) ->
  10. filelib:wildcard(atom_to_list(P) ++ "/{src,c_src}")
  11. ++ lists:filter(fun(D) ->
  12. filelib:is_dir(D)
  13. end, filelib:wildcard(atom_to_list(P) ++ "/{src,c_src}/**"))
  14. ++ Acc
  15. end, [], [$(call comma_list,$(patsubst %,'%',$(call core_native_path,$(EDOC_SRC_DIRS))))]),
  16. DefaultOpts = [{dir, "$(EDOC_OUTPUT)"}, {source_path, SrcPaths}, {subpackages, false}],
  17. edoc:application($(1), ".", [$(2)] ++ DefaultOpts),
  18. halt(0).
  19. endef
  20. # Core targets.
  21. ifneq ($(strip $(EDOC_SRC_DIRS)$(wildcard doc/overview.edoc)),)
  22. docs:: edoc
  23. endif
  24. distclean:: distclean-edoc
  25. # Plugin-specific targets.
  26. edoc: distclean-edoc doc-deps
  27. $(gen_verbose) $(call erlang,$(call edoc.erl,$(PROJECT),$(EDOC_OPTS)))
  28. distclean-edoc:
  29. $(gen_verbose) rm -f $(EDOC_OUTPUT)/*.css $(EDOC_OUTPUT)/*.html $(EDOC_OUTPUT)/*.png $(EDOC_OUTPUT)/edoc-info