blob: 34dce641adee94d4e8d91ce985b475cf8eb8f1e1 [file] [log] [blame]
Dirk Vogt19d55e52016-12-01 12:16:17 +01001# Google Android makefile for curl and libcurl
2#
3# This file is an updated version of Dan Fandrich's Android.mk, meant to build
4# curl for ToT android with the android build system.
5
6LOCAL_PATH:= $(call my-dir)
7
8# Curl needs a version string.
9# As this will be compiled on multiple platforms, generate a version string from
10# the build environment variables.
11version_string := "Android $(PLATFORM_VERSION) $(TARGET_ARCH_VARIANT)"
12
13curl_CFLAGS := -Wpointer-arith -Wwrite-strings -Wunused -Winline \
14 -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wno-long-long \
15 -Wfloat-equal -Wno-multichar -Wno-sign-compare -Wno-format-nonliteral \
16 -Wendif-labels -Wstrict-prototypes -Wdeclaration-after-statement \
17 -Wno-system-headers -DHAVE_CONFIG_H -DOS='$(version_string)' -Werror
18
19curl_includes := \
20 $(LOCAL_PATH)/include/ \
21 $(LOCAL_PATH)/lib
22
23#########################
24# Build the libcurl static library
25
26include $(CLEAR_VARS)
27include $(LOCAL_PATH)/lib/Makefile.inc
28
29LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
30LOCAL_C_INCLUDES := $(curl_includes)
31LOCAL_C_INCLUDES += external/openssl/include
32LOCAL_C_INCLUDES += external/zlib
33LOCAL_CFLAGS := $(curl_CFLAGS) -D BUILDING_LIBCURL
34LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
35
36LOCAL_MODULE:= libcurl
37LOCAL_MODULE_TAGS := optional
38LOCAL_STATIC_LIBRARIES := libcrypto_static libz
39
40include $(BUILD_STATIC_LIBRARY)
41
42#########################
43# Build the libcurl shared library
44
45libcurl_shared_libs := libcrypto libssl libz
46
47include $(CLEAR_VARS)
48include $(LOCAL_PATH)/lib/Makefile.inc
49
50LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
51LOCAL_C_INCLUDES := $(curl_includes)
52LOCAL_C_INCLUDES += external/openssl/include
53LOCAL_C_INCLUDES += external/zlib
54LOCAL_CFLAGS := \
55 $(curl_CFLAGS) \
56 -D_GNU_SOURCE=1 -DBUILDING_LIBCURL
57LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
58
59LOCAL_MODULE:= libcurl-host
60LOCAL_MODULE_TAGS := optional
61LOCAL_SHARED_LIBRARIES := $(libcurl_shared_libs:=-host)
62
63include $(BUILD_HOST_SHARED_LIBRARY)
64
65include $(CLEAR_VARS)
66include $(LOCAL_PATH)/lib/Makefile.inc
67
68LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
69LOCAL_C_INCLUDES := $(curl_includes)
70LOCAL_C_INCLUDES += external/openssl/include
71LOCAL_C_INCLUDES += external/zlib
72LOCAL_CFLAGS := $(curl_CFLAGS) -DBUILDING_LIBCURL
73LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
74
75LOCAL_MODULE:= libcurl
76LOCAL_MODULE_TAGS := optional
77LOCAL_SHARED_LIBRARIES := $(libcurl_shared_libs)
78
79include $(BUILD_SHARED_LIBRARY)
80
81#########################
82# Build the curl binary
83
84include $(CLEAR_VARS)
85include $(LOCAL_PATH)/src/Makefile.inc
86LOCAL_SRC_FILES := $(addprefix src/,$(CURL_CFILES))
87
88LOCAL_MODULE := curl
89LOCAL_MODULE_TAGS := optional
90LOCAL_STATIC_LIBRARIES := libcurl
91LOCAL_SHARED_LIBRARIES := libcrypto libssl libz
92
93LOCAL_C_INCLUDES := $(curl_includes)
94
95# This may also need to include $(CURLX_CFILES) in order to correctly link
96# if libcurl is changed to be built as a dynamic library
97LOCAL_CFLAGS := $(curl_CFLAGS)
98
99include $(BUILD_EXECUTABLE)