//
// Copyright (C) 2018 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.
//

// Add an empty config.h so that we can specify HAVE_CONFIG_H, the compile
// doesn't work otherwise. All of the values are actually specified in the
// cflags.
genrule {
    name: "xz-config-h",
    cmd: "touch $(out)",
    out: ["config.h"],
}

cc_defaults {
    name: "xz-defaults",

    stl: "none",
    local_include_dirs: ["src/common"],
    generated_headers: ["xz-config-h"],
    cflags: [
        "-DHAVE_CONFIG_H=1",

        "-DPACKAGE_NAME=\"XZ Utils\"",
        "-DPACKAGE_BUGREPORT=\"\"",
        "-DPACKAGE_URL=\"\"",

        "-DHAVE_ENCODER_LZMA1=1",
        "-DHAVE_ENCODER_LZMA2=1",
        "-DHAVE_ENCODER_X86=1",
        "-DHAVE_ENCODER_DELTA=1",
        "-DHAVE_ENCODERS=1",
        "-DHAVE_DECODER_LZMA1=1",
        "-DHAVE_DECODER_LZMA2=1",
        "-DHAVE_DECODER_X86=1",
        "-DHAVE_DECODER_DELTA=1",
        "-DHAVE_DECODERS=1",

        "-DHAVE_MF_HC3=1",
        "-DHAVE_MF_HC4=1",
        "-DHAVE_MF_BT2=1",
        "-DHAVE_MF_BT3=1",
        "-DHAVE_MF_BT4=1",

        "-DHAVE_CHECK_CRC32=1",
        "-DHAVE_CHECK_CRC64=1",
        "-DHAVE_CHECK_SHA256=1",

        "-DASSUME_RAM=128",

        "-DPACKAGE=\"xz\"",

        "-DHAVE_DLFCN_H=1",
        "-DHAVE_INTTYPES_H=1",
        "-DHAVE_LIMITS_H=1",
        "-DHAVE_MEMORY_H=1",
        "-DHAVE_STDBOOL_H=1",
        "-DHAVE_STDINT_H=1",
        "-DHAVE_STRING_H=1",
        "-DHAVE_STRINGS_H=1",

        "-DMYTHREAD_POSIX=1",
        "-DTUKLIB_FAST_UNALIGNED_ACCESS=1",
        "-DTUKLIB_CPUCORES_SYSCONF=1",
    ],

    target: {
        linux: {
            cflags: [
                "-DHAVE_BYTESWAP_H=1",
                "-DHAVE_BSWAP_16=1",
                "-DHAVE_BSWAP_32=1",
                "-DHAVE_BSWAP_64=1",

                "-DHAVE_CLOCK_GETTIME=1",
                "-DHAVE_DECL_CLOCK_MONOTONIC=1",
                "-DHAVE_PTHREAD_CONDATTR_SETCLOCK=1",
                "-DHAVE_FUTIMENS=1",
                "-DHAVE_POSIX_FADVISE=1",

                "-DTUKLIB_PHYSMEM_SYSCONF=1",
            ],
        },
        darwin: {
            cflags: [
                "-DHAVE_OPTRESET=1",
                "-DHAVE_FUTIMES=1",

                "-DTUKLIB_PHYSMEM_SYSCTL=1",
            ],
        },
    },
}

