# MySQL/OTP # # This Makefile should be complete enough for this project to be used as an # erlang.mk dependency. # # Additional targets: # # - tests-report: Creates doc/eunit.html with the coverage and eunit output. # - gh-pages: Generates docs and eunit reports and commits these in the # gh-pages which Github publishes automatically when pushed. .PHONY: gh-pages tests-report tests-prep CHANGELOG.md PROJECT = mysql EDOC_OPTS = {stylesheet_file,"priv/edoc-style.css"},{todo,true} PLT_APPS = crypto SHELL_PATH = -pa ebin include erlang.mk tests-prep: cd test/ssl && $(MAKE) CHANGELOG.md: ./changelog.sh > $@ # Update the local 'gh-pages' branch with pregenerated output files # (trick from https://groups.google.com/forum/#!topic/github/XYxkdzxpgCo) gh-pages: docs tests-report @if [ $$(git name-rev --name-only HEAD) != master ] ; then \ echo "Not on master. Aborting." ; \ false ; \ fi @git update-ref refs/heads/gh-pages origin/gh-pages '' 2>/dev/null || true @GIT_INDEX_FILE=gitindex.tmp; export GIT_INDEX_FILE; \ rm -f $${GIT_INDEX_FILE} && \ git add -f doc/*.html doc/stylesheet.css doc/erlang.png && \ git update-ref refs/heads/gh-pages \ $$(echo "Autogenerated html pages for $$(git describe --tags)" \ | git commit-tree $$(git write-tree --prefix=doc) \ -p refs/heads/gh-pages) @rm gitindex.tmp @echo "Committed $$(git describe --tags) in the gh-pages branch." # Build eunit.html containing the coverage report and the test output in the # doc directory. tests-report: test_command=$(MAKE) --no-print-directory tests COVER=1 \ COVER_REPORT_DIR= EUNIT_OPTS={verbose,true} tests-report: @rm -f cover/*.html @$(test_command) | tee tests.output @$(MAKE) --no-print-directory cover-report @(cat cover/index.html | sed 's!!!' ; \ echo '

Output of $(test_command)

' ; \
	 sed 's/&/\&/g; s//\>/g;' tests.output ; \
	 echo '
' ; \ echo '') > doc/eunit.html @cp cover/*.COVER.html doc/