blob: db4c11a47ff06b7854727ef13bcb79705f8c6f54 [file] [log] [blame]
Narayan Kamathdf5e4d42015-01-20 12:55:52 +00001# Copyright (C) 2014 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14#
15LOCAL_PATH:= $(call my-dir)
16
Narayan Kamathabddcd82015-04-08 18:27:53 +010017apache_http_src_files := \
Narayan Kamatha8b46a32014-11-27 18:15:37 +000018 $(call all-java-files-under,src) \
19 $(call all-java-files-under,android)
Narayan Kamathdf5e4d42015-01-20 12:55:52 +000020
Narayan Kamathabddcd82015-04-08 18:27:53 +010021apache_http_java_libs := conscrypt
Narayan Kamath3e387462015-01-23 15:31:00 +000022
Narayan Kamathabddcd82015-04-08 18:27:53 +010023apache_http_packages := $(strip \
24 com.android.internal.http.multipart \
25 org.apache.commons.logging \
26 org.apache.commons.logging.impl \
27 org.apache.commons.codec \
28 org.apache.commons.codec.net \
29 org.apache.commons.codec.language \
30 org.apache.commons.codec.binary \
31 org.apache.http.params \
32 org.apache.http \
33 org.apache.http.client.params \
34 org.apache.http.client \
35 org.apache.http.client.utils \
36 org.apache.http.client.protocol \
37 org.apache.http.client.methods \
38 org.apache.http.client.entity \
39 org.apache.http.protocol \
40 org.apache.http.impl \
41 org.apache.http.impl.client \
42 org.apache.http.impl.auth \
43 org.apache.http.impl.cookie \
44 org.apache.http.impl.entity \
45 org.apache.http.impl.io \
46 org.apache.http.impl.conn \
47 org.apache.http.impl.conn.tsccm \
48 org.apache.http.message \
49 org.apache.http.auth.params \
50 org.apache.http.auth \
51 org.apache.http.cookie.params \
52 org.apache.http.cookie \
53 org.apache.http.util \
54 org.apache.http.entity \
55 org.apache.http.io \
56 org.apache.http.conn.params \
57 org.apache.http.conn \
58 org.apache.http.conn.routing \
59 org.apache.http.conn.scheme \
60 org.apache.http.conn.util \
61 android.net.compatibility \
62 android.net.http \
63)
64
65include $(CLEAR_VARS)
Narayan Kamath3049bb72015-04-09 13:06:40 +010066LOCAL_MODULE := org.apache.http.legacy.boot
Narayan Kamathabddcd82015-04-08 18:27:53 +010067LOCAL_MODULE_TAGS := optional
68LOCAL_JAVA_LIBRARIES := $(apache_http_java_libs)
69LOCAL_SRC_FILES := $(apache_http_src_files)
Narayan Kamathdf5e4d42015-01-20 12:55:52 +000070LOCAL_MODULE_TAGS := optional
Mathieu Chartier47b7e872018-04-04 09:35:08 -070071LOCAL_DEX_PREOPT_APP_IMAGE := false
Paul Duffin6003ff12018-01-24 18:03:47 +000072ifeq ($(REMOVE_OAHL_FROM_BCP),true)
Paul Duffine3f3d3e2017-09-14 13:17:57 +010073# Previously, this JAR was included on the bootclasspath so was compiled using
74# the speed-profile. ensures that it continues to be compiled using the
75# speed-profile in order to avoid regressing the performance, particularly of
76# app launch times. Without this it would be compiled using quicken (which is
77# interpreter + JIT) and so would be slower.
78LOCAL_DEX_PREOPT_GENERATE_PROFILE := true
79LOCAL_DEX_PREOPT_PROFILE_CLASS_LISTING := $(LOCAL_PATH)/art-profile/$(LOCAL_MODULE).prof.txt
Paul Duffin6003ff12018-01-24 18:03:47 +000080endif
Narayan Kamathdf5e4d42015-01-20 12:55:52 +000081include $(BUILD_JAVA_LIBRARY)
Ying Wang30a19d92015-02-25 12:22:35 -080082
Narayan Kamathabddcd82015-04-08 18:27:53 +010083##############################################
84# Generate the stub source files
85include $(CLEAR_VARS)
86LOCAL_SRC_FILES := $(apache_http_src_files)
Narayan Kamath0399abc2016-02-08 17:04:51 +000087LOCAL_SRC_FILES += \
88 ../../frameworks/base/core/java/org/apache/http/conn/ConnectTimeoutException.java \
89 ../../frameworks/base/core/java/org/apache/http/conn/scheme/HostNameResolver.java \
90 ../../frameworks/base/core/java/org/apache/http/conn/scheme/LayeredSocketFactory.java \
91 ../../frameworks/base/core/java/org/apache/http/conn/scheme/SocketFactory.java \
92 ../../frameworks/base/core/java/org/apache/http/conn/ssl/AbstractVerifier.java \
93 ../../frameworks/base/core/java/org/apache/http/conn/ssl/AllowAllHostnameVerifier.java \
94 ../../frameworks/base/core/java/org/apache/http/conn/ssl/AndroidDistinguishedNameParser.java \
95 ../../frameworks/base/core/java/org/apache/http/conn/ssl/BrowserCompatHostnameVerifier.java \
96 ../../frameworks/base/core/java/org/apache/http/conn/ssl/SSLSocketFactory.java \
97 ../../frameworks/base/core/java/org/apache/http/conn/ssl/StrictHostnameVerifier.java \
98 ../../frameworks/base/core/java/org/apache/http/conn/ssl/X509HostnameVerifier.java \
99 ../../frameworks/base/core/java/org/apache/http/params/CoreConnectionPNames.java \
100 ../../frameworks/base/core/java/org/apache/http/params/HttpConnectionParams.java \
101 ../../frameworks/base/core/java/org/apache/http/params/HttpParams.java \
102 ../../frameworks/base/core/java/android/net/http/HttpResponseCache.java \
103 ../../frameworks/base/core/java/android/net/http/SslCertificate.java \
104 ../../frameworks/base/core/java/android/net/http/SslError.java \
Ian Rogersdde45742016-04-29 16:21:35 -0700105 ../../frameworks/base/core/java/com/android/internal/util/HexDump.java \
Narayan Kamath0399abc2016-02-08 17:04:51 +0000106
Ian Rogersdde45742016-04-29 16:21:35 -0700107LOCAL_JAVA_LIBRARIES := bouncycastle okhttp $(apache_http_java_libs)
Narayan Kamathabddcd82015-04-08 18:27:53 +0100108LOCAL_MODULE_CLASS := JAVA_LIBRARIES
109LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src \
Narayan Kamath0399abc2016-02-08 17:04:51 +0000110 $(LOCAL_PATH)/android \
111 $(LOCAL_PATH)/../../frameworks/base/core/java/org/apache
Narayan Kamathabddcd82015-04-08 18:27:53 +0100112
Paul Duffin03a95652017-07-14 13:48:42 +0100113APACHE_HTTP_LEGACY_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/org.apache.http.legacy.stubs_intermediates/api.txt
114APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/org.apache.http.legacy.stubs_intermediates/removed.txt
115
116APACHE_HTTP_LEGACY_API_FILE := $(LOCAL_PATH)/api/apache-http-legacy-current.txt
117APACHE_HTTP_LEGACY_REMOVED_API_FILE := $(LOCAL_PATH)/api/apache-http-legacy-removed.txt
118
Narayan Kamathabddcd82015-04-08 18:27:53 +0100119LOCAL_DROIDDOC_OPTIONS:= \
120 -stubpackages $(subst $(space),:,$(apache_http_packages)) \
Paul Duffin7ac610f2018-01-10 19:50:43 +0000121 -hidePackage com.android.okhttp \
Narayan Kamath3049bb72015-04-09 13:06:40 +0100122 -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/org.apache.http.legacy_intermediates/src \
Paul Duffin03a95652017-07-14 13:48:42 +0100123 -nodocs \
124 -api $(APACHE_HTTP_LEGACY_OUTPUT_API_FILE) \
125 -removedApi $(APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE) \
Narayan Kamathabddcd82015-04-08 18:27:53 +0100126
127LOCAL_SDK_VERSION := 21
128LOCAL_UNINSTALLABLE_MODULE := true
129LOCAL_MODULE := apache-http-stubs-gen
130
131include $(BUILD_DROIDDOC)
Paul Duffin03a95652017-07-14 13:48:42 +0100132
133# Remember the target that will trigger the code generation.
Narayan Kamathabddcd82015-04-08 18:27:53 +0100134apache_http_stubs_gen_stamp := $(full_target)
135
Paul Duffin03a95652017-07-14 13:48:42 +0100136# Add some additional dependencies
137$(APACHE_HTTP_LEGACY_OUTPUT_API_FILE): $(full_target)
138$(APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE): $(full_target)
139
Ying Wang80540ef2015-04-14 18:42:03 -0700140# For unbundled build we'll use the prebuilt jar from prebuilts/sdk.
Ying Wangcc9d1282016-02-18 20:02:29 +0000141ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)))
Narayan Kamathabddcd82015-04-08 18:27:53 +0100142###############################################
143# Build the stub source files into a jar.
144include $(CLEAR_VARS)
Narayan Kamath3049bb72015-04-09 13:06:40 +0100145LOCAL_MODULE := org.apache.http.legacy
Narayan Kamathabddcd82015-04-08 18:27:53 +0100146LOCAL_SOURCE_FILES_ALL_GENERATED := true
Ying Wang80540ef2015-04-14 18:42:03 -0700147LOCAL_SDK_VERSION := 21
Narayan Kamathabddcd82015-04-08 18:27:53 +0100148# Make sure to run droiddoc first to generate the stub source files.
Colin Crossad1d58e2017-05-30 10:41:08 -0700149LOCAL_ADDITIONAL_DEPENDENCIES := $(apache_http_stubs_gen_stamp)
150include $(BUILD_STATIC_JAVA_LIBRARY)
Narayan Kamathabddcd82015-04-08 18:27:53 +0100151
Ying Wang30a19d92015-02-25 12:22:35 -0800152# Archive a copy of the classes.jar in SDK build.
153$(call dist-for-goals,sdk win_sdk,$(full_classes_jar):org.apache.http.legacy.jar)
Paul Duffin03a95652017-07-14 13:48:42 +0100154
155# Check that the org.apache.http.legacy.stubs library has not changed
156# ===================================================================
157
158# Check that the API we're building hasn't changed from the not-yet-released
159# SDK version.
160$(eval $(call check-api, \
161 check-apache-http-legacy-api-current, \
162 $(APACHE_HTTP_LEGACY_API_FILE), \
163 $(APACHE_HTTP_LEGACY_OUTPUT_API_FILE), \
164 $(APACHE_HTTP_LEGACY_REMOVED_API_FILE), \
165 $(APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE), \
166 -error 2 -error 3 -error 4 -error 5 -error 6 \
167 -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
168 -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
169 -error 25 -error 26 -error 27, \
170 cat $(LOCAL_PATH)/api/apicheck_msg_apache_http_legacy.txt, \
171 check-apache-http-legacy-api, \
172 $(call doc-timestamp-for,apache-http-stubs-gen) \
173 ))
174
175.PHONY: check-apache-http-legacy-api
176checkapi: check-apache-http-legacy-api
177
178.PHONY: update-apache-http-legacy-api
179update-api: update-apache-http-legacy-api
180
181update-apache-http-legacy-api: $(APACHE_HTTP_LEGACY_OUTPUT_API_FILE) | $(ACP)
182 @echo Copying apache-http-legacy-current.txt
183 $(hide) $(ACP) $(APACHE_HTTP_LEGACY_OUTPUT_API_FILE) $(APACHE_HTTP_LEGACY_API_FILE)
184 @echo Copying apache-http-legacy-removed.txt
185 $(hide) $(ACP) $(APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE) $(APACHE_HTTP_LEGACY_REMOVED_API_FILE)
186
Ying Wang80540ef2015-04-14 18:42:03 -0700187endif # not TARGET_BUILD_APPS
Narayan Kamathabddcd82015-04-08 18:27:53 +0100188
189apache_http_src_files :=
190apache_http_java_libs :=
191apache_http_packages :=
192apache_http_stubs_gen_stamp :=