]> git.proxmox.com Git - pve-cluster.git/blame - data/PVE/Makefile
1891 Add zsh command completion for pvecm
[pve-cluster.git] / data / PVE / Makefile
CommitLineData
2fc19fdd
TL
1DESTDIR=
2PERL5DIR=${DESTDIR}/usr/share/perl5
3PVEDIR=${PERL5DIR}/PVE
4MAN=${DESTDIR}/usr/share/man
5BASHCOMPLETION=${DESTDIR}/usr/share/bash-completion/completions
e51c24f6 6ZSHCOMPLETION=${DESTDIR}/usr/share/zsh/vendor-completions
2fc19fdd
TL
7
8PERL_VENDORARCH=$(shell perl -MConfig -e 'print $$Config{vendorarch};')
9PVE_VENDORARCH=${DESTDIR}/${PERL_VENDORARCH}/auto/PVE/IPCC
10
19a3a9b1
TL
11PERL_DOC_INC_DIRS:=..
12
2fc19fdd
TL
13SUBDIRS=Cluster CLI API2
14SOURCES=IPCC.pm Cluster.pm Corosync.pm
15
16all:
17
18.PHONY: install
e51c24f6 19install: pvecm ${SOURCES} IPCC.so pvecm.1 pvecm.bash-completion pvecm.zsh-completion datacenter.cfg.5
2fc19fdd
TL
20 install -D -m 0755 pvecm ${DESTDIR}/usr/bin/pvecm
21 install -d ${PVEDIR}
22 for f in ${SOURCES}; do install -m 0664 $$f ${PVEDIR}/$$f; done
23 install -D IPCC.so ${PVE_VENDORARCH}/IPCC.so
24 install -D pvecm.1 ${MAN}/man1/pvecm.1
25 install -D datacenter.cfg.5 ${MAN}/man5/datacenter.cfg.5
26 install -m 0644 -D pvecm.bash-completion ${BASHCOMPLETION}/pvecm
e51c24f6 27 install -m 0644 -D pvecm.zsh-completion ${ZSHCOMPLETION}/_pvecm
2fc19fdd
TL
28 for d in ${SUBDIRS}; do $(MAKE) -C $$d install; done
29
30%.bash-completion:
52a03ee6 31 perl -I.. -T -e "use PVE::CLI::$*; PVE::CLI::$*->generate_bash_completions();" >$@.tmp
2fc19fdd
TL
32 mv $@.tmp $@
33
e51c24f6
CE
34%.zsh-completion:
35 perl -I.. -T -e "use PVE::CLI::$*; PVE::CLI::$*->generate_zsh_completions();" >$@.tmp
36 mv $@.tmp $@
37
66e8826a
TL
38Cluster/IPCConst.pm:
39 $(MAKE) -C Cluster IPCConst.pm
40
41check: IPCC.so Cluster/IPCConst.pm
52a03ee6 42 perl -I.. -T -e "use PVE::CLI::pvecm; PVE::CLI::pvecm->verify_api();"
2fc19fdd
TL
43
44CC=gcc
45CFLAGS += -fPIC -Wl,-z,relro -Wall -Werror -Wno-strict-aliasing -g -O2 -shared
46CFLAGS += $(shell perl -MExtUtils::Embed -e perl_inc)
47LDFLAGS = $(shell pkg-config --libs libqb)
48
49.c.o:
50 $(CC) $(CFLAGS) -c -o $@ $<
51
52IPCC.c: IPCC.xs ppport.h
53 xsubpp -noversioncheck IPCC.xs > IPCC.xsc
54 mv IPCC.xsc IPCC.c
55
56IPCC.so: IPCC.o
57 $(CC) ${CFLAGS} ${LDFLAGS} -shared -o $@ $<
58
2fc19fdd
TL
59export NOVIEW=1
60-include /usr/share/pve-doc-generator/pve-doc-generator.mk
61
62.PHONY: clean
63clean:
64 $(MAKE) cleanup-docgen
e51c24f6 65 rm -f IPCC.so IPCC.o IPCC.c pvecm.bash-completion pvecm.zsh-completion
2fc19fdd 66 for d in ${SUBDIRS}; do $(MAKE) -C $$d clean; done