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