/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: Teddy Hogeborn
  • Date: 2019-03-12 20:13:34 UTC
  • Revision ID: teddy@recompile.se-20190312201334-my3htrprewjosuw5
mandos-ctl: Refactor

* mandos-ctl: Reorder everything into logical order; put main() first,
              and put every subsequent definition as soon as possible
              after its first use, except superclasses which need to
              be placed before the classes inheriting from them.
              Reorder all tests to match.

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
OPTIMIZE:=-Os -fno-strict-aliasing
41
41
LANGUAGE:=-std=gnu11
42
42
htmldir:=man
43
 
version:=1.7.18
 
43
version:=1.8.3
44
44
SED:=sed
45
45
 
46
46
USER:=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
89
89
 
90
90
# Do not change these two
91
91
CFLAGS+=$(WARN) $(DEBUG) $(FORTIFY) $(SANITIZE) $(COVERAGE) \
92
 
        $(OPTIMIZE) $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) \
93
 
        $(GPGME_CFLAGS) -DVERSION='"$(version)"'
 
92
        $(OPTIMIZE) $(LANGUAGE) -DVERSION='"$(version)"'
94
93
LDFLAGS+=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
95
94
 
96
95
# Commands to format a DocBook <refentry> document into a manual page
253
252
                --expression='s/\(mandos_\)[0-9.]\+\(\.orig\.tar\.gz\)/\1$(version)\2/' \
254
253
                $@)
255
254
 
 
255
# Need to add the GnuTLS, Avahi and GPGME libraries, and can't use
 
256
# -fsanitize=leak because GnuTLS and GPGME both leak memory.
256
257
plugins.d/mandos-client: plugins.d/mandos-client.c
257
 
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
 
258
        $(CC) $(filter-out -fsanitize=leak,$(CFLAGS)) $(strip\
 
259
        ) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) $(strip\
 
260
                ) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) $^ $(strip\
 
261
                ) -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
258
262
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
259
263
 
260
264
plugin-helpers/mandos-client-iprouteadddel: plugin-helpers/mandos-client-iprouteadddel.c
280
284
        ./mandos-ctl --check
281
285
 
282
286
# Run the client with a local config and key
283
 
run-client: all keydir/seckey.txt keydir/pubkey.txt
 
287
run-client: all keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem
284
288
        @echo "###################################################################"
285
289
        @echo "# The following error messages are harmless and can be safely     #"
286
290
        @echo "# ignored:                                                        #"
299
303
        ./plugin-runner --plugin-dir=plugins.d \
300
304
                --plugin-helper-dir=plugin-helpers \
301
305
                --config-file=plugin-runner.conf \
302
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
 
306
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--tls-privkey=keydir/tls-privkey.pem,--tls-pubkey=keydir/tls-pubkey.pem,--network-hook-dir=network-hooks.d \
303
307
                --env-for=mandos-client:GNOME_KEYRING_CONTROL= \
304
308
                $(CLIENTARGS)
305
309
 
306
310
# Used by run-client
307
 
keydir/seckey.txt keydir/pubkey.txt: mandos-keygen
 
311
keydir/seckey.txt keydir/pubkey.txt keydir/tls-privkey.pem keydir/tls-pubkey.pem: mandos-keygen
308
312
        install --directory keydir
309
313
        ./mandos-keygen --dir keydir --force
310
314
 
317
321
confdir/mandos.conf: mandos.conf
318
322
        install --directory confdir
319
323
        install --mode=u=rw,go=r $^ $@
320
 
confdir/clients.conf: clients.conf keydir/seckey.txt
 
324
confdir/clients.conf: clients.conf keydir/seckey.txt keydir/tls-pubkey.pem
321
325
        install --directory confdir
322
326
        install --mode=u=rw $< $@
323
327
# Add a client password
392
396
                "$(CONFDIR)/network-hooks.d"
393
397
        install --mode=u=rwx,go=rx \
394
398
                --target-directory=$(LIBDIR)/mandos plugin-runner
 
399
        install --mode=u=rwx,go=rx \
 
400
                --target-directory=$(LIBDIR)/mandos mandos-to-cryptroot-unlock
395
401
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
396
402
                mandos-keygen
397
403
        install --mode=u=rwx,go=rx \
417
423
                plugin-helpers/mandos-client-iprouteadddel
418
424
        install initramfs-tools-hook \
419
425
                $(INITRAMFSTOOLS)/hooks/mandos
420
 
        install --mode=u=rw,go=r initramfs-tools-hook-conf \
421
 
                $(INITRAMFSTOOLS)/conf-hooks.d/mandos
 
426
        install --mode=u=rw,go=r initramfs-tools-conf \
 
427
                $(INITRAMFSTOOLS)/conf.d/mandos-conf
422
428
        install initramfs-tools-script \
423
429
                $(INITRAMFSTOOLS)/scripts/init-premount/mandos
 
430
        install initramfs-tools-script-stop \
 
431
                $(INITRAMFSTOOLS)/scripts/local-premount/mandos
424
432
        install --mode=u=rw,go=r plugin-runner.conf $(CONFDIR)
425
433
        gzip --best --to-stdout mandos-keygen.8 \
426
434
                > $(MANDIR)/man8/mandos-keygen.8.gz
500
508
        -rmdir $(CONFDIR)
501
509
 
502
510
purge-client: uninstall-client
503
 
        -shred --remove $(KEYDIR)/seckey.txt
 
511
        -shred --remove $(KEYDIR)/seckey.txt $(KEYDIR)/tls-privkey.pem
504
512
        -rm --force $(CONFDIR)/plugin-runner.conf \
505
 
                $(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt
 
513
                $(KEYDIR)/pubkey.txt $(KEYDIR)/seckey.txt \
 
514
                $(KEYDIR)/tls-pubkey.txt $(KEYDIR)/tls-privkey.txt
506
515
        -rmdir $(KEYDIR) $(CONFDIR)/plugins.d $(CONFDIR)