/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Björn Påhlsson
  • Date: 2008-07-20 02:52:20 UTC
  • Revision ID: belorn@braxen-20080720025220-r5u0388uy9iu23h6
Added following support:
Pluginbased client handler
rewritten Mandos client
       Avahi instead of udp server discovery
       openpgp encrypted key support
Passprompt stand alone application for direct console input
Added logging for Mandos server

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
WARN=-O -Wall -Wformat=2 -Winit-self -Wmissing-include-dirs \
2
 
        -Wswitch-default -Wswitch-enum -Wunused-parameter \
3
 
        -Wstrict-aliasing=1 -Wextra -Wfloat-equal -Wundef -Wshadow \
4
 
        -Wunsafe-loop-optimizations -Wpointer-arith \
5
 
        -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings \
6
 
        -Wconversion -Wstrict-prototypes -Wold-style-definition \
7
 
        -Wpacked -Wnested-externs -Winline -Wvolatile-register-var \
8
 
        -Wunreachable-code
9
 
#DEBUG=-ggdb3
10
 
# For info about _FORTIFY_SOURCE, see feature_test_macros(7)
11
 
# and <http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html>.
12
 
FORTIFY=-D_FORTIFY_SOURCE=2 -fstack-protector-all -fPIC
13
 
LINK_FORTIFY_LD=-z relro -z now
14
 
LINK_FORTIFY=
15
 
 
16
 
# If BROKEN_PIE is set, do not build with -pie
17
 
ifndef BROKEN_PIE
18
 
FORTIFY += -fPIE
19
 
LINK_FORTIFY += -pie
20
 
endif
21
 
#COVERAGE=--coverage
22
 
OPTIMIZE=-Os
23
 
LANGUAGE=-std=gnu99
24
 
htmldir=man
25
 
version=1.6.4
26
 
SED=sed
27
 
 
28
 
USER=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
29
 
GROUP=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nobody || echo 65534)))
30
 
 
31
 
## Use these settings for a traditional /usr/local install
32
 
# PREFIX=$(DESTDIR)/usr/local
33
 
# CONFDIR=$(DESTDIR)/etc/mandos
34
 
# KEYDIR=$(DESTDIR)/etc/mandos/keys
35
 
# MANDIR=$(PREFIX)/man
36
 
# INITRAMFSTOOLS=$(DESTDIR)/etc/initramfs-tools
37
 
# STATEDIR=$(DESTDIR)/var/lib/mandos
38
 
# LIBDIR=$(PREFIX)/lib
39
 
##
40
 
 
41
 
## These settings are for a package-type install
42
 
PREFIX=$(DESTDIR)/usr
43
 
CONFDIR=$(DESTDIR)/etc/mandos
44
 
KEYDIR=$(DESTDIR)/etc/keys/mandos
45
 
MANDIR=$(PREFIX)/share/man
46
 
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
47
 
STATEDIR=$(DESTDIR)/var/lib/mandos
48
 
LIBDIR=$(shell \
49
 
        for d in \
50
 
        "/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null`" \
51
 
        "`rpm --eval='%{_libdir}' 2>/dev/null`" /usr/lib; do \
52
 
                if [ -d "$$d" -a "$$d" = "$${d%/}" ]; then \
53
 
                        echo "$(DESTDIR)$$d"; \
54
 
                        break; \
55
 
                fi; \
56
 
        done)
57
 
##
58
 
 
59
 
SYSTEMD=$(DESTDIR)$(shell pkg-config systemd --variable=systemdsystemunitdir)
60
 
 
61
 
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
62
 
GNUTLS_LIBS=$(shell pkg-config --libs gnutls)
63
 
AVAHI_CFLAGS=$(shell pkg-config --cflags-only-I avahi-core)
64
 
AVAHI_LIBS=$(shell pkg-config --libs avahi-core)
65
 
GPGME_CFLAGS=$(shell gpgme-config --cflags; getconf LFS_CFLAGS)
66
 
GPGME_LIBS=$(shell gpgme-config --libs; getconf LFS_LIBS; \
67
 
        getconf LFS_LDFLAGS)
68
 
 
69
 
# Do not change these two
70
 
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
71
 
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
72
 
        -DVERSION='"$(version)"'
