[DRBD-cvs] drbd by lars; forward-ported new drbd.spec.in concept ...

drbd-user@lists.linbit.com drbd-user@lists.linbit.com
Sat, 3 Apr 2004 13:16:13 +0200 (CEST)


DRBD CVS committal

Author  : lars
Module  : drbd

Dir     : drbd


Modified Files:
      Tag: rel-0_7-branch
	Makefile 
Added Files:
      Tag: rel-0_7-branch
	drbd.spec.in 


Log Message:
forward-ported new drbd.spec.in concept to 0.7
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/Makefile,v
retrieving revision 1.11.2.12
retrieving revision 1.11.2.13
diff -u -3 -r1.11.2.12 -r1.11.2.13
--- Makefile	1 Apr 2004 15:00:44 -0000	1.11.2.12
+++ Makefile	3 Apr 2004 11:16:07 -0000	1.11.2.13
@@ -23,6 +23,9 @@
 ALLSUBDIRS  = user drbd scripts benchmark documentation testing
 REL_VERSION = $(word 3, $(shell grep REL_VERSION drbd/linux/drbd_config.h))
 
+LN_S = ln -s
+RPMBUILD=rpmbuild
+
 all:
 	@ set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i ; done
 	@ echo -e "\n\tBuild successful."
@@ -51,23 +54,21 @@
 
 DIST_VERSION=$(subst -,_,$(REL_VERSION))
 check_changelogs_up2date:
-	@ up2date=true; \
-	if ! grep "^Version: $(DIST_VERSION)" >/dev/null 2>&1 drbd.spec; \
-	then \
-	   echo "You need to update the Version: tag in drbd.spec to $(DIST_VERSION)"; \
-	   up2date=false; fi; \
-	if ! sed -e '0,/^%changelog/d' drbd.spec \
-	   | grep "^- drbd ($(DIST_VERSION)-" >/dev/null 2>&1 ; \
+	@ up2date=true; dver_re=$(DIST_VERSION); dver_re=$${dver_re//./\\.}; \
+	in_changelog=$$(sed -n -e '0,/^%changelog/d' \
+	                     -e '/^- *drbd ('"$$dver_re"'-/p' \
+	                     -e '/^\*.* \['"$$dver_re"'-/p' < drbd.spec.in) ; \
+	if test -z "$$in_changelog" ; \
 	then \
-	   echo "You need to update the %changelog in drbd.spec, $(DIST_VERSION) missing"; \
+	   echo "You need to update the %changelog in drbd.spec.in"; \
 	   up2date=false; fi; \
-	if ! grep "^drbd ($(DIST_VERSION)-" >/dev/null 2>&1 debian/changelog; \
+	if ! grep "^drbd ($$dver_re-" >/dev/null 2>&1 debian/changelog; \
 	then \
-	   echo "You need to update debian/changelog, $(DIST_VERSION) missing"; \
+	   echo "You need to update debian/changelog"; \
 	   up2date=false; fi ; \
-	if ! grep "^drbd_$(DIST_VERSION)-" >/dev/null 2>&1 debian/files; \
+	if ! grep "^drbd_$$dver_re-" >/dev/null 2>&1 debian/files; \
 	then \
-	   echo "You need to update debian/files, $(DIST_VERSION) missing"; \
+	   echo "You need to update debian/files"; \
 	   up2date=false; fi ; \
 	$$up2date
 
@@ -75,7 +76,7 @@
 	cvs status | grep -o "/drbd/drbd/[^,]*" | \
 	sed "s/Attic\///;                  \
 	     s/\/drbd\/drbd/drbd-$(DIST_VERSION)/;" > .filelist
-	find documentation -name "*.[58]" -o -name "*.html" | \
+	find documentation -name "[^.]*.[58]" -o -name "*.html" | \
 	sed "s/^/drbd-$(DIST_VERSION)\//" >> .filelist
 	echo drbd-$(DIST_VERSION)/drbd_config.h >> .filelist
 	echo drbd-$(DIST_VERSION)/.filelist >> .filelist
@@ -95,22 +96,33 @@
 tgz: check_changelogs_up2date doc
 endif
 
-# maybe dist/RPMS/$(ARCH) instead of i386 ?
+KDIR := $(shell echo /lib/modules/`uname -r`/build)
+KVER := $(shell \
+	echo -e "\#include <linux/version.h>\ndrbd_kernel_release UTS_RELEASE" | \
+        gcc -nostdinc -E -P -I$(KDIR)/include - 2>&1 | \
+        sed -ne 's/^drbd_kernel_release "\(.*\)".*/\1/p')
+
+# maybe even dist/RPMS/$(ARCH) ?
 rpm: tgz
 	mkdir -p dist/BUILD \
-	         dist/RPMS/i386 \
+	         dist/RPMS  \
 	         dist/SPECS \
 	         dist/SOURCES \
-	         dist/SRPMS \
 	         dist/TMP \
-	         dist/install
+	         dist/install \
+	         dist/SRPMS
 	[ -h dist/SOURCES/drbd-$(DIST_VERSION).tar.gz ] || \
 	  $(LN_S) $(PWD)/drbd-$(DIST_VERSION).tar.gz \
 	          $(PWD)/dist/SOURCES/drbd-$(DIST_VERSION).tar.gz
-	[ -f dist/SPECS/drbd.spec ] || \
-	  sed -e 's/^\(Packager:\).*/\1 ${USER}@${HOSTNAME}/;' drbd.spec \
-	  > dist/SPECS/drbd.spec
+	if test drbd.spec.in -nt dist/SPECS/drbd.spec ; then \
+	   sed -e "s/^\(Version:\).*/\1 $(DIST_VERSION)/;" \
+	       -e "s/^\(Packager:\).*/\1 $(USER)@$(HOSTNAME)/;" < drbd.spec.in \
+	   > dist/SPECS/drbd.spec ; \
+	fi
 	$(RPMBUILD) -ba \
-	    --define "buildroot $(PWD)/dist/install" \
 	    --define "_topdir $(PWD)/dist" \
+	    --define "buildroot $(PWD)/dist/install" \
+	    --define "kernelversion $(KVER)" \
+	    --define "kdir $(KDIR)" \
 	    $(PWD)/dist/SPECS/drbd.spec
+	@echo "You have now:" ; ls -l dist/*RPMS/*/*.rpm