xref: /aosp_15_r20/external/curl/lib/Makefile.mk (revision 6236dae45794135f37c4eb022389c904c8b0090d)
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