-list:
- @echo ======================================================================================
- @echo '= Available target are listed below ='
- @echo ======================================================================================
- @cat Makefile | grep '^.*:.*#$$' | sed 's/^\(.*:\).*#\(.*\)#$$/\1 \2/'
-
-all: allgf allcvs allsvn # Build gforge and svn and cvs plugins #
-clean: cleangf cleancvs cleansvn # Clean gforge and svn and cvs plugins #
-allor: orig origcvs origsvn # Build gforge and svn and cvs orig tarballs #
-cleanor: # Clean all gforge orig tarballs #
- rm -f gforge*orig.tar.gz
-allgf: orig cleangf build # Build gforge #
-allcvs: origcvs cleancvs buildcvs # Build cvs plugins #
-allsvn: origsvn cleansvn buildsvn # Build svn plugins #
-allup: upload uploadcvs uploadsvn # Upload all using dput and optional where=<server> #
-
-dchcmd=dch -i
-dchcmd=dch
-dchcmd=""
-debuildopts=-us -uc
-gfversion=$(shell head -1 gforge/debian/changelog | sed 's/.*(\(.*\)-.*).*/\1/')
-cvsversion=$(shell head -1 gforge-plugin-scmcvs/debian/changelog | sed 's/.*(\(.*\)-.*).*/\1/')
-svnversion=$(shell head -1 gforge-plugin-scmsvn/debian/changelog | sed 's/.*(\(.*\)-.*).*/\1/')
-where=g-rouille
-where=mercure
-where=local
-documentor_path=/tmp
-documentor_vers=phpdocumentor-1.3.0rc3
-
-#
-# GFORGE
-#
-cleangf: # Clean debian files of gforge build #
- @rm -f gforge*.deb sourceforge*.deb gforge*.changes gforge*.upload gforge*.build gforge*.dsc gforge*[^g].tar.gz gforge*.diff.gz gforge*.asc
- @echo cleangf Done
-build: # Build debian gforge packages #
- cd gforge ; debclean; $(dchcmd) ;find . -type f | grep -v '/CVS/' | grep -v rpm-specific | grep -v contrib | grep -v docs/phpdoc/docs | cpio -pdumvB ../gforge-$(gfversion)
- cd gforge-$(gfversion); debuild $(debuildopts); fakeroot debian/rules clean
- rm -rf gforge-$(gfversion)
-upload: # Upload gforge packages on where=<server> using dput #
- dput $(where) gforge*.changes
-
-orig: gforge_$(gfversion).orig.tar.gz # Make gforge orig file #
-gforge_$(gfversion).orig.tar.gz:
- cd gforge ; debclean; find . -type f | grep -v '/CVS/' | grep -v rpm-specific | grep -v contrib | grep -v docs/phpdoc/docs | cpio -pdumvB ../gforge-$(gfversion)
- tar cvzf gforge_$(gfversion).orig.tar.gz gforge-$(gfversion)
- rm -rf gforge-$(gfversion)
#
-# CVS PLUGIN
+# This Makefile may be used to create packages for distributions
#
-cleancvs: # Clean debian files of gforge-plugin-scmcvs build #
- @rm -f gforge-plugin-scmcvs*deb gforge-plugin-scmcvs*upload gforge-plugin-scmcvs*build gforge-plugin-scmcvs*dsc gforge-plugin-scmcvs*[^g].tar.gz gforge-plugin-scmcvs*asc gforge-plugin-scmcvs*changes
- @echo cleancvs Done
-buildcvs: # Build debian gforge-plugin-scmcvs package #
- cd gforge-plugin-scmcvs ; debclean;$(dchcmd); find . -type f | grep -v '/CVS/' | grep -v rpm-specific | grep -v contrib | cpio -pdumvB ../gforge-plugin-scmcvs-$(cvsversion)
- cd gforge-plugin-scmcvs-$(cvsversion); debuild $(debuildopts); fakeroot debian/rules clean
- rm -rf gforge-plugin-scmcvs-$(cvsversion)
-uploadcvs: # Upload gforge-plugin-scmcvs on where=<server> using dput #
- dput $(where) gforge-plugin-scmcvs*changes
-origcvs: gforge-plugin-scmcvs_$(cvsversion).orig.tar.gz # Make gforge-plugin-scmcvs orig file #
-gforge-plugin-scmcvs_$(cvsversion).orig.tar.gz:
- cd gforge-plugin-scmcvs ; debclean; find . -type f | grep -v '/CVS/' | grep -v rpm-specific | grep -v contrib | cpio -pdumvB ../gforge-plugin-scmcvs-$(cvsversion)
- tar cvzf gforge-plugin-scmcvs_$(cvsversion).orig.tar.gz gforge-plugin-scmcvs-$(cvsversion)
- rm -rf gforge-plugin-scmcvs-$(cvsversion)
-#
-# SVN PLUGIN
-#
-cleansvn: # Clean debian files of gforge-plugin-scmcvs build #
- @rm -f gforge-plugin-scmsvn*deb gforge-plugin-scmsvn*upload gforge-plugin-scmsvn*build gforge-plugin-scmsvn*dsc gforge-plugin-scmsvn*[^g].tar.gz gforge-plugin-scmsvn*asc gforge-plugin-scmsvn*changes
- @echo cleansvn Done
-buildsvn: # Build debian gforge-plugin-scmsvn package #
- cd gforge-plugin-scmsvn ; debclean; $(dchcmd); find . -type f | grep -v '/CVS/' | grep -v rpm-specific | grep -v contrib | cpio -pdumvB ../gforge-plugin-scmsvn-$(svnversion)
- cd gforge-plugin-scmsvn-$(svnversion); debuild $(debuildopts); fakeroot debian/rules clean
- rm -rf gforge-plugin-scmsvn-$(svnversion)
-uploadsvn: # Upload gforge-plugin-scmsvn on where=<server> using dput #
- dput $(where) gforge-plugin-scmsvn*changes
-origsvn: gforge-plugin-scmsvn_$(svnversion).orig.tar.gz # Make gforge-plugin-scmsvn orig file #
-gforge-plugin-scmsvn_$(svnversion).orig.tar.gz:
- cd gforge-plugin-scmsvn ; debclean; find . -type f | grep -v '/CVS/' | grep -v rpm-specific | grep -v contrib | cpio -pdumvB ../gforge-plugin-scmsvn-$(svnversion)
- tar cvzf gforge-plugin-scmsvn_$(svnversion).orig.tar.gz gforge-plugin-scmsvn-$(svnversion)
- rm -rf gforge-plugin-scmsvn-$(svnversion)
+DISTDEBIAN=$(shell [ -f /etc/debian_version ] && echo debian)
+DISTREDHAT=$(shell grep -qi 'Red Hat' /etc/issue && echo rh)
+DISTSUSE=$(shell grep -qi 'SuSE' /etc/issue && echo rh)
+DIST=$(DISTDEBIAN)$(DISTREDHAT)$(DISTSUSE)
-#
-# PHPDOCUMENTOR
-#
-phpdoc: phpdocumentor_get phpdocumentor_unpack $(documentor_path)/$(documentor_vers)/patched gforge/docs/phpdoc/docs # Get phpdocumentor, install phpdocumentor, build gforge phpdoc #
-
-phpdocumentor_get:
- [ ! -f $(documentor_path)/$(documentor_vers).tar.gz ] && cd $(documentor_path) && wget http://heanet.dl.sourceforge.net/sourceforge/phpdocu/$(documentor_vers).tar.gz || true
-phpdocumentor_unpack:
- [ ! -d $(documentor_path)/$(documentor_vers) ] && cd $(documentor_path) && tar xvzf $(documentor_vers).tar.gz || true
-$(documentor_path)/$(documentor_vers)/patched:
- cd $(documentor_path)/ && patch -p2 < $(CURDIR)/gforge/docs/phpdoc/manageclass.patch && touch $(documentor_path)/$(documentor_vers)/patched
-gforge/docs/phpdoc/docs:
- cd gforge/docs/phpdoc/ && ./makedoc.sh
+ARCHIVE=$(CURDIR)/depot
+#ifeq ($(BUILDDIR),)
+# BUILDDIR=builddir
+#endif
+BUILDRESULT=$(CURDIR)/result
-#
-# Developper personal use
-#
-chris:
- make allgf dchcmd="dch -i" debuildopts=""
- make upload
-chrisc:
- make allcvs dchcmd="dch -i" debuildopts=""
- make uploadcvs
-chriss:
- make allsvn dchcmd="dch -i" debuildopts=""
- make uploadsvn
+DOXYGEN=doxygen
+
+VER=$(shell LC_ALL=C sed -n '/>software_version/s/^.*'\''\([0-9.]*\)'\''.*$$/\1/p' src/common/include/FusionForge.class.php)
+in_svn_repo:= $(wildcard .svn/)
+ifeq ($(strip $(in_svn_repo)),)
+ ID=unknown
+ URL=unknown
+ TAG=unknown
+else
+ ID=$(shell LANG=C svnversion)
+ URL=$(shell LANG=C svn info | grep 'Root:' | awk '{print $$3}')
+ TAG=$(shell LANG=C svn log $(URL) -r $(ID) -l 1 2>/dev/null | awk '{ if ($$1=="Tag-Release") print $$1}')
+endif
+ifeq ($(TAG),)
+ VERSION_ID=$(VER)-$(ID)
+ VERSION=fusionforge-$(VER)-$(ID)
+else
+ VERSION_ID=$(VER)
+ VERSION=fusionforge-$(VER)
+endif
+
+switch:
+ @echo "=========================================================================="
+ @echo "We have detected that your are running a '$(DIST)' distribution."
+ @echo "Use one of the following targets with "
+ @echo "$$ make -f Makefile.$(DIST) <target>"
+ @echo "=========================================================================="
+ @$(MAKE) -f Makefile.$(DIST)
+
+check:
+ ## To run test in verbose mode :
+ #cd tests ; phpunit --verbose unit; phpunit --verbose code;
+ cd tests ; php AllTests.php | perl -p -e '$$e=1 if /FAILURE/ ; END { exit 1 if $$e }'
+
+checkfull:
+ ## To run test in verbose mode :
+ #cd tests ; phpunit --verbose unit; phpunit --verbose code; phpunit --verbose build
+ cd tests ; php AllFullTests.php
+
+checkdebtools:
+ sudo apt-get install php5-cli phpunit php-htmlpurifier pcregrep moreutils createrepo xalan #ubuntu-keyring
+
+buildtar: $(BUILDRESULT)
+ rm -fr /tmp/$(VERSION)
+ cd src; find . -type f -or -type l | grep -v '/.svn/' | grep -v '^./debian' | grep -v '^./deb-specific' | grep -v '^./rpm-specific' | grep -v '^./contrib' | grep -v '^./fusionforge.spec' | cpio -pdumB --quiet /tmp/$(VERSION)
+ cd /tmp/$(VERSION); utils/manage-translations.sh build
+ cd /tmp/; tar jcf $(BUILDRESULT)/$(VERSION).tar.bz2 $(VERSION)
+ rm -fr /tmp/$(VERSION)
+
+$(BUILDRESULT):
+ mkdir $(BUILDRESULT)
+
+build-unit-tests:
+ mkdir -p $(BUILDDIR)/reports/coverage
+ cd tests; phpunit --log-junit $(BUILDDIR)/reports/phpunit.xml --coverage-clover $(BUILDDIR)/reports/coverage/clover.xml --coverage-html $(BUILDDIR)/reports/coverage/ AllTests.php
+ cp $(BUILDDIR)/reports/phpunit.xml $(BUILDDIR)/reports/phpunit.xml.org; xalan -in $(BUILDDIR)/reports/phpunit.xml.org -xsl fix_phpunit.xslt -out $(BUILDDIR)/reports/phpunit.xml
+
+build-doc:
+ $(DOXYGEN) src/docs/fusionforge.doxygen
+ $(DOXYGEN) src/plugins/wiki/www/doc/phpwiki.doxygen
+
+build-full-tests:
+ mkdir -p $(BUILDDIR)/build/packages $(BUILDDIR)/reports/coverage
+ find $(BUILDDIR)/build/packages -type f -exec rm -f {} \;
+ -phpcs --tab-width=4 --standard=PEAR --report=checkstyle src/common > $(BUILDDIR)/reports/checkstyle.xml
+ cd tests; phpunit --log-junit $(BUILDDIR)/reports/phpunit.xml --coverage-clover $(BUILDDIR)/reports/coverage/clover.xml --coverage-html $(BUILDDIR)/reports/coverage/ AllFullTests.php
+ cp $(BUILDDIR)/reports/phpunit.xml $(BUILDDIR)/reports/phpunit.xml.org; xalan -in $(BUILDDIR)/reports/phpunit.xml.org -xsl fix_phpunit.xslt -out $(BUILDDIR)/reports/phpunit.xml
+ cd tests; phpunit --log-junit $(BUILDDIR)/reports/phpunit-selenium.xml TarCentos52Tests.php
+ cp $(BUILDDIR)/reports/phpunit-selenium.xml $(BUILDDIR)/reports/phpunit-selenium.xml.org; xalan -in $(BUILDDIR)/reports/phpunit-selenium.xml.org -xsl fix_phpunit.xslt -out $(BUILDDIR)/reports/phpunit-selenium.xml
+
+
+src/plugins/mediawiki/mediawiki-skin/FusionForge.php:
+ $(MAKE) -C src/plugins/mediawiki/mediawiki-skin
+
+%: src/plugins/mediawiki/mediawiki-skin/FusionForge.php
+ $(MAKE) -f Makefile.$(DIST) $@
+
+wslink: /etc/apache2/mods-enabled/userdir.load
+ [ -d ~/public_html ] || mkdir ~/public_html
+ [ -L ~/public_html/ws ] || ln -s $(CURDIR) ~/public_html/ws
+
+/etc/apache2/mods-enabled/userdir.load:
+ sudo a2enmod userdir