• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 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
17apache_http_src_files := \
18    $(call all-java-files-under,src) \
19    $(call all-java-files-under,android)
20
21apache_http_java_libs := conscrypt
22
23apache_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)
66LOCAL_MODULE := org.apache.http.legacy.boot
67LOCAL_MODULE_TAGS := optional
68LOCAL_JAVA_LIBRARIES := $(apache_http_java_libs)
69LOCAL_SRC_FILES := $(apache_http_src_files)
70LOCAL_MODULE_TAGS := optional
71LOCAL_DEX_PREOPT_APP_IMAGE := false
72ifeq ($(REMOVE_OAHL_FROM_BCP),true)
73# 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
80endif
81include $(BUILD_JAVA_LIBRARY)
82
83##############################################
84# Generate the stub source files
85include $(CLEAR_VARS)
86LOCAL_SRC_FILES := $(apache_http_src_files)
87LOCAL_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 \
105    ../../frameworks/base/core/java/com/android/internal/util/HexDump.java \
106
107LOCAL_JAVA_LIBRARIES := bouncycastle okhttp $(apache_http_java_libs)
108LOCAL_MODULE_CLASS := JAVA_LIBRARIES
109LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src \
110  $(LOCAL_PATH)/android \
111  $(LOCAL_PATH)/../../frameworks/base/core/java/org/apache
112
113APACHE_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
119LOCAL_DROIDDOC_OPTIONS:= \
120    -stubpackages $(subst $(space),:,$(apache_http_packages)) \
121    -hidePackage com.android.okhttp \
122    -stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/org.apache.http.legacy_intermediates/src \
123    -nodocs \
124    -api $(APACHE_HTTP_LEGACY_OUTPUT_API_FILE) \
125    -removedApi $(APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE) \
126
127LOCAL_SDK_VERSION := 21
128LOCAL_UNINSTALLABLE_MODULE := true
129LOCAL_MODULE := apache-http-stubs-gen
130
131include $(BUILD_DROIDDOC)
132
133# Remember the target that will trigger the code generation.
134apache_http_stubs_gen_stamp := $(full_target)
135
136# Add some additional dependencies
137$(APACHE_HTTP_LEGACY_OUTPUT_API_FILE): $(full_target)
138$(APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE): $(full_target)
139
140# For unbundled build we'll use the prebuilt jar from prebuilts/sdk.
141ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)))
142###############################################
143# Build the stub source files into a jar.
144include $(CLEAR_VARS)
145LOCAL_MODULE := org.apache.http.legacy
146LOCAL_SOURCE_FILES_ALL_GENERATED := true
147LOCAL_SDK_VERSION := 21
148# Make sure to run droiddoc first to generate the stub source files.
149LOCAL_ADDITIONAL_DEPENDENCIES := $(apache_http_stubs_gen_stamp)
150include $(BUILD_STATIC_JAVA_LIBRARY)
151
152# 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)
154
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
187endif  # not TARGET_BUILD_APPS
188
189apache_http_src_files :=
190apache_http_java_libs :=
191apache_http_packages :=
192apache_http_stubs_gen_stamp :=
193