73
 
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
74
 
 
75
 
# Commands to format a DocBook <refentry> document into a manual page
76
 
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
77
 
        --param man.charmap.use.subset          0 \
78
 
        --param make.year.ranges                1 \
79
 
        --param make.single.year.ranges         1 \
80
 
        --param man.output.quietly              1 \
81
 
        --param man.authors.section.enabled     0 \
82
 
        /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
83
 
        $(notdir $<); \
84
 
        $(MANPOST) $(notdir $@);\
85
 
        if locale --all 2>/dev/null | grep --regexp='^en_US\.utf8$$' \
86
 
        && type man 2>/dev/null; then LANG=en_US.UTF-8 MANWIDTH=80 \
87
 
        man --warnings --encoding=UTF-8 --local-file $(notdir $@); \
88
 
        fi >/dev/null)
89
 
# DocBook-to-man post-processing to fix a '\n' escape bug
90
 
MANPOST=$(SED) --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
91
 
 
92
 
DOCBOOKTOHTML=$(strip xsltproc --nonet --xinclude \
93
 
        --param make.year.ranges                1 \
94
 
        --param make.single.year.ranges         1 \
95
 
        --param man.output.quietly              1 \
96
 
        --param man.authors.section.enabled     0 \
97
 
        --param citerefentry.link               1 \
98
 
        --output $@ \
99
 
        /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl \
100
 
        $<; $(HTMLPOST) $@)
101
 
# Fix citerefentry links
102
 
HTMLPOST=$(SED) --in-place \
103
 
        --expression='s/\(<a class="citerefentry" href="\)\("><span class="citerefentry"><span class="refentrytitle">\)\([^<]*\)\(<\/span>(\)\([^)]*\)\()<\/span><\/a>\)/\1\3.\5\2\3\4\5\6/g'
104
 
 
105
 
PLUGINS=plugins.d/password-prompt plugins.d/mandos-client \
106
 
        plugins.d/usplash plugins.d/splashy plugins.d/askpass-fifo \
107
 
        plugins.d/plymouth
108
 
CPROGS=plugin-runner $(PLUGINS)
109
 
PROGS=mandos mandos-keygen mandos-ctl mandos-monitor $(CPROGS)
110
 
DOCS=mandos.8 mandos-keygen.8 mandos-monitor.8 mandos-ctl.8 \
111
 
        mandos.conf.5 mandos-clients.conf.5 plugin-runner.8mandos \
112
 
        plugins.d/mandos-client.8mandos \
113
 
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
114
 
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
115
 
        plugins.d/plymouth.8mandos intro.8mandos
116
 
 
117
 
htmldocs=$(addsuffix .xhtml,$(DOCS))
118
 
 
119
 
objects=$(addsuffix .o,$(CPROGS))
120
 
 
121
 
all: $(PROGS) mandos.lsm
122
 
 
123
 
doc: $(DOCS)
124
 
 
125
 
html: $(htmldocs)
126
 
 
127
 
%.5: %.xml common.ent legalnotice.xml
128
 
        $(DOCBOOKTOMAN)
129
 
%.5.xhtml: %.xml common.ent legalnotice.xml
130
 
        $(DOCBOOKTOHTML)
131
 
 
132
 
%.8: %.xml common.ent legalnotice.xml
133
 
        $(DOCBOOKTOMAN)
134
 
%.8.xhtml: %.xml common.ent legalnotice.xml
135
 
        $(DOCBOOKTOHTML)
136
 
 
137
 
%.8mandos: %.xml common.ent legalnotice.xml
138
 
        $(DOCBOOKTOMAN)
139
 
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
140
 
        $(DOCBOOKTOHTML)
141
 
 
142
 
intro.8mandos: intro.xml common.ent legalnotice.xml
143
 
        $(DOCBOOKTOMAN)
144
 
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
145
 
        $(DOCBOOKTOHTML)
146
 
 
147
 
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
148
 
                legalnotice.xml
149
 
        $(DOCBOOKTOMAN)
150
 
mandos.8.xhtml: mandos.xml common.ent mandos-options.xml \
151
 
                overview.xml legalnotice.xml
152
 
        $(DOCBOOKTOHTML)
153
 
 
154
 
