Makefile文件  |  193行  |  5.34 KB

#
# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

LOCAL_PATH := $(call my-dir)

# This has to be lazy-resolved because it depends on the LOCAL_MODULE_CLASS
# which varies depending on what is being built.
define keystore_proto_include
$(call local-generated-sources-dir)/proto/$(LOCAL_PATH)
endef

ifneq ($(TARGET_BUILD_PDK),true)
include $(CLEAR_VARS)
ifeq ($(USE_32_BIT_KEYSTORE), true)
LOCAL_MULTILIB := 32
endif
LOCAL_CFLAGS := -Wall -Wextra -Werror -Wunused
LOCAL_SRC_FILES := \
	auth_token_table.cpp \
	blob.cpp \
	entropy.cpp \
	key_store_service.cpp \
	keystore_attestation_id.cpp \
	keyblob_utils.cpp \
	keystore.cpp \
	keystore_main.cpp \
	keystore_utils.cpp \
	legacy_keymaster_device_wrapper.cpp \
	keymaster_enforcement.cpp \
	operation.cpp \
	permissions.cpp \
	user_state.cpp \
	../../../frameworks/base/core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl
LOCAL_SHARED_LIBRARIES := \
	libbinder \
	libcutils \
	libcrypto \
	libhardware \
	libwifikeystorehal \
	libkeystore_binder \
	liblog \
	libsoftkeymaster \
	libutils \
	libselinux \
	libsoftkeymasterdevice \
	libkeymaster_messages \
	libkeymaster1 \
	libhwbinder \
	libhidlbase \
	libhidltransport \
	android.hardware.keymaster@3.0 \
	android.system.wifi.keystore@1.0
LOCAL_MODULE := keystore
LOCAL_MODULE_TAGS := optional
LOCAL_INIT_RC := keystore.rc
LOCAL_C_INCLUES := system/keymaster/
LOCAL_CLANG := true
LOCAL_SANITIZE := integer
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_AIDL_INCLUDES := frameworks/base/core/java/
include $(BUILD_EXECUTABLE)
endif

include $(CLEAR_VARS)
ifeq ($(USE_32_BIT_KEYSTORE), true)
LOCAL_MULTILIB := 32
endif
LOCAL_CFLAGS := -Wall -Wextra -Werror
LOCAL_SRC_FILES := keystore_cli.cpp
LOCAL_SHARED_LIBRARIES := libcutils libcrypto libkeystore_binder libutils liblog libbinder \
	libhwbinder \
	libhidlbase \
	android.hardware.keymaster@3.0
LOCAL_MODULE := keystore_cli
LOCAL_MODULE_TAGS := debug
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)
ifeq ($(USE_32_BIT_KEYSTORE), true)
LOCAL_MULTILIB := 32
endif
LOCAL_CFLAGS := -Wall -Wextra -Werror -Wno-unused-parameter -DKEYMASTER_NAME_TAGS
LOCAL_SRC_FILES := keystore_cli_v2.cpp
LOCAL_SHARED_LIBRARIES := \
	libchrome \
	libkeystore_binder \
	libhwbinder \
	libhidlbase \
	android.hardware.keymaster@3.0

LOCAL_MODULE := keystore_cli_v2
LOCAL_MODULE_TAGS := debug
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include external/gtest/include
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
include $(BUILD_EXECUTABLE)

# Library for keystore clients
include $(CLEAR_VARS)
ifeq ($(USE_32_BIT_KEYSTORE), true)
LOCAL_MULTILIB := 32
endif
LOCAL_CFLAGS := -Wall -Wextra -Werror
LOCAL_SRC_FILES := \
	IKeystoreService.cpp \
	KeyAttestationApplicationId.cpp \
	KeyAttestationPackageInfo.cpp \
	Signature.cpp \
	keyblob_utils.cpp \
	keystore_client.proto \
	keystore_client_impl.cpp \
	keystore_get.cpp \
	authorization_set.cpp \
	keystore_tags_utils.cpp \
	keystore_aidl_hidl_marshalling_utils.cpp
LOCAL_SHARED_LIBRARIES := \
	libbinder \
	liblog \
	libprotobuf-cpp-lite \
	libutils \
	libhwbinder \
	libhidlbase \
	android.hardware.keymaster@3.0
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE := libkeystore_binder
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(call keystore_proto_include)
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
LOCAL_EXPORT_SHARED_LIBRARY_HEADERS := libbinder \
	libhwbinder \
	libhidlbase \
	android.hardware.keymaster@3.0
LOCAL_CLANG := true
LOCAL_SANITIZE := integer
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
include $(BUILD_SHARED_LIBRARY)

# Library for keystore clients using the WiFi HIDL interface
include $(CLEAR_VARS)
LOCAL_CFLAGS := -Wall -Wextra -Werror
LOCAL_SRC_FILES := \
	keystore_get_wifi_hidl.cpp
LOCAL_SHARED_LIBRARIES := \
	android.system.wifi.keystore@1.0 \
	libbase \
	libhidlbase \
	libhidltransport \
	liblog \
	libutils
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE := libkeystore-wifi-hidl
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
LOCAL_CLANG := true
LOCAL_SANITIZE := integer
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
LOCAL_VENDOR_MODULE := true
include $(BUILD_SHARED_LIBRARY)

# Library for unit tests
include $(CLEAR_VARS)
ifeq ($(USE_32_BIT_KEYSTORE), true)
LOCAL_MULTILIB := 32
endif
LOCAL_CFLAGS := -Wall -Wextra -Werror
LOCAL_SRC_FILES := auth_token_table.cpp
LOCAL_MODULE := libkeystore_test
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_STATIC_LIBRARIES := libgtest_main
LOCAL_SHARED_LIBRARIES := libkeymaster_messages \
	libutils \
	libhwbinder \
	libhidlbase \
	android.hardware.keymaster@3.0

LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
include $(BUILD_STATIC_LIBRARY)