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