1*6236dae4SAndroid Build Coastguard Worker#*************************************************************************** 2*6236dae4SAndroid Build Coastguard Worker# _ _ ____ _ 3*6236dae4SAndroid Build Coastguard Worker# Project ___| | | | _ \| | 4*6236dae4SAndroid Build Coastguard Worker# / __| | | | |_) | | 5*6236dae4SAndroid Build Coastguard Worker# | (__| |_| | _ <| |___ 6*6236dae4SAndroid Build Coastguard Worker# \___|\___/|_| \_\_____| 7*6236dae4SAndroid Build Coastguard Worker# 8*6236dae4SAndroid Build Coastguard Worker# Copyright (C) Daniel Stenberg, <[email protected]>, et al. 9*6236dae4SAndroid Build Coastguard Worker# 10*6236dae4SAndroid Build Coastguard Worker# This software is licensed as described in the file COPYING, which 11*6236dae4SAndroid Build Coastguard Worker# you should have received as part of this distribution. The terms 12*6236dae4SAndroid Build Coastguard Worker# are also available at https://curl.se/docs/copyright.html. 13*6236dae4SAndroid Build Coastguard Worker# 14*6236dae4SAndroid Build Coastguard Worker# You may opt to use, copy, modify, merge, publish, distribute and/or sell 15*6236dae4SAndroid Build Coastguard Worker# copies of the Software, and permit persons to whom the Software is 16*6236dae4SAndroid Build Coastguard Worker# furnished to do so, under the terms of the COPYING file. 17*6236dae4SAndroid Build Coastguard Worker# 18*6236dae4SAndroid Build Coastguard Worker# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19*6236dae4SAndroid Build Coastguard Worker# KIND, either express or implied. 20*6236dae4SAndroid Build Coastguard Worker# 21*6236dae4SAndroid Build Coastguard Worker# SPDX-License-Identifier: curl 22*6236dae4SAndroid Build Coastguard Worker# 23*6236dae4SAndroid Build Coastguard Worker#*************************************************************************** 24*6236dae4SAndroid Build Coastguard Worker 25*6236dae4SAndroid Build Coastguard Worker# Makefile to build curl parts with GCC-like toolchains and optional features. 26*6236dae4SAndroid Build Coastguard Worker# 27*6236dae4SAndroid Build Coastguard Worker# Usage: make -f Makefile.mk CFG=-feat1[-feat2][-feat3][...] 28*6236dae4SAndroid Build Coastguard Worker# Example: make -f Makefile.mk CFG=-zlib-ssl-libssh2-ipv6 29*6236dae4SAndroid Build Coastguard Worker# 30*6236dae4SAndroid Build Coastguard Worker# Look for ' ?=' to find accepted customization variables. 31*6236dae4SAndroid Build Coastguard Worker 32*6236dae4SAndroid Build Coastguard Worker# This script is reused by 'src' and 'docs/examples' Makefile.mk scripts. 33*6236dae4SAndroid Build Coastguard Worker 34*6236dae4SAndroid Build Coastguard Workerifndef PROOT 35*6236dae4SAndroid Build Coastguard Worker PROOT := .. 36*6236dae4SAndroid Build Coastguard Worker LOCAL := 1 37*6236dae4SAndroid Build Coastguard Workerendif 38*6236dae4SAndroid Build Coastguard Worker 39*6236dae4SAndroid Build Coastguard Worker### Common 40*6236dae4SAndroid Build Coastguard Worker 41*6236dae4SAndroid Build Coastguard WorkerCFLAGS ?= 42*6236dae4SAndroid Build Coastguard WorkerCPPFLAGS ?= 43*6236dae4SAndroid Build Coastguard WorkerLDFLAGS ?= 44*6236dae4SAndroid Build Coastguard WorkerLIBS ?= 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard WorkerCROSSPREFIX ?= 47*6236dae4SAndroid Build Coastguard Worker 48*6236dae4SAndroid Build Coastguard Workerifeq ($(CC),cc) 49*6236dae4SAndroid Build Coastguard Worker CC := gcc 50*6236dae4SAndroid Build Coastguard Workerendif 51*6236dae4SAndroid Build Coastguard WorkerCC := $(CROSSPREFIX)$(CC) 52*6236dae4SAndroid Build Coastguard WorkerAR := $(CROSSPREFIX)$(AR) 53*6236dae4SAndroid Build Coastguard Worker 54*6236dae4SAndroid Build Coastguard WorkerTRIPLET ?= $(shell $(CC) -dumpmachine) 55*6236dae4SAndroid Build Coastguard Worker 56*6236dae4SAndroid Build Coastguard WorkerBIN_EXT := 57*6236dae4SAndroid Build Coastguard Worker 58*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring msdos,$(TRIPLET)),) 59*6236dae4SAndroid Build Coastguard Worker # Cross-tools: https://github.com/andrewwutw/build-djgpp 60*6236dae4SAndroid Build Coastguard Worker MSDOS := 1 61*6236dae4SAndroid Build Coastguard Worker BIN_EXT := .exe 62*6236dae4SAndroid Build Coastguard Workerelse ifneq ($(findstring amigaos,$(TRIPLET)),) 63*6236dae4SAndroid Build Coastguard Worker # Cross-tools: https://github.com/bebbo/amiga-gcc 64*6236dae4SAndroid Build Coastguard Worker AMIGA := 1 65*6236dae4SAndroid Build Coastguard Workerendif 66*6236dae4SAndroid Build Coastguard Worker 67*6236dae4SAndroid Build Coastguard WorkerCPPFLAGS += -I. -I$(PROOT)/include 68*6236dae4SAndroid Build Coastguard Worker 69*6236dae4SAndroid Build Coastguard Worker### Deprecated settings. For compatibility. 70*6236dae4SAndroid Build Coastguard Worker 71*6236dae4SAndroid Build Coastguard Workerifdef WATT_ROOT 72*6236dae4SAndroid Build Coastguard Worker WATT_PATH := $(realpath $(WATT_ROOT)) 73*6236dae4SAndroid Build Coastguard Workerendif 74*6236dae4SAndroid Build Coastguard Worker 75*6236dae4SAndroid Build Coastguard Worker### Optional features 76*6236dae4SAndroid Build Coastguard Worker 77*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -debug,$(CFG)),) 78*6236dae4SAndroid Build Coastguard Worker CFLAGS += -g 79*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DDEBUGBUILD 80*6236dae4SAndroid Build Coastguard Workerelse 81*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DNDEBUG 82*6236dae4SAndroid Build Coastguard Workerendif 83*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -trackmem,$(CFG)),) 84*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DCURLDEBUG 85*6236dae4SAndroid Build Coastguard Workerendif 86*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -map,$(CFG)),) 87*6236dae4SAndroid Build Coastguard Worker MAP := 1 88*6236dae4SAndroid Build Coastguard Workerendif 89*6236dae4SAndroid Build Coastguard Worker 90*6236dae4SAndroid Build Coastguard Worker# CPPFLAGS below are only necessary when building libcurl via 'lib' (see 91*6236dae4SAndroid Build Coastguard Worker# comments below about exceptions). Always include them anyway to match 92*6236dae4SAndroid Build Coastguard Worker# behavior of other build systems. 93*6236dae4SAndroid Build Coastguard Worker 94*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -sync,$(CFG)),) 95*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_SYNC_DNS 96*6236dae4SAndroid Build Coastguard Workerelse ifneq ($(findstring -ares,$(CFG)),) 97*6236dae4SAndroid Build Coastguard Worker LIBCARES_PATH ?= $(PROOT)/../c-ares 98*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_ARES 99*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(LIBCARES_PATH)/include" 100*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(LIBCARES_PATH)/lib" 101*6236dae4SAndroid Build Coastguard Worker LIBS += -lcares 102*6236dae4SAndroid Build Coastguard Workerendif 103*6236dae4SAndroid Build Coastguard Worker 104*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -rtmp,$(CFG)),) 105*6236dae4SAndroid Build Coastguard Worker LIBRTMP_PATH ?= $(PROOT)/../librtmp 106*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_LIBRTMP 107*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(LIBRTMP_PATH)" 108*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(LIBRTMP_PATH)/librtmp" 109*6236dae4SAndroid Build Coastguard Worker LIBS += -lrtmp 110*6236dae4SAndroid Build Coastguard Worker ZLIB := 1 111*6236dae4SAndroid Build Coastguard Workerendif 112*6236dae4SAndroid Build Coastguard Worker 113*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -ssh2,$(CFG)),) 114*6236dae4SAndroid Build Coastguard Worker LIBSSH2_PATH ?= $(PROOT)/../libssh2 115*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_LIBSSH2 116*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(LIBSSH2_PATH)/include" 117*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(LIBSSH2_PATH)/lib" 118*6236dae4SAndroid Build Coastguard Worker LIBS += -lssh2 119*6236dae4SAndroid Build Coastguard Workerelse ifneq ($(findstring -libssh,$(CFG)),) 120*6236dae4SAndroid Build Coastguard Worker LIBSSH_PATH ?= $(PROOT)/../libssh 121*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_LIBSSH 122*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(LIBSSH_PATH)/include" 123*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(LIBSSH_PATH)/lib" 124*6236dae4SAndroid Build Coastguard Worker LIBS += -lssh 125*6236dae4SAndroid Build Coastguard Workerelse ifneq ($(findstring -wolfssh,$(CFG)),) 126*6236dae4SAndroid Build Coastguard Worker WOLFSSH_PATH ?= $(PROOT)/../wolfssh 127*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_WOLFSSH 128*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(WOLFSSH_PATH)/include" 129*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(WOLFSSH_PATH)/lib" 130*6236dae4SAndroid Build Coastguard Worker LIBS += -lwolfssh 131*6236dae4SAndroid Build Coastguard Workerendif 132*6236dae4SAndroid Build Coastguard Worker 133*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -ssl,$(CFG)),) 134*6236dae4SAndroid Build Coastguard Worker OPENSSL_PATH ?= $(PROOT)/../openssl 135*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_OPENSSL 136*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DCURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG 137*6236dae4SAndroid Build Coastguard Worker OPENSSL_INCLUDE ?= $(OPENSSL_PATH)/include 138*6236dae4SAndroid Build Coastguard Worker OPENSSL_LIBPATH ?= $(OPENSSL_PATH)/lib 139*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(OPENSSL_INCLUDE)" 140*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(OPENSSL_LIBPATH)" 141*6236dae4SAndroid Build Coastguard Worker OPENSSL_LIBS ?= -lssl -lcrypto 142*6236dae4SAndroid Build Coastguard Worker LIBS += $(OPENSSL_LIBS) 143*6236dae4SAndroid Build Coastguard Worker 144*6236dae4SAndroid Build Coastguard Worker ifneq ($(findstring -srp,$(CFG)),) 145*6236dae4SAndroid Build Coastguard Worker ifneq ($(wildcard $(OPENSSL_INCLUDE)/openssl/srp.h),) 146*6236dae4SAndroid Build Coastguard Worker # OpenSSL 1.0.1 and later. 147*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DHAVE_OPENSSL_SRP -DUSE_TLS_SRP 148*6236dae4SAndroid Build Coastguard Worker endif 149*6236dae4SAndroid Build Coastguard Worker endif 150*6236dae4SAndroid Build Coastguard Worker SSLLIBS += 1 151*6236dae4SAndroid Build Coastguard Workerendif 152*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -wolfssl,$(CFG)),) 153*6236dae4SAndroid Build Coastguard Worker WOLFSSL_PATH ?= $(PROOT)/../wolfssl 154*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_WOLFSSL 155*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DSIZEOF_LONG_LONG=8 156*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(WOLFSSL_PATH)/include" 157*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(WOLFSSL_PATH)/lib" 158*6236dae4SAndroid Build Coastguard Worker LIBS += -lwolfssl 159*6236dae4SAndroid Build Coastguard Worker SSLLIBS += 1 160*6236dae4SAndroid Build Coastguard Workerendif 161*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -mbedtls,$(CFG)),) 162*6236dae4SAndroid Build Coastguard Worker MBEDTLS_PATH ?= $(PROOT)/../mbedtls 163*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_MBEDTLS 164*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(MBEDTLS_PATH)/include" 165*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(MBEDTLS_PATH)/lib" 166*6236dae4SAndroid Build Coastguard Worker LIBS += -lmbedtls -lmbedx509 -lmbedcrypto 167*6236dae4SAndroid Build Coastguard Worker SSLLIBS += 1 168*6236dae4SAndroid Build Coastguard Workerendif 169*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -bearssl,$(CFG)),) 170*6236dae4SAndroid Build Coastguard Worker BEARSSL_PATH ?= $(PROOT)/../bearssl 171*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_BEARSSL 172*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(BEARSSL_PATH)/inc" 173*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(BEARSSL_PATH)/build" 174*6236dae4SAndroid Build Coastguard Worker LIBS += -lbearssl 175*6236dae4SAndroid Build Coastguard Worker SSLLIBS += 1 176*6236dae4SAndroid Build Coastguard Workerendif 177*6236dae4SAndroid Build Coastguard Worker 178*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -nghttp2,$(CFG)),) 179*6236dae4SAndroid Build Coastguard Worker NGHTTP2_PATH ?= $(PROOT)/../nghttp2 180*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_NGHTTP2 181*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(NGHTTP2_PATH)/include" 182*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(NGHTTP2_PATH)/lib" 183*6236dae4SAndroid Build Coastguard Worker LIBS += -lnghttp2 184*6236dae4SAndroid Build Coastguard Workerendif 185*6236dae4SAndroid Build Coastguard Worker 186*6236dae4SAndroid Build Coastguard Workerifeq ($(findstring -nghttp3,$(CFG))$(findstring -ngtcp2,$(CFG)),-nghttp3-ngtcp2) 187*6236dae4SAndroid Build Coastguard Worker NGHTTP3_PATH ?= $(PROOT)/../nghttp3 188*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_NGHTTP3 189*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(NGHTTP3_PATH)/include" 190*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(NGHTTP3_PATH)/lib" 191*6236dae4SAndroid Build Coastguard Worker LIBS += -lnghttp3 192*6236dae4SAndroid Build Coastguard Worker 193*6236dae4SAndroid Build Coastguard Worker NGTCP2_PATH ?= $(PROOT)/../ngtcp2 194*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_NGTCP2 195*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(NGTCP2_PATH)/include" 196*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(NGTCP2_PATH)/lib" 197*6236dae4SAndroid Build Coastguard Worker 198*6236dae4SAndroid Build Coastguard Worker NGTCP2_LIBS ?= 199*6236dae4SAndroid Build Coastguard Worker ifeq ($(NGTCP2_LIBS),) 200*6236dae4SAndroid Build Coastguard Worker ifneq ($(findstring -ssl,$(CFG)),) 201*6236dae4SAndroid Build Coastguard Worker ifneq ($(wildcard $(OPENSSL_INCLUDE)/openssl/aead.h),) 202*6236dae4SAndroid Build Coastguard Worker NGTCP2_LIBS := -lngtcp2_crypto_boringssl 203*6236dae4SAndroid Build Coastguard Worker else # including libressl 204*6236dae4SAndroid Build Coastguard Worker NGTCP2_LIBS := -lngtcp2_crypto_quictls 205*6236dae4SAndroid Build Coastguard Worker endif 206*6236dae4SAndroid Build Coastguard Worker else ifneq ($(findstring -wolfssl,$(CFG)),) 207*6236dae4SAndroid Build Coastguard Worker NGTCP2_LIBS := -lngtcp2_crypto_wolfssl 208*6236dae4SAndroid Build Coastguard Worker endif 209*6236dae4SAndroid Build Coastguard Worker endif 210*6236dae4SAndroid Build Coastguard Worker 211*6236dae4SAndroid Build Coastguard Worker LIBS += -lngtcp2 $(NGTCP2_LIBS) 212*6236dae4SAndroid Build Coastguard Workerendif 213*6236dae4SAndroid Build Coastguard Worker 214*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -zlib,$(CFG))$(ZLIB),) 215*6236dae4SAndroid Build Coastguard Worker ZLIB_PATH ?= $(PROOT)/../zlib 216*6236dae4SAndroid Build Coastguard Worker # These CPPFLAGS are also required when compiling the curl tool via 'src'. 217*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DHAVE_LIBZ 218*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(ZLIB_PATH)/include" 219*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(ZLIB_PATH)/lib" 220*6236dae4SAndroid Build Coastguard Worker ZLIB_LIBS ?= -lz 221*6236dae4SAndroid Build Coastguard Worker LIBS += $(ZLIB_LIBS) 222*6236dae4SAndroid Build Coastguard Worker ZLIB := 1 223*6236dae4SAndroid Build Coastguard Workerendif 224*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -zstd,$(CFG)),) 225*6236dae4SAndroid Build Coastguard Worker ZSTD_PATH ?= $(PROOT)/../zstd 226*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DHAVE_ZSTD 227*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(ZSTD_PATH)/include" 228*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(ZSTD_PATH)/lib" 229*6236dae4SAndroid Build Coastguard Worker ZSTD_LIBS ?= -lzstd 230*6236dae4SAndroid Build Coastguard Worker LIBS += $(ZSTD_LIBS) 231*6236dae4SAndroid Build Coastguard Workerendif 232*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -brotli,$(CFG)),) 233*6236dae4SAndroid Build Coastguard Worker BROTLI_PATH ?= $(PROOT)/../brotli 234*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DHAVE_BROTLI 235*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(BROTLI_PATH)/include" 236*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(BROTLI_PATH)/lib" 237*6236dae4SAndroid Build Coastguard Worker BROTLI_LIBS ?= -lbrotlidec -lbrotlicommon 238*6236dae4SAndroid Build Coastguard Worker LIBS += $(BROTLI_LIBS) 239*6236dae4SAndroid Build Coastguard Workerendif 240*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -gsasl,$(CFG)),) 241*6236dae4SAndroid Build Coastguard Worker LIBGSASL_PATH ?= $(PROOT)/../gsasl 242*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_GSASL 243*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(LIBGSASL_PATH)/include" 244*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(LIBGSASL_PATH)/lib" 245*6236dae4SAndroid Build Coastguard Worker LIBS += -lgsasl 246*6236dae4SAndroid Build Coastguard Workerendif 247*6236dae4SAndroid Build Coastguard Worker 248*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -idn2,$(CFG)),) 249*6236dae4SAndroid Build Coastguard Worker LIBIDN2_PATH ?= $(PROOT)/../libidn2 250*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DHAVE_LIBIDN2 -DHAVE_IDN2_H 251*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(LIBIDN2_PATH)/include" 252*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(LIBIDN2_PATH)/lib" 253*6236dae4SAndroid Build Coastguard Worker LIBS += -lidn2 254*6236dae4SAndroid Build Coastguard Worker 255*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -psl,$(CFG)),) 256*6236dae4SAndroid Build Coastguard Worker LIBPSL_PATH ?= $(PROOT)/../libpsl 257*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_LIBPSL 258*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(LIBPSL_PATH)/include" 259*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(LIBPSL_PATH)/lib" 260*6236dae4SAndroid Build Coastguard Worker LIBS += -lpsl 261*6236dae4SAndroid Build Coastguard Workerendif 262*6236dae4SAndroid Build Coastguard Workerendif 263*6236dae4SAndroid Build Coastguard Worker 264*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -ipv6,$(CFG)),) 265*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DUSE_IPV6 266*6236dae4SAndroid Build Coastguard Workerendif 267*6236dae4SAndroid Build Coastguard Worker 268*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring -watt,$(CFG))$(MSDOS),) 269*6236dae4SAndroid Build Coastguard Worker WATT_PATH ?= $(PROOT)/../watt 270*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -isystem "$(WATT_PATH)/inc" 271*6236dae4SAndroid Build Coastguard Worker LDFLAGS += -L"$(WATT_PATH)/lib" 272*6236dae4SAndroid Build Coastguard Worker LIBS += -lwatt 273*6236dae4SAndroid Build Coastguard Workerendif 274*6236dae4SAndroid Build Coastguard Worker 275*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring 11,$(subst $(subst ,, ),,$(SSLLIBS))),) 276*6236dae4SAndroid Build Coastguard Worker CPPFLAGS += -DCURL_WITH_MULTI_SSL 277*6236dae4SAndroid Build Coastguard Workerendif 278*6236dae4SAndroid Build Coastguard Worker 279*6236dae4SAndroid Build Coastguard Worker### Common rules 280*6236dae4SAndroid Build Coastguard Worker 281*6236dae4SAndroid Build Coastguard WorkerOBJ_DIR := $(TRIPLET) 282*6236dae4SAndroid Build Coastguard Worker 283*6236dae4SAndroid Build Coastguard Workerifneq ($(findstring /sh,$(SHELL)),) 284*6236dae4SAndroid Build Coastguard WorkerDEL = rm -f $1 285*6236dae4SAndroid Build Coastguard WorkerCOPY = -cp -afv $1 $2 286*6236dae4SAndroid Build Coastguard WorkerMKDIR = mkdir -p $1 287*6236dae4SAndroid Build Coastguard WorkerRMDIR = rm -fr $1 288*6236dae4SAndroid Build Coastguard Workerelse 289*6236dae4SAndroid Build Coastguard WorkerDEL = -del 2>NUL /q /f $(subst /,\,$1) 290*6236dae4SAndroid Build Coastguard WorkerCOPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2) 291*6236dae4SAndroid Build Coastguard WorkerMKDIR = -md 2>NUL $(subst /,\,$1) 292*6236dae4SAndroid Build Coastguard WorkerRMDIR = -rd 2>NUL /q /s $(subst /,\,$1) 293*6236dae4SAndroid Build Coastguard Workerendif 294*6236dae4SAndroid Build Coastguard Worker 295*6236dae4SAndroid Build Coastguard Workerall: $(TARGETS) 296*6236dae4SAndroid Build Coastguard Worker 297*6236dae4SAndroid Build Coastguard Worker$(OBJ_DIR): 298*6236dae4SAndroid Build Coastguard Worker -$(call MKDIR, $(OBJ_DIR)) 299*6236dae4SAndroid Build Coastguard Worker 300*6236dae4SAndroid Build Coastguard Worker$(OBJ_DIR)/%.o: %.c 301*6236dae4SAndroid Build Coastguard Worker $(CC) -W -Wall $(CFLAGS) $(CPPFLAGS) -c $< -o $@ 302*6236dae4SAndroid Build Coastguard Worker 303*6236dae4SAndroid Build Coastguard Workerclean: 304*6236dae4SAndroid Build Coastguard Worker @$(call DEL, $(TOCLEAN)) 305*6236dae4SAndroid Build Coastguard Worker @$(RMDIR) $(OBJ_DIR) 306*6236dae4SAndroid Build Coastguard Worker 307*6236dae4SAndroid Build Coastguard Workerdistclean vclean: clean 308*6236dae4SAndroid Build Coastguard Worker @$(call DEL, $(TARGETS) $(TOVCLEAN)) 309*6236dae4SAndroid Build Coastguard Worker 310*6236dae4SAndroid Build Coastguard Worker### Local 311*6236dae4SAndroid Build Coastguard Worker 312*6236dae4SAndroid Build Coastguard Workerifdef LOCAL 313*6236dae4SAndroid Build Coastguard Worker 314*6236dae4SAndroid Build Coastguard WorkerCPPFLAGS += -DBUILDING_LIBCURL 315*6236dae4SAndroid Build Coastguard Worker 316*6236dae4SAndroid Build Coastguard Worker### Sources and targets 317*6236dae4SAndroid Build Coastguard Worker 318*6236dae4SAndroid Build Coastguard Worker# Provides CSOURCES, HHEADERS 319*6236dae4SAndroid Build Coastguard Workerinclude Makefile.inc 320*6236dae4SAndroid Build Coastguard Worker 321*6236dae4SAndroid Build Coastguard Workervpath %.c vauth vquic vssh vtls 322*6236dae4SAndroid Build Coastguard Worker 323*6236dae4SAndroid Build Coastguard Workerlibcurl_a_LIBRARY := libcurl.a 324*6236dae4SAndroid Build Coastguard Worker 325*6236dae4SAndroid Build Coastguard WorkerTARGETS := $(libcurl_a_LIBRARY) 326*6236dae4SAndroid Build Coastguard Worker 327*6236dae4SAndroid Build Coastguard Workerlibcurl_a_OBJECTS := $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(strip $(CSOURCES)))) 328*6236dae4SAndroid Build Coastguard Workerlibcurl_a_DEPENDENCIES := $(strip $(CSOURCES) $(HHEADERS)) 329*6236dae4SAndroid Build Coastguard Worker 330*6236dae4SAndroid Build Coastguard WorkerTOCLEAN := 331*6236dae4SAndroid Build Coastguard WorkerTOVCLEAN := 332*6236dae4SAndroid Build Coastguard Worker 333*6236dae4SAndroid Build Coastguard Worker### Rules 334*6236dae4SAndroid Build Coastguard Worker 335*6236dae4SAndroid Build Coastguard Worker$(libcurl_a_LIBRARY): $(libcurl_a_OBJECTS) $(libcurl_a_DEPENDENCIES) 336*6236dae4SAndroid Build Coastguard Worker @$(call DEL, $@) 337*6236dae4SAndroid Build Coastguard Worker $(AR) rcs $@ $(libcurl_a_OBJECTS) 338*6236dae4SAndroid Build Coastguard Worker 339*6236dae4SAndroid Build Coastguard Workerall: $(OBJ_DIR) $(TARGETS) 340*6236dae4SAndroid Build Coastguard Workerendif 341