blob: 8f9022ad4388072e468b79440062424f7d4c4e2e [file] [log] [blame]
//
// 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"],
}