#
# Makefile for the Cavium Octeon specific kernel interface routines
# under Linux.
#
# This file is subject to the terms and conditions of the GNU General Public
# License.  See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 2005-2008 Cavium Networks
#

obj-y := setup.o serial.o octeon-irq.o csrc-octeon.o
obj-y += dma-octeon.o flash_setup.o
obj-y += octeon-memcpy.o

obj-$(CONFIG_SMP)                     += smp.o
obj-$(CONFIG_PCI)                     += pci-common.o
obj-$(CONFIG_PCI)                     += pci.o
obj-$(CONFIG_PCI)                     += pcie.o
obj-$(CONFIG_PCI_MSI)                 += msi.o

EXTRA_CFLAGS += -Werror
