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