[Ovirt-devel] [PATCH] ovirt.mk: factor

Jim Meyering jim at meyering.net
Fri Sep 5 07:11:46 UTC 2008


Here's a patch to factor out some duplication.

>From eb98bd5c75a4cbb7469b6e377df8dfcb0bc2034e Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Fri, 5 Sep 2008 08:48:54 +0200
Subject: [PATCH] ovirt.mk: factor

(for_each_subdir): Define.
(clean, distclean, bumpgit, bumprelease, bumpversion): Use it.
(status): Use cd-in-a-subshell, not pushd+popd.
---
 ovirt.mk |   54 ++++++++++++++++++------------------------------------
 1 files changed, 18 insertions(+), 36 deletions(-)

diff --git a/ovirt.mk b/ovirt.mk
index eba36d6..e61f83b 100644
--- a/ovirt.mk
+++ b/ovirt.mk
@@ -10,59 +10,43 @@ SUBDIRS ?= release server node node-image appliance docs

 export OVIRT_CACHE_DIR ?= $(HOME)/ovirt-cache

+define for_each_subdir
+	for dir in $(SUBDIRS); do \
+		if test -d $$dir ; then \
+			$(MAKE) -C $$dir $@ || exit 1 ; \
+		fi ; \
+	done
+endef
+
 all: dev-build

 update: $(SUBDIRS)

 $(SUBDIRS):
-	if ! test -d $@; then \
-		git clone $(OVIRT_GIT_SERVER)/ovirt-$@ $@ ; \
-	fi ; \
-	cd $@ ; \
-	if ! test "$(OVIRT_BRANCH)" = "master" ; then \
-		git config remote.origin.fetch +$(OVIRT_BRANCH):$(OVIRT_BRANCH) ; \
-	fi ; \
-	git pull -v && git checkout $(OVIRT_BRANCH) ; \
+	test -d $@ && : || git clone $(OVIRT_GIT_SERVER)/ovirt-$@ $@
+	cd $@ && test "$(OVIRT_BRANCH)" = "master" && \
+	  git config remote.origin.fetch +$(OVIRT_BRANCH):$(OVIRT_BRANCH)
+	git pull -v && git checkout $(OVIRT_BRANCH)

 clean:
-	for dir in $(SUBDIRS); do \
-		if test -d $$dir ; then \
-			$(MAKE) -C $$dir $@ || exit 1 ; \
-		fi ; \
-	done
+	$(for_each_subdir)

 distclean:
-	for dir in $(SUBDIRS); do \
-		if test -d $$dir ; then \
-			$(MAKE) -C $$dir $@ || exit 1 ; \
-		fi ; \
-	done
+	$(for_each_subdir)

 bumpgit:
-	for dir in $(SUBDIRS); do \
-		if test -d $$dir ; then \
-			$(MAKE) -C $$dir $@ || exit 1 ; \
-		fi ; \
-	done
+	$(for_each_subdir)

 bumprelease:
-	for dir in $(SUBDIRS); do \
-		if test -d $$dir ; then \
-			$(MAKE) -C $$dir $@ || exit 1 ; \
-		fi ; \
-	done
+	$(for_each_subdir)

 bumpversion:
-	for dir in $(SUBDIRS); do \
-		if test -d $$dir ; then \
-			$(MAKE) -C $$dir $@ || exit 1 ; \
-		fi ; \
-	done
+	$(for_each_subdir)

 status:
 	for dir in $(SUBDIRS); do \
 		if test -d $$dir ; then \
-			pushd $$dir ; git $@ ; popd > /dev/null ; \
+			(cd $$dir && git $@) ; \
 		fi ; \
 	done

@@ -85,5 +69,3 @@ ver-build: update bumpversion build

 .PHONY: all build clean distclean publish $(SUBDIRS) update status \
 	bumpgit bumprelease bumpversion dev-build rel-build ver-build
-
-
--
1.6.0.1.216.g1b23a




More information about the ovirt-devel mailing list