xref: /openbsd/regress/lib/libcrypto/bn/Makefile (revision 5dea098c)
1#	$OpenBSD: Makefile,v 1.38 2024/04/09 14:59:57 jsing Exp $
2
3PROGS +=	bn_add_sub
4PROGS +=	bn_bits
5PROGS +=	bn_cmp
6PROGS +=	bn_convert
7PROGS +=	bn_gcd
8PROGS +=	bn_general
9PROGS +=	bn_isqrt
10PROGS +=	bn_mod_exp
11PROGS +=	bn_mod_inverse
12PROGS +=	bn_mod_sqrt
13PROGS +=	bn_mont
14PROGS +=	bn_mul_div
15PROGS +=	bn_primes
16PROGS +=	bn_print
17PROGS +=	bn_shift
18PROGS +=	bn_test
19PROGS +=	bn_to_string
20PROGS +=	bn_unit
21PROGS +=	bn_word
22
23STATIC_LINK +=	bn_gcd
24STATIC_LINK +=	bn_isqrt
25STATIC_LINK +=	bn_mod_exp
26STATIC_LINK +=	bn_print
27STATIC_LINK +=	bn_test
28
29LDADD =		-lcrypto
30DPADD =		${LIBCRYPTO}
31WARNINGS =	Yes
32CFLAGS +=	-Wall -Wundef -Werror
33CFLAGS +=	-I${.CURDIR}/../../../../lib/libcrypto/bn/
34CFLAGS +=	-I${.CURDIR}/../../../../lib/libcrypto/bn/arch/${MACHINE_CPU}/
35
36# Use default targets from bsd.regress.mk unless overridden below
37REGRESS_TARGETS = ${PROGS:S/^/run-regress-/}
38
39# Verify that the bn_isqrt -C output isn't changed by accident.
40isqrt-print-tables: bn_isqrt
41	@./bn_isqrt -C
42.PHONY: isqrt-print-tables
43
44bn_isqrt_gen_tables.txt: bn_isqrt
45	${.MAKE} -C ${.CURDIR} isqrt-print-tables > $@.tmp
46	mv -f $@.tmp $@
47
48REGRESS_TARGETS +=	run-bn_isqrt_check_tables
49.PHONY:			run-bn_isqrt_check_tables
50run-bn_isqrt_check_tables: bn_isqrt_gen_tables.txt
51	diff -pu ${.CURDIR}/bn_isqrt_tables.txt bn_isqrt_gen_tables.txt
52
53CLEANFILES += bn_isqrt_gen_tables.txt.tmp bn_isqrt_gen_tables.txt
54
55# bn_test is special, so override bsd.regress.mk's run-regress-bn_test
56run-regress-bn_test bn_test.out: bn_test
57	./bn_test -out bn_test.out
58
59.if exists(/usr/local/bin/bc-gh)
60BC ?=	bc-gh
61.endif
62BC ?=	bc
63
64REGRESS_TARGETS +=	run-bc
65.PHONY: 		run-bc
66run-bc: bn_test.out
67	${BC} < $> | tee bc.out | grep -v '^0$$'
68	! grep -v '^test ' <bc.out | grep -v '^0$$'
69
70CLEANFILES +=	bn_test.out bc.out
71
72benchmark: bn_mul_div bn_shift
73	./bn_mul_div --benchmark
74	./bn_shift --benchmark
75.PHONY: benchmark
76
77.for p in ${STATIC_LINK}
78LDADD_$p +=	${CRYPTO_INT}
79.endfor
80
81SRCS_bn_primes = bn_primes.c bn_small_primes.c
82
83.PATH: ${.CURDIR}/../../../../lib/libcrypto/bn
84
85.include <bsd.regress.mk>
86