1# Copyright (C) 2014-2018 Yubico AB - See COPYING 2 3SUBDIRS = . pamu2fcfg tests 4 5if ENABLE_FUZZING 6SUBDIRS += fuzz 7endif 8 9ACLOCAL_AMFLAGS = -I m4 10 11AM_CFLAGS = $(CWFLAGS) $(CSFLAGS) 12AM_CPPFLAGS = $(LIBFIDO2_CFLAGS) $(LIBCRYPTO_CFLAGS) 13if ENABLE_FUZZING 14AM_CPPFLAGS += -fsanitize=fuzzer-no-link 15endif 16 17pampluginexecdir = $(PAMDIR) 18pampluginexec_LTLIBRARIES = pam_u2f.la 19 20pam_u2f_la_SOURCES = pam-u2f.c 21pam_u2f_la_SOURCES += util.c util.h 22pam_u2f_la_SOURCES += drop_privs.h 23pam_u2f_la_SOURCES += b64.c b64.h 24pam_u2f_la_SOURCES += explicit_bzero.c 25 26pam_u2f_la_LIBADD = -lpam 27pam_u2f_la_LIBADD += $(LIBFIDO2_LIBS) $(LIBCRYPTO_LIBS) 28pam_u2f_la_LDFLAGS = -module -avoid-version 29 30if ENABLE_FUZZING 31pam_u2f_la_SOURCES += fuzz/wrap.c 32pam_u2f_la_LDFLAGS += -Wl,--wrap=strdup 33pam_u2f_la_LDFLAGS += -Wl,--wrap=calloc 34pam_u2f_la_LDFLAGS += -Wl,--wrap=malloc 35pam_u2f_la_LDFLAGS += -Wl,--wrap=open 36pam_u2f_la_LDFLAGS += -Wl,--wrap=close 37pam_u2f_la_LDFLAGS += -Wl,--wrap=fdopen 38pam_u2f_la_LDFLAGS += -Wl,--wrap=fstat 39pam_u2f_la_LDFLAGS += -Wl,--wrap=read 40pam_u2f_la_LDFLAGS += -Wl,--wrap=gethostname 41pam_u2f_la_LDFLAGS += -Wl,--wrap=getpwnam_r 42pam_u2f_la_LDFLAGS += -Wl,--wrap=getpwuid_r 43pam_u2f_la_LDFLAGS += -Wl,--wrap=geteuid 44pam_u2f_la_LDFLAGS += -Wl,--wrap=secure_getenv 45pam_u2f_la_LDFLAGS += -Wl,--wrap=pam_get_user 46pam_u2f_la_LDFLAGS += -Wl,--wrap=pam_get_item 47pam_u2f_la_LDFLAGS += -Wl,--wrap=pam_modutil_drop_priv 48pam_u2f_la_LDFLAGS += -Wl,--wrap=pam_modutil_regain_priv 49pam_u2f_la_LDFLAGS += -Wl,--wrap=BIO_new 50pam_u2f_la_LDFLAGS += -Wl,--wrap=BIO_write 51pam_u2f_la_LDFLAGS += -Wl,--wrap=BIO_read 52pam_u2f_la_LDFLAGS += -Wl,--wrap=BIO_ctrl 53pam_u2f_la_LDFLAGS += -Wl,--wrap=BIO_new_mem_buf 54pam_u2f_la_LDFLAGS += -Wl,--wrap=EC_KEY_new_by_curve_name 55pam_u2f_la_LDFLAGS += -Wl,--wrap=EC_KEY_get0_group 56pam_u2f_la_LDFLAGS += -Wl,--wrap=fido_dev_open 57pam_u2f_la_LDFLAGS += -Wl,--wrap=fido_dev_info_manifest 58endif 59 60DEFS = -DDEBUG_PAM -DPAM_DEBUG @DEFS@ 61 62if ENABLE_MAN 63dist_man8_MANS = $(top_builddir)/man/pam_u2f.8 64DISTCLEANFILES = $(dist_man8_MANS) 65 66MANSOURCES = $(top_builddir)/man/pam_u2f.8.txt 67EXTRA_DIST = $(MANSOURCES) 68 69SUFFIXES = .8.txt .8 70 71.8.txt.8: 72 $(A2X) --format=manpage -L -a revdate="Version $(VERSION)" $< 73endif 74 75# Release 76 77# XXX: make distcheck happy with install location of pam_u2f.so 78AM_DISTCHECK_CONFIGURE_FLAGS = --with-pam-dir='/$$(prefix)/$(PAMDIR)' 79 80install-exec-hook: 81 rm -f $(DESTDIR)$(pampluginexecdir)/pam_u2f.la 82 chmod -f 644 $(DESTDIR)$(pampluginexecdir)/pam_u2f.so || true 83 84uninstall-hook: 85 rm -f $(DESTDIR)$(pampluginexecdir)/pam_u2f.so 86 87indent: 88 clang-format -i *.c *.h pamu2fcfg/*.c pamu2fcfg/*.h 89 90ChangeLog: 91 cd $(srcdir) && git2cl > ChangeLog 92 93PROJECT = pam-u2f 94 95release: 96 @if test ! -d "$(YUBICO_WWW_REPO)"; then \ 97 echo "WWW repo not found!"; \ 98 echo "Make sure that YUBICO_WWW_REPO is set"; \ 99 exit 1; \ 100 fi 101 @if test -z "$(KEYID)"; then \ 102 echo "Try this instead:"; \ 103 echo " make release KEYID=[PGPKEYID]"; \ 104 echo "For example:"; \ 105 echo " make release KEYID=2117364A"; \ 106 exit 1; \ 107 fi 108 @head -5 $(srcdir)/NEWS | \ 109 grep -q "Version $(VERSION) .released `date -I`" || \ 110 (echo 'error: Update date/version in $(srcdir)/NEWS.'; exit 1) 111 rm -f $(srcdir)/ChangeLog 112 make ChangeLog distcheck 113 gpg --detach-sign --default-key $(KEYID) $(PACKAGE)-$(VERSION).tar.gz 114 gpg --verify $(PACKAGE)-$(VERSION).tar.gz.sig 115 cd $(srcdir) && git push 116 cd $(srcdir) && git tag -u $(KEYID) -m $(VERSION) $(PACKAGE)-$(VERSION) 117 cd $(srcdir) && git push --tags 118 $(YUBICO_WWW_REPO)/publish $(PROJECT) $(VERSION) $(PACKAGE)-$(VERSION).tar.gz* 119