// Copyright (c) 2014 Amlogic, Inc. All rights reserved.
//
// This source code is subject to the terms and conditions defined in the
// file 'LICENSE' which is part of this source code package.
//
// Description: makefile

package {
    default_applicable_licenses: ["vendor_amlogic_libdvr_license"],
}

license {
    name: "vendor_amlogic_libdvr_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
}

cc_library_shared {
    name: "libamdvr",
    vendor: true,
    compile_multilib: "both",

    arch: {
        arm: {
            instruction_set: "arm",
        },
        arm64: {
            enabled: true,
        },
        x86: {
            enabled: false,
        },
        x86_64: {
            enabled: false,
        },
    },
    srcs: [
        "src/dvb_dmx_wrapper.c",
        "src/dvb_frontend_wrapper.c",
        "src/dvb_utils.c",
        "src/dvr_playback.c",
        "src/dvr_record.c",
        "src/dvr_segment.c",
        "src/dvr_utils.c",
        "src/dvr_wrapper.c",
        "src/index_file.c",
        "src/list_file.c",
        "src/record_device.c",
        "src/segment.c",
        "src/segment_dataout.c",
        "src/am_crypt.c",
        "src/dvr_mutex.c",
    ],
    shared_libs: [
        "libcutils",
        "liblog",
        "libdl",
        "libc",
        "liblog",
        "libmediahal_tsplayer",
    ],
    cflags: [

    ],

    // TODO: revise
    include_dirs: [
      "hardware/amlogic/media/amcodec/include",
      "vendor/amlogic/common/mediahal_sdk/include",
    ],

    static_libs: [

    ],


    export_include_dirs: [
        "include",
    ],


    ldflags: ["-shared"],
}

cc_library_shared {
    name: "libamdvr.system",
    compile_multilib: "both",
    system_ext_specific: true,

    arch: {
        arm: {
            instruction_set: "arm",
        },
        arm64: {
            enabled: true,
        },
        x86: {
            enabled: false,
        },
        x86_64: {
            enabled: false,
        },
    },
    srcs: [
        "src/dvb_dmx_wrapper.c",
        "src/dvb_frontend_wrapper.c",
        "src/dvb_utils.c",
        "src/dvr_playback.c",
        "src/dvr_record.c",
        "src/dvr_segment.c",
        "src/dvr_utils.c",
        "src/dvr_wrapper.c",
        "src/index_file.c",
        "src/list_file.c",
        "src/record_device.c",
        "src/segment.c",
        "src/segment_dataout.c",
        "src/am_crypt.c",
        "src/dvr_mutex.c",
    ],
    shared_libs: [
        "libcutils",
        "liblog",
        "libdl",
        "libc",
        "liblog",
        "libmediahal_tsplayer.system",
    ],
    cflags: [

    ],

    // TODO: revise
    include_dirs: [
      "hardware/amlogic/media/amcodec/include",
      "vendor/amlogic/common/mediahal_sdk/include",
    ],

    static_libs: [

    ],


    export_include_dirs: [
        "include",
    ],


    ldflags: ["-shared"],

}

subdirs=[
	"test"
]