mandos-keygen.8: mandos-keygen.xml common.ent overview.xml \
155
 
                legalnotice.xml
156
 
        $(DOCBOOKTOMAN)
157
 
mandos-keygen.8.xhtml: mandos-keygen.xml common.ent overview.xml \
158
 
                 legalnotice.xml
159
 
        $(DOCBOOKTOHTML)
160
 
 
161
 
mandos-monitor.8: mandos-monitor.xml common.ent overview.xml \
162
 
                legalnotice.xml
163
 
        $(DOCBOOKTOMAN)
164
 
mandos-monitor.8.xhtml: mandos-monitor.xml common.ent overview.xml \
165
 
                 legalnotice.xml
166
 
        $(DOCBOOKTOHTML)
167
 
 
168
 
mandos-ctl.8: mandos-ctl.xml common.ent overview.xml \
169
 
                legalnotice.xml
170
 
        $(DOCBOOKTOMAN)
171
 
mandos-ctl.8.xhtml: mandos-ctl.xml common.ent overview.xml \
172
 
                 legalnotice.xml
173
 
        $(DOCBOOKTOHTML)
174
 
 
175
 
mandos.conf.5: mandos.conf.xml common.ent mandos-options.xml \
176
 
                legalnotice.xml
177
 
        $(DOCBOOKTOMAN)
178
 
mandos.conf.5.xhtml: mandos.conf.xml common.ent mandos-options.xml \
179
 
                legalnotice.xml
180
 
        $(DOCBOOKTOHTML)
181
 
 
182
 
plugin-runner.8mandos: plugin-runner.xml common.ent overview.xml \
183
 
                legalnotice.xml
184
 
        $(DOCBOOKTOMAN)
185
 
plugin-runner.8mandos.xhtml: plugin-runner.xml common.ent \
186
 
                overview.xml legalnotice.xml
187
 
        $(DOCBOOKTOHTML)
188
 
 
189
 
plugins.d/mandos-client.8mandos: plugins.d/mandos-client.xml \
190
 
                                        common.ent \
191
 
                                        mandos-options.xml \
192
 
                                        overview.xml legalnotice.xml
193
 
        $(DOCBOOKTOMAN)
194
 
plugins.d/mandos-client.8mandos.xhtml: plugins.d/mandos-client.xml \
195
 
                                        common.ent \
196
 
                                        mandos-options.xml \
197
 
                                        overview.xml legalnotice.xml
198
 
        $(DOCBOOKTOHTML)
199
 
 
200
 
# Update all these files with version number $(version)
201
 
common.ent: Makefile
202
 
        $(strip $(SED) --in-place \
203
 
                --expression='s/^\(<!ENTITY version "\)[^"]*">$$/\1$(version)">/' \
204
 
                $@)
205
 
 
206
 
mandos: Makefile
207
 
        $(strip $(SED) --in-place \
208
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
209
 
                $@)
210
 
 
211
 
mandos-keygen: Makefile
212
 
        $(strip $(SED) --in-place \
213
 
                --expression='s/^\(VERSION="\)[^"]*"$$/\1$(version)"/' \
214
 
                $@)
215
 
 
216
 
mandos-ctl: Makefile
217
 
        $(strip $(SED) --in-place \
218
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
219
 
                $@)
220
 
 
221
 
mandos-monitor: Makefile
222
 
        $(strip $(SED) --in-place \
223
 
                --expression='s/^\(version = "\)[^"]*"$$/\1$(version)"/' \
224
 
                $@)
225
 
 
226
 
mandos.lsm: Makefile
227
 
        $(strip $(SED) --in-place \
228
 
                --expression='s/^\(Version:\).*/\1\t$(version)/' \
229
 
                $@)
230
 
        $(strip $(SED) --in-place \
231
 
                --expression='s/^\(Entered-date:\).*/\1\t$(shell date --rfc-3339=date --reference=Makefile)/' \
232
 
                $@)
233
 
        $(strip $(SED) --in-place \
234
 
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
235
 
                $@)
236
 
 
237
 
plugins.d/mandos-client: plugins.d/mandos-client.c
238
 
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
239
 
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
240
 
 
241
 
.PHONY : all doc html clean distclean mostlyclean maintainer-clean \
242
 
        check run-client run-server install install-html \
