]> xenbits.xensource.com Git - people/dstodden/blktap-dkms.git/commitdiff
blktap-dkms: Fixup.
authorDaniel Stodden <daniel.stodden@citrix.com>
Wed, 13 Jul 2011 23:11:20 +0000 (16:11 -0700)
committerDaniel Stodden <daniel.stodden@citrix.com>
Wed, 13 Jul 2011 23:13:58 +0000 (16:13 -0700)
Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
Makefile

index 38ebe00d9b23ca4d80c480656b36e33545a75af8..a61ff3954684bf268776ce768ab83341c6fe0067 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,19 +3,20 @@
 #
 
 PATH           := $(CURDIR)/bin:$(PATH)
-KERN_REPO      := git://xenbits.xensource.com/people/dstodden/linux.git
+KERN_REPO       = git://xenbits.xensource.com/people/dstodden/linux.git
 GIT            := git
 BRANCH_PREFIX  := xenbits/blktap/next-
 
+export KERN_REPO
 export PATH
 export GIT
 
 -include rev.mk
 
-PKG_NAME    = blktap
-PKG_VERSION = $(shell echo $(REV:v%=%) | tr - +)
-SRCDIR      = src
-DEB         = $(PKG_NAME)-dkms_$(PKG_VERSION)_all.deb
+PKG_NAME       = blktap
+PKG_VERSION    = $(shell echo $(REV:v%=%) | tr - +)
+SRCDIR         = src
+DEB            = $(PKG_NAME)-dkms_$(PKG_VERSION)_all.deb
 
 BRANCH_SOURCES =               \
        drivers/block/blktap    \
@@ -27,7 +28,6 @@ DKMS_VERSION  = $(PKG_VERSION)
 DKMS_SRCDIR    = /usr/src/$(PKG_NAME)-$(DKMS_VERSION)
 DKMS_DSCDIR    = /var/lib/dkms/$(PKG_NAME)/$(DKMS_VERSION)/dsc
 DKMS_DEBDIR    = /var/lib/dkms/$(PKG_NAME)/$(DKMS_VERSION)/deb
-DKMS_TPLDIR    = $(DKMS_SRCDIR)/$(PKG_NAME)-dkms-mkdeb
 DKMS_DEB       = $(DKMS_DEBDIR)/$(DEB)
 
 DKMS_FRAGS =                   \
@@ -38,51 +38,49 @@ DKMS_FRAGS =                        \
 BACKPORTDIR = $(SRCDIR)/patches/backports
 EXTRASDIR   = $(SRCDIR)/patches/extras
 
-.PHONY: checkout       \
-       backports       \
-       dkms            \
-       extras          \
-       source          \
-       install
+all: dkms-deb
+
+.PHONY: clean          \
+       mrproper        \
+       dkms-deb        \
+       dkms-clean
 
 .DELETE_ON_ERROR:              \
        rev.mk                  \
        kernelbranches.out
 
-all: .stamp-source
-
-source: .stamp-checkout .stamp-backports .stamp-extras \
-       $(SRCDIR)/dkms.conf $(SRCDIR)/Makefile
+$(SRCDIR): stamp-checkout stamp-backports stamp-extras \
+          $(SRCDIR)/dkms.conf $(SRCDIR)/Makefile
 
 rev.mk: kernelbranches.out
-       > $@
+       rm -f $@
        (echo -n "KVER = "; head -n1 | cut -d: -f2;) < $< >> $@
        (echo -n "REV  = "; head -n1 | cut -d: -f3;) < $< >> $@
 
 kernelbranches.out:
        kernelbranches $(KERN_REPO) $(BRANCH_PREFIX) > $@
 
-nexti = read i 2>/dev/null < $(1) || i=0; echo $$i; echo $$((i+1)) > $(1)
+nexti = flock $(1) -c 'read i 2>/dev/null < $(1) || i=0; echo $$i; echo $$((i+1)) > $(1)'
 
-.stamp-checkout:
-       $(GIT) archive --remote=$(KERN_REPO) --format=tar       \
+stamp-checkout:
+       $(GIT) archive --remote=$(KERN_REPO) --format=tar       \
                --prefix=$(SRCDIR)/ $(REV) $(BRANCH_SOURCES) |  \
                tar xf -
        touch $@
 
-.stamp-backports:
+stamp-backports:
        rm -rf dkms.backports.conf $(BACKPORTDIR)
        mkdir -p $(BACKPORTDIR)
        cd $(BACKPORTDIR); \
                backports $(KERN_REPO) $(BRANCH_PREFIX) $(BRANCH_SOURCES) | \
                        while read file pattern; do \
