-RELEASE=4.0
+include /usr/share/dpkg/default.mk
-VERSION=0.1
PACKAGE=pve-ha-manager
-PKGREL=1
+SIMPACKAGE=pve-ha-simulator
-DESTDIR=
-PREFIX=/usr
-BINDIR=${PREFIX}/bin
-SBINDIR=${PREFIX}/sbin
-MANDIR=${PREFIX}/share/man
-DOCDIR=${PREFIX}/share/doc/${PACKAGE}
-PODDIR=${DOCDIR}/pod
-MAN1DIR=${MANDIR}/man1/
-export PERLDIR=${PREFIX}/share/perl5
+GITVERSION:=$(shell git rev-parse HEAD)
+BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION)
-#ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
-ARCH=all
-GITVERSION:=$(shell cat .git/refs/heads/master)
+DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
+DBG_DEB=$(PACKAGE)-dbgsym_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
-DEB=${PACKAGE}_${VERSION}-${PKGREL}_${ARCH}.deb
+DSC=$(PACKAGE)_$(DEB_VERSION).dsc
+SIMDEB=$(SIMPACKAGE)_$(DEB_VERSION)_all.deb
+SIMDSC=$(SIMPACKAGE)_$(DEB_VERSION).dsc
+all: deb
-all: ${DEB}
+$(BUILDDIR):
+ rm -rf $@ $@.tmp
+ cp -a src/ $@.tmp
+ cp -a debian $@.tmp/
+ echo "git clone git://git.proxmox.com/git/pve-ha-manager.git\\ngit checkout $(GITVERSION)" > $@.tmp/debian/SOURCE
+ mv $@.tmp $@
.PHONY: dinstall
-dinstall: deb
- dpkg -i ${DEB}
+dinstall: $(DEB) $(SIMDEB)
+ dpkg -i $(DEB) $(SIMDEB)
-%.1.gz: %.1.pod
- rm -f $@
- cat $<|pod2man -n $* -s 1 -r ${VERSION} -c "Proxmox Documentation"|gzip -c9 >$@
+.PHONY: deb
+deb: $(DEB) $(SIMDEB)
+$(DEB) $(DBG_DEB): $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
+ lintian $(DEB)
+ lintian $(SIMDEB)
-pve-ha-crm.1.pod: pve-ha-crm
- perl -I. ./pve-ha-crm printmanpod >$@
+.PHONY: dsc
+dsc:
+ $(MAKE) clean
+ $(MAKE) $(DSC)
+ lintian $(DSC)
-pve-ha-lrm.1.pod: pve-ha-lrm
- perl -I. ./pve-ha-lrm printmanpod >$@
+$(DSC): $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
-.PHONY: install
-install: pve-ha-crm pve-ha-lrm pve-ha-crm.1.pod pve-ha-crm.1.gz pve-ha-lrm.1.pod pve-ha-lrm.1.gz
- install -d ${DESTDIR}${SBINDIR}
- install -m 0755 pve-ha-crm ${DESTDIR}${SBINDIR}
- install -m 0755 pve-ha-lrm ${DESTDIR}${SBINDIR}
- make -C PVE install
- install -d ${DESTDIR}/usr/share/man/man1
- install -d ${DESTDIR}${PODDIR}
- install -m 0644 pve-ha-crm.1.gz ${DESTDIR}/usr/share/man/man1/
- install -m 0644 pve-ha-crm.1.pod ${DESTDIR}/${PODDIR}
- install -m 0644 pve-ha-lrm.1.gz ${DESTDIR}/usr/share/man/man1/
- install -m 0644 pve-ha-lrm.1.pod ${DESTDIR}/${PODDIR}
-
-
-.PHONY: deb ${DEB}
-deb ${DEB}:
- rm -rf build
- mkdir build
- make DESTDIR=${CURDIR}/build install
- perl -I. ./pve-ha-crm verifyapi
- perl -I. ./pve-ha-lrm verifyapi
- install -d -m 0755 build/DEBIAN
- sed -e s/@@VERSION@@/${VERSION}/ -e s/@@PKGRELEASE@@/${PKGREL}/ -e s/@@ARCH@@/${ARCH}/ <control.in >build/DEBIAN/control
- install -D -m 0644 copyright build/${DOCDIR}/copyright
- install -m 0644 changelog.Debian build/${DOCDIR}/
- gzip -9 build/${DOCDIR}/changelog.Debian
- echo "git clone git://git.proxmox.com/git/pve-storage.git\\ngit checkout ${GITVERSION}" > build/${DOCDIR}/SOURCE
- dpkg-deb --build build
- mv build.deb ${DEB}
- rm -rf debian
- lintian ${DEB}
-
-
-.PHONY: test
-test:
- make -C test test
+sbuild: $(DSC)
+ sbuild $(DSC)
.PHONY: clean
-clean:
- make -C test clean
- rm -rf build *.deb ${PACKAGE}-*.tar.gz dist *.1.pod *.1.gz
- find . -name '*~' -exec rm {} ';'
+clean:
+ make -C src clean
+ rm -rf $(PACKAGE)-[0-9]*/ *.dsc *.deb $(PACKAGE)*.tar* *.changes *.build *.buildinfo
.PHONY: distclean
distclean: clean
+.PHONY: upload
+upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
+upload: $(DEB) $(SIMDEB)
+ tar cf - $(DEB) $(DBG_DEB) $(SIMDEB)|ssh repoman@repo.proxmox.com -- upload --product pve --dist $(UPLOAD_DIST) --arch $(DEB_HOST_ARCH)