# Copyright 2019 The Fuchsia 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/bind/bind.gni")
import("//build/config/fuchsia/rules.gni")

bind_library("fuchsia.intel.e1000") {
  source = "fuchsia.intel.e1000.bind"
}

bind_rules("e1000_bind") {
  rules = "e1000.bind"
  output = "e1000_bind.h"
  tests = "bind-tests.json"
  deps = [
    ":fuchsia.intel.e1000",
    "//src/devices/bind/fuchsia.pci",
  ]
}

driver_module("e1000") {
  configs += [
    "//build/config:all_source",
    "//build/config/fuchsia:enable_zircon_asserts",
  ]
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [
    "e1000_80003es2lan.c",
    "e1000_82540.c",
    "e1000_82541.c",
    "e1000_82542.c",
    "e1000_82543.c",
    "e1000_82571.c",
    "e1000_82575.c",
    "e1000_api.c",
    "e1000_i210.c",
    "e1000_ich8lan.c",
    "e1000_mac.c",
    "e1000_manage.c",
    "e1000_mbx.c",
    "e1000_nvm.c",
    "e1000_osdep.c",
    "e1000_phy.c",
    "e1000_vf.c",
    "fuchsia.c",
  ]
  deps = [
    ":e1000_bind",
    "//sdk/banjo/fuchsia.hardware.ethernet",
    "//sdk/banjo/fuchsia.hardware.pci",
    "//src/devices/lib/driver",
    "//src/devices/pci/lib/device-protocol-pci",
    "//src/devices/pci/lib/pci",
    "//src/lib/ddk",
    "//src/lib/listnode",
  ]
  configs += [ "//build/config:Wno-conversion" ]
}

group("tests") {
  testonly = true
  deps = [ ":e1000_bind_test" ]
}