243
 
        install-server install-client-nokey install-client uninstall \
244
 
        uninstall-server uninstall-client purge purge-server \
245
 
        purge-client
 
1
CFLAGS="-Wall -std=gnu99"
 
2
LDFLAGS=-lgnutls
 
3
 
 
4
all: plugbasedclient
246
5
 
247
6
clean:
248
 
        -rm --force $(CPROGS) $(objects) $(htmldocs) $(DOCS) core
249
 
 
250
 
distclean: clean
251
 
mostlyclean: clean
252
 
maintainer-clean: clean
253
 
        -rm --force --recursive keydir confdir statedir
254
 
 
255
 
check:  all
256
 
        ./mandos --check
257
 
        ./mandos-ctl --check
258
 
 
259
 
# Run the client with a local config and key
260
 
run-client: all keydir/seckey.txt keydir/pubkey.txt
261
 
        @echo "###################################################################"
262
 
        @echo "# The following error messages are harmless and can be safely     #"
263
 
        @echo "# ignored.  The messages are caused by not running as root, but   #"
264
 
        @echo "# you should NOT run \"make run-client\" as root unless you also    #"
265
 
        @echo "# unpacked and compiled Mandos as root, which is NOT recommended. #"
266
 
        @echo "# From plugin-runner: setuid: Operation not permitted             #"
267
 
        @echo "# From askpass-fifo:  mkfifo: Permission denied                   #"
268
 
        @echo "# From mandos-client: setuid: Operation not permitted             #"
269
 
        @echo "#                     seteuid: Operation not permitted            #"
270
 
        @echo "#                     klogctl: Operation not permitted            #"
271
 
        @echo "###################################################################"
272
 
        ./plugin-runner --plugin-dir=plugins.d \
273
 
                --config-file=plugin-runner.conf \
274
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
275
 
                $(CLIENTARGS)
276
 
 
277
 
# Used by run-client
278
 
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
279
 
        install --directory keydir
280
 
        ./mandos-keygen --dir keydir --force
281
 
 
282
 
# Run the server with a local config
283
 
run-server: confdir/mandos.conf confdir/clients.conf statedir
284
 
        ./mandos --debug --no-dbus --configdir=confdir \
285
 
                --statedir=statedir $(SERVERARGS)
286
 
 
287
 
# Used by run-server
288
 
confdir/mandos.conf: mandos.conf
289
 
        install --directory confdir
290
 
        install --mode=u=rw,go=r $^ $@
291
 
confdir/clients.conf: clients.conf keydir/seckey.txt
292
 
        install --directory confdir
293
 
        install --mode=u=rw $< $@
294
 
# Add a client password
295
 
        ./mandos-keygen --dir keydir --password >> $@
296
 
statedir:
297
 
        install --directory statedir
298
 
 
299
 
install: install-server install-client-nokey
300
 
 
301
 
install-html: html
302
 
        install --directory $(htmldir)
303
 
        install --mode=u=rw,go=r --target-directory=$(htmldir) \
304
 
                $(htmldocs)
305
 
 
306
 
install-server: doc
307
 
        install --directory $(CONFDIR)
308
 
        if install --directory --mode=u=rwx --owner=$(USER) \
309
 
                --group=$(GROUP) $(STATEDIR); then \
310
 
                :; \
311
 
        elif install --directory --mode=u=rwx $(STATEDIR); then \
312
 
                chown -- $(USER):$(GROUP) $(STATEDIR) || :; \
313
 
        fi
314
 
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
315
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
316
 
                mandos-ctl
317
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
318
 
                mandos-monitor
319
 
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
320
 
                mandos.conf
321
 
        install --mode=u=rw --target-directory=$(CONFDIR) \
322
 
                clients.conf
323
 
        install --mode=u=rw,go=r dbus-mandos.conf \
324
 
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
325
 
        install --mode=u=rwx,go=rx init.d-mandos \
326
 
                $(DESTDIR)/etc/init.d/mandos
327
 
        if [ "$(SYSTEMD)" != "$(DESTDIR)" -a -d "$(SYSTEMD)" ]; then \
328
 
                install --mode=u=rw,go=r mandos.service $(SYSTEMD); \
