xref: /aosp_15_r20/external/curl/lib/Makefile.am (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 WorkerAUTOMAKE_OPTIONS = foreign nostdinc
25*6236dae4SAndroid Build Coastguard Worker
26*6236dae4SAndroid Build Coastguard WorkerCMAKE_DIST = CMakeLists.txt curl_config.h.cmake
27*6236dae4SAndroid Build Coastguard Worker
28*6236dae4SAndroid Build Coastguard WorkerCHECKSRC_DIST = .checksrc vauth/.checksrc vquic/.checksrc vssh/.checksrc \
29*6236dae4SAndroid Build Coastguard Worker vtls/.checksrc
30*6236dae4SAndroid Build Coastguard Worker
31*6236dae4SAndroid Build Coastguard WorkerEXTRA_DIST = Makefile.mk config-win32.h config-win32ce.h config-plan9.h \
32*6236dae4SAndroid Build Coastguard Worker config-riscos.h config-mac.h curl_config.h.in config-dos.h libcurl.rc  \
33*6236dae4SAndroid Build Coastguard Worker config-amigaos.h config-win32ce.h config-os400.h setup-os400.h         \
34*6236dae4SAndroid Build Coastguard Worker $(CMAKE_DIST) setup-win32.h Makefile.soname optiontable.pl libcurl.def \
35*6236dae4SAndroid Build Coastguard Worker $(CHECKSRC_DIST)
36*6236dae4SAndroid Build Coastguard Worker
37*6236dae4SAndroid Build Coastguard Workerlib_LTLIBRARIES = libcurl.la
38*6236dae4SAndroid Build Coastguard Worker
39*6236dae4SAndroid Build Coastguard Workerif BUILD_UNITTESTS
40*6236dae4SAndroid Build Coastguard Workernoinst_LTLIBRARIES = libcurlu.la
41*6236dae4SAndroid Build Coastguard Workerelse
42*6236dae4SAndroid Build Coastguard Workernoinst_LTLIBRARIES =
43*6236dae4SAndroid Build Coastguard Workerendif
44*6236dae4SAndroid Build Coastguard Worker
45*6236dae4SAndroid Build Coastguard Worker# This might hold -Werror
46*6236dae4SAndroid Build Coastguard WorkerCFLAGS += @CURL_CFLAG_EXTRAS@
47*6236dae4SAndroid Build Coastguard Worker
48*6236dae4SAndroid Build Coastguard Worker# Specify our include paths here, and do it relative to $(top_srcdir) and
49*6236dae4SAndroid Build Coastguard Worker# $(top_builddir), to ensure that these paths which belong to the library
50*6236dae4SAndroid Build Coastguard Worker# being currently built and tested are searched before the library which
51*6236dae4SAndroid Build Coastguard Worker# might possibly already be installed in the system.
52*6236dae4SAndroid Build Coastguard Worker#
53*6236dae4SAndroid Build Coastguard Worker# $(top_srcdir)/include is for libcurl's external include files
54*6236dae4SAndroid Build Coastguard Worker# $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file
55*6236dae4SAndroid Build Coastguard Worker# $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "private" files
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard WorkerAM_CPPFLAGS = -I$(top_srcdir)/include        \
58*6236dae4SAndroid Build Coastguard Worker              -I$(top_builddir)/lib          \
59*6236dae4SAndroid Build Coastguard Worker              -I$(top_srcdir)/lib
60*6236dae4SAndroid Build Coastguard Worker
61*6236dae4SAndroid Build Coastguard Worker# Prevent LIBS from being used for all link targets
62*6236dae4SAndroid Build Coastguard WorkerLIBS = $(BLANK_AT_MAKETIME)
63*6236dae4SAndroid Build Coastguard Worker
64*6236dae4SAndroid Build Coastguard Workerinclude Makefile.soname
65*6236dae4SAndroid Build Coastguard Worker
66*6236dae4SAndroid Build Coastguard WorkerAM_CPPFLAGS += -DBUILDING_LIBCURL
67*6236dae4SAndroid Build Coastguard WorkerAM_LDFLAGS =
68*6236dae4SAndroid Build Coastguard WorkerAM_CFLAGS =
69*6236dae4SAndroid Build Coastguard Worker
70*6236dae4SAndroid Build Coastguard Worker# Makefile.inc provides the CSOURCES and HHEADERS defines
71*6236dae4SAndroid Build Coastguard Workerinclude Makefile.inc
72*6236dae4SAndroid Build Coastguard Worker
73*6236dae4SAndroid Build Coastguard Workerif USE_UNITY
74*6236dae4SAndroid Build Coastguard Worker# Keep these separate to avoid duplicate definitions when linking libtests
75*6236dae4SAndroid Build Coastguard Worker# in static mode.
76*6236dae4SAndroid Build Coastguard Workercurl_EXCLUDE = curl_threads.c timediff.c warnless.c
77*6236dae4SAndroid Build Coastguard Workerif DEBUGBUILD
78*6236dae4SAndroid Build Coastguard Worker# We must compile these sources separately to avoid memdebug.h redefinitions
79*6236dae4SAndroid Build Coastguard Worker# applying to them.
80*6236dae4SAndroid Build Coastguard Workercurl_EXCLUDE += memdebug.c curl_multibyte.c
81*6236dae4SAndroid Build Coastguard Workerendif
82*6236dae4SAndroid Build Coastguard Workerlibcurl_unity.c: $(top_srcdir)/scripts/mk-unity.pl $(CSOURCES)
83*6236dae4SAndroid Build Coastguard Worker	@PERL@ $(top_srcdir)/scripts/mk-unity.pl $(srcdir) $(CSOURCES) --exclude $(curl_EXCLUDE) > libcurl_unity.c
84*6236dae4SAndroid Build Coastguard Worker
85*6236dae4SAndroid Build Coastguard Workernodist_libcurl_la_SOURCES = libcurl_unity.c
86*6236dae4SAndroid Build Coastguard Workerlibcurl_la_SOURCES = $(curl_EXCLUDE)
87*6236dae4SAndroid Build Coastguard Workernodist_libcurlu_la_SOURCES = libcurl_unity.c
88*6236dae4SAndroid Build Coastguard Workerlibcurlu_la_SOURCES = $(curl_EXCLUDE)
89*6236dae4SAndroid Build Coastguard WorkerCLEANFILES = libcurl_unity.c
90*6236dae4SAndroid Build Coastguard Workerelse
91*6236dae4SAndroid Build Coastguard Workerlibcurl_la_SOURCES = $(CSOURCES) $(HHEADERS)
92*6236dae4SAndroid Build Coastguard Workerlibcurlu_la_SOURCES = $(CSOURCES) $(HHEADERS)
93*6236dae4SAndroid Build Coastguard Workerendif
94*6236dae4SAndroid Build Coastguard Worker
95*6236dae4SAndroid Build Coastguard Workerlibcurl_la_CPPFLAGS_EXTRA =
96*6236dae4SAndroid Build Coastguard Workerlibcurl_la_LDFLAGS_EXTRA =
97*6236dae4SAndroid Build Coastguard Workerlibcurl_la_CFLAGS_EXTRA =
98*6236dae4SAndroid Build Coastguard Worker
99*6236dae4SAndroid Build Coastguard Workerif CURL_LT_SHLIB_USE_VERSION_INFO
100*6236dae4SAndroid Build Coastguard Workerlibcurl_la_LDFLAGS_EXTRA += $(VERSIONINFO)
101*6236dae4SAndroid Build Coastguard Workerendif
102*6236dae4SAndroid Build Coastguard Worker
103*6236dae4SAndroid Build Coastguard Workerif CURL_LT_SHLIB_USE_NO_UNDEFINED
104*6236dae4SAndroid Build Coastguard Workerlibcurl_la_LDFLAGS_EXTRA += -no-undefined
105*6236dae4SAndroid Build Coastguard Workerendif
106*6236dae4SAndroid Build Coastguard Worker
107*6236dae4SAndroid Build Coastguard Workerif CURL_LT_SHLIB_USE_MIMPURE_TEXT
108*6236dae4SAndroid Build Coastguard Workerlibcurl_la_LDFLAGS_EXTRA += -mimpure-text
109*6236dae4SAndroid Build Coastguard Workerendif
110*6236dae4SAndroid Build Coastguard Worker
111*6236dae4SAndroid Build Coastguard Workerif CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS
112*6236dae4SAndroid Build Coastguard Workerlibcurl_la_LDFLAGS_EXTRA += -Wl,--version-script=libcurl.vers
113*6236dae4SAndroid Build Coastguard Workerelse
114*6236dae4SAndroid Build Coastguard Worker# if symbol-hiding is enabled, hide them!
115*6236dae4SAndroid Build Coastguard Workerif DOING_CURL_SYMBOL_HIDING
116*6236dae4SAndroid Build Coastguard Workerlibcurl_la_LDFLAGS_EXTRA += -export-symbols-regex '^curl_.*'
117*6236dae4SAndroid Build Coastguard Workerendif
118*6236dae4SAndroid Build Coastguard Workerendif
119*6236dae4SAndroid Build Coastguard Worker
120*6236dae4SAndroid Build Coastguard Workerif USE_CPPFLAG_CURL_STATICLIB
121*6236dae4SAndroid Build Coastguard Workerlibcurl_la_CPPFLAGS_EXTRA += -DCURL_STATICLIB
122*6236dae4SAndroid Build Coastguard Workerelse
123*6236dae4SAndroid Build Coastguard Workerif HAVE_WINDRES
124*6236dae4SAndroid Build Coastguard Workerlibcurl_la_SOURCES += $(LIB_RCFILES)
125*6236dae4SAndroid Build Coastguard Worker$(LIB_RCFILES): $(top_srcdir)/include/curl/curlver.h
126*6236dae4SAndroid Build Coastguard Workerendif
127*6236dae4SAndroid Build Coastguard Workerendif
128*6236dae4SAndroid Build Coastguard Worker
129*6236dae4SAndroid Build Coastguard Workerif DOING_CURL_SYMBOL_HIDING
130*6236dae4SAndroid Build Coastguard Workerlibcurl_la_CPPFLAGS_EXTRA += -DCURL_HIDDEN_SYMBOLS
131*6236dae4SAndroid Build Coastguard Workerlibcurl_la_CFLAGS_EXTRA += $(CFLAG_CURL_SYMBOL_HIDING)
132*6236dae4SAndroid Build Coastguard Workerendif
133*6236dae4SAndroid Build Coastguard Worker
134*6236dae4SAndroid Build Coastguard Workerlibcurl_la_CPPFLAGS = $(AM_CPPFLAGS) $(libcurl_la_CPPFLAGS_EXTRA)
135*6236dae4SAndroid Build Coastguard Workerlibcurl_la_LDFLAGS = $(AM_LDFLAGS) $(libcurl_la_LDFLAGS_EXTRA) $(CURL_LDFLAGS_LIB) $(LIBCURL_PC_LIBS_PRIVATE)
136*6236dae4SAndroid Build Coastguard Workerlibcurl_la_CFLAGS = $(AM_CFLAGS) $(libcurl_la_CFLAGS_EXTRA)
137*6236dae4SAndroid Build Coastguard Worker
138*6236dae4SAndroid Build Coastguard Workerlibcurlu_la_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_STATICLIB -DUNITTESTS
139*6236dae4SAndroid Build Coastguard Workerlibcurlu_la_LDFLAGS = $(AM_LDFLAGS) -static $(LIBCURL_PC_LIBS_PRIVATE)
140*6236dae4SAndroid Build Coastguard Workerlibcurlu_la_CFLAGS = $(AM_CFLAGS)
141*6236dae4SAndroid Build Coastguard Worker
142*6236dae4SAndroid Build Coastguard WorkerCHECKSRC = $(CS_$(V))
143*6236dae4SAndroid Build Coastguard WorkerCS_0 = @echo "  RUN     " $@;
144*6236dae4SAndroid Build Coastguard WorkerCS_1 =
145*6236dae4SAndroid Build Coastguard WorkerCS_ = $(CS_0)
146*6236dae4SAndroid Build Coastguard Worker
147*6236dae4SAndroid Build Coastguard Workerchecksrc:
148*6236dae4SAndroid Build Coastguard Worker	$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir)    \
149*6236dae4SAndroid Build Coastguard Worker	-W$(srcdir)/curl_config.h $(srcdir)/*.[ch] $(srcdir)/vauth/*.[ch]   \
150*6236dae4SAndroid Build Coastguard Worker	$(srcdir)/vtls/*.[ch] $(srcdir)/vquic/*.[ch] $(srcdir)/vssh/*.[ch])
151*6236dae4SAndroid Build Coastguard Worker
152*6236dae4SAndroid Build Coastguard Workerif DEBUGBUILD
153*6236dae4SAndroid Build Coastguard Worker# for debug builds, we scan the sources on all regular make invokes
154*6236dae4SAndroid Build Coastguard Workerall-local: checksrc
155*6236dae4SAndroid Build Coastguard Workerendif
156*6236dae4SAndroid Build Coastguard Worker
157*6236dae4SAndroid Build Coastguard Worker# disable the tests that are mostly causing false positives
158*6236dae4SAndroid Build Coastguard WorkerTIDYFLAGS=-checks=-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-optin.performance.Padding,-clang-analyzer-valist.Uninitialized,-clang-analyzer-core.NonNullParamChecker,-clang-analyzer-core.NullDereference -quiet
159*6236dae4SAndroid Build Coastguard Worker
160*6236dae4SAndroid Build Coastguard WorkerTIDY:=clang-tidy
161*6236dae4SAndroid Build Coastguard Worker
162*6236dae4SAndroid Build Coastguard Workertidy:
163*6236dae4SAndroid Build Coastguard Worker	$(TIDY) $(CSOURCES) $(TIDYFLAGS) -- $(AM_CPPFLAGS) $(CPPFLAGS) -DHAVE_CONFIG_H
164*6236dae4SAndroid Build Coastguard Worker
165*6236dae4SAndroid Build Coastguard Workeroptiontable:
166*6236dae4SAndroid Build Coastguard Worker	perl optiontable.pl < $(top_srcdir)/include/curl/curl.h > easyoptions.c
167*6236dae4SAndroid Build Coastguard Worker
168*6236dae4SAndroid Build Coastguard Workerif HAVE_WINDRES
169*6236dae4SAndroid Build Coastguard Worker.rc.lo:
170*6236dae4SAndroid Build Coastguard Worker	$(LIBTOOL) --tag=RC --mode=compile $(RC) -I$(top_srcdir)/include $(RCFLAGS) -i $< -o $@
171*6236dae4SAndroid Build Coastguard Workerendif
172