PHPDOC ?= support/pear/phpdoc JSDOC ?= jsdoc PKG_VERSION = $(shell awk '/version/ { print $$3 }' extension/ext_emconf.php | sed "s/'//g") NIGHTLY_DATE = $(shell date '+%Y%m%d') RELEASE_DATE = $(shell date '+%Y%m%d%H%M') GIT_REVISION_SHORT = $(shell git rev-parse --short HEAD || true) GIT_REVISION_LONG = $(shell git rev-parse HEAD || true) EXTENSION_CONTENT = Classes Configuration Documentation qfq Resources ext_emconf.php ext_localconf.php ext_tables.php ext_icon.png config.qfq.example.ini RELEASE.txt DISTDIR=dist all: archive t3sphinx doc: phpdoc jsdoc plantuml maintainer-clean: rm -f .bowerpackages .doc_plantuml .npmpackages .phpdocinstall .plantuml_install .support .support_plantuml rm -rf doc support bower_components node_modules .python_virtualenv build-dist archive: clean qfq.zip qfq.zip: cd extension; zip -r ../$@ $(EXTENSION_CONTENT) clean: rm -f qfq_$(PKG_VERSION).zip git-revision: make-dist-dir echo $(GIT_REVISION_LONG) > $(DISTDIR)/revision.git make-dist-dir: rm -rf $(DISTDIR)/ mkdir $(DISTDIR) dist-move-doc: cd $(DISTDIR) ; \ mkdir Documentation.tmp ;\ mv Documentation/_make/build/html Documentation.tmp ;\ rm -rf Documentation ; \ mv Documentation.tmp Documentation dist-copy-extension: cd extension ; cp -R $(EXTENSION_CONTENT) ../$(DISTDIR)/ build-dist: t3sphinx make-dist-dir dist-copy-extension dist-move-doc git-revision echo "Distribution made in $(DIST)" nightly: bootstrap build-dist cd $(DISTDIR); zip -r ../qfq-$(NIGHTLY_DATE) $(EXTENSION_CONTENT) revision.git -x config.ini snapshot: bootstrap build-dist cd $(DISTDIR) ; zip -r ../qfq-$(NIGHTLY_DATE)-$(GIT_REVISION_SHORT) $(EXTENSION_CONTENT) revision.git -x config.ini release: bootstrap build-dist if [ -z "$(VERSION)" ] ; then echo "Set VERSION make variable to the release version (fmt: maj.min.micro)" ; exit 1 ; fi cd $(DISTDIR) ; zip -r "../qfq.$(VERSION)_$(RELEASE_DATE).zip" $(EXTENSION_CONTENT) revision.git -x config.ini t3sphinx: .virtual_env . .python_virtualenv/bin/activate ; cd extension/Documentation/_make; make html plantuml: uml/javascript/classdiagram.pu .support_plantuml java -jar support/plantuml/plantuml.jar -tpng -o ../../doc/plantuml/javascript uml/javascript/classdiagram.pu bootstrap: .phpdocinstall .npmpackages .bowerpackages .plantuml_install .virtual_env npm install bower install grunt default jsdoc: .npmpackages $(JSDOC) -c JSDocConf.json phpdoc: .phpdocinstall $(PHPDOC) .phpdocinstall: .support if [ ! -f "`pwd`/support/pear.config" ]; then \ pear config-create "`pwd`/support" "`pwd`/support/pear.config" ; \ pear -c "`pwd`/support/pear.config" channel-discover pear.phpdoc.org ; \ fi pear -c "`pwd`/support/pear.config" install phpdoc/phpDocumentor touch $@ .plantuml_install: .doc_plantuml .support_plantuml wget --no-check-certificate -O support/plantuml/plantuml.jar 'https://downloads.sourceforge.net/project/plantuml/plantuml.jar' 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 $@ .support: mkdir -p support touch $@ .support_plantuml: .support mkdir -p support/plantuml touch $@ .doc_plantuml: mkdir -p doc/plantuml/javascript mkdir -p doc/plantuml/php touch $@ .virtual_env: virtualenv .python_virtualenv . .python_virtualenv/bin/activate ; pip install --upgrade sphinx==1.5.5 touch $@ .PHONY: nightly maintainer-clean snapshot release git-revision t3sphinx build-dist make-dist-dir dist-move-doc dist-copy-extension