1cflags{
2 '-std=c11', '-Wall', '-Wextra', '-Wpedantic',
3 '-Wno-overflow', -- ioctl opcode conversion
4 '-include $outdir/config.h',
5 '-D _GNU_SOURCE',
6 '-D _DEFAULT_SOURCE',
7 '-D _FIDO_INTERNAL',
8 '-I $srcdir/src',
9 '-isystem $basedir/pkg/openbsd/include',
10 '-isystem $builddir/pkg/bearssl/include',
11 '-isystem $builddir/pkg/libcbor/include',
12 '-isystem $builddir/pkg/linux-headers/include',
13 '-isystem $builddir/pkg/zlib/include',
14}
15
16pkg.hdrs = copy('$outdir/include', '$srcdir/src', {
17 'fido.h',
18 'fido/credman.h',
19 'fido/err.h',
20 'fido/param.h',
21 'fido/types.h',
22})
23pkg.deps = {
24 '$outdir/config.h',
25 'pkg/bearssl/headers',
26 'pkg/libcbor/headers',
27 'pkg/linux-headers/headers',
28 'pkg/zlib/headers',
29}
30
31build('cat', '$outdir/config.h', {
32 '$builddir/probe/HAVE__THREAD_LOCAL',
33 '$dir/config.h',
34})
35
36lib('libfido2.a', [[
37 src/(
38 aes256.c
39 assert.c
40 authkey.c
41 bio.c
42 blob.c
43 buf.c
44 cbor.c
45 compress.c
46 config.c
47 cred.c
48 credman.c
49 dev.c
50 ecdh.c
51 eddsa.c
52 err.c
53 es256.c
54 hid.c
55 info.c
56 io.c
57 iso7816.c
58 largeblob.c
59 log.c
60 pin.c
61 random.c
62 reset.c
63 rs1.c
64 rs256.c
65 time.c
66 tpm.c
67 types.c
68 u2f.c
69
70 hid_linux.c
71 hid_unix.c
72 )
73 $builddir/pkg/bearssl/libbearssl.a
74 $builddir/pkg/libcbor/libcbor.a
75 $builddir/pkg/openbsd/libbsd.a
76 $builddir/pkg/zlib/libz.a
77]])
78
79lib('libcommon.a', [[tools/(base64.c util.c)]])
80
81exe('fido2-cred', [[
82 tools/(
83 fido2-cred.c
84 cred_make.c
85 cred_verify.c
86 )
87 libcommon.a
88 libfido2.a.d
89]])
90file('bin/fido2-cred', '755', '$outdir/fido2-cred')
91man{'man/fido2-cred.1'}
92
93exe('fido2-token', [[
94 tools/(
95 fido2-token.c
96 bio.c
97 config.c
98 credman.c
99 largeblob.c
100 pin.c
101 token.c
102 )
103 libcommon.a
104 libfido2.a.d
105]])
106file('bin/fido2-token', '755', '$outdir/fido2-token')
107man{'man/fido2-token.1'}
108
109fetch 'git'