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