# Copyright 2016 The Fuchsia Authors
# Copyright (c) 2008-2015 Travis Geiselbrecht
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT

LOCAL_DIR := $(GET_LOCAL_DIR)
MODULE := $(LOCAL_DIR)

MODULE_SRCS += \
	$(LOCAL_DIR)/debug.cpp \
	$(LOCAL_DIR)/pci_config.cpp \
	$(LOCAL_DIR)/pcie_bridge.cpp \
	$(LOCAL_DIR)/pcie_bus_driver.cpp \
	$(LOCAL_DIR)/pcie_caps.cpp \
	$(LOCAL_DIR)/pcie_device.cpp \
	$(LOCAL_DIR)/pcie_irqs.cpp \
	$(LOCAL_DIR)/pcie_quirks.cpp \
	$(LOCAL_DIR)/pcie_root.cpp \
	$(LOCAL_DIR)/pcie_upstream_node.cpp

MODULE_DEPS += \
    kernel/lib/zxcpp \
    kernel/lib/fbl \
    kernel/lib/pci \
    kernel/lib/region-alloc

MODULE_CPPFLAGS += -Wno-invalid-offsetof

include make/module.mk
