]> git.proxmox.com Git - pmg-api.git/blame - Makefile
bump version to 5.1-4
[pmg-api.git] / Makefile
CommitLineData
a1fd65e3 1PACKAGE=pmg-api
d72a6e06 2PKGVER=5.1
330e87c5 3PKGREL=4
b68dfb61 4
c288dcd7
DM
5# this requires package pmg-doc-generator
6export NOVIEW=1
7include /usr/share/pmg-doc-generator/pmg-doc-generator.mk
8
9
b68dfb61
DM
10DEB=${PACKAGE}_${PKGVER}-${PKGREL}_all.deb
11
12DESTDIR=
13
14PERL5DIR=${DESTDIR}/usr/share/perl5
15DOCDIR=${DESTDIR}/usr/share/doc/${PACKAGE}
8415b622 16BASHCOMPLDIR=${DESTDIR}/usr/share/bash-completion/completions/
b68dfb61 17
40f2bc5e
DM
18REPOID=`./repoid.pl .git`
19
132089d5 20SERVICES = pmgdaemon pmgproxy pmgtunnel pmgmirror
0f79c55f 21CLITOOLS = pmgdb pmgconfig pmgperf pmgcm pmgqm pmgreport pmgversion pmgupgrade pmgsubscription pmgbackup
1635608e 22CLISCRIPTS = pmg-smtp-filter pmgsh pmgpolicy pmgbanner
cb289191 23CRONSCRIPTS = pmg-hourly pmg-daily
8b91b776 24
a9a4dda6
DM
25CLI_CLASSES = $(addprefix PMG/CLI/, $(addsuffix .pm, ${CLITOOLS}))
26SERVICE_CLASSES = $(addprefix PMG/Service/, $(addsuffix .pm, ${SERVICES}))
27SERVICE_UNITS = $(addprefix debian/, $(addsuffix .service, ${SERVICES}))
2e2d4830 28TIMER_UNITS = $(addprefix debian/, $(addsuffix .timer, ${CRONSCRIPTS} pmgspamreport pmgreport))
6a672919 29
a9a4dda6 30CLI_BINARIES = $(addprefix bin/, ${CLITOOLS} ${CLISCRIPTS} ${CRONSCRIPTS})
8de5c848 31CLI_MANS = $(addsuffix .1, ${CLITOOLS}) pmgsh.1
6a672919
DM
32
33
10e64d69 34SERVICE_MANS = $(addsuffix .8, ${SERVICES}) pmg-smtp-filter.8 pmgpolicy.8
d358f740 35CONF_MANS= pmg.conf.5 cluster.conf.5
c288dcd7 36
07cb898d 37TEMPLATES = \
cde18a76 38 fetchmailrc.tt \
3dfe317a 39 pmgreport.tt \
dc41e7db 40 spamreport-verbose.tt \
ecf86b91 41 spamreport-short.tt \
f609bf7f
DM
42 main.cf.in \
43 main.cf.in.demo \
44 master.cf.in \
45 master.cf.in.demo \
07cb898d
DM
46 init.pre.in \
47 local.cf.in \
48 v310.pre.in \
49 v320.pre.in \
50 razor-agent.conf.in \
33fa90bf
DM
51 freshclam.conf.in \
52 clamd.conf.in \
07cb898d
DM
53 postgresql.conf.in \
54 pg_hba.conf.in
55
a9a4dda6 56TEMPLATES_FILES = $(addprefix templates/, ${TEMPLATES})
07cb898d 57
9beff9f6
DM
58LIBSOURCES = \
59 PMG/pmgcfg.pm \
9d82c6bc 60 PMG/RESTEnvironment.pm \
758c7b6b 61 PMG/Utils.pm \
08d6921a 62 PMG/HTMLMail.pm \
e7c865af 63 PMG/ModGroup.pm \
758c7b6b 64 PMG/SMTPPrinter.pm \
0bf65425 65 PMG/Config.pm \
9beff9f6 66 PMG/Cluster.pm \
9f67f5b3 67 PMG/ClusterConfig.pm \
9beff9f6
DM
68 PMG/HTTPServer.pm \
69 PMG/Ticket.pm \
70 PMG/AccessControl.pm \
6b5e9594 71 PMG/AtomicFile.pm \
a43bcf61 72 PMG/MailQueue.pm \
657d5dd4 73 PMG/Postfix.pm \
14726412 74 PMG/SMTP.pm \
91a5af02 75 PMG/Unpack.pm \
9a8d51a4 76 PMG/Backup.pm \
c881fe35 77 PMG/RuleCache.pm \
5414dee4 78 PMG/Statistic.pm \
62ebb4bc 79 PMG/UserConfig.pm \
26be105b 80 PMG/Fetchmail.pm \
a6e3ac60 81 PMG/LDAPConfig.pm \
0bf65425 82 PMG/LDAPSet.pm \
cad3d400 83 PMG/LDAPCache.pm \
a355f100 84 PMG/DBTools.pm \
e84bf942 85 PMG/Quarantine.pm \
0a580593
DM
86 PMG/RuleDB/Group.pm \
87 PMG/RuleDB/Rule.pm \
88 PMG/RuleDB/Object.pm \
89 PMG/RuleDB/Quarantine.pm \
90 PMG/RuleDB/WhoRegex.pm \
f4fe6fc4
DM
91 PMG/RuleDB/IPAddress.pm \
92 PMG/RuleDB/IPNet.pm \
e7c865af 93 PMG/RuleDB/ModField.pm \
f4fe6fc4 94 PMG/RuleDB/MatchFilename.pm \
0a580593
DM
95 PMG/RuleDB/ReceiverRegex.pm \
96 PMG/RuleDB/EMail.pm \
97 PMG/RuleDB/Receiver.pm \
98 PMG/RuleDB/Domain.pm \
99 PMG/RuleDB/ReceiverDomain.pm \
10621236 100 PMG/RuleDB/LDAP.pm \
c712d3a2 101 PMG/RuleDB/LDAPUser.pm \
0a580593 102 PMG/RuleDB/TimeFrame.pm \
a7865a2b 103 PMG/RuleDB/MatchField.pm \
11b7d5dc 104 PMG/RuleDB/ContentTypeFilter.pm \
c4741113 105 PMG/RuleDB/ArchiveFilter.pm \
758c7b6b 106 PMG/RuleDB/Spam.pm \
a29b9649 107 PMG/RuleDB/Virus.pm \
f4fe6fc4 108 PMG/RuleDB/ReportSpam.pm \
758c7b6b 109 PMG/RuleDB/Remove.pm \
f4fe6fc4
DM
110 PMG/RuleDB/Attach.pm \
111 PMG/RuleDB/BCC.pm \
112 PMG/RuleDB/Counter.pm \
758c7b6b
DM
113 PMG/RuleDB/Notify.pm \
114 PMG/RuleDB/Disclaimer.pm \
115 PMG/RuleDB/Accept.pm \
116 PMG/RuleDB/Block.pm \
0a580593 117 PMG/RuleDB.pm \
8b91b776 118 ${CLI_CLASSES} \
6a672919 119 ${SERVICE_CLASSES} \
87952a8d 120 PMG/API2/Subscription.pm \
cc115a48 121 PMG/API2/APT.pm \
8b91b776 122 PMG/API2/Network.pm \
163fb58f 123 PMG/API2/Services.pm \
fa04fcb4 124 PMG/API2/Tasks.pm \
be6d6ffc 125 PMG/API2/LDAP.pm \
29fa7feb 126 PMG/API2/DestinationTLSPolicy.pm\
5b2bb556 127 PMG/API2/Domains.pm \
c3346bf1 128 PMG/API2/Fetchmail.pm \
62ebb4bc 129 PMG/API2/Users.pm \
cc947440 130 PMG/API2/Transport.pm \
bef31f06 131 PMG/API2/MyNetworks.pm \
e29ebc7c 132 PMG/API2/MimeTypes.pm \
5c583140 133 PMG/API2/Config.pm \
fb5f2d1e 134 PMG/API2/Cluster.pm \
d17c5265 135 PMG/API2/ClamAV.pm \
b00d2d73 136 PMG/API2/SpamAssassin.pm \
5de9374c 137 PMG/API2/Statistics.pm \
202c952a 138 PMG/API2/MailTracker.pm \
464f7494 139 PMG/API2/Backup.pm \
9beff9f6 140 PMG/API2/Nodes.pm \
657d5dd4 141 PMG/API2/Postfix.pm \
b66faa68 142 PMG/API2/Quarantine.pm \
9beff9f6 143 PMG/API2/AccessControl.pm \
4bea3204 144 PMG/API2/ObjectGroupHelpers.pm \
8d836d1d 145 PMG/API2/Rules.pm \
b52f6573 146 PMG/API2/RuleDB.pm \
16fdeb84 147 PMG/API2/SMTPWhitelist.pm \
1ad24a43 148 PMG/API2/Who.pm \
2499333b 149 PMG/API2/When.pm \
5f78c353 150 PMG/API2/What.pm \
11a86e67 151 PMG/API2/Action.pm \
9beff9f6
DM
152 PMG/API2.pm
153
f1bb1ea0 154SOURCES = ${LIBSOURCES} ${CLI_BINARIES} ${TEMPLATES_FILES} ${CONF_MANS} ${CLI_MANS} ${SERVICE_MANS} ${SERVICE_UNITS} ${TIMER_UNITS} pmg-sources.list pmg-apt.conf pmg-initramfs.conf
6a672919
DM
155
156all: ${SOURCES}
b68dfb61
DM
157
158.PHONY: deb
6a672919 159deb ${DEB}: ${SOURCES}
b68dfb61
DM
160 rm -rf build
161 rsync -a * build
162 cd build; dpkg-buildpackage -b -us -uc
163 lintian ${DEB}
164
40f2bc5e
DM
165
166PMG/pmgcfg.pm: PMG/pmgcfg.pm.in
167 sed -e s/@VERSION@/${PKGVER}/ -e s/@PACKAGERELEASE@/${PKGREL}/ -e s/@PACKAGE@/${PACKAGE}/ -e s/@REPOID@/${REPOID}/ $< >$@.tmp
168 mv $@.tmp $@
169
8b91b776
DM
170%.bash-completion:
171 perl -I. -T -e "use PMG::CLI::$*; PMG::CLI::$*->generate_bash_completions();" >$@.tmp
172 mv $@.tmp $@
173
8415b622 174%.service-bash-completion:
8b91b776 175 perl -I. -T -e "use PMG::Service::$*; PMG::Service::$*->generate_bash_completions();" >$@.tmp
8415b622
DM
176 mv $@.tmp $@
177
cb289191 178install: ${SOURCES} $(addsuffix .service-bash-completion, ${SERVICES}) $(addsuffix .bash-completion, ${CLITOOLS})
8a1ac886 179 for i in ${SERVICES}; do perl -I. -T -e "use PMG::Service::$$i; PMG::Service::$$i->verify_api();"; done
8b91b776 180 for i in ${CLITOOLS}; do perl -I. -T -e "use PMG::CLI::$$i; PMG::CLI::$$i->verify_api();"; done
95c6e315 181 perl -I. bin/pmgsh verifyapi
9beff9f6 182 install -d -m 0755 ${DESTDIR}/usr/bin
856d9a38 183 install -d -m 0755 -o www-data -g www-data ${DESTDIR}/var/log/pmgproxy
cb159468
DM
184 install -d -m 0755 ${DOCDIR}
185 # TODO: is there a better location ?
186 install -m 0644 favicon.ico ${DOCDIR}
21a393d9 187 install -D -m 0644 pmg-apt.conf ${DESTDIR}/etc/apt/apt.conf.d/75pmgconf
b1f610f6 188 install -D -m 0644 pmg-sources.list ${DESTDIR}/etc/apt/sources.list.d/pmg-enterprise.list
9beff9f6
DM
189 for i in ${LIBSOURCES}; do install -D -m 0644 $$i ${PERL5DIR}/$$i; done
190 for i in ${SERVICES}; do install -D -m 0644 PMG/Service/$$i.pm ${PERL5DIR}/PMG/Service/$$i.pm; done
8a1ac886 191 for i in ${SERVICES}; do install -m 0755 bin/$$i ${DESTDIR}/usr/bin; done
8415b622 192 for i in ${SERVICES}; do install -m 0644 -D $$i.service-bash-completion ${BASHCOMPLDIR}/$$i; done
8b91b776
DM
193 for i in ${CLITOOLS}; do install -D -m 0644 PMG/CLI/$$i.pm ${PERL5DIR}/PMG/CLI/$$i.pm; done
194 for i in ${CLITOOLS}; do install -D -m 0755 bin/$$i ${DESTDIR}/usr/bin/$$i; done
195 for i in ${CLITOOLS}; do install -D -m 0644 $$i.bash-completion ${BASHCOMPLDIR}/$$i; done
46e12d58 196 for i in ${CLISCRIPTS}; do install -D -m 0755 bin/$$i ${DESTDIR}/usr/bin/$$i; done
07cb898d 197 for i in ${TEMPLATES}; do install -D -m 0644 templates/$$i ${DESTDIR}/var/lib/pmg/templates/$$i; done
3bdb2e11 198 for i in ${CLI_MANS}; do install -D -m 0644 $$i ${DESTDIR}/usr/share/man/man1/$$i; done
c288dcd7 199 for i in ${CONF_MANS}; do install -D -m 0644 $$i ${DESTDIR}/usr/share/man/man5/$$i; done
abc1af3e 200 for i in ${SERVICE_MANS}; do install -D -m 0644 $$i ${DESTDIR}/usr/share/man/man8/$$i; done
6a672919 201 for i in ${CRONSCRIPTS}; do install -D -m 0755 bin/$$i ${DESTDIR}/usr/lib/pmg/bin/$$i; done
cb289191
DM
202 install -d -m 0755 ${DESTDIR}/lib/systemd/system
203 for i in ${TIMER_UNITS}; do install -m 0644 $$i ${DESTDIR}/lib/systemd/system/; done
f1bb1ea0 204 install -D -m 0644 pmg-initramfs.conf ${DESTDIR}/etc/initramfs-tools/conf.d/pmg-initramfs.conf
b68dfb61
DM
205
206.PHONY: upload
207upload: ${DEB}
d35173e5
DM
208 ./repoid.pl .git/ check
209 tar cf - ${DEB} | ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist stretch
b68dfb61 210
291abd89
DM
211.PHONY: check
212check:
213 make -C tests check
214
b68dfb61
DM
215distclean: clean
216
217clean:
c288dcd7 218 make cleanup-docgen
291abd89 219 make -C tests clean
c288dcd7 220 rm -rf ${CONF_MANS} ./build *.deb *.changes *.buildinfo *.bash-completion *.service-bash-completion
9d1d3ef6 221 if test -d .git; then rm -f PMG/pmgcfg.pm; fi
b68dfb61
DM
222 find . -name '*~' -exec rm {} ';'
223
224.PHONY: dinstall
225dinstall: ${DEB}
226 dpkg -i ${DEB}