329
 
        fi
330
 
        install --mode=u=rw,go=r default-mandos \
331
 
                $(DESTDIR)/etc/default/mandos
332
 
        if [ -z $(DESTDIR) ]; then \
333
 
                update-rc.d mandos defaults 25 15;\
334
 
        fi
335
 
        gzip --best --to-stdout mandos.8 \
336
 
                > $(MANDIR)/man8/mandos.8.gz
337
 
        gzip --best --to-stdout mandos-monitor.8 \
338
 
                > $(MANDIR)/man8/mandos-monitor.8.gz
339
 
        gzip --best --to-stdout mandos-ctl.8 \
340
 
                > $(MANDIR)/man8/mandos-ctl.8.gz
341
 
        gzip --best --to-stdout mandos.conf.5 \
342
 
                > $(MANDIR)/man5/mandos.conf.5.gz
343
 
        gzip --best --to-stdout mandos-clients.conf.5 \
344
 
                > $(MANDIR)/man5/mandos-clients.conf.5.gz
345
 
        gzip --best --to-stdout intro.8mandos \
346
 
                > $(MANDIR)/man8/intro.8mandos.gz
347
 
 
348
 
install-client-nokey: all doc
349
 
        install --directory $(LIBDIR)/mandos $(CONFDIR)
350
 
        install --directory --mode=u=rwx $(KEYDIR) \
351
 
                $(LIBDIR)/mandos/plugins.d
352
 
        if [ "$(CONFDIR)" != "$(LIBDIR)/mandos" ]; then \
353
 
                install --mode=u=rwx \
354
 
                        --directory "$(CONFDIR)/plugins.d"; \
355
 
        fi
356
 
        install --mode=u=rwx,go=rx --directory \
357
 
                "$(CONFDIR)/network-hooks.d"
358
 
        install --mode=u=rwx,go=rx \
359
 
                --target-directory=$(LIBDIR)/mandos plugin-runner
360
 
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
361
 
                mandos-keygen
362
 
        install --mode=u=rwx,go=rx \
363
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
364
 
                plugins.d/password-prompt
365
 
        install --mode=u=rwxs,go=rx \
366
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
367
 
                plugins.d/mandos-client
368
 
        install --mode=u=rwxs,go=rx \
369
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
370
 
                plugins.d/usplash
371
 
        install --mode=u=rwxs,go=rx \
372
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
373
 
                plugins.d/splashy
374
 
        install --mode=u=rwxs,go=rx \
375
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
376
 
                plugins.d/askpass-fifo
377
 
        install --mode=u=rwxs,go=rx \
378
 
                --target-directory=$(LIBDIR)/mandos/plugins.d \
379
 
                plugins.d/plymouth
380
 
        install initramfs-tools-hook \
381
 
                $(INITRAMFSTOOLS)/hooks/mandos
382
 
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
383
 
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
384
 
        install initramfs-tools-script \
385
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
386
 
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
387
 
        gzip --best --to-stdout mandos-keygen.8 \
388
 
                > $(MANDIR)/man8/mandos-keygen.8.gz
389
 
        gzip --best --to-stdout plugin-runner.8mandos \
390
 
                > $(MANDIR)/man8/plugin-runner.8mandos.gz
391
 
        gzip --best --to-stdout plugins.d/mandos-client.8mandos \
392
 
                > $(MANDIR)/man8/mandos-client.8mandos.gz
393
 
        gzip --best --to-stdout plugins.d/password-prompt.8mandos \
394
 
                > $(MANDIR)/man8/password-prompt.8mandos.gz
395
 
        gzip --best --to-stdout plugins.d/usplash.8mandos \
396
 
                > $(MANDIR)/man8/usplash.8mandos.gz
397
 
        gzip --best --to-stdout plugins.d/splashy.8mandos \
398
 
                > $(MANDIR)/man8/splashy.8mandos.gz
399
 
        gzip --best --to-stdout plugins.d/askpass-fifo.8mandos \
400
 
                > $(MANDIR)/man8/askpass-fifo.8mandos.gz
401
 
        gzip --best --to-stdout plugins.d/plymouth.8mandos \
402
 
                > $(MANDIR)/man8/plymouth.8mandos.gz
403
 
 
404
 
