1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#
# Makefile to generate DEB, RPM and TGZ for vzdump
#
# possible targets:
#
# all: create DEB, RPM and TGZ packages
# clean: cleanup
# deb: create debian package
# rpm: create rpm package
# srpm: create src.rpm package
# dist: create tgz package
# install: install files
VERSION=1.2
PACKAGE=vzdump
PKGREL=6
#ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
#RPMARCH:=$(shell rpm --eval %_build_arch)
ARCH=all
RPMARCH=noarch
DESTDIR=
PREFIX=/usr
SBINDIR=${PREFIX}/sbin
MANDIR=${PREFIX}/share/man
PERLLIBDIR=${PREFIX}/share/perl5/PVE
DOCDIR=${PREFIX}/share/doc
MAN1DIR=${MANDIR}/man1/
DEB=${PACKAGE}_${VERSION}-${PKGREL}_${ARCH}.deb
RPM=${PACKAGE}-${VERSION}-${PKGREL}.${RPMARCH}.rpm
SRPM=${PACKAGE}-${VERSION}-${PKGREL}.src.rpm
DISTDIR=$(PACKAGE)-$(VERSION)
TGZ=${DISTDIR}.tar.gz
RPMSRCDIR=$(shell rpm --eval %_sourcedir)
RPMDIR=$(shell rpm --eval %_rpmdir)
SRPMDIR=$(shell rpm --eval %_srcrpmdir)
DISTFILES= \
ChangeLog \
TODO \
Makefile \
changelog.Debian \
control.in \
vzdump.spec.in \
hook-script.pl \
copyright \
VZDump.pm \
Plugin.pm \
OpenVZ.pm \
vzrestore \
vzdump
PKGSOURCE= \
vzdump \
vzdump.1.gz \
vzrestore \
vzrestore.1.gz \
VZDump.pm \
Plugin.pm \
OpenVZ.pm \
control
all:
control: control.in
sed -e s/@@ARCH@@/${ARCH}/ -e s/@@VERSION@@/${VERSION}/ -e s/@@PKGRELEASE@@/${PKGREL}/ <$< >$@
vzdump.spec: vzdump.spec.in
sed -e s/@@ARCH@@/${ARCH}/ -e s/@@VERSION@@/${VERSION}/ -e s/@@PKGRELEASE@@/${PKGREL}/ <$< >$@
.PHONY: install
install: ${PKGSOURCE}
install -d ${DESTDIR}${SBINDIR}
install -m 0755 vzdump ${DESTDIR}${SBINDIR}
install -m 0755 vzrestore ${DESTDIR}${SBINDIR}
install -d ${DESTDIR}${MAN1DIR}
install -m 0644 vzdump.1.gz ${DESTDIR}${MAN1DIR}
install -m 0644 vzrestore.1.gz ${DESTDIR}${MAN1DIR}
install -d ${DESTDIR}${PERLLIBDIR}
install -m 0644 VZDump.pm ${DESTDIR}${PERLLIBDIR}
install -d ${DESTDIR}${PERLLIBDIR}/VZDump
install -m 0644 Plugin.pm ${DESTDIR}${PERLLIBDIR}/VZDump
install -m 0644 OpenVZ.pm ${DESTDIR}${PERLLIBDIR}/VZDump
.PHONY: deb
deb ${DEB}: ${PKGSOURCE} ${DISTFILES}
rm -rf debian
mkdir debian
make DESTDIR=debian install
install -d -m 0755 debian/DEBIAN
install -m 0644 control debian/DEBIAN
install -D -m 0644 copyright debian/${DOCDIR}/${PACKAGE}/copyright
install -D -m 0644 hook-script.pl debian/${DOCDIR}/${PACKAGE}/examples/hook-script.pl
install -m 0644 changelog.Debian debian/${DOCDIR}/${PACKAGE}/
install -m 0644 ChangeLog debian/${DOCDIR}/${PACKAGE}/changelog
gzip -9 debian/${DOCDIR}/${PACKAGE}/changelog.Debian
gzip -9 debian/${DOCDIR}/${PACKAGE}/changelog
dpkg-deb --build debian
mv debian.deb ${DEB}
rm -rf debian
lintian ${DEB}
%.1.gz: %
rm -f $*.1.gz
pod2man -n $* -s 1 -r ${VERSION} -c "Proxmox Documentation" <$* |gzip -c9 >$*.1.gz
.PHONY: rpm
rpm ${RPM}: ${TGZ} ${PACKAGE}.spec
cp ${TGZ} ${RPMSRCDIR}
rpmbuild -bb --nodeps --clean --rmsource ${PACKAGE}.spec
mv ${RPMDIR}/${RPMARCH}/${RPM} ${RPM}
.PHONY: srpm
srpm ${SRPM}: ${TGZ} ${PACKAGE}.spec
cp ${TGZ} ${RPMSRCDIR}
rpmbuild -bs --nodeps --rmsource ${PACKAGE}.spec
mv ${SRPMDIR}/${SRPM} ${SRPM}
.PHONY: dist
dist: ${TGZ}
${TGZ}: ${DISTFILES}
make clean
rm -rf ${TGZ} ${DISTDIR}
mkdir ${DISTDIR}
cp ${DISTFILES} ${DISTDIR}
tar czvf ${TGZ} ${DISTDIR}
rm -rf ${DISTDIR}
.PHONY: clean
clean:
rm -rf *~ *.deb *.tar.gz *.rpm *.1.gz vzdump.spec control ${DISTDIR}
|