xref: /netbsd/external/bsd/pam-u2f/dist/Makefile.am (revision 672d764f)
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