-PACKAGE=proxmox-widget-toolkit
-PKGVER=1.0
-PKGREL=27
-
-BUILDDIR ?= ${PACKAGE}-${PKGVER}
-GITVERSION:=$(shell git rev-parse HEAD)
-
-DEB=${PACKAGE}_${PKGVER}-${PKGREL}_all.deb
-DSC=${PACKAGE}_${PKGVER}-${PKGREL}.dsc
-
-DESTDIR=
+include /usr/share/dpkg/pkg-info.mk
-DOCDIR=${DESTDIR}/usr/share/doc/${PACKAGE}
+PACKAGE=proxmox-widget-toolkit
-WWWBASEDIR=${DESTDIR}/usr/share/javascript/${PACKAGE}
+DEB=$(PACKAGE)_$(DEB_VERSION)_all.deb
+DEV_DEB=$(PACKAGE)-dev_$(DEB_VERSION)_all.deb
-JSSRC= \
- Utils.js \
- Toolkit.js \
- mixin/CBind.js \
- data/reader/JsonObject.js \
- data/ProxmoxProxy.js \
- data/UpdateStore.js \
- data/DiffStore.js \
- data/ObjectStore.js \
- data/RRDStore.js \
- data/TimezoneStore.js \
- form/IntegerField.js \
- form/TextField.js \
- form/DateTimeField.js \
- form/Checkbox.js \
- form/KVComboBox.js \
- form/LanguageSelector.js \
- form/ComboGrid.js \
- form/RRDTypeSelector.js \
- form/BondModeSelector.js \
- button/Button.js \
- button/HelpButton.js \
- grid/ObjectGrid.js \
- grid/PendingObjectGrid.js \
- panel/InputPanel.js \
- panel/LogView.js \
- panel/RRDChart.js \
- panel/GaugeWidget.js \
- window/Edit.js \
- window/PasswordEdit.js \
- window/TaskViewer.js \
- node/APT.js \
- node/NetworkEdit.js \
- node/NetworkView.js \
- node/DNSEdit.js \
- node/HostsView.js \
- node/DNSView.js \
- node/Tasks.js \
- node/ServiceView.js \
- node/TimeEdit.js \
- node/TimeView.js
+DEBS=$(DEB) $(DEV_DEB)
+DSC=$(PACKAGE)_$(DEB_VERSION).dsc
-all:
+BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
-${BUILDDIR}:
- rm -rf ${BUILDDIR}
- rsync -a * ${BUILDDIR}
- echo "git clone git://git.proxmox.com/git/proxmox-widget-toolkit.git\\ngit checkout ${GITVERSION}" > ${BUILDDIR}/debian/SOURCE
+$(BUILDDIR): GITVERSION:=$(shell git rev-parse HEAD)
+$(BUILDDIR):
+ rm -rf $(BUILDDIR) $(BUILDDIR).tmp
+ cp -a src/ $(BUILDDIR).tmp
+ cp -a debian $(BUILDDIR).tmp/
+ echo "git clone git://git.proxmox.com/git/proxmox-widget-toolkit.git\\ngit checkout $(GITVERSION)" > $(BUILDDIR).tmp/debian/SOURCE
+ mv $(BUILDDIR).tmp/ $(BUILDDIR)
.PHONY: deb
-deb: ${DEB}
-${DEB}: ${BUILDDIR}
- cd ${BUILDDIR}; dpkg-buildpackage -b -us -uc
- lintian ${DEB}
+deb: $(DEBS)
+$(DEBS): $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
+ lintian $(DEBS)
.PHONY: dsc
-dsc: ${DSC}
-${DSC}: ${BUILDDIR}
- cd ${BUILDDIR}; dpkg-buildpackage -S -us -uc -d -nc
- lintian ${DSC}
+dsc: $(DSC)
+ $(MAKE) clean
+ $(MAKE) $(DSC)
+ lintian $(DSC)
-.PHONY: lint
-lint: ${JSSRC}
- jslint ${JSSRC}
+$(DSC): $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
-proxmoxlib.js: ${JSSRC}
- # add the version as comment in the file
- echo "// ${PKGVER}-${PKGREL}" > $@.tmp
- cat ${JSSRC} >> $@.tmp
- mv $@.tmp $@
+sbuild: $(DSC)
+ sbuild $(DSC)
-install: proxmoxlib.js
- install -d -m 755 ${WWWBASEDIR}
- install -m 0644 proxmoxlib.js ${WWWBASEDIR}
+.PHONY: lint
+lint: $(JSSRC)
+ $(MAKE) -C src lint
.PHONY: upload
-upload: ${DEB}
- tar cf - ${DEB} | ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg --dist stretch
+upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
+upload: $(DEBS)
+ tar cf - $(DEB) | ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST)
+ tar cf - $(DEV_DEB) | ssh -X repoman@repo.proxmox.com -- upload --product devel --dist $(UPLOAD_DIST)
distclean: clean
-
clean:
- rm -rf ${BUILDDIR} *.tar.gz *.dsc *.deb *.changes *.buildinfo proxmoxlib.js
- find . -name '*~' -exec rm {} ';'
+ $(MAKE) -C src clean
+ rm -rf $(PACKAGE)-[0-9]*/ *.tar.* *.dsc *.deb *.changes *.buildinfo *.build
.PHONY: dinstall
-dinstall: ${DEB}
- dpkg -i ${DEB}
+dinstall: $(DEBS)
+ dpkg -i $(DEBS)