]> git.proxmox.com Git - librados2-perl.git/blobdiff - Makefile
bump version to 1.4.1
[librados2-perl.git] / Makefile
index 2869be2598a6d0181fffb79679d37604ee016551..a78f74e52c1f931e627ec4418b57cb376e0807ba 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,80 +1,80 @@
-RELEASE=4.0
+include /usr/share/dpkg/pkg-info.mk
+include /usr/share/dpkg/architecture.mk
 
-VERSION=1.0
 PACKAGE=librados2-perl
-PKGREL=2
+
+BUILDSRC := $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
 
 DESTDIR=
 PREFIX=/usr
-BINDIR=${PREFIX}/bin
-LIBDIR=${PREFIX}/lib
-SBINDIR=${PREFIX}/sbin
-MANDIR=${PREFIX}/share/man
-DOCDIR=${PREFIX}/share/doc/${PACKAGE}
-MAN1DIR=${MANDIR}/man1/
-PERLDIR=${PREFIX}/share/perl5
-PERLSODIR=${LIBDIR}/x86_64-linux-gnu/perl/5.20.1/auto/
+BINDIR=$(PREFIX)/bin
+LIBDIR=$(PREFIX)/lib
+SBINDIR=$(PREFIX)/sbin
+MANDIR=$(PREFIX)/share/man
+DOCDIR=$(PREFIX)/share/doc/$(PACKAGE)
+MAN1DIR=$(MANDIR)/man1/
+PERLDIR=$(PREFIX)/share/perl5
+
+PERL_ARCHLIB := `perl -MConfig -e 'print $$Config{archlib};'`
+PERL_INSTALLVENDORARCH := `perl -MConfig -e 'print $$Config{installvendorarch};'`
+PERL_APIVER := `perl -MConfig -e 'print $$Config{debian_abi}//$$Config{version};'`
+
+# overwrite as not all Debian default flags work for the XS code (e.g., -Wformat-security)
+CFLAGS = -shared -fPIC -g -O2 -Werror -Wtype-limits -Wall -Wl,-z,relro
+CFLAGS += -D_FORTIFY_SOURCE=2 -I$(PERL_ARCHLIB)/CORE -DXS_VERSION=\"1.0\"
+CFLAGS += -fstack-protector-strong -Wformat
+
+PERLSODIR=$(PERL_INSTALLVENDORARCH)/auto
 
-ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
-GITVERSION:=$(shell cat .git/refs/heads/master)
+GITVERSION:=$(shell git rev-parse HEAD)
 
-DEB=${PACKAGE}_${VERSION}-${PKGREL}_${ARCH}.deb
+DEB=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
+DSC=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
 
-all: ${DEB}
+all:
 
 RADOS.c: RADOS.xs typemap
        xsubpp RADOS.xs -typemap typemap > RADOS.xsc
        mv RADOS.xsc RADOS.c
 
-CFLAGS= -shared -fPIC -O2 -Wall -Wl,-z,relro -I/usr/lib/x86_64-linux-gnu/perl/5.20.1/CORE -DXS_VERSION=\"1.0\"
-CFLAGS= -shared -fPIC -O2 -Werror -Wtype-limits -Wall -Wl,-z,relro \
-       -D_FORTIFY_SOURCE=2 -I/usr/lib/x86_64-linux-gnu/perl/5.20.1/CORE -DXS_VERSION=\"1.0\"
-
 RADOS.so: RADOS.c
-       gcc ${CFLAGS} -lrados -o RADOS.so RADOS.c
-
+       $(CC) $(CFLAGS) -o RADOS.so RADOS.c -lrados
 
 .PHONY: dinstall
 dinstall: deb
-       dpkg -i ${DEB}
+       dpkg -i $(DEB)
 
 .PHONY: install
 install: PVE/RADOS.pm RADOS.so
-       install -D -m 0644 PVE/RADOS.pm ${DESTDIR}${PERLDIR}/PVE/RADOS.pm
-       install -D -m 0644 -s RADOS.so ${DESTDIR}${PERLSODIR}/PVE/RADOS/RADOS.so
-
-.PHONY: deb ${DEB}
-deb ${DEB}:
-       rm -rf debian
-       mkdir debian
-       make DESTDIR=${CURDIR}/debian install
-       install -d -m 0755 debian/DEBIAN
-       sed -e s/@@VERSION@@/${VERSION}/ -e s/@@PKGRELEASE@@/${PKGREL}/ -e s/@@ARCH@@/${ARCH}/ <control.in >debian/DEBIAN/control
-       install -D -m 0644 copyright debian/${DOCDIR}/copyright
-       install -m 0644 changelog.Debian debian/${DOCDIR}/
-       gzip -9 debian/${DOCDIR}/changelog.Debian
-       echo "git clone git://git.proxmox.com/git/librados2-perl.git\\ngit checkout ${GITVERSION}" > debian/${DOCDIR}/SOURCE
-       dpkg-deb --build debian 
-       mv debian.deb ${DEB}
-       rm -rf debian
-       lintian ${DEB}
+       install -D -m 0644 PVE/RADOS.pm $(DESTDIR)$(PERLDIR)/PVE/RADOS.pm
+       install -D -m 0644 -s RADOS.so $(DESTDIR)$(PERLSODIR)/PVE/RADOS/RADOS.so
+
+.PHONY: $(BUILDSRC)
+$(BUILDSRC):
+       rm -rf $(BUILDSRC)
+       rsync -a * $(BUILDSRC)
+       sed -e "s|@PERLAPI@|perlapi-$(PERL_APIVER)|g" debian/control.in >$(BUILDSRC)/debian/control
+       echo "git clone git://git.proxmox.com/git/librados2-perl.git\\ngit checkout $(GITVERSION)" > $(BUILDSRC)/debian/SOURCE
+
+.PHONY: deb
+deb: $(DEB)
+$(DEB): $(BUILDSRC)
+       cd $(BUILDSRC); dpkg-buildpackage -b -us -uc
+       lintian $(DEB)
+
+.PHONY: dsc
+dsc: $(DSC)
+$(DSC): $(BUILDSRC)
+       cd $(BUILDSRC); dpkg-buildpackage -S -us -uc -d -nc
+       lintian $(DSC)
 
 .PHONY: clean
-clean:         
-       rm -rf debian *.deb ${PACKAGE}-*.tar.gz dist *.1.pod *.1.gz RADOS.so RADOS.c
-       find . -name '*~' -exec rm {} ';'
+clean:
+       rm -rf $(PACKAGE)-[0-9]*/ *.deb *.changes *.buildinfo *.build *.tar.?z *.dsc
 
 .PHONY: distclean
 distclean: clean
 
-
 .PHONY: upload
-upload: ${DEB}
-       umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw 
-       mkdir -p /pve/${RELEASE}/extra
-       rm -f /pve/${RELEASE}/extra/${PACKAGE}_*.deb
-       rm -f /pve/${RELEASE}/extra/Packages*
-       cp ${DEB} /pve/${RELEASE}/extra
-       cd /pve/${RELEASE}/extra; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz
-       umount /pve/${RELEASE}; mount /pve/${RELEASE} -o ro
-
+upload: $(DEB)
+       tar cf - $(DEB) | ssh repoman@repo.proxmox.com -- upload --product pve --dist bookworm --arch $(DEB_BUILD_ARCH)