]> oss.titaniummirror.com Git - cp210x.git/blobdiff - Makefile
First pass at building a dkms package.
[cp210x.git] / Makefile
old mode 100755 (executable)
new mode 100644 (file)
index 6488d65..5ffcc6c
--- a/Makefile
+++ b/Makefile
@@ -1,18 +1,93 @@
-#!/usr/bin/make -f
+# Makefile for newer cp2101 driver, we call cp210x
+# Essentially, it makes a debian source package which
+# then can be built by pbuilder, etc.
 
-STRIP  = strip --strip-unneeded --remove-section=.comment --remove-section=.note
+# Change or override these values as necessary for each package release
+
+PKGVER  = 0.11
+DEBDIST = hardy
+DEBRELEASE = 0tmi
+
+
+# No need to change anything below this line
+
+REPOID := $(shell svn info 2>/dev/null | grep "Revision: " | sed -e s'/^[^0-9]*\([0-9]*\).*$$/svn:revision \1/')
+ifeq (,$(REPOID))
+  REPOID := $(shell git svn info 2>/dev/null | grep "Revision: " | sed -e s'/^[^0-9]*\([0-9]*\).*$$/svn:revision \1/')
+ifeq (,$(REPOID))
+    REPOID := $(shell git log -n1 2>/dev/null | head -1 | sed -e s'/^/git:/')
+endif
+endif
+ifeq (,$(REPOID))
+  $(error You much check the code out via svn, git-svn, or git)
+endif
+
+BUILD := build
+DEBVER := $(PKGVER)-$(DEBRELEASE)
+RFC822DATE := $(shell date --rfc-822)
+ROOTNAME := cp210x
+PACKAGE := $(ROOTNAME)-module-dkms
+TARFILE := $(PACKAGE)_$(DEBVER).orig.tar.gz
+DEBSRC := $(PACKAGE)-$(PKGVER)
+ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEBFILE := $(BUILD)/$(PACKAGE)_$(DEBVER)_$(ARCH).deb
+DEBSRCFILE := $(BUILD)/$(PACKAGE)_$(DEBVER).dsc
+
+
+source: $(DEBSRCFILE)
+$(DEBSRCFILE): $(BUILD)/debian-stamp
+       cd $(BUILD) && dpkg-source -b $(DEBSRC)
+       touch $@
+
+
+binary: $(DEBFILE)
+$(DEBFILE): $(BUILD)/debian-stamp
+       cd $(BUILD)/$(DEBSRC) && dpkg-buildpackage -sa -us -uc 
+
+
+$(BUILD)/src-stamp: $(wildcard src/*) dkms.conf
+       mkdir -p $(BUILD)
+       rm -rf $(BUILD)/$(DEBSRC)
+       cp -a src $(BUILD)/$(DEBSRC)
+       cp -a dkms.conf $(BUILD)/$(DEBSRC)
+       perl -i -pe 's/xxDEBVERxx/$(DEBVER)/g' $(BUILD)/$(DEBSRC)/dkms.conf
+       find $(BUILD)/$(DEBSRC) -name .svn -type d -exec rm -rf "{}" ";" 2>/dev/null || exit 0
+       rm -rf $(BUILD)/$(DEBSRC)/.git || exit 0
+       tar -C $(BUILD) -czf $(BUILD)/$(TARFILE) $(DEBSRC)
+       touch $@
+
+
+configure: $(BUILD)/debian-stamp
+$(BUILD)/debian-stamp: $(BUILD)/src-stamp $(wildcard debian.in/*)
+       mkdir -p $(BUILD)/$(DEBSRC)/debian
+       rsync --quiet -avz --exclude=.svn/ --exclude=.git/ debian.in/ $(BUILD)/$(DEBSRC)/debian/
+       perl -i -pe 's/xxPACKAGExx/$(PACKAGE)/g' $(BUILD)/$(DEBSRC)/debian/*
+       perl -i -pe 's/xxROOTNAMExx/$(ROOTNAME)/g' $(BUILD)/$(DEBSRC)/debian/*
+       perl -i -pe 's/xxPKGVERxx/$(PKGVER)/g' $(BUILD)/$(DEBSRC)/debian/*
+       perl -i -pe 's/xxDEBVERxx/$(DEBVER)/g' $(BUILD)/$(DEBSRC)/debian/*
+       perl -i -pe 's/xxDEBDISTxx/$(DEBDIST)/g' $(BUILD)/$(DEBSRC)/debian/*
+       perl -i -pe 's/xxRFC822DATExx/$(RFC822DATE)/g' $(BUILD)/$(DEBSRC)/debian/*
+       perl -i -pe 's/xxREPOIDxx/$(REPOID)/g' $(BUILD)/$(DEBSRC)/debian/*
+       touch $@
 
-all:
-       -rm -rf builddir
-       cp -a src builddir
-       cd builddir && ./configure -kver $(KVER)
-       test -f builddir/Makefile.go
-       $(MAKE) -C builddir -f Makefile.go
-       cp builddir/cp2101.ko cp210x.ko
-       $(STRIP) cp210x.ko
 
 clean:
-       -rm -rf builddir cp210x.ko
+       rm -rf $(BUILD)
+
+
+debug:
+       @echo "BUILD = $(BUILD)"
+       @echo "PKGVER = $(PKGVER)"
+       @echo "REPOID = $(REPOID)"
+       @echo "DEBRELEASE = $(DEBRELEASE)"
+       @echo "DEBVER = $(DEBVER)"
+       @echo "RFC822DATE = $(RFC822DATE)"
+       @echo "PACKAGE = $(PACKAGE)"
+       @echo "TARFILE = $(TARFILE)"
+       @echo "DEBSRC = $(DEBSRC)"
+       @echo "ARCH = $(ARCH)"
+       @echo "DEBFILE = $(BUILD)/$(PACKAGE)_$(DEBVER)_$(ARCH).deb"
+       @echo "DEBSRCFILE = $(BUILD)/$(PACKAGE)_$(DEBVER).dsc"
 
 
-.PHONY: all clean
+.PHONY: clean binary source configure