PHPDOC ?= support/pear/phpdoc
JSDOC ?= jsdoc


doc: phpdoc jsdoc

support:
	mkdir support

bootstrap: .phpdocinstall .npmpackages .bowerpackages
	npm install
	bower install
	grunt default

jsdoc: .npmpackages
	$(JSDOC) -c JSDocConf.json

phpdoc: .phpdocinstall
	$(PHPDOC)

.phpdocinstall: support
	pear config-create "`pwd`/support" "`pwd`/support/pear.config"
	pear -c "`pwd`/support/pear.config" channel-discover pear.phpdoc.org
	pear -c "`pwd`/support/pear.config" install phpdoc/phpDocumentor
	touch $@

.npmpackages: package.json
	npm ls -g grunt-cli 2>/dev/null || { echo "Please install grunt-cli npm package using 'npm install -g grunt-cli'" 1>&2 ; exit 1; }
	npm ls -g jsdoc 2>/dev/null || { echo "Please install jsdoc npm package using 'npm install -g jsdoc'" 1>&2 ; exit 1; }
	npm ls -g bower 2>/dev/null || { echo "Please install bower npm package using 'npm install -g bower'" 1>&2 ; exit 1; }
	npm install
	touch $@

.bowerpackages: bower.json
	bower --silent install
	touch $@