]> git.proxmox.com Git - pmg-api.git/blame - Makefile
add some basic ruledb object
[pmg-api.git] / Makefile
CommitLineData
b68dfb61
DM
1PACKAGE=proxmox-mailgateway-api
2PKGVER=1.0
3PKGREL=1
4
5DEB=${PACKAGE}_${PKGVER}-${PKGREL}_all.deb
6
7DESTDIR=
8
9PERL5DIR=${DESTDIR}/usr/share/perl5
10DOCDIR=${DESTDIR}/usr/share/doc/${PACKAGE}
8415b622 11BASHCOMPLDIR=${DESTDIR}/usr/share/bash-completion/completions/
b68dfb61 12
40f2bc5e
DM
13REPOID=`./repoid.pl .git`
14
8a1ac886 15SERVICES = pmgdaemon pmgproxy
82782d70 16CLITOOLS = pmgdb
8b91b776
DM
17
18CLI_CLASSES = $(addprefix, 'PMG/API2/', $(addsuffix '.pm', ${CLITOOLS}))
19CLI_BINARIES = $(addprefix, 'bin/', ${CLITOOLS})
8a1ac886 20
9beff9f6
DM
21LIBSOURCES = \
22 PMG/pmgcfg.pm \
fab39ce9 23 PMG/NoVncIndex.pm \
9beff9f6
DM
24 PMG/Cluster.pm \
25 PMG/HTTPServer.pm \
26 PMG/Ticket.pm \
27 PMG/AccessControl.pm \
a355f100 28 PMG/DBTools.pm \
0a580593
DM
29 PMG/RuleDB/Group.pm \
30 PMG/RuleDB/Rule.pm \
31 PMG/RuleDB/Object.pm \
32 PMG/RuleDB/Quarantine.pm \
33 PMG/RuleDB/WhoRegex.pm \
34 PMG/RuleDB/ReceiverRegex.pm \
35 PMG/RuleDB/EMail.pm \
36 PMG/RuleDB/Receiver.pm \
37 PMG/RuleDB/Domain.pm \
38 PMG/RuleDB/ReceiverDomain.pm \
39 PMG/RuleDB/TimeFrame.pm \
40 PMG/RuleDB.pm \
82782d70 41 PMG/CLI/pmgdb.pm \
8b91b776
DM
42 ${CLI_CLASSES} \
43 PMG/API2/Network.pm \
163fb58f 44 PMG/API2/Services.pm \
fa04fcb4 45 PMG/API2/Tasks.pm \
9beff9f6
DM
46 PMG/API2/Nodes.pm \
47 PMG/API2/AccessControl.pm \
48 PMG/API2.pm
49
8b91b776 50all: ${LIBSOURCES} ${CLI_BINARIES}
b68dfb61
DM
51
52.PHONY: deb
8b91b776 53deb ${DEB}: ${LIBSOURCES} ${CLI_BINARIES}
b68dfb61
DM
54 rm -rf build
55 rsync -a * build
56 cd build; dpkg-buildpackage -b -us -uc
57 lintian ${DEB}
58
40f2bc5e
DM
59
60PMG/pmgcfg.pm: PMG/pmgcfg.pm.in
61 sed -e s/@VERSION@/${PKGVER}/ -e s/@PACKAGERELEASE@/${PKGREL}/ -e s/@PACKAGE@/${PACKAGE}/ -e s/@REPOID@/${REPOID}/ $< >$@.tmp
62 mv $@.tmp $@
63
8b91b776
DM
64%.bash-completion:
65 perl -I. -T -e "use PMG::CLI::$*; PMG::CLI::$*->generate_bash_completions();" >$@.tmp
66 mv $@.tmp $@
67
8415b622 68%.service-bash-completion:
8b91b776 69 perl -I. -T -e "use PMG::Service::$*; PMG::Service::$*->generate_bash_completions();" >$@.tmp
8415b622
DM
70 mv $@.tmp $@
71
8b91b776 72install: ${BTDATA} $(addsuffix .pm, $(addprefix PMG/Service/, ${SERVICES})) $(addsuffix .service-bash-completion, ${SERVICES}) ${LIBSOURCES} ${CLI_BINARIES} $(addsuffix .bash-completion, ${CLITOOLS})
8a1ac886 73 for i in ${SERVICES}; do perl -I. -T -e "use PMG::Service::$$i; PMG::Service::$$i->verify_api();"; done
8b91b776 74 for i in ${CLITOOLS}; do perl -I. -T -e "use PMG::CLI::$$i; PMG::CLI::$$i->verify_api();"; done
9beff9f6 75 install -d -m 0755 ${DESTDIR}/usr/bin
0854fb22 76 install -d -m 0700 -o www-data -g www-data ${DESTDIR}/var/log/pmgproxy
cb159468
DM
77 install -d -m 0755 ${DOCDIR}
78 # TODO: is there a better location ?
79 install -m 0644 favicon.ico ${DOCDIR}
9beff9f6
DM
80 for i in ${LIBSOURCES}; do install -D -m 0644 $$i ${PERL5DIR}/$$i; done
81 for i in ${SERVICES}; do install -D -m 0644 PMG/Service/$$i.pm ${PERL5DIR}/PMG/Service/$$i.pm; done
8a1ac886 82 for i in ${SERVICES}; do install -m 0755 bin/$$i ${DESTDIR}/usr/bin; done
8415b622 83 for i in ${SERVICES}; do install -m 0644 -D $$i.service-bash-completion ${BASHCOMPLDIR}/$$i; done
8b91b776
DM
84 for i in ${CLITOOLS}; do install -D -m 0644 PMG/CLI/$$i.pm ${PERL5DIR}/PMG/CLI/$$i.pm; done
85 for i in ${CLITOOLS}; do install -D -m 0755 bin/$$i ${DESTDIR}/usr/bin/$$i; done
86 for i in ${CLITOOLS}; do install -D -m 0644 $$i.bash-completion ${BASHCOMPLDIR}/$$i; done
b68dfb61
DM
87
88.PHONY: upload
89upload: ${DEB}
eae6f864 90 ./repoid.pl .git/ check
b68dfb61
DM
91 # fixme tar cf - ${DEB} | ssh repoman@repo.proxmox.com upload
92
93distclean: clean
94
95clean:
8b91b776 96 rm -rf ./build *.deb *.changes *.buildinfo *.bash-completion *.service-bash-completion
9d1d3ef6 97 if test -d .git; then rm -f PMG/pmgcfg.pm; fi
b68dfb61
DM
98 find . -name '*~' -exec rm {} ';'
99
100.PHONY: dinstall
101dinstall: ${DEB}
102 dpkg -i ${DEB}