]> git.proxmox.com Git - pmg-api.git/blame - Makefile
Makefile: install templates
[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
07cb898d
DM
21TEMPLATES = \
22 init.pre.in \
23 local.cf.in \
24 v310.pre.in \
25 v320.pre.in \
26 razor-agent.conf.in \
27 postgresql.conf.in \
28 pg_hba.conf.in
29
30TEMPLATES_FILES = $(addprefix, 'templates/', ${TEMPLATES})
31
9beff9f6
DM
32LIBSOURCES = \
33 PMG/pmgcfg.pm \
758c7b6b 34 PMG/Utils.pm \
e7c865af 35 PMG/ModGroup.pm \
758c7b6b 36 PMG/SMTPPrinter.pm \
fab39ce9 37 PMG/NoVncIndex.pm \
0bf65425 38 PMG/Config.pm \
9beff9f6
DM
39 PMG/Cluster.pm \
40 PMG/HTTPServer.pm \
41 PMG/Ticket.pm \
42 PMG/AccessControl.pm \
6b5e9594 43 PMG/AtomicFile.pm \
a43bcf61 44 PMG/MailQueue.pm \
14726412 45 PMG/SMTP.pm \
91a5af02 46 PMG/Unpack.pm \
c881fe35 47 PMG/RuleCache.pm \
5414dee4 48 PMG/Statistic.pm \
0bf65425 49 PMG/LDAPSet.pm \
cad3d400 50 PMG/LDAPCache.pm \
a355f100 51 PMG/DBTools.pm \
0a580593
DM
52 PMG/RuleDB/Group.pm \
53 PMG/RuleDB/Rule.pm \
54 PMG/RuleDB/Object.pm \
55 PMG/RuleDB/Quarantine.pm \
56 PMG/RuleDB/WhoRegex.pm \
f4fe6fc4
DM
57 PMG/RuleDB/IPAddress.pm \
58 PMG/RuleDB/IPNet.pm \
e7c865af 59 PMG/RuleDB/ModField.pm \
f4fe6fc4 60 PMG/RuleDB/MatchFilename.pm \
0a580593
DM
61 PMG/RuleDB/ReceiverRegex.pm \
62 PMG/RuleDB/EMail.pm \
63 PMG/RuleDB/Receiver.pm \
64 PMG/RuleDB/Domain.pm \
65 PMG/RuleDB/ReceiverDomain.pm \
66 PMG/RuleDB/TimeFrame.pm \
a7865a2b 67 PMG/RuleDB/MatchField.pm \
11b7d5dc 68 PMG/RuleDB/ContentTypeFilter.pm \
c4741113 69 PMG/RuleDB/ArchiveFilter.pm \
758c7b6b 70 PMG/RuleDB/Spam.pm \
a29b9649 71 PMG/RuleDB/Virus.pm \
f4fe6fc4 72 PMG/RuleDB/ReportSpam.pm \
758c7b6b 73 PMG/RuleDB/Remove.pm \
f4fe6fc4
DM
74 PMG/RuleDB/Attach.pm \
75 PMG/RuleDB/BCC.pm \
76 PMG/RuleDB/Counter.pm \
758c7b6b
DM
77 PMG/RuleDB/Notify.pm \
78 PMG/RuleDB/Disclaimer.pm \
79 PMG/RuleDB/Accept.pm \
80 PMG/RuleDB/Block.pm \
0a580593 81 PMG/RuleDB.pm \
82782d70 82 PMG/CLI/pmgdb.pm \
8b91b776
DM
83 ${CLI_CLASSES} \
84 PMG/API2/Network.pm \
163fb58f 85 PMG/API2/Services.pm \
fa04fcb4 86 PMG/API2/Tasks.pm \
9beff9f6
DM
87 PMG/API2/Nodes.pm \
88 PMG/API2/AccessControl.pm \
b52f6573 89 PMG/API2/RuleDB.pm \
9beff9f6
DM
90 PMG/API2.pm
91
07cb898d 92all: ${LIBSOURCES} ${CLI_BINARIES} ${TEMPLATES_FILES}
b68dfb61
DM
93
94.PHONY: deb
07cb898d 95deb ${DEB}: ${LIBSOURCES} ${CLI_BINARIES} ${TEMPLATES_FILES}
b68dfb61
DM
96 rm -rf build
97 rsync -a * build
98 cd build; dpkg-buildpackage -b -us -uc
99 lintian ${DEB}
100
40f2bc5e
DM
101
102PMG/pmgcfg.pm: PMG/pmgcfg.pm.in
103 sed -e s/@VERSION@/${PKGVER}/ -e s/@PACKAGERELEASE@/${PKGREL}/ -e s/@PACKAGE@/${PACKAGE}/ -e s/@REPOID@/${REPOID}/ $< >$@.tmp
104 mv $@.tmp $@
105
8b91b776
DM
106%.bash-completion:
107 perl -I. -T -e "use PMG::CLI::$*; PMG::CLI::$*->generate_bash_completions();" >$@.tmp
108 mv $@.tmp $@
109
8415b622 110%.service-bash-completion:
8b91b776 111 perl -I. -T -e "use PMG::Service::$*; PMG::Service::$*->generate_bash_completions();" >$@.tmp
8415b622
DM
112 mv $@.tmp $@
113
07cb898d 114install: ${BTDATA} $(addsuffix .pm, $(addprefix PMG/Service/, ${SERVICES})) $(addsuffix .service-bash-completion, ${SERVICES}) ${LIBSOURCES} ${CLI_BINARIES} $(addsuffix .bash-completion, ${CLITOOLS}) ${TEMPLATES_FILES}
8a1ac886 115 for i in ${SERVICES}; do perl -I. -T -e "use PMG::Service::$$i; PMG::Service::$$i->verify_api();"; done
8b91b776 116 for i in ${CLITOOLS}; do perl -I. -T -e "use PMG::CLI::$$i; PMG::CLI::$$i->verify_api();"; done
9beff9f6 117 install -d -m 0755 ${DESTDIR}/usr/bin
0854fb22 118 install -d -m 0700 -o www-data -g www-data ${DESTDIR}/var/log/pmgproxy
cb159468
DM
119 install -d -m 0755 ${DOCDIR}
120 # TODO: is there a better location ?
121 install -m 0644 favicon.ico ${DOCDIR}
9beff9f6
DM
122 for i in ${LIBSOURCES}; do install -D -m 0644 $$i ${PERL5DIR}/$$i; done
123 for i in ${SERVICES}; do install -D -m 0644 PMG/Service/$$i.pm ${PERL5DIR}/PMG/Service/$$i.pm; done
8a1ac886 124 for i in ${SERVICES}; do install -m 0755 bin/$$i ${DESTDIR}/usr/bin; done
8415b622 125 for i in ${SERVICES}; do install -m 0644 -D $$i.service-bash-completion ${BASHCOMPLDIR}/$$i; done
8b91b776
DM
126 for i in ${CLITOOLS}; do install -D -m 0644 PMG/CLI/$$i.pm ${PERL5DIR}/PMG/CLI/$$i.pm; done
127 for i in ${CLITOOLS}; do install -D -m 0755 bin/$$i ${DESTDIR}/usr/bin/$$i; done
128 for i in ${CLITOOLS}; do install -D -m 0644 $$i.bash-completion ${BASHCOMPLDIR}/$$i; done
07cb898d 129 for i in ${TEMPLATES}; do install -D -m 0644 templates/$$i ${DESTDIR}/var/lib/pmg/templates/$$i; done
b68dfb61
DM
130
131.PHONY: upload
132upload: ${DEB}
eae6f864 133 ./repoid.pl .git/ check
b68dfb61
DM
134 # fixme tar cf - ${DEB} | ssh repoman@repo.proxmox.com upload
135
291abd89
DM
136.PHONY: check
137check:
138 make -C tests check
139
b68dfb61
DM
140distclean: clean
141
142clean:
291abd89 143 make -C tests clean
8b91b776 144 rm -rf ./build *.deb *.changes *.buildinfo *.bash-completion *.service-bash-completion
9d1d3ef6 145 if test -d .git; then rm -f PMG/pmgcfg.pm; fi
b68dfb61
DM
146 find . -name '*~' -exec rm {} ';'
147
148.PHONY: dinstall
149dinstall: ${DEB}
150 dpkg -i ${DEB}