xref: /OK3568_Linux_fs/buildroot/package/libcurl/libcurl.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# libcurl
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunLIBCURL_VERSION = 7.79.1
8*4882a593SmuzhiyunLIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.xz
9*4882a593SmuzhiyunLIBCURL_SITE = https://curl.se/download
10*4882a593SmuzhiyunLIBCURL_DEPENDENCIES = host-pkgconf \
11*4882a593Smuzhiyun	$(if $(BR2_PACKAGE_ZLIB),zlib) \
12*4882a593Smuzhiyun	$(if $(BR2_PACKAGE_RTMPDUMP),rtmpdump)
13*4882a593SmuzhiyunLIBCURL_LICENSE = curl
14*4882a593SmuzhiyunLIBCURL_LICENSE_FILES = COPYING
15*4882a593SmuzhiyunLIBCURL_CPE_ID_VENDOR = haxx
16*4882a593SmuzhiyunLIBCURL_CPE_ID_PRODUCT = libcurl
17*4882a593SmuzhiyunLIBCURL_INSTALL_STAGING = YES
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun# We disable NTLM support because it uses fork(), which doesn't work
20*4882a593Smuzhiyun# on non-MMU platforms. Moreover, this authentication method is
21*4882a593Smuzhiyun# probably almost never used. See
22*4882a593Smuzhiyun# http://curl.se/docs/manpage.html#--ntlm.
23*4882a593Smuzhiyun# Likewise, there is no compiler on the target, so libcurl-option (to
24*4882a593Smuzhiyun# generate C code) isn't very useful
25*4882a593SmuzhiyunLIBCURL_CONF_OPTS = --disable-manual --disable-ntlm-wb \
26*4882a593Smuzhiyun	--enable-hidden-symbols --with-random=/dev/urandom --disable-curldebug \
27*4882a593Smuzhiyun	--disable-libcurl-option --disable-ldap --disable-ldaps
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
30*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --enable-threaded-resolver
31*4882a593Smuzhiyunelse
32*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --disable-threaded-resolver
33*4882a593Smuzhiyunendif
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_VERBOSE),y)
36*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --enable-verbose
37*4882a593Smuzhiyunelse
38*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --disable-verbose
39*4882a593Smuzhiyunendif
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunLIBCURL_CONFIG_SCRIPTS = curl-config
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_OPENSSL),y)
44*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += openssl
45*4882a593Smuzhiyun# configure adds the cross openssl dir to LD_LIBRARY_PATH which screws up
46*4882a593Smuzhiyun# native stuff during the rest of configure when target == host.
47*4882a593Smuzhiyun# Fix it by setting LD_LIBRARY_PATH to something sensible so those libs
48*4882a593Smuzhiyun# are found first.
49*4882a593SmuzhiyunLIBCURL_CONF_ENV += LD_LIBRARY_PATH=$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)/lib:/usr/lib
50*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-ssl=$(STAGING_DIR)/usr \
51*4882a593Smuzhiyun	--with-ca-path=/etc/ssl/certs
52*4882a593Smuzhiyunelse
53*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-ssl
54*4882a593Smuzhiyunendif
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_BEARSSL),y)
57*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-bearssl=$(STAGING_DIR)/usr
58*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += bearssl
59*4882a593Smuzhiyunelse
60*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-bearssl
61*4882a593Smuzhiyunendif
62*4882a593Smuzhiyun
63*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_GNUTLS),y)
64*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-gnutls=$(STAGING_DIR)/usr \
65*4882a593Smuzhiyun	--with-ca-fallback
66*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += gnutls
67*4882a593Smuzhiyunelse
68*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-gnutls
69*4882a593Smuzhiyunendif
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_LIBNSS),y)
72*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-nss=$(STAGING_DIR)/usr
73*4882a593SmuzhiyunLIBCURL_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) `$(PKG_CONFIG_HOST_BINARY) nspr nss --cflags`"
74*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += libnss
75*4882a593Smuzhiyunelse
76*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-nss
77*4882a593Smuzhiyunendif
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_MBEDTLS),y)
80*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-mbedtls=$(STAGING_DIR)/usr
81*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += mbedtls
82*4882a593Smuzhiyunelse
83*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-mbedtls
84*4882a593Smuzhiyunendif
85*4882a593Smuzhiyun
86*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_WOLFSSL),y)
87*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-wolfssl=$(STAGING_DIR)/usr
88*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += wolfssl
89*4882a593Smuzhiyunelse
90*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-wolfssl
91*4882a593Smuzhiyunendif
92*4882a593Smuzhiyun
93*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_C_ARES),y)
94*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += c-ares
95*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --enable-ares
96*4882a593Smuzhiyunelse
97*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --disable-ares
98*4882a593Smuzhiyunendif
99*4882a593Smuzhiyun
100*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBIDN2),y)
101*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += libidn2
102*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-libidn2
103*4882a593Smuzhiyunelse
104*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-libidn2
105*4882a593Smuzhiyunendif
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun# Configure curl to support libssh2
108*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBSSH2),y)
109*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += libssh2
110*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-libssh2
111*4882a593Smuzhiyunelse
112*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-libssh2
113*4882a593Smuzhiyunendif
114*4882a593Smuzhiyun
115*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_BROTLI),y)
116*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += brotli
117*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-brotli
118*4882a593Smuzhiyunelse
119*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-brotli
120*4882a593Smuzhiyunendif
121*4882a593Smuzhiyun
122*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_NGHTTP2),y)
123*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += nghttp2
124*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-nghttp2
125*4882a593Smuzhiyunelse
126*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-nghttp2
127*4882a593Smuzhiyunendif
128*4882a593Smuzhiyun
129*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBGSASL),y)
130*4882a593SmuzhiyunLIBCURL_DEPENDENCIES += libgsasl
131*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --with-gsasl
132*4882a593Smuzhiyunelse
133*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --without-gsasl
134*4882a593Smuzhiyunendif
135*4882a593Smuzhiyun
136*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_COOKIES_SUPPORT),y)
137*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --enable-cookies
138*4882a593Smuzhiyunelse
139*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --disable-cookies
140*4882a593Smuzhiyunendif
141*4882a593Smuzhiyun
142*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_PROXY_SUPPORT),y)
143*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --enable-proxy
144*4882a593Smuzhiyunelse
145*4882a593SmuzhiyunLIBCURL_CONF_OPTS += --disable-proxy
146*4882a593Smuzhiyunendif
147*4882a593Smuzhiyun
148*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_EXTRA_PROTOCOLS_FEATURES),y)
149*4882a593SmuzhiyunLIBCURL_CONF_OPTS += \
150*4882a593Smuzhiyun	--enable-dict \
151*4882a593Smuzhiyun	--enable-gopher \
152*4882a593Smuzhiyun	--enable-imap \
153*4882a593Smuzhiyun	--enable-pop3 \
154*4882a593Smuzhiyun	--enable-rtsp \
155*4882a593Smuzhiyun	--enable-smb \
156*4882a593Smuzhiyun	--enable-smtp \
157*4882a593Smuzhiyun	--enable-telnet \
158*4882a593Smuzhiyun	--enable-tftp
159*4882a593Smuzhiyunelse
160*4882a593SmuzhiyunLIBCURL_CONF_OPTS += \
161*4882a593Smuzhiyun	--disable-dict \
162*4882a593Smuzhiyun	--disable-gopher \
163*4882a593Smuzhiyun	--disable-imap \
164*4882a593Smuzhiyun	--disable-pop3 \
165*4882a593Smuzhiyun	--disable-rtsp \
166*4882a593Smuzhiyun	--disable-smb \
167*4882a593Smuzhiyun	--disable-smtp \
168*4882a593Smuzhiyun	--disable-telnet \
169*4882a593Smuzhiyun	--disable-tftp
170*4882a593Smuzhiyunendif
171*4882a593Smuzhiyun
172*4882a593Smuzhiyundefine LIBCURL_FIX_DOT_PC
173*4882a593Smuzhiyun	printf 'Requires: openssl\n' >>$(@D)/libcurl.pc.in
174*4882a593Smuzhiyunendef
175*4882a593SmuzhiyunLIBCURL_POST_PATCH_HOOKS += $(if $(BR2_PACKAGE_LIBCURL_OPENSSL),LIBCURL_FIX_DOT_PC)
176*4882a593Smuzhiyun
177*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBCURL_CURL),)
178*4882a593Smuzhiyundefine LIBCURL_TARGET_CLEANUP
179*4882a593Smuzhiyun	rm -rf $(TARGET_DIR)/usr/bin/curl
180*4882a593Smuzhiyunendef
181*4882a593SmuzhiyunLIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP
182*4882a593Smuzhiyunendif
183*4882a593Smuzhiyun
184*4882a593SmuzhiyunHOST_LIBCURL_DEPENDENCIES = host-openssl
185*4882a593SmuzhiyunHOST_LIBCURL_CONF_OPTS = \
186*4882a593Smuzhiyun	--disable-manual \
187*4882a593Smuzhiyun	--disable-ntlm-wb \
188*4882a593Smuzhiyun	--disable-curldebug \
189*4882a593Smuzhiyun	--with-ssl \
190*4882a593Smuzhiyun	--without-gnutls \
191*4882a593Smuzhiyun	--without-mbedtls \
192*4882a593Smuzhiyun	--without-nss
193*4882a593Smuzhiyun
194*4882a593SmuzhiyunHOST_LIBCURL_POST_PATCH_HOOKS += LIBCURL_FIX_DOT_PC
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun$(eval $(autotools-package))
197*4882a593Smuzhiyun$(eval $(host-autotools-package))
198