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

cc_defaults {
    name: "libdivsufsort_defaults",
    host_supported: true,
    srcs: [
        "lib/divsufsort.c",
        "lib/sssort.c",
        "lib/trsort.c",
        "lib/utils.c",
    ],
    local_include_dirs: ["include"],
    export_include_dirs: ["android_include"],
    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
        "-DHAVE_CONFIG_H=1",
    ],
}

// libdivsufsort defines two different libraries compiled from the same
// codebase. The libraries export different symbols and differ on the integer
// type used in the suffix array index. "libdivsufsort" uses 32-bit integers
// allowing input sizes up to 2GiB, while "libdivsufsort64" uses 64-bit integers
// allowing larger input sizes (8 EiB) but also requiring twice as much memory
// for the smaller inputs.

// libdivsufsort using 32-bit integers for the suffix array.
cc_library_static {
    name: "libdivsufsort",
    defaults: ["libdivsufsort_defaults"],
}

// libdivsufsort using 64-bit integers for the suffix array.
cc_library_static {
    name: "libdivsufsort64",
    defaults: ["libdivsufsort_defaults"],
    cflags: ["-DBUILD_DIVSUFSORT64"],
}
