# Copyright 2018 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/toolchain/gcc_toolchain.gni")

gcc_toolchain("mips-bundled") {
  toolprefix = rebase_path("//tools/mips_toolchain/bin/mips-mti-linux-gnu-",
                           root_build_dir)
  cc = "${toolprefix}gcc"
  cxx = "${toolprefix}g++"

  readelf = "${toolprefix}readelf"
  nm = "${toolprefix}nm"
  ar = "${toolprefix}ar"
  ld = cxx

  # Flag that sets endianness
  extra_ldflags = "-EB"
  extra_cppflags = "-EB"

  toolchain_args = {
    current_cpu = "mips"
    current_os = "linux"
    is_clang = false
  }
}

gcc_toolchain("mips64-bundled") {
  toolprefix = rebase_path("//tools/mips_toolchain/bin/mips-mti-linux-gnu-",
                           root_build_dir)
  cc = "${toolprefix}gcc"
  cxx = "${toolprefix}g++"

  readelf = "${toolprefix}readelf"
  nm = "${toolprefix}nm"
  ar = "${toolprefix}ar"
  ld = cxx

  # Flag that sets endianness and ABI
  extra_ldflags = "-EB -mabi=64"
  extra_cppflags = "-EB -mabi=64"

  toolchain_args = {
    current_cpu = "mips64"
    current_os = "linux"
    is_clang = false
  }
}

gcc_toolchain("mipsel-bundled") {
  toolprefix = rebase_path("//tools/mips_toolchain/bin/mips-mti-linux-gnu-",
                           root_build_dir)
  cc = "${toolprefix}gcc"
  cxx = "${toolprefix}g++"

  readelf = "${toolprefix}readelf"
  nm = "${toolprefix}nm"
  ar = "${toolprefix}ar"
  ld = cxx

  # Flag that sets endianness
  extra_ldflags = "-EL"
  extra_cppflags = "-EL"

  toolchain_args = {
    current_cpu = "mipsel"
    current_os = "linux"
    is_clang = false
  }
}

gcc_toolchain("mips64el-bundled") {
  toolprefix = rebase_path("//tools/mips_toolchain/bin/mips-mti-linux-gnu-",
                           root_build_dir)
  cc = "${toolprefix}gcc"
  cxx = "${toolprefix}g++"

  readelf = "${toolprefix}readelf"
  nm = "${toolprefix}nm"
  ar = "${toolprefix}ar"
  ld = cxx

  # Flag that sets endianness and ABI
  extra_ldflags = "-EL -mabi=64"
  extra_cppflags = "-EL -mabi=64"

  toolchain_args = {
    current_cpu = "mips64el"
    current_os = "linux"
    is_clang = false
  }
}