/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: 2024-09-10 17:27:47 UTC
  • Revision ID: teddy@recompile.se-20240910172747-lb81r7e888dwb8ak
Only use linker option --no-warn-execstack if supported

The --no-warn-execstack is new in ld(1) version 2.39; only use the
option if the linker supports it.

* Makefile: Only add "-Xlinker --no-warn-execstack" to LDFLAGS for
  various programs if we can successfully run a compiler with that
  linker flag.

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
LANGUAGE:=-std=gnu11
45
45
CPPFLAGS+=-D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
46
46
htmldir:=man
47
 
version:=1.8.17
 
47
version:=1.8.16
48
48
SED:=sed
49
49
PKG_CONFIG?=pkg-config
50
50
 
57
57
 
58
58
## Use these settings for a traditional /usr/local install
59
59
# PREFIX:=$(DESTDIR)/usr/local
60
 
# BINDIR:=$(PREFIX)/sbin
61
60
# CONFDIR:=$(DESTDIR)/etc/mandos
62
61
# KEYDIR:=$(DESTDIR)/etc/mandos/keys
63
62
# MANDIR:=$(PREFIX)/man
70
69
 
71
70
## These settings are for a package-type install
72
71
PREFIX:=$(DESTDIR)/usr
73
 
BINDIR:=$(PREFIX)/sbin
74
72
CONFDIR:=$(DESTDIR)/etc/mandos
75
73
KEYDIR:=$(DESTDIR)/etc/keys/mandos
76
74
MANDIR:=$(PREFIX)/share/man
292
290
                $@)
293
291
 
294
292
# Does the linker support the --no-warn-execstack option?
295
 
ifeq ($(shell echo 'int main(){}'|$(CC) --language=c /dev/stdin -o /dev/null -Xlinker --no-warn-execstack >/dev/null 2>&1 && echo yes),yes)
 
293
ifeq ($(shell echo 'int main(){}'|$(CC) --language=c /dev/stdin -o /dev/null -Xlinker --no-warn-execstack && echo yes),yes)
296
294
# These programs use nested functions, which uses an executable stack
297
295
plugin-runner: LDFLAGS += -Xlinker --no-warn-execstack
298
296
dracut-module/password-agent: LDFLAGS += -Xlinker --no-warn-execstack
419
417
                install -D --mode=u=rw,go=r sysusers.d-mandos.conf \
420
418
                        $(SYSUSERS)/mandos.conf; \
421
419
        fi
422
 
        install --directory $(BINDIR)
423
 
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) mandos
424
 
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) \
 
420
        install --directory $(PREFIX)/sbin
 
421
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
 
422
                mandos
 
423
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
425
424
                mandos-ctl
426
 
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) \
 
425
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
427
426
                mandos-monitor
428
427
        install --directory $(CONFDIR)
429
428
        install --mode=u=rw,go=r --target-directory=$(CONFDIR) \
478
477
        install --mode=u=rwx,go=rx \
479
478
                --target-directory=$(LIBDIR)/mandos \
480
479
                mandos-to-cryptroot-unlock
481
 
        install --directory $(BINDIR)
482
 
        install --mode=u=rwx,go=rx --target-directory=$(BINDIR) \
 
480
        install --directory $(PREFIX)/sbin
 
481
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
483
482
                mandos-keygen
484
483
        install --mode=u=rwx,go=rx \
485
484
                --target-directory=$(LIBDIR)/mandos/plugins.d \
545
544
.PHONY: install-client
546
545
install-client: install-client-nokey
547
546
# Post-installation stuff
548
 
        -$(BINDIR)/mandos-keygen --dir "$(KEYDIR)"
 
547
        -$(PREFIX)/sbin/mandos-keygen --dir "$(KEYDIR)"
549
548
        if command -v update-initramfs >/dev/null; then \
550
549
            update-initramfs -k all -u; \
551
550
        elif command -v dracut >/dev/null; then \
563
562
 
564
563
.PHONY: uninstall-server
565
564
uninstall-server:
566
 
        -rm --force $(BINDIR)/mandos \
567
 
                $(BINDIR)/mandos-ctl \
568
 
                $(BINDIR)/mandos-monitor \
 
565
        -rm --force $(PREFIX)/sbin/mandos \
 
566
                $(PREFIX)/sbin/mandos-ctl \
 
567
                $(PREFIX)/sbin/mandos-monitor \
569
568
                $(MANDIR)/man8/mandos.8.gz \
570
569
                $(MANDIR)/man8/mandos-monitor.8.gz \
571
570
                $(MANDIR)/man8/mandos-ctl.8.gz \
580
579
# to use it.
581
580
        ! grep --regexp='^ *[^ #].*keyscript=[^,=]*/mandos/' \
582
581
                $(DESTDIR)/etc/crypttab
583
 
        -rm --force $(BINDIR)/mandos-keygen \
 
582
        -rm --force $(PREFIX)/sbin/mandos-keygen \
584
583
                $(LIBDIR)/mandos/plugin-runner \
585
584
                $(LIBDIR)/mandos/plugins.d/password-prompt \
586
585
                $(LIBDIR)/mandos/plugins.d/mandos-client \