aboutsummaryrefslogtreecommitdiff
path: root/net/quiche/Makefile
blob: 52fddce6b93341266dafd7418d64d0f8f30c8fd9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
PORTNAME=	quiche
DISTVERSION=	0.24.5
PORTREVISION=	3
CATEGORIES=	net

MAINTAINER=	junho.choi@gmail.com
COMMENT=	Savoury implementation of the QUIC transport protocol and HTTP/3
WWW=		https://crates.io/crates/quiche

LICENSE=	BSD2CLAUSE
LICENSE_FILE=	${WRKSRC}/COPYING

BUILD_DEPENDS=	git>0:devel/git

USES=		cargo llvm:build,lib
USE_GITHUB=	yes
GH_ACCOUNT=	cloudflare
GH_TUPLE=	google:boringssl:e1d6cd95a:boringssl/quiche/deps/boringssl
USE_LDCONFIG=	yes

CARGO_FEATURES=		ffi pkg-config-meta
CARGO_BUILD=		yes
CARGO_BUILD_ARGS+=	--workspace
CARGO_TEST=		yes
CARGO_TEST_ARGS+=	--all-targets

MAKE_ENV+=	BORING_BSSL_RUST_CPPLIB=c++

RUSTFLAGS=	${ARCH:S/i386/YES/:C/^[a-z].*//:S/YES/-C target-feature=+sse,+sse2/} # add sse sse2 target-features only on i386

PLIST_FILES=	bin/quiche-client \
		bin/quiche-server \
		include/quiche.h \
		lib/libquiche.a \
		lib/libquiche.so \
		lib/libquiche.so.${DISTVERSION} \
		lib/libquiche.so.${MAJOR_VER} \
		libdata/pkgconfig/quiche.pc
PORTDOCS=	README.md

OPTIONS_DEFINE=		DOCS QLOG
OPTIONS_DEFAULT=	DOCS QLOG

QLOG_DESC=	Enable qlog support
QLOG_VARS=	CARGO_FEATURES+=qlog

MAJOR_VER=	${DISTVERSION:C/\..*//}

post-patch:
	@${GREP} -FRl -- '-D_XOPEN_SOURCE=700' ${WRKSRC}/quiche/deps/boringssl | \
		${XARGS} ${REINPLACE_CMD} -e 's,-D_XOPEN_SOURCE=700,,'

# install quiche apps and libquiche
do-install:
	${INSTALL_DATA} ${WRKSRC}/quiche/include/quiche.h ${STAGEDIR}${PREFIX}/include
	${REINPLACE_CMD} -e "s|includedir=.*|prefix=${PREFIX}\nincludedir=\$${prefix}/include|" \
		-e "s|libdir=.*|libdir=\$${prefix}/lib|" \
		${CARGO_TARGET_DIR}/*/quiche.pc
	${INSTALL_DATA} ${CARGO_TARGET_DIR}/*/quiche.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig
	${INSTALL_LIB} ${CARGO_TARGET_DIR}/*/libquiche.so ${STAGEDIR}${PREFIX}/lib/libquiche.so.${DISTVERSION}
	${RLN} ${STAGEDIR}${PREFIX}/lib/libquiche.so.${DISTVERSION} ${STAGEDIR}${PREFIX}/lib/libquiche.so.${MAJOR_VER}
	${RLN} ${STAGEDIR}${PREFIX}/lib/libquiche.so.${DISTVERSION} ${STAGEDIR}${PREFIX}/lib/libquiche.so
	${INSTALL_DATA} ${CARGO_TARGET_DIR}/*/libquiche.a ${STAGEDIR}${PREFIX}/lib
	${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/*/quiche-server ${STAGEDIR}${PREFIX}/bin
	${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/*/quiche-client ${STAGEDIR}${PREFIX}/bin

do-install-DOCS-on:
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}

.include <bsd.port.mk>