install-client: install-client-nokey
405
 
# Post-installation stuff
406
 
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
407
 
        update-initramfs -k all -u
408
 
        echo "Now run mandos-keygen --password --dir $(KEYDIR)"
409
 
 
410
 
uninstall: uninstall-server uninstall-client
411
 
 
412
 
uninstall-server:
413
 
        -rm --force $(PREFIX)/sbin/mandos \
414
 
                $(PREFIX)/sbin/mandos-ctl \
415
 
                $(PREFIX)/sbin/mandos-monitor \
416
 
                $(MANDIR)/man8/mandos.8.gz \
417
 
                $(MANDIR)/man8/mandos-monitor.8.gz \
418
 
                $(MANDIR)/man8/mandos-ctl.8.gz \
419
 
                $(MANDIR)/man5/mandos.conf.5.gz \
420
 
                $(MANDIR)/man5/mandos-clients.conf.5.gz
421
 
        update-rc.d -f mandos remove
422
 
        -rmdir $(CONFDIR)
423
 
 
424
 
uninstall-client:
425
 
# Refuse to uninstall client if /etc/crypttab is explicitly configured
426
 
# to use it.
427
 
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
428
 
                $(DESTDIR)/etc/crypttab
429
 
        -rm --force $(PREFIX)/sbin/mandos-keygen \
430
 
                $(LIBDIR)/mandos/plugin-runner \
431
 
                $(LIBDIR)/mandos/plugins.d/password-prompt \
432
 
                $(LIBDIR)/mandos/plugins.d/mandos-client \
433
 
                $(LIBDIR)/mandos/plugins.d/usplash \
434
 
                $(LIBDIR)/mandos/plugins.d/splashy \
435
 
                $(LIBDIR)/mandos/plugins.d/askpass-fifo \
436
 
                $(LIBDIR)/mandos/plugins.d/plymouth \
437
 
                $(INITRAMFSTOOLS)/hooks/mandos \
438
 
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos \
439
 
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos \
440
 
                $(MANDIR)/man8/mandos-keygen.8.gz \
441
 
                $(MANDIR)/man8/plugin-runner.8mandos.gz \
442
 
                $(MANDIR)/man8/mandos-client.8mandos.gz
443
 
                $(MANDIR)/man8/password-prompt.8mandos.gz \
444
 
                $(MANDIR)/man8/usplash.8mandos.gz \
445
 
                $(MANDIR)/man8/splashy.8mandos.gz \
446
 
                $(MANDIR)/man8/askpass-fifo.8mandos.gz \
447
 
                $(MANDIR)/man8/plymouth.8mandos.gz \
448
 
        -rmdir $(LIBDIR)/mandos/plugins.d $(CONFDIR)/plugins.d \
449
 
                 $(LIBDIR)/mandos $(CONFDIR) $(KEYDIR)
450
 
        update-initramfs -k all -u
451
 
 
452
 
purge: purge-server purge-client
453
 
 
454
 
purge-server: uninstall-server
455
 
        -rm --force $(CONFDIR)/mandos.conf $(CONFDIR)/clients.conf \
456
 
                $(DESTDIR)/etc/dbus-1/system.d/mandos.conf
457
 
                $(DESTDIR)/etc/default/mandos \
458
 
                $(DESTDIR)/etc/init.d/mandos \
459
 
                $(SYSTEMD)/mandos.service \
460
 
                $(DESTDIR)/run/mandos.pid \
461
 
                $(DESTDIR)/var/run/mandos.pid
462
 
        -rmdir $(CONFDIR)
463
 
 
464
 
purge-client: uninstall-client
465
 
        -shred --remove $(KEYDIR)/seckey.txt
466
 
        -rm --force $(CONFDIR)/plugin-runner.conf \
467
 
                $(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt
468
 
        -rmdir $(KEYDIR) $(CONFDIR)/plugins.d $(CONFDIR)
 
7
        rm -f plugbasedclient
 
8
 
 
9
client_debug: client
 
10
        mv -f client client.tmp
 
11
        $(MAKE) client CXXFLAGS="$(CXXFLAGS) -DDEBUG -DCERT_ROOT=\\\"./\\\""
 
12
        mv client client_debug
 
13
        mv client.tmp client