1# 2# $FreeBSD$ 3# 4 5PACKAGE=lib${LIB} 6SHLIBDIR?= /lib 7 8.include <src.opts.mk> 9 10SHLIB_MAJOR= 5 11LIB= crypt 12 13.PATH: ${.CURDIR}/../libmd ${.CURDIR}/../../sys/crypto/sha2 ${.CURDIR}/../../sys/crypto/skein 14SRCS= crypt.c misc.c \ 15 crypt-md5.c md5c.c \ 16 crypt-nthash.c md4c.c \ 17 crypt-sha256.c sha256c.c \ 18 crypt-sha512.c sha512c.c \ 19 skein.c skein_block.c 20MAN= crypt.3 21MLINKS= crypt.3 crypt_get_format.3 crypt.3 crypt_set_format.3 22CFLAGS+= -I${.CURDIR}/../libmd -I${.CURDIR}/../libutil \ 23 -I${.CURDIR}/../../sys/crypto/sha2 -I${.CURDIR}/../../sys/crypto/skein 24 25# Use assembly optimized skein if available 26.if exists(${MACHINE_ARCH}/skein_block_asm.s) 27.PATH: ${.CURDIR}/../../sys/crypto/skein/${MACHINE_ARCH} 28SRCS += skein_block_asm.s 29CFLAGS += -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792 30ACFLAGS += -DELF -Wa,--noexecstack 31.endif 32 33# Pull in the strong crypto, if it is present. 34.if exists(${.CURDIR}/../../secure/lib/libcrypt) && ${MK_CRYPT} != "no" 35.PATH: ${.CURDIR}/../../secure/lib/libcrypt 36SRCS+= crypt-des.c crypt-blowfish.c blowfish.c 37CFLAGS+= -I${.CURDIR} -DHAS_DES -DHAS_BLOWFISH 38.endif 39 40.for sym in MD4Init MD4Final MD4Update MD4Pad \ 41 MD5Init MD5Final MD5Update MD5Pad \ 42 SHA256_Init SHA256_Final SHA256_Update \ 43 SHA512_224_Init SHA512_224_Final SHA512_224_Update \ 44 SHA512_256_Init SHA512_256_Final SHA512_256_Update \ 45 SHA384_Init SHA384_Final SHA384_Update \ 46 SHA512_Init SHA512_Final SHA512_Update \ 47 SKEIN256_Init SKEIN256_Final SKEIN256_Update \ 48 SKEIN512_Init SKEIN512_Final SKEIN512_Update \ 49 SKEIN1024_Init SKEIN1024_Final SKEIN1024_Update 50CFLAGS+= -D${sym}=__${sym} 51.endfor 52 53WARNS?= 2 54 55PRECIOUSLIB= 56 57.if ${MK_TESTS} != "no" 58SUBDIR+= tests 59.endif 60 61.include <bsd.lib.mk> 62.include <bsd.subdir.mk> 63