[apparmor] [patch] fix make rules to not run bzr needlessly

Steve Beattie steve at nxnw.org
Fri Oct 15 22:34:17 BST 2010


This patch fixes the common/Make.rules file to not do bzr versioninfo on
every make invocation; instead it defines a command as a variable that
then is evaluated into shell variables when needed.

=== modified file 'Makefile'
--- Makefile	2010-10-07 22:33:11 +0000
+++ Makefile	2010-10-14 23:38:56 +0000
@@ -23,28 +23,28 @@
 #REPO_URL="bzr+ssh://bazaar.launchpad.net/~sbeattie/+junk/apparmor-dev/"
 
 RELEASE_DIR=apparmor-${VERSION}
-SNAPSHOT_DIR=apparmor-${VERSION}-${REPO_VERSION}
 
 .PHONY: tarball
 tarball: clean
-	make export_dir __EXPORT_DIR=${RELEASE_DIR}
-	make setup __SETUP_DIR=${RELEASE_DIR}
+	REPO_VERSION=`$(value REPO_VERSION_CMD)` ; \
+	make export_dir __EXPORT_DIR=${RELEASE_DIR} __REPO_VERSION=$${REPO_VERSION} ; \
+	make setup __SETUP_DIR=${RELEASE_DIR} ; \
 	tar cvzf ${RELEASE_DIR}.tar.gz ${RELEASE_DIR}
 
 .PHONY: snapshot
 snapshot: clean
-	make export_dir __EXPORT_DIR=${SNAPSHOT_DIR}
-	make setup __SETUP_DIR=${SNAPSHOT_DIR}
-	tar cvzf ${SNAPSHOT_DIR}.tar.gz ${SNAPSHOT_DIR}
+	REPO_VERSION=`$(value REPO_VERSION_CMD)` ; \
+	SNAPSHOT_DIR=apparmor-${VERSION}-$${REPO_VERSION} ;\
+	make export_dir __EXPORT_DIR=$${SNAPSHOT_DIR} __REPO_VERSION=$${REPO_VERSION} ; \
+	make setup __SETUP_DIR=$${SNAPSHOT_DIR} ; \
+	tar cvzf $${SNAPSHOT_DIR}.tar.gz $${SNAPSHOT_DIR} ;
 
-${SNAPSHOT_DIR}:
-	mkdir ${SNAPSHOT_DIR}
 
 .PHONY: export_dir
 export_dir:
 	mkdir $(__EXPORT_DIR)
-	/usr/bin/bzr export -r $(REPO_VERSION) $(__EXPORT_DIR) $(REPO_URL)
-	echo "$(REPO_URL) $(REPO_VERSION)" > $(__EXPORT_DIR)/common/.stamp_rev
+	/usr/bin/bzr export -r $(__REPO_VERSION) $(__EXPORT_DIR) $(REPO_URL)
+	echo "$(REPO_URL) $(__REPO_VERSION)" > $(__EXPORT_DIR)/common/.stamp_rev
 
 .PHONY: clean
 clean:

