xref: /openbsd/lib/libfido2/Makefile (revision 274d7c50)
1# $OpenBSD: Makefile,v 1.3 2019/11/15 03:19:40 deraadt Exp $
2
3.PATH:	${.CURDIR}/man ${.CURDIR}/src
4
5CFLAGS+= -I${.CURDIR}/src -D_FIDO_INTERNAL -DHAVE_UNISTD_H -std=c99
6
7WARNINGS=	yes
8CDIAGFLAGS+=	-Wall -Wextra
9CDIAGFLAGS+=	-Werror
10
11LDADD+=		-L${BSDOBJDIR}/lib/libcbor -lcbor
12LDADD+=		-L${BSDOBJDIR}/lib/libusbhid -lusbhid
13
14SYMBOL_LIST=	Symbols.list
15VERSION_SCRIPT=	Symbols.map
16CLEANFILES=	${SYMBOL_LIST} ${VERSION_SCRIPT}
17
18LIB=	fido2
19SRCS=	aes256.c assert.c authkey.c bio.c blob.c buf.c cbor.c cred.c credman.c
20SRCS+=	dev.c ecdh.c eddsa.c err.c es256.c hid.c hid_openbsd.c info.c io.c
21SRCS+=	iso7816.c log.c pin.c reset.c rs256.c u2f.c
22
23HDRS=	fido.h fido/bio.h fido/credman.h fido/eddsa.h fido/err.h
24HDRS+=	fido/es256.h fido/param.h fido/rs256.h
25
26NOMAN=	# XXX pending cleanup
27#MAN=	eddsa_pk.3 es256_pk.3 fido.3 fido2-assert.1 fido2-cred.1 fido2-token.1
28#MAN+=	fido_assert.3 fido_assert_allow_cred.3 fido_assert_set.3
29#MAN+=	fido_assert_verify.3 fido_bio_dev.3 fido_bio_enroll.3
30#MAN+=	fido_bio_info.3 fido_bio_template.3 fido_cbor_info.3 fido_cred.3
31#MAN+=	fido_cred_exclude.3 fido_cred_set.3 fido_cred_verify.3 fido_credman.3
32#MAN+=	fido_dev_get_assert.3 fido_dev_info_manifest.3 fido_dev_make_cred.3
33#MAN+=	fido_dev_open.3 fido_dev_set_io_functions.3 fido_dev_set_pin.3
34#MAN+=	fido_strerr.3 rs256_pk.3
35
36includes:
37	@for i in $(HDRS); do \
38		j="test -d ${DESTDIR}/usr/include/`dirname $$i` || \
39		    ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \
40		    ${DESTDIR}/usr/include/`dirname $$i`"; \
41		echo $$j; \
42		eval "$$j"; \
43		j="cmp -s src/$$i ${DESTDIR}/usr/include/$$i || \
44		    ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} \
45		    -m 444 ${.CURDIR}/src/$$i ${DESTDIR}/usr/include/$$i"; \
46		echo $$j; \
47		eval "$$j"; \
48	done
49
50${SYMBOL_LIST}: ${.CURDIR}/src/export.llvm
51	sort ${.CURDIR}/src/export.llvm | sed 's/^_//' > $@.tmp && mv $@.tmp $@
52
53${VERSION_SCRIPT}: ${SYMBOL_LIST}
54	{ printf '{\n\tglobal:\n'; \
55	  sed '/^[._a-zA-Z]/s/$$/;/; s/^/		/' ${SYMBOL_LIST}; \
56	  printf '\n\tlocal:\n\t\t*;\n};\n'; } >$@.tmp && mv $@.tmp $@
57
58.include <bsd.lib.mk>
59