cc_library_host_static {
    name: "xz-liblzma",
    defaults: ["xz-defaults"],

    srcs: [
        // From src/liblzma/Makefile.am
        "src/common/tuklib_physmem.c",
        "src/common/tuklib_cpucores.c",

        // From src/liblzma/common/Makefile.inc
        "src/liblzma/common/common.c",
        "src/liblzma/common/block_util.c",
        "src/liblzma/common/easy_preset.c",
        "src/liblzma/common/filter_common.c",
        "src/liblzma/common/hardware_physmem.c",
        "src/liblzma/common/index.c",
        "src/liblzma/common/stream_flags_common.c",
        "src/liblzma/common/vli_size.c",
        "src/liblzma/common/hardware_cputhreads.c",
        "src/liblzma/common/alone_encoder.c",
        "src/liblzma/common/block_buffer_encoder.c",
        "src/liblzma/common/block_encoder.c",
        "src/liblzma/common/block_header_encoder.c",
        "src/liblzma/common/easy_buffer_encoder.c",
        "src/liblzma/common/easy_encoder.c",
        "src/liblzma/common/easy_encoder_memusage.c",
        "src/liblzma/common/filter_buffer_encoder.c",
        "src/liblzma/common/filter_encoder.c",
        "src/liblzma/common/filter_flags_encoder.c",
        "src/liblzma/common/index_encoder.c",
        "src/liblzma/common/stream_buffer_encoder.c",
        "src/liblzma/common/stream_encoder.c",
        "src/liblzma/common/stream_flags_encoder.c",
        "src/liblzma/common/vli_encoder.c",
        "src/liblzma/common/outqueue.c",
        "src/liblzma/common/stream_encoder_mt.c",
        "src/liblzma/common/alone_decoder.c",
        "src/liblzma/common/auto_decoder.c",
        "src/liblzma/common/block_buffer_decoder.c",
        "src/liblzma/common/block_decoder.c",
        "src/liblzma/common/block_header_decoder.c",
        "src/liblzma/common/easy_decoder_memusage.c",
        "src/liblzma/common/filter_buffer_decoder.c",
        "src/liblzma/common/filter_decoder.c",
        "src/liblzma/common/filter_flags_decoder.c",
        "src/liblzma/common/index_decoder.c",
        "src/liblzma/common/index_hash.c",
        "src/liblzma/common/stream_buffer_decoder.c",
        "src/liblzma/common/stream_decoder.c",
        "src/liblzma/common/stream_flags_decoder.c",
        "src/liblzma/common/vli_decoder.c",

        // src/liblzma/check/Makefile.inc
        "src/liblzma/check/check.c",
        "src/liblzma/check/crc32_table.c",
        "src/liblzma/check/crc32_fast.c",
        "src/liblzma/check/crc64_table.c",
        "src/liblzma/check/crc64_fast.c",
        "src/liblzma/check/sha256.c",

        // src/liblzma/lz/Makefile.inc
        "src/liblzma/lz/lz_encoder.c",
        "src/liblzma/lz/lz_encoder_mf.c",
        "src/liblzma/lz/lz_decoder.c",

        // src/liblzma/lzma/Makefile.inc
        "src/liblzma/lzma/lzma_encoder_presets.c",
        "src/liblzma/lzma/lzma_encoder.c",
        "src/liblzma/lzma/lzma_encoder_optimum_fast.c",
        "src/liblzma/lzma/lzma_encoder_optimum_normal.c",
        "src/liblzma/lzma/fastpos_table.c",
        "src/liblzma/lzma/lzma_decoder.c",
        "src/liblzma/lzma/lzma2_encoder.c",
        "src/liblzma/lzma/lzma2_decoder.c",

        // src/liblzma/rangecoder/Makefile.inc
        "src/liblzma/rangecoder/price_table.c",

        // src/liblzma/delta/Makefile.inc
        "src/liblzma/delta/delta_common.c",
        "src/liblzma/delta/delta_encoder.c",
        "src/liblzma/delta/delta_decoder.c",

        // src/liblzma/simple/Makefile.inc
        "src/liblzma/simple/simple_coder.c",
        "src/liblzma/simple/simple_encoder.c",
        "src/liblzma/simple/simple_decoder.c",
        "src/liblzma/simple/x86.c",
    ],

    cflags: ["-DTUKLIB_SYMBOL_PREFIX=lzma_"],

    local_include_dirs: [
        "src/liblzma/common",
        "src/liblzma/check",
        "src/liblzma/lz",
        "src/liblzma/rangecoder",
        "src/liblzma/lzma",
        "src/liblzma/delta",
        "src/liblzma/simple",
    ],
    export_include_dirs: [
        "src/liblzma/api",
    ],
}

cc_binary_host {
    name: "xz",
    defaults: ["xz-defaults"],
    srcs: [
        "src/xz/args.c",
        "src/xz/coder.c",
        "src/xz/file_io.c",
        "src/xz/hardware.c",
        "src/xz/main.c",
        "src/xz/message.c",
        "src/xz/mytime.c",
        "src/xz/options.c",
        "src/xz/signals.c",
        "src/xz/suffix.c",
        "src/xz/util.c",
        "src/common/tuklib_open_stdxxx.c",
        "src/common/tuklib_progname.c",
        "src/common/tuklib_exit.c",
        "src/common/tuklib_mbstr_width.c",
        "src/common/tuklib_mbstr_fw.c",

        "src/xz/list.c",
    ],
    local_include_dirs: ["src/xz"],
    static_libs: ["xz-liblzma"],
}
