1# $OpenBSD: Makefile,v 1.81 2023/11/22 15:55:28 tb Exp $
2
3.include <bsd.own.mk>
4.ifndef NOMAN
5SUBDIR=	man
6.endif
7
8PC_FILES=openssl.pc libssl.pc
9
10CLEANFILES=${PC_FILES} ${VERSION_SCRIPT}
11
12LIB=	ssl
13
14CFLAGS+= -Wall -Wundef
15.if ${COMPILER_VERSION:L} == "clang"
16CFLAGS+= -Werror -Wshadow
17.endif
18CFLAGS+= -DLIBRESSL_INTERNAL
19.ifdef NAMESPACE
20CFLAGS+= -DLIBRESSL_NAMESPACE
21.endif
22.ifdef TLS1_3_DEBUG
23CFLAGS+= -DTLS13_DEBUG
24.endif
25CFLAGS+= -I${.CURDIR}
26CFLAGS+= -I${.CURDIR}/../libcrypto/hidden
27CFLAGS+= -I${.CURDIR}/../libcrypto/bio
28CFLAGS+= -I${.CURDIR}/hidden
29
30LDADD+= -L${BSDOBJDIR}/lib/libcrypto -lcrypto
31
32VERSION_SCRIPT=	Symbols.map
33SYMBOL_LIST=	${.CURDIR}/Symbols.list
34
35SRCS= \
36	bio_ssl.c \
37	bs_ber.c \
38	bs_cbb.c \
39	bs_cbs.c \
40	d1_both.c \
41	d1_lib.c \
42	d1_pkt.c \
43	d1_srtp.c \
44	pqueue.c \
45	s3_cbc.c \
46	s3_lib.c \
47	ssl_asn1.c \
48	ssl_both.c \
49	ssl_cert.c \
50	ssl_ciph.c \
51	ssl_ciphers.c \
52	ssl_clnt.c \
53	ssl_err.c \
54	ssl_init.c \
55	ssl_kex.c \
56	ssl_lib.c \
57	ssl_methods.c \
58	ssl_packet.c \
59	ssl_pkt.c \
60	ssl_rsa.c \
61	ssl_seclevel.c \
62	ssl_sess.c \
63	ssl_sigalgs.c \
64	ssl_srvr.c \
65	ssl_stat.c \
66	ssl_tlsext.c \
67	ssl_transcript.c \
68	ssl_txt.c \
69	ssl_versions.c \
70	t1_enc.c \
71	t1_lib.c \
72	tls12_key_schedule.c \
73	tls12_lib.c \
74	tls12_record_layer.c \
75	tls13_client.c \
76	tls13_error.c \
77	tls13_handshake.c \
78	tls13_handshake_msg.c \
79	tls13_key_schedule.c \
80	tls13_legacy.c \
81	tls13_lib.c \
82	tls13_quic.c \
83	tls13_record.c \
84	tls13_record_layer.c \
85	tls13_server.c \
86	tls_buffer.c \
87	tls_content.c \
88	tls_key_share.c \
89	tls_lib.c
90
91HDRS=	dtls1.h srtp.h ssl.h ssl2.h ssl23.h ssl3.h tls1.h
92
93.PATH:	${.CURDIR}
94
95includes:
96	@test -d ${DESTDIR}/usr/include/openssl || \
97	    mkdir ${DESTDIR}/usr/include/openssl
98	@cd ${.CURDIR}; for i in $(HDRS); do \
99	    j="cmp -s $$i ${DESTDIR}/usr/include/openssl/`basename $$i` || \
100	    ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 444 $$i\
101		${DESTDIR}/usr/include/openssl"; \
102	    echo $$j; \
103	    eval "$$j"; \
104	done;
105
106${VERSION_SCRIPT}: ${SYMBOL_LIST}
107	{ printf '{\n\tglobal:\n'; \
108	  sed '/^[._a-zA-Z]/s/$$/;/; s/^/		/' ${SYMBOL_LIST}; \
109	  printf '\n\tlocal:\n\t\t*;\n};\n'; } >$@.tmp && mv $@.tmp $@
110
111.include <bsd.lib.mk>
112
113all: ${PC_FILES}
114${PC_FILES}: ${.CURDIR}/../libcrypto/opensslv.h
115	/bin/sh ${.CURDIR}/generate_pkgconfig.sh -c ${.CURDIR} -o ${.OBJDIR}
116
117beforeinstall:
118	nm -o lib${LIB}.a | egrep -w 'printf|fprintf' && \
119	    (echo please fix stdio usage in this library; false) || true
120.for p in ${PC_FILES}
121	${INSTALL} ${INSTALL_COPY} -o root -g ${SHAREGRP} \
122	    -m ${SHAREMODE} ${.OBJDIR}/$p ${DESTDIR}/usr/lib/pkgconfig/
123.endfor
124
125.include <bsd.subdir.mk>
126