# ----------------------------------------------------------------------------- # CDM top level makefile # LOCAL_PATH := $(call my-dir) # ----------------------------------------------------------------------------- # Builds android.hardware.drm@1.0-service.widevine # include $(CLEAR_VARS) LOCAL_SRC_FILES := src_hidl/service.cpp LOCAL_C_INCLUDES := \ vendor/widevine/libwvdrmengine/include_hidl \ vendor/widevine/libwvdrmengine/mediadrm/include \ vendor/widevine/libwvdrmengine/oemcrypto/include \ LOCAL_SHARED_LIBRARIES := \ android.hardware.drm@1.0 \ libbase \ libhidltransport \ libhwbinder \ liblog \ libutils \ libwvhidl \ libbinder \ LOCAL_HEADER_LIBRARIES := \ libstagefright_foundation_headers LOCAL_MODULE := android.hardware.drm@1.0-service.widevine LOCAL_INIT_RC := src_hidl/android.hardware.drm@1.0-service.widevine.rc LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/bin/hw LOCAL_PROPRIETARY_MODULE := true LOCAL_MODULE_OWNER := widevine ifneq ($(TARGET_ENABLE_MEDIADRM_64), true) LOCAL_MODULE_TARGET_ARCH := arm x86 mips endif include $(BUILD_EXECUTABLE) # ----------------------------------------------------------------------------- # Builds libcdm_utils.a # include $(CLEAR_VARS) LOCAL_MODULE := libcdm_utils LOCAL_MODULE_CLASS := STATIC_LIBRARIES LOCAL_PROPRIETARY_MODULE := true LOCAL_STATIC_LIBRARIES := libcrypto_static LOCAL_C_INCLUDES := \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/include \ vendor/widevine/libwvdrmengine/oemcrypto/include \ vendor/widevine/libwvdrmengine/third_party/stringencoders/src LOCAL_HEADER_LIBRARIES := \ libutils_headers \ LOCAL_SHARED_LIBRARIES := \ liblog SRC_DIR := cdm/src CORE_SRC_DIR := cdm/core/src LOCAL_SRC_FILES := \ third_party/stringencoders/src/modp_b64.cpp \ third_party/stringencoders/src/modp_b64w.cpp \ $(CORE_SRC_DIR)/properties.cpp \ $(CORE_SRC_DIR)/string_conversions.cpp \ $(SRC_DIR)/clock.cpp \ $(SRC_DIR)/file_store.cpp \ $(SRC_DIR)/file_utils.cpp \ $(SRC_DIR)/lock.cpp \ $(SRC_DIR)/log.cpp \ $(SRC_DIR)/properties_android.cpp \ $(SRC_DIR)/timer.cpp \ include $(BUILD_STATIC_LIBRARY) # ----------------------------------------------------------------------------- # Builds libcdm_protos.a # Generates *.a, *.pb.h and *.pb.cc for *.proto files. # include $(CLEAR_VARS) LOCAL_MODULE := libcdm_protos LOCAL_MODULE_CLASS := STATIC_LIBRARIES LOCAL_PROPRIETARY_MODULE := true CORE_PROTO_SRC_FILES := $(call all-proto-files-under, cdm/core/src) METRICS_PROTO_SRC_FILES := $(call all-proto-files-under, cdm/metrics/src) LOCAL_SRC_FILES := $(CORE_PROTO_SRC_FILES) $(METRICS_PROTO_SRC_FILES) generated_sources_dir := $(call local-generated-sources-dir) # $(generated_sources_dir)/proto/$(LOCAL_PATH)/cdm/core/src is used # to locate *.pb.h by cdm source # $(generated_sources_dir)/proto is used to locate *.pb.h included # by *.pb.cc # The module that depends on this library will have LOCAL_C_INCLUDES prepended # with this path. LOCAL_EXPORT_C_INCLUDE_DIRS := \ $(generated_sources_dir)/proto \ $(generated_sources_dir)/proto/$(LOCAL_PATH)/cdm/core/src \ $(generated_sources_dir)/proto/$(LOCAL_PATH)/cdm/metrics/src include $(BUILD_STATIC_LIBRARY) # ----------------------------------------------------------------------------- # Builds libwidevinehidl_utils.a # include $(CLEAR_VARS) LOCAL_MODULE := libwidevinehidl_utils LOCAL_PROPRIETARY_MODULE := true LOCAL_MODULE_CLASS := STATIC_LIBRARIES LOCAL_C_INCLUDES := \ vendor/widevine/libwvdrmengine/include_hidl LOCAL_SRC_FILES := \ src_hidl/TypeConvert.cpp LOCAL_HEADER_LIBRARIES := \ libstagefright_headers LOCAL_SHARED_LIBRARIES := \ android.hardware.drm@1.0 include $(BUILD_STATIC_LIBRARY) # ----------------------------------------------------------------------------- # Builds libwvdrmengine.so # include $(CLEAR_VARS) LOCAL_SRC_FILES := \ src/WVCDMSingleton.cpp \ src/WVCreatePluginFactories.cpp \ src/WVCryptoFactory.cpp \ src/WVDrmFactory.cpp \ src/WVUUID.cpp \ LOCAL_C_INCLUDES := \ frameworks/av/include \ frameworks/native/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/metrics/include \ vendor/widevine/libwvdrmengine/cdm/include \ vendor/widevine/libwvdrmengine/include \ vendor/widevine/libwvdrmengine/mediacrypto/include \ vendor/widevine/libwvdrmengine/mediadrm/include \ vendor/widevine/libwvdrmengine/oemcrypto/include \ LOCAL_STATIC_LIBRARIES := \ libcdm \ libcdm_protos \ libcdm_utils \ libcrypto_static \ libjsmn \ libwvdrmcryptoplugin \ libwvdrmdrmplugin \ libwvlevel3 \ LOCAL_SHARED_LIBRARIES := \ libcutils \ libdl \ liblog \ libprotobuf-cpp-lite \ libstagefright_foundation \ libutils \ LOCAL_HEADER_LIBRARIES := \ libutils_headers \ libstagefright_headers LOCAL_MODULE := libwvdrmengine LOCAL_MODULE_RELATIVE_PATH := mediadrm LOCAL_MODULE_TAGS := optional LOCAL_MODULE_OWNER := widevine LOCAL_PROPRIETARY_MODULE := true include $(BUILD_SHARED_LIBRARY) # ----------------------------------------------------------------------------- # Builds libwvhidl.so # include $(CLEAR_VARS) LOCAL_SRC_FILES := \ src/WVCDMSingleton.cpp \ src/WVUUID.cpp \ src_hidl/WVCreatePluginFactories.cpp \ src_hidl/WVCryptoFactory.cpp \ src_hidl/WVDrmFactory.cpp \ LOCAL_C_INCLUDES := \ frameworks/av/include \ frameworks/native/include \ vendor/widevine/libwvdrmengine/cdm/core/include \ vendor/widevine/libwvdrmengine/cdm/metrics/include \ vendor/widevine/libwvdrmengine/cdm/include \ vendor/widevine/libwvdrmengine/include_hidl \ vendor/widevine/libwvdrmengine/include \ vendor/widevine/libwvdrmengine/mediacrypto/include_hidl \ vendor/widevine/libwvdrmengine/mediacrypto/include \ vendor/widevine/libwvdrmengine/mediadrm/include_hidl \ vendor/widevine/libwvdrmengine/mediadrm/include \ vendor/widevine/libwvdrmengine/oemcrypto/include \ LOCAL_STATIC_LIBRARIES := \ libcdm \ libcdm_protos \ libcdm_utils \ libcrypto_static \ libjsmn \ libwvdrmcryptoplugin_hidl \ libwvdrmdrmplugin_hidl \ libwvlevel3 \ # When the GNU linker sees a library, it discards all symbols that it doesn't # need. libwidevinehidl_utils must come after both libwvdrmcryptoplugin and # libwvdrmdrmplugin. LOCAL_STATIC_LIBRARIES += libwidevinehidl_utils LOCAL_SHARED_LIBRARIES := \ android.hardware.drm@1.0 \ android.hidl.memory@1.0 \ libcutils \ libdl \ libhidlbase \ libhidlmemory \ libhidltransport \ libhwbinder \ liblog \ libprotobuf-cpp-lite \ libutils \ LOCAL_MODULE := libwvhidl LOCAL_MODULE_TAGS := optional LOCAL_MODULE_OWNER := widevine LOCAL_PROPRIETARY_MODULE := true include $(BUILD_SHARED_LIBRARY) include vendor/widevine/libwvdrmengine/cdm/Android.mk include vendor/widevine/libwvdrmengine/level3/Android.mk include vendor/widevine/libwvdrmengine/mediacrypto/Android.mk include vendor/widevine/libwvdrmengine/mediadrm/Android.mk include vendor/widevine/libwvdrmengine/vts/vendor_module/Android.mk