Home | History | Annotate | Download | only in apache-http
      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 #
     15 LOCAL_PATH:= $(call my-dir)
     16 
     17 apache_http_src_files := \
     18     $(call all-java-files-under,src) \
     19     $(call all-java-files-under,android)
     20 
     21 apache_http_java_libs := conscrypt
     22 
     23 apache_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 
     65 include $(CLEAR_VARS)
     66 LOCAL_MODULE := org.apache.http.legacy.boot
     67 LOCAL_MODULE_TAGS := optional
     68 LOCAL_JAVA_LIBRARIES := $(apache_http_java_libs)
     69 LOCAL_SRC_FILES := $(apache_http_src_files)
     70 LOCAL_MODULE_TAGS := optional
     71 LOCAL_DEX_PREOPT_APP_IMAGE := false
     72 ifeq ($(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.
     78 LOCAL_DEX_PREOPT_GENERATE_PROFILE := true
     79 LOCAL_DEX_PREOPT_PROFILE_CLASS_LISTING := $(LOCAL_PATH)/art-profile/$(LOCAL_MODULE).prof.txt
     80 endif
     81 include $(BUILD_JAVA_LIBRARY)
     82 
     83 ##############################################
     84 # Generate the stub source files
     85 include $(CLEAR_VARS)
     86 LOCAL_SRC_FILES := $(apache_http_src_files)
     87 LOCAL_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 
    107 LOCAL_JAVA_LIBRARIES := bouncycastle okhttp $(apache_http_java_libs)
    108 LOCAL_MODULE_CLASS := JAVA_LIBRARIES
    109 LOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/src \
    110   $(LOCAL_PATH)/android \
    111   $(LOCAL_PATH)/../../frameworks/base/core/java/org/apache
    112 
    113 APACHE_HTTP_LEGACY_OUTPUT_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/org.apache.http.legacy.stubs_intermediates/api.txt
    114 APACHE_HTTP_LEGACY_OUTPUT_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/org.apache.http.legacy.stubs_intermediates/removed.txt
    115 
    116 APACHE_HTTP_LEGACY_API_FILE := $(LOCAL_PATH)/api/apache-http-legacy-current.txt
    117 APACHE_HTTP_LEGACY_REMOVED_API_FILE := $(LOCAL_PATH)/api/apache-http-legacy-removed.txt
    118 
    119 LOCAL_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 
    127 LOCAL_SDK_VERSION := 21
    128 LOCAL_UNINSTALLABLE_MODULE := true
    129 LOCAL_MODULE := apache-http-stubs-gen
    130 
    131 include $(BUILD_DROIDDOC)
    132 
    133 # Remember the target that will trigger the code generation.
    134 apache_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.
    141 ifeq (,$(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)))
    142 ###############################################
    143 # Build the stub source files into a jar.
    144 include $(CLEAR_VARS)
    145 LOCAL_MODULE := org.apache.http.legacy
    146 LOCAL_SOURCE_FILES_ALL_GENERATED := true
    147 LOCAL_SDK_VERSION := 21
    148 # Make sure to run droiddoc first to generate the stub source files.
    149 LOCAL_ADDITIONAL_DEPENDENCIES := $(apache_http_stubs_gen_stamp)
    150 include $(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
    176 checkapi: check-apache-http-legacy-api
    177 
    178 .PHONY: update-apache-http-legacy-api
    179 update-api: update-apache-http-legacy-api
    180 
    181 update-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 
    187 endif  # not TARGET_BUILD_APPS
    188 
    189 apache_http_src_files :=
    190 apache_http_java_libs :=
    191 apache_http_packages :=
    192 apache_http_stubs_gen_stamp :=
    193