wilde: server/php-kolab/Kolab_Server Makefile,1.6,1.6.2.1

cvs at kolab.org cvs at kolab.org
Tue Oct 13 12:35:36 CEST 2009


Author: wilde

Update of /kolabrepository/server/php-kolab/Kolab_Server
In directory doto:/tmp/cvs-serv9261

Modified Files:
      Tag: kolab_2_2_branch
	Makefile 
Log Message:
Merged improved Makefile from suc branch.


Index: Makefile
===================================================================
RCS file: /kolabrepository/server/php-kolab/Kolab_Server/Makefile,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -d -r1.6 -r1.6.2.1
--- Makefile	24 Feb 2009 11:57:46 -0000	1.6
+++ Makefile	13 Oct 2009 10:35:34 -0000	1.6.2.1
@@ -1,50 +1,111 @@
-PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/")
-VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/")
-RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/")
+# If home is unset this Makefile assumes the Kolab server installation
+# resides in /kolab. If this is not the case this Makefile must be
+# called using
+#
+# HOME="/mykolabroot" make TARGET
+#
+ifeq "x$(HOME)" "x"
+  HOME = /kolab
+endif
 
+# If HOME is set to /root it is likely that somebody is calling this
+# Makefile as root user. In this case this Makefile assumes that the
+# Kolab server installation resides in /kolab.
+#
+# In the (hopefully) unlikely event that somebody really installed the
+# Kolab server in /root this Makefile will fail.
+ifeq "x$(HOME)" "x/root"
+  HOME = /kolab
+endif
+
+# Set the location of the rpm binary
 ifeq "x$(RPM)" "x"
   RPM = $(HOME)/bin/openpkg rpm
 endif
+
+# Set the location for rpm source package installations
 ifeq "x$(KOLABRPMSRC)" "x"
   KOLABRPMSRC = $(HOME)/RPM/SRC
 endif
+
+# Set the location for rpm packages
 ifeq "x$(KOLABRPMPKG)" "x"
   KOLABRPMPKG = $(HOME)/RPM/PKG
 endif
+
+# Set the location for the rpm temporary directory
 ifeq "x$(KOLABRPMTMP)" "x"
   KOLABRPMTMP = $(HOME)/RPM/TMP
 endif
 
+# Determine the suffix for binary packages on this system
 ifeq "x$(PLATTAG)" "x"
 	PLATTAG = $(shell $(RPM) -q --qf="%{ARCH}-%{OS}" openpkg)-$(HOME:/%=%)
 endif
 
-SOURCE_URL=http://pear.horde.org/get
+# Determine the staging area for collecting new source rpms
+ifeq "x$(STAGING)" "x"
+  STAGING = ../../stage
+endif
+
+# Determine the package name from the *.spec file
+PACKAGE = $(shell grep "%define[ ]*V_package" *.spec | sed -e "s/.*V_package \([A-Za-z\-\_]*\).*/\1/")
+
+# Determine the package version from the *.spec file
+VERSION = $(shell grep "%define[ ]*V_version" *.spec | sed -e "s/.*V_version\s*\([0-9.]*\).*/\1/")
+
+# Determine the release number from the *.spec file
+RELEASE = $(shell grep "%define[ ]*V_release" *.spec | sed -e "s/.*V_release\s*\([0-9]*\).*/\1/")
+
+# Determine the download url for the PEAR package from the *.spec file
+SOURCE_URL=$(shell grep "%define[ ]*V_sourceurl" *.spec | sed -e "s/.*V_sourceurl\s*\(.*\)/\1/")
+
+# Get the list of patches if there are any in this directory
+PATCHES = $(shell ls *.patch 2> /dev/null)
+
+# Generate the full package name
 SOURCE_0=$(PACKAGE)-$(VERSION).tgz
 
+# Generate a list of extra files for the package
+EXTRA=ChangeLog $(PATCHES)
+
+
+# Default target to generate the source rpm package
 .PHONY: all
 all: $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm
 
+# Target for placing the source rpm in the staging area
 .PHONY: dist
 dist: all
-	cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm ../../stage/
+	test -d $(STAGING) || mkdir $(STAGING)
+	cp $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm $(STAGING)
 
-.PHONY: clean
-clean:
-	rm -rf /kolab/RPM/TMP/$(PACKAGE)*
-	rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm
-	rm -rf *~
+# Target for installing the binary rpm package in our current Kolab
+# server installation
+.PHONY: install
+install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm
+	$(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm
 
-$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0):
+# Target for retrieving the source package
+$(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0): 
 	test -d $(KOLABRPMSRC)/$(PACKAGE) || mkdir $(KOLABRPMSRC)/$(PACKAGE)
 	cd $(KOLABRPMSRC)/$(PACKAGE) && wget -c "$(SOURCE_URL)/$(SOURCE_0)"
 
-$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: Makefile $(PACKAGE).spec ChangeLog $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0)
-	cp $(PACKAGE).spec $(KOLABRPMSRC)/$(PACKAGE)
+# Target for preparing the source area and building the package
+$(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm: Makefile $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)/$(SOURCE_0)
+	cp $(PACKAGE).spec $(EXTRA) $(KOLABRPMSRC)/$(PACKAGE)
 	cd $(KOLABRPMSRC)/$(PACKAGE) && $(RPM) -ba $(PACKAGE).spec
 
+# Target for fetching the source rpm into the current directory
+$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm
 	cp -p $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm .
 
-.PHONY: install
-install: $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm
-	$(RPM) -Uhv --force $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm
+# Target for cleaning up the files that can be generated with this Makefile
+.PHONY: clean
+clean:
+	rm -rf $(KOLABRPMPKG)/$(PACKAGE)-$(VERSION)-$(RELEASE).$(PLATTAG).rpm
+	rm -rf $(KOLABRPMSRC)/$(PACKAGE)
+	rm -rf $(KOLABRPMTMP)/$(PACKAGE)*
+	rm -rf $(PACKAGE)-$(VERSION)-$(RELEASE).src.rpm
+	rm -rf *~
+





More information about the commits mailing list