• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 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	-DBUILDING_LIBCURL
19
20curl_includes := \
21	$(LOCAL_PATH)/include/ \
22	$(LOCAL_PATH)/lib
23
24#########################
25# Build the libcurl static library
26
27include $(CLEAR_VARS)
28include $(LOCAL_PATH)/lib/Makefile.inc
29
30LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
31LOCAL_C_INCLUDES := $(curl_includes)
32LOCAL_CFLAGS := $(curl_CFLAGS)
33LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
34
35LOCAL_MODULE:= libcurl
36LOCAL_MODULE_TAGS := optional
37LOCAL_STATIC_LIBRARIES := libcrypto_static libz
38
39include $(BUILD_STATIC_LIBRARY)
40
41#########################
42# Build the libcurl shared library
43
44libcurl_shared_libs := libcrypto libssl libz
45
46include $(CLEAR_VARS)
47include $(LOCAL_PATH)/lib/Makefile.inc
48
49LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
50LOCAL_C_INCLUDES := $(curl_includes)
51LOCAL_CFLAGS := \
52    $(curl_CFLAGS) \
53    -D_GNU_SOURCE=1
54LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
55
56LOCAL_MODULE:= libcurl-host
57LOCAL_MODULE_TAGS := optional
58LOCAL_SHARED_LIBRARIES := $(libcurl_shared_libs:=-host)
59
60include $(BUILD_HOST_SHARED_LIBRARY)
61
62include $(CLEAR_VARS)
63include $(LOCAL_PATH)/lib/Makefile.inc
64
65LOCAL_SRC_FILES := $(addprefix lib/,$(CSOURCES))
66LOCAL_C_INCLUDES := $(curl_includes)
67LOCAL_CFLAGS := $(curl_CFLAGS)
68LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
69
70LOCAL_MODULE:= libcurl
71LOCAL_MODULE_TAGS := optional
72LOCAL_SHARED_LIBRARIES := $(libcurl_shared_libs)
73
74include $(BUILD_SHARED_LIBRARY)
75
76#########################
77# Build the curl binary
78
79include $(CLEAR_VARS)
80include $(LOCAL_PATH)/src/Makefile.inc
81LOCAL_SRC_FILES := $(addprefix src/,$(CURL_CFILES))
82
83LOCAL_MODULE := curl
84LOCAL_MODULE_TAGS := optional
85LOCAL_STATIC_LIBRARIES := libcurl
86LOCAL_SHARED_LIBRARIES := libcrypto libssl libz
87
88LOCAL_C_INCLUDES := $(curl_includes)
89
90# This may also need to include $(CURLX_CFILES) in order to correctly link
91# if libcurl is changed to be built as a dynamic library
92LOCAL_CFLAGS := $(curl_CFLAGS)
93
94include $(BUILD_EXECUTABLE)
95