# TODO : document the role of this Makefile
#
-RPM_TMP=~/rpmbuild
-BUILDRESULT=~/fusionforge_repo
+FORGE_HOME=$(CURDIR)
+RPM_TMP=$(FORGE_HOME)/../tmp
+BUILDRESULT=$(FORGE_HOME)/../build/packages
+RPMBUILD=rpmbuild --define='_topdir $(RPM_TMP)' --define='_tmppath %{_topdir}' --define='_sysconfdir /etc' --define='_rpmdir $(BUILDRESULT)'
-HTMLPURIFIER_VERSION=4.2.0
-
-VER=$(shell LANG=C grep '>software_version' src/common/include/FusionForge.class.php | cut -d\' -f2)
+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)
+ifneq ($(strip $(in_svn_repo)),)
+ ID=$(shell LANG=C svnversion|cut -d: -f1)
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}')
+else
+ is_git_repo:= $(wildcard .git/)
+ ifneq ($(strip $(is_git_repo)),)
+ id=$(shell git log --pretty=format:%h | wc -l)
+ hash=$(shell git log -1 --pretty=format:%h)
+ ID=$(id).$(hash)
+ else
+ ID=unknown
+ URL=unknown
+ TAG=unknown
+ endif
endif
ifeq ($(TAG),)
version=$(VER).$(ID)
@echo ======================================================================================
@cat Makefile.rh | grep '^.*:.*#$$' | sed 's/^\(.*:\).*#\(.*\)#$$/\1 \2/'
-all: fusionforge externals dist
-
-externals : htmlpurifier php-jpgraph
-
-rpmprep:
- -rm -Rf $(RPM_TMP)/*
- -rm -Rf ~/.rpmmacros
- sh tools/rpmdev-setuptree
- echo '%_tmppath %{_topdir}/TMP' >> ~/.rpmmacros
- echo '%_buildroot %{_tmppath}/%{name}-root' >> ~/.rpmmacros
- echo '%_sysconfdir /etc' >> ~/.rpmmacros
- mkdir $(RPM_TMP)/TMP
+all: 3rd-party fusionforge dist
+src: 3rd-party dist
dist:
- -mkdir -p $(BUILDRESULT)
- cp $(RPM_TMP)/SRPMS/*.rpm $(BUILDRESULT)
- cp $(RPM_TMP)/RPMS/noarch/*.rpm $(BUILDRESULT)
- createrepo $(BUILDRESULT)
+ createrepo $(BUILDRESULT)/noarch
clean: # Clean files of fusionforge build #
cd $(RPM_TMP)/SOURCES/; rm -rf fusionforge-$(version).tar.bz2 fusionforge-$(version)
-fusionforge: rpmprep # Build rpm fusionforge packages #
+fusionforge: # Build rpm fusionforge packages #
cd src; find . -type f -or -type l | grep -v '/.svn/' | grep -v '/debian/' | cpio -pdumB --quiet $(RPM_TMP)/SOURCES/fusionforge-$(version)
- cd $(RPM_TMP)/SOURCES/fusionforge-$(version)/; utils/manage-translations.sh build
+ cd $(RPM_TMP)/SOURCES/fusionforge-$(version)/; utils/manage-translations.sh build ; utils/manage-apache-config.sh build
rm -f $(RPM_TMP)/SOURCES/fusionforge-$(version)/utils/fusionforge-shell-postgresql.spec
- cd $(RPM_TMP)/SOURCES/; cp fusionforge-$(version)/rpm-specific/patches/* .
cd $(RPM_TMP)/SOURCES/; tar cjf fusionforge-$(version).tar.bz2 fusionforge-$(version)
- sed -e 's/@@VERSION@@/$(version)/g' < src/fusionforge.spec > $(RPM_TMP)/TMP/fusionforge.spec
- rpmbuild -bb $(RPM_TMP)/TMP/fusionforge.spec
+ [ -d $(RPM_TMP)/SPECS ] || mkdir $(RPM_TMP)/SPECS
+ sed -e 's/@@VERSION@@/$(version)/g' < src/fusionforge.spec > $(RPM_TMP)/SPECS/fusionforge.spec
+ $(RPMBUILD) -bb $(RPM_TMP)/SPECS/fusionforge.spec 2>&1| grep -v '/etc/magic'
-#
-# Building RPM for external components
-#
-htmlpurifier: rpmprep depot/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz
- cp depot/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz $(RPM_TMP)/SOURCES/
- rpmbuild --quiet --clean -ba 3rd-party/htmlpurifier/htmlpurifier.spec
+testdepends:
+ @echo "TODO: Makefile.rh $@"
-php-jpgraph: rpmprep
- cp 3rd-party/php-jpgraph/libphp-jpgraph_1.5.2.orig.tar.gz $(RPM_TMP)/SOURCES/jpgraph-1.5.2.tar.gz
- zcat 3rd-party/php-jpgraph/libphp-jpgraph_1.5.2-12.diff.gz > $(RPM_TMP)/SOURCES/libphp-jpgraph_1.5.2-12.diff
- cp 3rd-party/php-jpgraph/*.patch $(RPM_TMP)/SOURCES/
- rpmbuild --quiet --clean -ba 3rd-party/php-jpgraph/php-jpgraph.spec
+3rd-party:
+ $(MAKE) -C 3rd-party -f Makefile.rh BUILDRESULT=$(BUILDRESULT) all
-depot/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz: rpmprep
- mkdir -p depot
- cd depot; wget -q -N http://htmlpurifier.org/releases/htmlpurifier-$(HTMLPURIFIER_VERSION).tar.gz
+.PHONY : 3rd-party