diff --git a/Makefile.am b/Makefile.am index 243fd59520..cfc8d02e6f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -292,6 +292,21 @@ CLEANFILES = $(OSX_DMG) $(RAVEN_WIN_INSTALLER) DISTCHECK_CONFIGURE_FLAGS = --enable-man -clean-local: +doc/doxygen/.stamp: doc/Doxyfile FORCE + $(MKDIR_P) $(@D) + $(DOXYGEN) $^ + $(AM_V_at) touch $@ + +if HAVE_DOXYGEN +docs: doc/doxygen/.stamp +else +docs: + @echo "error: doxygen not found" +endif + +clean-docs: + rm -rf doc/doxygen + +clean-local: clean-docs rm -rf coverage_percent.txt test_raven.coverage/ total.coverage/ test/tmp/ cache/ $(OSX_APP) rm -rf test/functional/__pycache__ diff --git a/configure.ac b/configure.ac index 2206766821..3759e10d19 100644 --- a/configure.ac +++ b/configure.ac @@ -94,6 +94,12 @@ AC_PATH_TOOL(READELF, readelf) AC_PATH_TOOL(CPPFILT, c++filt) AC_PATH_TOOL(OBJCOPY, objcopy) +AC_PATH_PROG(DOXYGEN, doxygen) +if test -z "$DOXYGEN"; then + AC_MSG_WARN([Doxygen not found]) +fi +AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"]) + AC_ARG_VAR(PYTHONPATH, Augments the default search path for python module files) # Enable wallet @@ -1245,7 +1251,7 @@ AC_SUBST(PROTOBUF_LIBS) AC_SUBST(QR_LIBS) AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi share/qt/Info.plist test/config.ini]) AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh]) -AC_CONFIG_FILES([doc/Doxyfile]) +AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([doc/Doxyfile])]) AC_CONFIG_LINKS([contrib/filter-lcov.py:contrib/filter-lcov.py]) AC_CONFIG_LINKS([test/functional/test_runner.py:test/functional/test_runner.py]) AC_CONFIG_LINKS([test/util/raven-util-test.py:test/util/raven-util-test.py]) diff --git a/doc/developer-notes.md b/doc/developer-notes.md index 4c2ab989e0..7c660b854a 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -129,9 +129,21 @@ Not OK (used plenty in the current source, but not picked up): // ``` -A full list of comment syntaxes picked up by doxygen can be found at http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html, +A full list of comment syntaxes picked up by doxygen can be found at +http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html, but if possible use one of the above styles. +The Ravencoin Doxygen documentation can be generated by running `make docs` from the top-level +directory of the repository. +That creates the documentation in the directory "doc/doxygen" and the it can be accessed by a browser at: + doc/doxygen/html/index.html +The documentation can by deleted by running `make clean-docs`. + +Before running `make docs`, you will need to install dependencies `doxygen` and `dot` (a component +of `graphviz`). For example, + on MacOS via Homebrew: `brew install doxygen --with-graphviz` + on Debian/Ubuntu: `sudo install doxygen graphviz` + Development tips and tricks ---------------------------