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