]> git.proxmox.com Git - pve-ha-manager.git/blobdiff - src/Makefile
1891 Add zsh command completion for ha-manager CLI tools
[pve-ha-manager.git] / src / Makefile
index 1f3ffc5600353f869e4b23fa7a55da437ee94f9c..2ff12de0d02eec4b8d07978a347550514bbbb814 100644 (file)
@@ -7,89 +7,84 @@ SBINDIR=${PREFIX}/sbin
 MANDIR=${PREFIX}/share/man
 DOCDIR=${PREFIX}/share/doc/${PACKAGE}
 SIMDOCDIR=${PREFIX}/share/doc/${SIMPACKAGE}
-PODDIR=${DOCDIR}/pod
 MAN1DIR=${MANDIR}/man1/
+MAN8DIR=${MANDIR}/man8/
+BASHCOMPLDIR=${PREFIX}/share/bash-completion/completions/
+ZSHCOMPLDIR=${PREFIX}/share/zsh/vendor-completions/
 export PERLDIR=${PREFIX}/share/perl5
 
+# this requires package pve-doc-generator
+export NOVIEW=1
+include /usr/share/pve-doc-generator/pve-doc-generator.mk
+
 all: watchdog-mux
 
-%.1.gz: %.1.pod
-       rm -f $@
-       cat $<|pod2man -n $* -s 1 -r ${VERSION} -c "Proxmox Documentation"|gzip -c9 >$@
+pve-ha-crm.bash-completion:
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_crm; PVE::Service::pve_ha_crm->generate_bash_completions();" >$@.tmp
+       mv $@.tmp $@
+
+pve-ha-lrm.bash-completion:
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_lrm; PVE::Service::pve_ha_lrm->generate_bash_completions();" >$@.tmp
+       mv $@.tmp $@
+
+ha-manager.bash-completion:
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::CLI::ha_manager; PVE::CLI::ha_manager->generate_bash_completions();" >$@.tmp
+       mv $@.tmp $@
 
-pve-ha-crm.1.pod: pve-ha-crm
-       perl -I. ./pve-ha-crm printmanpod >$@
+pve-ha-crm.zsh-completion:
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_crm; PVE::Service::pve_ha_crm->generate_zsh_completions();" >$@.tmp
+       mv $@.tmp $@
 
-pve-ha-lrm.1.pod: pve-ha-lrm
-       perl -I. ./pve-ha-lrm printmanpod >$@
+pve-ha-lrm.zsh-completion:
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_lrm; PVE::Service::pve_ha_lrm->generate_zsh_completions();" >$@.tmp
+       mv $@.tmp $@
+
+ha-manager.zsh-completion:
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::CLI::ha_manager; PVE::CLI::ha_manager->generate_zsh_completions();" >$@.tmp
+       mv $@.tmp $@
 
 watchdog-mux: watchdog-mux.c
-       gcc watchdog-mux.c -o watchdog-mux -Wall $$(pkg-config --libs --cflags libsystemd-daemon)
+       gcc watchdog-mux.c -o watchdog-mux -Wall -Wl,-z,relro
 
 .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: watchdog-mux pve-ha-crm pve-ha-lrm ha-manager.1 pve-ha-crm.8 pve-ha-lrm.8 ha-manager.bash-completion pve-ha-lrm.bash-completion \
+           pve-ha-crm.bash-completion ha-manager.zsh-completion pve-ha-lrm.zsh-completion pve-ha-crm.zsh-completion pve-ha-simulator
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_crm; PVE::Service::pve_ha_crm->verify_api();"
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::Service::pve_ha_lrm; PVE::Service::pve_ha_lrm->verify_api();"
+       PVE_GENERATING_DOCS=1 perl -I. -T -e "use PVE::CLI::ha_manager; PVE::CLI::ha_manager->verify_api();"
        install -d ${DESTDIR}${SBINDIR}
        install -m 0755 pve-ha-crm ${DESTDIR}${SBINDIR}
        install -m 0755 pve-ha-lrm ${DESTDIR}${SBINDIR}
+       install -m 0755 ha-manager ${DESTDIR}${SBINDIR}
+       install -m 0755 watchdog-mux ${DESTDIR}${SBINDIR}
+       install -d ${DESTDIR}${BINDIR}
+       install -m 0755 pve-ha-simulator ${DESTDIR}${BINDIR}
+       install -m 0644 -D pve-ha-crm.bash-completion ${DESTDIR}${BASHCOMPLDIR}/pve-ha-crm
+       install -m 0644 -D pve-ha-lrm.bash-completion ${DESTDIR}${BASHCOMPLDIR}/pve-ha-lrm
+       install -m 0644 -D ha-manager.bash-completion ${DESTDIR}${BASHCOMPLDIR}/ha-manager
+       install -m 0644 -D pve-ha-crm.zsh-completion ${DESTDIR}${ZSHCOMPLDIR}/_pve-ha-crm
+       install -m 0644 -D pve-ha-lrm.zsh-completion ${DESTDIR}${ZSHCOMPLDIR}/_pve-ha-lrm
+       install -m 0644 -D ha-manager.zsh-completion ${DESTDIR}${ZSHCOMPLDIR}/_ha-manager
        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: installsim
-installsim: pve-ha-simulator
-       install -d ${DESTDIR}${SBINDIR}
-       install -m 0755 pve-ha-simulator ${DESTDIR}${SBINDIR}
        make -C PVE PERLDIR=${PREFIX}/share/${SIMPACKAGE} installsim
-
-.PHONY: simdeb ${SIMDEB}
-simdeb ${SIMDEB}:
-       rm -rf build
-       mkdir build
-       make DESTDIR=${CURDIR}/build PERLDIR=${PREFIX}/share/${SIMPACKAGE} installsim
-       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}/ <simcontrol.in >build/DEBIAN/control
-       install -D -m 0644 copyright build/${SIMDOCDIR}/copyright
-       install -m 0644 changelog.Debian build/${SIMDOCDIR}/
-       gzip -9 build/${SIMDOCDIR}/changelog.Debian
-       echo "git clone git://git.proxmox.com/git/pve-storage.git\\ngit checkout ${GITVERSION}" > build/${SIMDOCDIR}/SOURCE
-       dpkg-deb --build build
-       mv build.deb ${SIMDEB}
-       rm -rf debian
-       lintian ${SIMDEB}
-
-.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}
-
+       install -d ${DESTDIR}/${MAN8DIR}
+       install -m 0644 pve-ha-crm.8 ${DESTDIR}/${MAN8DIR}
+       gzip -9 ${DESTDIR}/${MAN8DIR}/pve-ha-crm.8
+       install -m 0644 pve-ha-lrm.8 ${DESTDIR}/${MAN8DIR}
+       gzip -9 ${DESTDIR}/${MAN8DIR}/pve-ha-lrm.8
+       install -d ${DESTDIR}/${MAN1DIR}
+       install -m 0644 ha-manager.1 ${DESTDIR}/${MAN1DIR}
+       gzip -9 ${DESTDIR}/${MAN1DIR}/ha-manager.1
 
 .PHONY: test
 test: 
-#      make -C test test
+       make -C test test
 
 .PHONY: clean
-clean:         
+clean:
+       make cleanup-docgen
        make -C test clean
-       rm -rf watchdog-mux *.1.pod *.1.gz
+       rm -rf watchdog-mux *.1.pod *.1.gz *.bash-completion *.zsh-completion *.tmp
        find . -name '*~' -exec rm {} ';'
 
 .PHONY: distclean