-                               n=$$($(call nexti,patchno)); \
+                               n=$$($(call nexti,$(CURDIR)/patchno)); \
                                echo "PATCH[$$n]='backports/$$file'"; \
                                echo "PATCH_MATCH[$$n]='$$pattern'"; \
                        done >> $(CURDIR)/dkms.backports.conf;
        touch $@
 
-.stamp-extras:
+stamp-extras:
        rm -rf dkms.extras.conf $(EXTRASDIR)
        mkdir -p $(EXTRASDIR)
        find patches/extras -name \*.diff | \
@@ -91,7 +89,7 @@ nexti = read i 2>/dev/null < $(1) || i=0; echo $$i; echo $$((i+1)) > $(1)
                n=$$($(call nexti,patchno)); \
                echo "PATCH[$$n]=extras/$$(basename $$patch)"; \
        done >> dkms.extras.conf
-       touch .stamp-$@
+       touch $@
 
 $(SRCDIR)/Makefile:
        > $@
@@ -99,52 +97,50 @@ $(SRCDIR)/Makefile:
        echo 'obj-$$(CONFIG_BLK_DEV_TAP) := drivers/block/blktap/' >> $@
        echo 'KBUILD_CPPFLAGS += -I$$(src)/include' >> $@
 
-dkms.head.conf: dkms.head.conf.in .stamp-checkout
+dkms.head.conf: dkms.head.conf.in stamp-checkout
        sed -e's/@PKG_NAME@/$(PKG_NAME)/'       \
            -e's/@PKG_VERSION@/$(PKG_VERSION)/' \
        < $< > $@
 
-$(SRCDIR)/dkms.conf: .stamp-backports .stamp-extras $(DKMS_FRAGS)
+$(SRCDIR)/dkms.conf: stamp-backports stamp-extras $(DKMS_FRAGS)
        cat $(DKMS_FRAGS) > $@
 
-install: .stamp-source sudo-dkms-install
-
-sudo-%:
-       $(SUDO) $(MAKE) $*
-
-dkms-install:
-       rm -rf $(DKMS_SRCDIR)
-       ln -s $(CURDIR)/$(SRCDIR) $(DKMS_SRCDIR)
-       $(DKMS) add
-       touch .stamp-$@
-
-dkms-build:
-       $(DKMS) build
-       touch .stamp-$@
+$(DKMS_SRCDIR): $(SRCDIR)
+       $(SUDO) cp -a $(CURDIR)/$(SRCDIR) $@
 
-dkms-deb:
-       $(DKMS) mkdeb --source-only
-       touch .stamp-$@
+stamp-dkms-install: $(DKMS_SRCDIR)
+       -$(SUDO) $(DKMS) remove --all
+       $(SUDO) $(DKMS) add
+       touch $@
 
-$(DKMS_TPLDIR):
-       mkdir -p $(DKMS_TPLDIR)
-       cp -r template/debian $(DKMS_TPLDIR)/
+stamp-dkms-build: stamp-dkms-install
+       $(SUDO) $(DKMS) build
+       touch $@
 
-dkms-template: $(DKMS_TPLDIR)
+stamp-dkms-deb: stamp-dkms-install
+       $(SUDO) $(DKMS) mkdeb --source-only
+       touch $@
 
 dkms-clean:
-       [ -z "$$($(DKMS) status)" ] || $(DKMS) remove --all
-       rm -rf $(DKMS_SRCDIR)
-       rm -f .stamp-dkms-*
+       -$(SUDO) $(DKMS) remove --all
+       $(SUDO) rm -rf $(DKMS_SRCDIR)
+       rm -f stamp-dkms-*
 
-$(DKMS_DEB): sudo-dkms-deb
+$(DKMS_DEB): stamp-dkms-deb
 
-$(DEB):        $(DKMS_DEB)
-       cp $(DKMS_DEB) $(DEB)
+dkms-deb: $(DEB)
 
-deb: $(DEB)
+$(DEB):        $(DKMS_DEB)
+       cp -a $< $@
 
-clean: sudo-dkms-clean
-       rm -rf src
-       rm -f .stamp-checkout .stamp-backports .stamp-extras patchno
+clean: dkms-clean
+       rm -rf src/
+       rm -f patchno
+       rm -f stamp-checkout stamp-backports stamp-extras
        rm -f $(DKMS_FRAGS)
+       rm -f $(DEB)
+
+distclean: clean
+       rm -f rev.mk kernelbranches.out
+       rm -f *.deb
+       rm -f *~