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