xref: /freebsd/lib/libcrypt/Makefile (revision ee5cf11617a9b7f034d95c639bd4d27d1f09e848)
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