11ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# Copyright (C) 2015 The Android Open Source Project 21ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# 31ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# Licensed under the Apache License, Version 2.0 (the "License"); 41ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# you may not use this file except in compliance with the License. 51ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# You may obtain a copy of the License at 61ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# 71ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# http://www.apache.org/licenses/LICENSE-2.0 81ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# 91ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# Unless required by applicable law or agreed to in writing, software 101ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# distributed under the License is distributed on an "AS IS" BASIS, 111ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# See the License for the specific language governing permissions and 131ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# limitations under the License. 141ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# 151ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung# 161ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung 17ec7b18f7596719ad3faa4fc54724928884dadf0fKeun-young Park#disble build in PDK, missing aidl import breaks build 18ec7b18f7596719ad3faa4fc54724928884dadf0fKeun-young Parkifneq ($(TARGET_BUILD_PDK),true) 19ec7b18f7596719ad3faa4fc54724928884dadf0fKeun-young Park 201ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoungLOCAL_PATH:= $(call my-dir) 211ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung 221ab8e18e01d8063821bee0bf641a365224c7e1eekeunyounginclude $(CLEAR_VARS) 231ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung 24e54ac276796c6535558f8444d882adecd19ce2bdKeun-young ParkLOCAL_MODULE := android.car 251ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoungLOCAL_MODULE_TAGS := optional 261ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung 27161f69e17ee3d9c26770ac15a04085c416341a1bKeun-young Parkifneq ($(TARGET_USES_CAR_FUTURE_FEATURES),true) 28161f69e17ee3d9c26770ac15a04085c416341a1bKeun-young Park#TODO need a tool to generate proguard rule to drop all items under @FutureFeature 29161f69e17ee3d9c26770ac15a04085c416341a1bKeun-young Park#LOCAL_PROGUARD_ENABLED := custom 30161f69e17ee3d9c26770ac15a04085c416341a1bKeun-young Park#LOCAL_PROGUARD_FLAG_FILES := proguard_drop_future.flags 31161f69e17ee3d9c26770ac15a04085c416341a1bKeun-young Parkendif 32161f69e17ee3d9c26770ac15a04085c416341a1bKeun-young Park 33c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Cortescar_lib_sources := $(call all-java-files-under, src) 34c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Cortesifeq ($(TARGET_USES_CAR_FUTURE_FEATURES),true) 35c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Cortescar_lib_sources += $(call all-java-files-under, src_feature_future) 36c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Corteselse 37c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Cortescar_lib_sources += $(call all-java-files-under, src_feature_current) 38c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Cortesendif 39dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata 40c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Cortescar_lib_sources += $(call all-Iaidl-files-under, src) 41dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata 42dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata# IoStats* are parcelable types (vs. interface types), but the build system uses an initial 43dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata# I as a magic marker to mean "interface", and due to this ends up refusing to compile 44dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata# these files as part of the build process. 45dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata# A clean solution to this is actively being worked on by the build team, but is not yet 46dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata# available, so for now we just filter the files out by hand. 47dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granatacar_lib_sources := $(filter-out src/android/car/storagemonitoring/IoStats.aidl,$(car_lib_sources)) 48dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granatacar_lib_sources := $(filter-out src/android/car/storagemonitoring/IoStatsEntry.aidl,$(car_lib_sources)) 49dbda56fbeac92a6c2a5097181cf779c59d599240Enrico Granata 50b4dc215271f5eaa2fe14af42aabf00e925a8ebf5Jakub PawlowskiLOCAL_AIDL_INCLUDES += system/bt/binder 51c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio Cortes 52c52d5f9f6190cf9a44dd6dfd3bc92386fbf023b3Antonio CortesLOCAL_SRC_FILES := $(car_lib_sources) 531ab8e18e01d8063821bee0bf641a365224c7e1eekeunyoung 54e315d2ea1eb2a7e0c3929470ea7f200d4c982a21Allen Hairifeq ($(EMMA_INSTRUMENT_FRAMEWORK),true) 55e315d2ea1eb2a7e0c3929470ea7f200d4c982a21Allen HairLOCAL_EMMA_INSTRUMENT := true 56e315d2ea1eb2a7e0c3929470ea7f200d4c982a21Allen Hairendif 57e315d2ea1eb2a7e0c3929470ea7f200d4c982a21Allen Hair 58e54ac276796c6535558f8444d882adecd19ce2bdKeun-young Parkinclude $(BUILD_JAVA_LIBRARY) 59ec7b18f7596719ad3faa4fc54724928884dadf0fKeun-young Park 609aef1ae7c554f7f77917dd57cfe5f5dabd96b454Vitalii Tomkivifeq ($(BOARD_IS_AUTOMOTIVE), true) 6162950b10bba9ffedca279f92f89b63810da379bfDean Harding$(call dist-for-goals,dist_files,$(full_classes_jar):$(LOCAL_MODULE).jar) 629aef1ae7c554f7f77917dd57cfe5f5dabd96b454Vitalii Tomkivendif 639aef1ae7c554f7f77917dd57cfe5f5dabd96b454Vitalii Tomkiv 64280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkiv# API Check 65280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkiv# --------------------------------------------- 66280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkivcar_module := $(LOCAL_MODULE) 67280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkivcar_module_src_files := $(LOCAL_SRC_FILES) 68280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkivcar_module_api_dir := $(LOCAL_PATH)/api 69280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkivcar_module_java_libraries := framework 70280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkivcar_module_include_systemapi := true 71280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkivcar_module_java_packages := android.car* 72280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkivinclude $(CAR_API_CHECK) 73280b5721254e5ac974404e02e7589f17f560d1f9Vitalii Tomkiv 745c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# Build stubs jar for target android-support-car 755c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# --------------------------------------------- 765c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxinginclude $(CLEAR_VARS) 775c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 785c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_SRC_FILES := $(call all-java-files-under, src) 795c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 805c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_JAVA_LIBRARIES := android.car 815c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 825c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_ADDITIONAL_JAVA_DIR := $(call intermediates-dir-for,JAVA_LIBRARIES,android.car,,COMMON)/src 835c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 845c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxingandroid_car_stub_packages := \ 855c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing android.car* 865c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 875c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxingandroid_car_api := \ 885c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/android.car_api.txt 895c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 905c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# Note: The make target is android.car-stub-docs 915c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_MODULE := android.car-stub 925c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_DROIDDOC_OPTIONS := \ 935c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing -stubs $(call intermediates-dir-for,JAVA_LIBRARIES,android.car-stubs,,COMMON)/src \ 945c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing -stubpackages $(subst $(space),:,$(android_car_stub_packages)) \ 955c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing -api $(android_car_api) \ 965c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing -nodocs 975c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 985c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_DROIDDOC_SOURCE_PATH := $(LOCAL_PATH)/java/ 995c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_DROIDDOC_HTML_DIR := 1005c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1015c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_MODULE_CLASS := JAVA_LIBRARIES 1025c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1035c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_UNINSTALLABLE_MODULE := true 1045c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1055c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxinginclude $(BUILD_DROIDDOC) 1065c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1075c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing$(android_car_api): $(full_target) 1085c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1095c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxingandroid.car-stubs_stamp := $(full_target) 1105c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1115c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing############################################### 1125c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# Build the stubs java files into a jar. This build rule relies on the 1135c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# stubs_stamp make variable being set from the droiddoc rule. 1145c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1155c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxinginclude $(CLEAR_VARS) 1165c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1175c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# CAR_API_CHECK uses the same name to generate a module, but BUILD_DROIDDOC 1185c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# appends "-docs" to module name. 1195c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_MODULE := android.car-stubs 1205c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_SOURCE_FILES_ALL_GENERATED := true 1215c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1225c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing# Make sure to run droiddoc first to generate the stub source files. 1235c71c0dea24bcdbb55fe473932424434626585b4Yao, YuxingLOCAL_ADDITIONAL_DEPENDENCIES := $(android.car-stubs_stamp) 1245c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1255c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxinginclude $(BUILD_STATIC_JAVA_LIBRARY) 1265c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 1275c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxingandroid.car-stubs_stamp := 1285c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxingandroid_car_stub_packages := 1295c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxingandroid_car_api := 1305c71c0dea24bcdbb55fe473932424434626585b4Yao, Yuxing 131b40de197fb9b60bcbb20c243ba6b1a41e25e2e67Steve Paikinclude $(call all-makefiles-under,$(LOCAL_PATH)) 132b40de197fb9b60bcbb20c243ba6b1a41e25e2e67Steve Paik 1337bd39e929390e754c96e2792efe0deac7b3841e6Anthony Chenendif #TARGET_BUILD_PDK 134