xref: /openbsd/lib/libssl/Makefile (revision be03a99e)
1*be03a99eSjsing# $OpenBSD: Makefile,v 1.65 2020/05/10 14:22:51 jsing Exp $
2b6fe13c7Sbrad
333afedf6Sschwarze.include <bsd.own.mk>
433afedf6Sschwarze.ifndef NOMAN
5f1a3c524SschwarzeSUBDIR=	man
633afedf6Sschwarze.endif
733afedf6Sschwarze
8252ab50eSmiodPC_FILES=openssl.pc libssl.pc
97fb09174Sjasper
10f208b8a0SjsingCLEANFILES=${PC_FILES} ${VERSION_SCRIPT}
119bd621f3Sderaadt
1226febb63SbeckLIB=	ssl
1326febb63Sbeck
1426febb63SbeckCFLAGS+= -Wall -Wundef
15736f6d0bSdoug.if ${COMPILER_VERSION:L} == "clang"
1626febb63SbeckCFLAGS+= -Werror
1726febb63Sbeck.endif
1826febb63SbeckCFLAGS+= -DLIBRESSL_INTERNAL
19f69ab74fSjsing.ifdef TLS1_3
207214807fSjsingCFLAGS+= -DLIBRESSL_HAS_TLS1_3_CLIENT
217214807fSjsingCFLAGS+= -DLIBRESSL_HAS_TLS1_3_SERVER
22f69ab74fSjsing.endif
23*be03a99eSjsing.ifdef TLS1_3_DEBUG
24*be03a99eSjsingCFLAGS+= -DTLS13_DEBUG
25*be03a99eSjsing.endif
2626febb63SbeckCFLAGS+= -I${.CURDIR}
2726febb63Sbeck
2896236fe7SbcookLDADD+= -L${BSDOBJDIR}/lib/libcrypto -lcrypto
2926febb63Sbeck
30a9f45c63SguentherVERSION_SCRIPT=	Symbols.map
31a9f45c63SguentherSYMBOL_LIST=	${.CURDIR}/Symbols.list
32a9f45c63Sguenther
3326febb63SbeckSRCS= \
3487c5d849Sjsing	bio_ssl.c \
3587c5d849Sjsing	bs_ber.c \
3687c5d849Sjsing	bs_cbb.c \
3787c5d849Sjsing	bs_cbs.c \
3887c5d849Sjsing	d1_both.c \
3987c5d849Sjsing	d1_clnt.c \
4087c5d849Sjsing	d1_lib.c \
4187c5d849Sjsing	d1_pkt.c \
4287c5d849Sjsing	d1_srtp.c \
4387c5d849Sjsing	d1_srvr.c \
4487c5d849Sjsing	pqueue.c \
4587c5d849Sjsing	s3_cbc.c \
4687c5d849Sjsing	s3_lib.c \
4787c5d849Sjsing	ssl_algs.c \
4887c5d849Sjsing	ssl_asn1.c \
4987c5d849Sjsing	ssl_both.c \
5087c5d849Sjsing	ssl_cert.c \
5187c5d849Sjsing	ssl_ciph.c \
52a36841cfStb	ssl_ciphers.c \
5387c5d849Sjsing	ssl_clnt.c \
5487c5d849Sjsing	ssl_err.c \
5587c5d849Sjsing	ssl_init.c \
5669428dcaSjsing	ssl_kex.c \
5787c5d849Sjsing	ssl_lib.c \
5887c5d849Sjsing	ssl_methods.c \
5987c5d849Sjsing	ssl_packet.c \
6087c5d849Sjsing	ssl_pkt.c \
6187c5d849Sjsing	ssl_rsa.c \
6287c5d849Sjsing	ssl_sess.c \
6387c5d849Sjsing	ssl_sigalgs.c \
6487c5d849Sjsing	ssl_srvr.c \
6587c5d849Sjsing	ssl_stat.c \
6687c5d849Sjsing	ssl_tlsext.c \
671c0e4449Sjsing	ssl_transcript.c \
6887c5d849Sjsing	ssl_txt.c \
6987c5d849Sjsing	ssl_versions.c \
7087c5d849Sjsing	t1_enc.c \
7187c5d849Sjsing	t1_lib.c \
7287c5d849Sjsing	tls13_buffer.c \
7320290792Sjsing	tls13_client.c \
74c9989395Sjsing	tls13_error.c \
7587c5d849Sjsing	tls13_handshake.c \
769673436aSjsing	tls13_handshake_msg.c \
7787c5d849Sjsing	tls13_key_schedule.c \
784673309bSjsing	tls13_key_share.c \
798cf56ebeSjsing	tls13_legacy.c \
80389212baSjsing	tls13_lib.c \
812502d49fSjsing	tls13_record.c \
828630be86Sjsing	tls13_record_layer.c \
838630be86Sjsing	tls13_server.c
8426febb63Sbeck
8587c5d849SjsingHDRS=	dtls1.h srtp.h ssl.h ssl2.h ssl23.h ssl3.h tls1.h
8626febb63Sbeck
8726febb63Sbeck.PATH:	${.CURDIR}
8826febb63Sbeck
89c1fdfe6bSjsingcheck_includes:
90c1fdfe6bSjsing	@cd ${.CURDIR}; for i in $(HDRS); do \
91c1fdfe6bSjsing	    j="cmp -s $$i ${DESTDIR}/usr/include/openssl/`basename $$i` || \
92c1fdfe6bSjsing		(echo \"`basename $$i` differs from installed version; \" \
93c1fdfe6bSjsing	        \"did you forget 'make includes'?\" && false)"; \
94c1fdfe6bSjsing	    eval "$$j"; \
95c1fdfe6bSjsing	done;
96c1fdfe6bSjsing
97c1fdfe6bSjsingall: check_includes
98c1fdfe6bSjsing
9926febb63Sbeckincludes:
10026febb63Sbeck	@test -d ${DESTDIR}/usr/include/openssl || \
10126febb63Sbeck	    mkdir ${DESTDIR}/usr/include/openssl
10226febb63Sbeck	@cd ${.CURDIR}; for i in $(HDRS); do \
10326febb63Sbeck	    j="cmp -s $$i ${DESTDIR}/usr/include/openssl/`basename $$i` || \
10426febb63Sbeck	    ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 444 $$i\
10526febb63Sbeck		${DESTDIR}/usr/include/openssl"; \
10626febb63Sbeck	    echo $$j; \
10726febb63Sbeck	    eval "$$j"; \
10826febb63Sbeck	done;
10926febb63Sbeck
110a9f45c63Sguenther${VERSION_SCRIPT}: ${SYMBOL_LIST}
111a9f45c63Sguenther	{ printf '{\n\tglobal:\n'; \
112a9f45c63Sguenther	  sed '/^[._a-zA-Z]/s/$$/;/; s/^/		/' ${SYMBOL_LIST}; \
113a9f45c63Sguenther	  printf '\n\tlocal:\n\t\t*;\n};\n'; } >$@.tmp && mv $@.tmp $@
114a9f45c63Sguenther
11526febb63Sbeck.include <bsd.lib.mk>
11626febb63Sbeck
117e62d0eeaSnatanoall: ${PC_FILES}
11853c02d25Snatano${PC_FILES}: ${.CURDIR}/../libcrypto/opensslv.h
11953c02d25Snatano	/bin/sh ${.CURDIR}/generate_pkgconfig.sh -c ${.CURDIR} -o ${.OBJDIR}
12053c02d25Snatano
121e62d0eeaSnatanobeforeinstall:
12226febb63Sbeck	nm -o lib${LIB}.a | egrep -w 'printf|fprintf' && \
12326febb63Sbeck	    (echo please fix stdio usage in this library; false) || true
1247fb09174Sjasper.for p in ${PC_FILES}
1257fb09174Sjasper	${INSTALL} ${INSTALL_COPY} -o root -g ${SHAREGRP} \
1267fb09174Sjasper	    -m ${SHAREMODE} ${.OBJDIR}/$p ${DESTDIR}/usr/lib/pkgconfig/
1277fb09174Sjasper.endfor
1287fb09174Sjasper
12941b8aa9eSderaadt.include <bsd.subdir.mk>
130