=== modified file 'common/Make.rules'
--- common/Make.rules	2010-10-07 22:42:36 +0000
+++ common/Make.rules	2010-10-15 21:23:28 +0000
@@ -76,7 +76,7 @@
 	$(shell [ -d ${BUILDDIR}/BUILDROOT ] && echo --define \"buildroot $(BUILDDIR:/=)/BUILDROOT\") \
 	$(shell [ -n "${DISTRO}" ] && echo --define \"distro ${DISTRO}\")
 
-REPO_VERSION=$(shell ([ -x /usr/bin/bzr ] && /usr/bin/bzr version-info . 2> /dev/null || awk '{ print "revno: "$$2 }' common/.stamp_rev) | awk '/^revno:/ { print $$2 }' )
+REPO_VERSION_CMD=([ -x /usr/bin/bzr ] && /usr/bin/bzr version-info . 2> /dev/null || awk '{ print "revno: "$2 }' common/.stamp_rev) | awk '/^revno:/ { print $2 }'
 
 ifdef EXTERNAL_PACKAGE
 RPMARG+=--define "_sourcedir $(shell pwd)"
@@ -86,8 +86,7 @@
 SPECFILE        = $(NAME).spec
 endif
 RELEASE_DIR	= $(NAME)-$(VERSION)
-TARBALL		= $(NAME)-$(VERSION)-${REPO_VERSION}.tar.gz
-TAR		= /bin/tar czvp -h --exclude .svn --exclude .bzr --exclude .bzrignore --exclude ${TARBALL} --exclude ${RELEASE_DIR}/${RELEASE_DIR}  $(shell test -f ${NAME}.exclude && echo "-X ${NAME}.exclude")
+TAR		= /bin/tar czvp -h --exclude .svn --exclude .bzr --exclude .bzrignore --exclude ${RELEASE_DIR}/${RELEASE_DIR} $(shell test -f ${NAME}.exclude && echo "-X ${NAME}.exclude")
 LDCONFIG	= /sbin/ldconfig
 
 RPMSUBDIRS=SOURCES SPECS BUILD BUILDROOT SRPMS RPMS/i386 RPMS/i586 \
@@ -101,21 +100,25 @@
 
 else
 .PHONY: rpm
-rpm: clean $(TARBALL) $(BUILDRPMSUBDIRS)
-	cp $(TARBALL) $(BUILDDIR)/SOURCES/
+rpm: clean $(BUILDRPMSUBDIRS)
+	__REPO_VERSION=`$(value REPO_VERSION_CMD)` ; \
+	__TARBALL=$(NAME)-$(VERSION)-$${__REPO_VERSION}.tar.gz ; \
+	make $${__TARBALL} ; \
+	cp $${__TARBALL} $(BUILDDIR)/SOURCES/
 	cp ${SPECFILE} $(BUILDDIR)/SPECS/
 	rpmbuild -ba ${RPMARG} ${SPECFILE}
 
 .PHONY: ${SPECFILE}
 ${SPECFILE}: ${SPECFILE}.in
+	__REPO_VERSION=`$(value REPO_VERSION_CMD)` ; \
 	sed -e "s/@@immunix_version@@/${VERSION}/g" \
-	    -e "s/@@repo_version@@/${REPO_VERSION}/g" $< > $@
+	    -e "s/@@repo_version@@/$${__REPO_VERSION}/g" $< > $@
 
-${TARBALL}: clean ${SPECFILE}
+%.tar.gz: clean ${SPECFILE}
 	-rm -rf $(RELEASE_DIR)
 	mkdir $(RELEASE_DIR)
-	$(TAR) . | tar xz -C $(RELEASE_DIR)
-	$(TAR) -f $@ $(RELEASE_DIR)
+	$(TAR) --exclude $@ . | tar xz -C $(RELEASE_DIR)
+	$(TAR) --exclude $@ -f $@ $(RELEASE_DIR)
 	rm -rf $(RELEASE_DIR)
 
 ifndef OVERRIDE_TARBALL
@@ -123,15 +126,6 @@
 tarball: clean $(TARBALL)
 endif
 
-.PHONY: dist
-dist: clean $(SPECFILE)
-	-rm -rf $(RELEASE_DIR)
-	svn export -r $(REPO_VERSION) $(REPO_URL) $(RELEASE_DIR)
-	svn export $(COMMON_REPO_URL) $(RELEASE_DIR)/common
-	make -C $(RELEASE_DIR) $(SPECFILE) REPO_VERSION=${REPO_VERSION} COMMONDIR_EXISTS=false
-	$(TAR) -f $(TARBALL) $(RELEASE_DIR)
-	rm -rf $(RELEASE_DIR)
-
 endif
 
 .PHONY: version
@@ -142,7 +136,8 @@
 .PHONY: repo_version
 .SILENT: repo_version
 repo_version:
-	 echo $(REPO_VERSION)
+	 $(value REPO_VERSION_CMD)
+
 
 .PHONY: build_dir 
 build_dir: $(BUILDRPMSUBDIRS)

-- 
Steve Beattie
<sbeattie at ubuntu.com>
http://NxNW.org/~steve/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
Url : https://lists.ubuntu.com/archives/apparmor/attachments/20101015/63ec087b/attachment.pgp 


More information about the AppArmor mailing list