From ed033bcf5b544f7121644840a67617dc00bbc50f Mon Sep 17 00:00:00 2001
From: Sascha Wildner <saw@online.de>
Date: Mon, 30 Nov 2015 21:31:06 +0100
Subject: [PATCH 17/17] kernel/drm: Replace nouveau's Makefile with our own.

---
 sys/dev/drm/Makefile         |   2 +-
 sys/dev/drm/nouveau/Makefile | 860 ++++++++++++++++++++++++-------------------
 2 files changed, 489 insertions(+), 373 deletions(-)

diff --git a/sys/dev/drm/Makefile b/sys/dev/drm/Makefile
index 03069e4..864320e 100644
--- a/sys/dev/drm/Makefile
+++ b/sys/dev/drm/Makefile
@@ -1,4 +1,4 @@
-SUBDIR = drm radeon radeonfw
+SUBDIR = drm nouveau radeon radeonfw
 
 .if ${MACHINE_ARCH} == "x86_64"
 SUBDIR+= i915
diff --git a/sys/dev/drm/nouveau/Makefile b/sys/dev/drm/nouveau/Makefile
index f5d7f7c..5510ce3 100644
--- a/sys/dev/drm/nouveau/Makefile
+++ b/sys/dev/drm/nouveau/Makefile
@@ -1,372 +1,488 @@
-#
-# Makefile for the drm device driver.  This driver provides support for the
-# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
-
-ccflags-y := -Iinclude/drm
-ccflags-y += -I$(src)/core/include
-ccflags-y += -I$(src)/core
-ccflags-y += -I$(src)
-
-nouveau-y := core/core/client.o
-nouveau-y += core/core/engctx.o
-nouveau-y += core/core/engine.o
-nouveau-y += core/core/enum.o
-nouveau-y += core/core/event.o
-nouveau-y += core/core/gpuobj.o
-nouveau-y += core/core/handle.o
-nouveau-y += core/core/ioctl.o
-nouveau-y += core/core/mm.o
-nouveau-y += core/core/namedb.o
-nouveau-y += core/core/notify.o
-nouveau-y += core/core/object.o
-nouveau-y += core/core/option.o
-nouveau-y += core/core/parent.o
-nouveau-y += core/core/printk.o
-nouveau-y += core/core/ramht.o
-nouveau-y += core/core/subdev.o
-
-nouveau-y += core/subdev/bar/base.o
-nouveau-y += core/subdev/bar/nv50.o
-nouveau-y += core/subdev/bar/nvc0.o
-nouveau-y += core/subdev/bar/gk20a.o
-nouveau-y += core/subdev/bios/base.o
-nouveau-y += core/subdev/bios/bit.o
-nouveau-y += core/subdev/bios/boost.o
-nouveau-y += core/subdev/bios/conn.o
-nouveau-y += core/subdev/bios/cstep.o
-nouveau-y += core/subdev/bios/dcb.o
-nouveau-y += core/subdev/bios/disp.o
-nouveau-y += core/subdev/bios/dp.o
-nouveau-y += core/subdev/bios/extdev.o
-nouveau-y += core/subdev/bios/gpio.o
-nouveau-y += core/subdev/bios/i2c.o
-nouveau-y += core/subdev/bios/init.o
-nouveau-y += core/subdev/bios/mxm.o
-nouveau-y += core/subdev/bios/perf.o
-nouveau-y += core/subdev/bios/pll.o
-nouveau-y += core/subdev/bios/ramcfg.o
-nouveau-y += core/subdev/bios/rammap.o
-nouveau-y += core/subdev/bios/timing.o
-nouveau-y += core/subdev/bios/therm.o
-nouveau-y += core/subdev/bios/vmap.o
-nouveau-y += core/subdev/bios/volt.o
-nouveau-y += core/subdev/bios/xpio.o
-nouveau-y += core/subdev/bios/P0260.o
-nouveau-y += core/subdev/bus/hwsq.o
-nouveau-y += core/subdev/bus/nv04.o
-nouveau-y += core/subdev/bus/nv31.o
-nouveau-y += core/subdev/bus/nv50.o
-nouveau-y += core/subdev/bus/nv94.o
-nouveau-y += core/subdev/bus/nvc0.o
-nouveau-y += core/subdev/clock/base.o
-nouveau-y += core/subdev/clock/nv04.o
-nouveau-y += core/subdev/clock/nv40.o
-nouveau-y += core/subdev/clock/nv50.o
-nouveau-y += core/subdev/clock/nv84.o
-nouveau-y += core/subdev/clock/nva3.o
-nouveau-y += core/subdev/clock/nvaa.o
-nouveau-y += core/subdev/clock/nvc0.o
-nouveau-y += core/subdev/clock/nve0.o
-nouveau-y += core/subdev/clock/gk20a.o
-nouveau-y += core/subdev/clock/pllnv04.o
-nouveau-y += core/subdev/clock/pllnva3.o
-nouveau-y += core/subdev/devinit/base.o
-nouveau-y += core/subdev/devinit/nv04.o
-nouveau-y += core/subdev/devinit/nv05.o
-nouveau-y += core/subdev/devinit/nv10.o
-nouveau-y += core/subdev/devinit/nv1a.o
-nouveau-y += core/subdev/devinit/nv20.o
-nouveau-y += core/subdev/devinit/nv50.o
-nouveau-y += core/subdev/devinit/nv84.o
-nouveau-y += core/subdev/devinit/nv98.o
-nouveau-y += core/subdev/devinit/nva3.o
-nouveau-y += core/subdev/devinit/nvaf.o
-nouveau-y += core/subdev/devinit/nvc0.o
-nouveau-y += core/subdev/devinit/gm107.o
-nouveau-y += core/subdev/fb/base.o
-nouveau-y += core/subdev/fb/nv04.o
-nouveau-y += core/subdev/fb/nv10.o
-nouveau-y += core/subdev/fb/nv1a.o
-nouveau-y += core/subdev/fb/nv20.o
-nouveau-y += core/subdev/fb/nv25.o
-nouveau-y += core/subdev/fb/nv30.o
-nouveau-y += core/subdev/fb/nv35.o
-nouveau-y += core/subdev/fb/nv36.o
-nouveau-y += core/subdev/fb/nv40.o
-nouveau-y += core/subdev/fb/nv41.o
-nouveau-y += core/subdev/fb/nv44.o
-nouveau-y += core/subdev/fb/nv46.o
-nouveau-y += core/subdev/fb/nv47.o
-nouveau-y += core/subdev/fb/nv49.o
-nouveau-y += core/subdev/fb/nv4e.o
-nouveau-y += core/subdev/fb/nv50.o
-nouveau-y += core/subdev/fb/nv84.o
-nouveau-y += core/subdev/fb/nva3.o
-nouveau-y += core/subdev/fb/nvaa.o
-nouveau-y += core/subdev/fb/nvaf.o
-nouveau-y += core/subdev/fb/nvc0.o
-nouveau-y += core/subdev/fb/nve0.o
-nouveau-y += core/subdev/fb/gk20a.o
-nouveau-y += core/subdev/fb/gm107.o
-nouveau-y += core/subdev/fb/ramnv04.o
-nouveau-y += core/subdev/fb/ramnv10.o
-nouveau-y += core/subdev/fb/ramnv1a.o
-nouveau-y += core/subdev/fb/ramnv20.o
-nouveau-y += core/subdev/fb/ramnv40.o
-nouveau-y += core/subdev/fb/ramnv41.o
-nouveau-y += core/subdev/fb/ramnv44.o
-nouveau-y += core/subdev/fb/ramnv49.o
-nouveau-y += core/subdev/fb/ramnv4e.o
-nouveau-y += core/subdev/fb/ramnv50.o
-nouveau-y += core/subdev/fb/ramnva3.o
-nouveau-y += core/subdev/fb/ramnvaa.o
-nouveau-y += core/subdev/fb/ramnvc0.o
-nouveau-y += core/subdev/fb/ramnve0.o
-nouveau-y += core/subdev/fb/ramgk20a.o
-nouveau-y += core/subdev/fb/ramgm107.o
-nouveau-y += core/subdev/fb/sddr3.o
-nouveau-y += core/subdev/fb/gddr5.o
-nouveau-y += core/subdev/gpio/base.o
-nouveau-y += core/subdev/gpio/nv10.o
-nouveau-y += core/subdev/gpio/nv50.o
-nouveau-y += core/subdev/gpio/nv92.o
-nouveau-y += core/subdev/gpio/nvd0.o
-nouveau-y += core/subdev/gpio/nve0.o
-nouveau-y += core/subdev/i2c/base.o
-nouveau-y += core/subdev/i2c/anx9805.o
-nouveau-y += core/subdev/i2c/aux.o
-nouveau-y += core/subdev/i2c/bit.o
-nouveau-y += core/subdev/i2c/pad.o
-nouveau-y += core/subdev/i2c/padnv04.o
-nouveau-y += core/subdev/i2c/padnv94.o
-nouveau-y += core/subdev/i2c/nv04.o
-nouveau-y += core/subdev/i2c/nv4e.o
-nouveau-y += core/subdev/i2c/nv50.o
-nouveau-y += core/subdev/i2c/nv94.o
-nouveau-y += core/subdev/i2c/nvd0.o
-nouveau-y += core/subdev/i2c/gf117.o
-nouveau-y += core/subdev/i2c/nve0.o
-nouveau-y += core/subdev/ibus/nvc0.o
-nouveau-y += core/subdev/ibus/nve0.o
-nouveau-y += core/subdev/ibus/gk20a.o
-nouveau-y += core/subdev/instmem/base.o
-nouveau-y += core/subdev/instmem/nv04.o
-nouveau-y += core/subdev/instmem/nv40.o
-nouveau-y += core/subdev/instmem/nv50.o
-nouveau-y += core/subdev/ltc/base.o
-nouveau-y += core/subdev/ltc/gf100.o
-nouveau-y += core/subdev/ltc/gk104.o
-nouveau-y += core/subdev/ltc/gm107.o
-nouveau-y += core/subdev/mc/base.o
-nouveau-y += core/subdev/mc/nv04.o
-nouveau-y += core/subdev/mc/nv40.o
-nouveau-y += core/subdev/mc/nv44.o
-nouveau-y += core/subdev/mc/nv4c.o
-nouveau-y += core/subdev/mc/nv50.o
-nouveau-y += core/subdev/mc/nv94.o
-nouveau-y += core/subdev/mc/nv98.o
-nouveau-y += core/subdev/mc/nvc0.o
-nouveau-y += core/subdev/mc/nvc3.o
-nouveau-y += core/subdev/mc/gk20a.o
-nouveau-y += core/subdev/mxm/base.o
-nouveau-y += core/subdev/mxm/mxms.o
-nouveau-y += core/subdev/mxm/nv50.o
-nouveau-y += core/subdev/pwr/base.o
-nouveau-y += core/subdev/pwr/memx.o
-nouveau-y += core/subdev/pwr/nva3.o
-nouveau-y += core/subdev/pwr/nvc0.o
-nouveau-y += core/subdev/pwr/nvd0.o
-nouveau-y += core/subdev/pwr/gk104.o
-nouveau-y += core/subdev/pwr/nv108.o
-nouveau-y += core/subdev/therm/base.o
-nouveau-y += core/subdev/therm/fan.o
-nouveau-y += core/subdev/therm/fannil.o
-nouveau-y += core/subdev/therm/fanpwm.o
-nouveau-y += core/subdev/therm/fantog.o
-nouveau-y += core/subdev/therm/ic.o
-nouveau-y += core/subdev/therm/temp.o
-nouveau-y += core/subdev/therm/nv40.o
-nouveau-y += core/subdev/therm/nv50.o
-nouveau-y += core/subdev/therm/nv84.o
-nouveau-y += core/subdev/therm/nva3.o
-nouveau-y += core/subdev/therm/nvd0.o
-nouveau-y += core/subdev/timer/base.o
-nouveau-y += core/subdev/timer/nv04.o
-nouveau-y += core/subdev/timer/gk20a.o
-nouveau-y += core/subdev/vm/base.o
-nouveau-y += core/subdev/vm/nv04.o
-nouveau-y += core/subdev/vm/nv41.o
-nouveau-y += core/subdev/vm/nv44.o
-nouveau-y += core/subdev/vm/nv50.o
-nouveau-y += core/subdev/vm/nvc0.o
-nouveau-y += core/subdev/volt/base.o
-nouveau-y += core/subdev/volt/gpio.o
-nouveau-y += core/subdev/volt/nv40.o
-
-nouveau-y += core/engine/falcon.o
-nouveau-y += core/engine/xtensa.o
-nouveau-y += core/engine/dmaobj/base.o
-nouveau-y += core/engine/dmaobj/nv04.o
-nouveau-y += core/engine/dmaobj/nv50.o
-nouveau-y += core/engine/dmaobj/nvc0.o
-nouveau-y += core/engine/dmaobj/nvd0.o
-nouveau-y += core/engine/bsp/nv84.o
-nouveau-y += core/engine/bsp/nv98.o
-nouveau-y += core/engine/bsp/nvc0.o
-nouveau-y += core/engine/bsp/nve0.o
-nouveau-y += core/engine/copy/nva3.o
-nouveau-y += core/engine/copy/nvc0.o
-nouveau-y += core/engine/copy/nve0.o
-nouveau-y += core/engine/crypt/nv84.o
-nouveau-y += core/engine/crypt/nv98.o
-nouveau-y += core/engine/device/acpi.o
-nouveau-y += core/engine/device/base.o
-nouveau-y += core/engine/device/ctrl.o
-nouveau-y += core/engine/device/nv04.o
-nouveau-y += core/engine/device/nv10.o
-nouveau-y += core/engine/device/nv20.o
-nouveau-y += core/engine/device/nv30.o
-nouveau-y += core/engine/device/nv40.o
-nouveau-y += core/engine/device/nv50.o
-nouveau-y += core/engine/device/nvc0.o
-nouveau-y += core/engine/device/nve0.o
-nouveau-y += core/engine/device/gm100.o
-nouveau-y += core/engine/disp/base.o
-nouveau-y += core/engine/disp/conn.o
-nouveau-y += core/engine/disp/outp.o
-nouveau-y += core/engine/disp/outpdp.o
-nouveau-y += core/engine/disp/nv04.o
-nouveau-y += core/engine/disp/nv50.o
-nouveau-y += core/engine/disp/nv84.o
-nouveau-y += core/engine/disp/nv94.o
-nouveau-y += core/engine/disp/nva0.o
-nouveau-y += core/engine/disp/nva3.o
-nouveau-y += core/engine/disp/nvd0.o
-nouveau-y += core/engine/disp/nve0.o
-nouveau-y += core/engine/disp/nvf0.o
-nouveau-y += core/engine/disp/gm107.o
-nouveau-y += core/engine/disp/dacnv50.o
-nouveau-y += core/engine/disp/dport.o
-nouveau-y += core/engine/disp/hdanva3.o
-nouveau-y += core/engine/disp/hdanvd0.o
-nouveau-y += core/engine/disp/hdminv84.o
-nouveau-y += core/engine/disp/hdminva3.o
-nouveau-y += core/engine/disp/hdminvd0.o
-nouveau-y += core/engine/disp/piornv50.o
-nouveau-y += core/engine/disp/sornv50.o
-nouveau-y += core/engine/disp/sornv94.o
-nouveau-y += core/engine/disp/sornvd0.o
-nouveau-y += core/engine/disp/vga.o
-nouveau-y += core/engine/fifo/base.o
-nouveau-y += core/engine/fifo/nv04.o
-nouveau-y += core/engine/fifo/nv10.o
-nouveau-y += core/engine/fifo/nv17.o
-nouveau-y += core/engine/fifo/nv40.o
-nouveau-y += core/engine/fifo/nv50.o
-nouveau-y += core/engine/fifo/nv84.o
-nouveau-y += core/engine/fifo/nvc0.o
-nouveau-y += core/engine/fifo/nve0.o
-nouveau-y += core/engine/fifo/gk20a.o
-nouveau-y += core/engine/fifo/nv108.o
-nouveau-y += core/engine/graph/ctxnv40.o
-nouveau-y += core/engine/graph/ctxnv50.o
-nouveau-y += core/engine/graph/ctxnvc0.o
-nouveau-y += core/engine/graph/ctxnvc1.o
-nouveau-y += core/engine/graph/ctxnvc4.o
-nouveau-y += core/engine/graph/ctxnvc8.o
-nouveau-y += core/engine/graph/ctxnvd7.o
-nouveau-y += core/engine/graph/ctxnvd9.o
-nouveau-y += core/engine/graph/ctxnve4.o
-nouveau-y += core/engine/graph/ctxgk20a.o
-nouveau-y += core/engine/graph/ctxnvf0.o
-nouveau-y += core/engine/graph/ctxgk110b.o
-nouveau-y += core/engine/graph/ctxnv108.o
-nouveau-y += core/engine/graph/ctxgm107.o
-nouveau-y += core/engine/graph/nv04.o
-nouveau-y += core/engine/graph/nv10.o
-nouveau-y += core/engine/graph/nv20.o
-nouveau-y += core/engine/graph/nv25.o
-nouveau-y += core/engine/graph/nv2a.o
-nouveau-y += core/engine/graph/nv30.o
-nouveau-y += core/engine/graph/nv34.o
-nouveau-y += core/engine/graph/nv35.o
-nouveau-y += core/engine/graph/nv40.o
-nouveau-y += core/engine/graph/nv50.o
-nouveau-y += core/engine/graph/nvc0.o
-nouveau-y += core/engine/graph/nvc1.o
-nouveau-y += core/engine/graph/nvc4.o
-nouveau-y += core/engine/graph/nvc8.o
-nouveau-y += core/engine/graph/nvd7.o
-nouveau-y += core/engine/graph/nvd9.o
-nouveau-y += core/engine/graph/nve4.o
-nouveau-y += core/engine/graph/gk20a.o
-nouveau-y += core/engine/graph/nvf0.o
-nouveau-y += core/engine/graph/gk110b.o
-nouveau-y += core/engine/graph/nv108.o
-nouveau-y += core/engine/graph/gm107.o
-nouveau-y += core/engine/mpeg/nv31.o
-nouveau-y += core/engine/mpeg/nv40.o
-nouveau-y += core/engine/mpeg/nv44.o
-nouveau-y += core/engine/mpeg/nv50.o
-nouveau-y += core/engine/mpeg/nv84.o
-nouveau-y += core/engine/perfmon/base.o
-nouveau-y += core/engine/perfmon/daemon.o
-nouveau-y += core/engine/perfmon/nv40.o
-nouveau-y += core/engine/perfmon/nv50.o
-nouveau-y += core/engine/perfmon/nv84.o
-nouveau-y += core/engine/perfmon/nva3.o
-nouveau-y += core/engine/perfmon/nvc0.o
-nouveau-y += core/engine/perfmon/nve0.o
-nouveau-y += core/engine/perfmon/nvf0.o
-nouveau-y += core/engine/ppp/nv98.o
-nouveau-y += core/engine/ppp/nvc0.o
-nouveau-y += core/engine/software/nv04.o
-nouveau-y += core/engine/software/nv10.o
-nouveau-y += core/engine/software/nv50.o
-nouveau-y += core/engine/software/nvc0.o
-nouveau-y += core/engine/vp/nv84.o
-nouveau-y += core/engine/vp/nv98.o
-nouveau-y += core/engine/vp/nvc0.o
-nouveau-y += core/engine/vp/nve0.o
-
-# nvif
-nouveau-y += nvif/object.o
-nouveau-y += nvif/client.o
-nouveau-y += nvif/device.o
-nouveau-y += nvif/notify.o
-
-# drm/core
-nouveau-y += nouveau_drm.o nouveau_chan.o nouveau_dma.o nouveau_fence.o
-nouveau-y += nouveau_vga.o nouveau_agp.o
-nouveau-y += nouveau_ttm.o nouveau_sgdma.o nouveau_bo.o nouveau_gem.o
-nouveau-y += nouveau_prime.o nouveau_abi16.o
-nouveau-y += nouveau_nvif.o nouveau_usif.o
-nouveau-y += nv04_fence.o nv10_fence.o nv17_fence.o
-nouveau-y += nv50_fence.o nv84_fence.o nvc0_fence.o
-
-# drm/kms
-nouveau-y += nouveau_bios.o nouveau_fbcon.o nouveau_display.o
-nouveau-y += nouveau_connector.o nouveau_dp.o
-nouveau-y += nv04_fbcon.o nv50_fbcon.o nvc0_fbcon.o
-
-# drm/kms/nv04:nv50
-include $(src)/dispnv04/Makefile
-
-# drm/kms/nv50-
-nouveau-y += nv50_display.o
-
-# drm/pm
-nouveau-y += nouveau_hwmon.o nouveau_sysfs.o
-
-# other random bits
-nouveau-$(CONFIG_COMPAT) += nouveau_ioc32.o
-ifdef CONFIG_X86
-nouveau-$(CONFIG_ACPI) += nouveau_acpi.o
-endif
-nouveau-$(CONFIG_DRM_NOUVEAU_BACKLIGHT) += nouveau_backlight.o
-nouveau-$(CONFIG_DEBUG_FS) += nouveau_debugfs.o
-
-obj-$(CONFIG_DRM_NOUVEAU)+= nouveau.o
-
-# platform driver
-obj-$(CONFIG_NOUVEAU_PLATFORM_DRIVER) += nouveau_platform.o
+KMOD=	nouveau
+
+SRCS=	\
+	nouveau_abi16.c \
+	nouveau_agp.c \
+	nouveau_bios.c \
+	nouveau_bo.c \
+	nouveau_chan.c \
+	nouveau_connector.c \
+	nouveau_display.c \
+	nouveau_dma.c \
+	nouveau_dp.c \
+	nouveau_drm.c \
+	nouveau_fence.c \
+	nouveau_gem.c \
+	nouveau_hwmon.c \
+	nouveau_nv04_fence.c \
+	nouveau_nv10_fence.c \
+	nouveau_nv17_fence.c \
+	nouveau_nv50_display.c \
+	nouveau_nv50_fence.c \
+	nouveau_nv84_fence.c \
+	nouveau_nvc0_fence.c \
+	nouveau_nvif.c \
+	nouveau_prime.c \
+	nouveau_sgdma.c \
+	nouveau_ttm.c
+#	nouveau_acpi.c \
+#	nouveau_backlight.c \
+#	nouveau_debugfs.c \
+#	nouveau_fbcon.c \
+#	nouveau_ioc32.c \
+#	nouveau_nv04_fbcon.c \
+#	nouveau_nv50_fbcon.c \
+#	nouveau_nvc0_fbcon.c \
+#	nouveau_platform.c \
+#	nouveau_sysfs.c \
+#	nouveau_usif.c \
+#	nouveau_vga.c
+
+.PATH:	${.CURDIR}/core/core
+SRCS+=	\
+	nouveau_core_client.c \
+	nouveau_core_engctx.c \
+	nouveau_core_engine.c \
+	nouveau_core_enum.c \
+	nouveau_core_event.c \
+	nouveau_core_gpuobj.c \
+	nouveau_core_handle.c \
+	nouveau_core_ioctl.c \
+	nouveau_core_mm.c \
+	nouveau_core_namedb.c \
+	nouveau_core_notify.c \
+	nouveau_core_object.c \
+	nouveau_core_option.c \
+	nouveau_core_parent.c \
+	nouveau_core_printk.c \
+	nouveau_core_ramht.c \
+	nouveau_core_subdev.c
+
+.PATH:	${.CURDIR}/core/engine
+SRCS+=	\
+	nouveau_engine_falcon.c \
+	nouveau_engine_xtensa.c
+
+.PATH:	${.CURDIR}/core/engine/bsp
+SRCS+=	\
+	nouveau_engine_bsp_nv84.c \
+	nouveau_engine_bsp_nv98.c \
+	nouveau_engine_bsp_nvc0.c \
+	nouveau_engine_bsp_nve0.c
+
+.PATH:	${.CURDIR}/core/engine/copy
+SRCS+=	\
+	nouveau_engine_copy_nva3.c \
+	nouveau_engine_copy_nvc0.c \
+	nouveau_engine_copy_nve0.c
+
+.PATH:	${.CURDIR}/core/engine/crypt
+SRCS+=	\
+	nouveau_engine_crypt_nv84.c \
+	nouveau_engine_crypt_nv98.c
+
+.PATH:	${.CURDIR}/core/engine/device
+SRCS+=	\
+	nouveau_engine_device_acpi.c \
+	nouveau_engine_device_base.c \
+	nouveau_engine_device_ctrl.c \
+	nouveau_engine_device_gm100.c \
+	nouveau_engine_device_nv04.c \
+	nouveau_engine_device_nv10.c \
+	nouveau_engine_device_nv20.c \
+	nouveau_engine_device_nv30.c \
+	nouveau_engine_device_nv40.c \
+	nouveau_engine_device_nv50.c \
+	nouveau_engine_device_nvc0.c \
+	nouveau_engine_device_nve0.c
+
+.PATH:	${.CURDIR}/core/engine/disp
+SRCS+=	\
+	nouveau_engine_disp_base.c \
+	nouveau_engine_disp_conn.c \
+	nouveau_engine_disp_dacnv50.c \
+	nouveau_engine_disp_dport.c \
+	nouveau_engine_disp_gm107.c \
+	nouveau_engine_disp_hdanva3.c \
+	nouveau_engine_disp_hdanvd0.c \
+	nouveau_engine_disp_hdminv84.c \
+	nouveau_engine_disp_hdminva3.c \
+	nouveau_engine_disp_hdminvd0.c \
+	nouveau_engine_disp_nv04.c \
+	nouveau_engine_disp_nv50.c \
+	nouveau_engine_disp_nv84.c \
+	nouveau_engine_disp_nv94.c \
+	nouveau_engine_disp_nva0.c \
+	nouveau_engine_disp_nva3.c \
+	nouveau_engine_disp_nvd0.c \
+	nouveau_engine_disp_nve0.c \
+	nouveau_engine_disp_nvf0.c \
+	nouveau_engine_disp_outp.c \
+	nouveau_engine_disp_outpdp.c \
+	nouveau_engine_disp_piornv50.c \
+	nouveau_engine_disp_sornv50.c \
+	nouveau_engine_disp_sornv94.c \
+	nouveau_engine_disp_sornvd0.c \
+	nouveau_engine_disp_vga.c
+
+.PATH:	${.CURDIR}/core/engine/dmaobj
+SRCS+=	\
+	nouveau_engine_dmaobj_base.c \
+	nouveau_engine_dmaobj_nv04.c \
+	nouveau_engine_dmaobj_nv50.c \
+	nouveau_engine_dmaobj_nvc0.c \
+	nouveau_engine_dmaobj_nvd0.c
+
+.PATH:	${.CURDIR}/core/engine/fifo
+SRCS+=	\
+	nouveau_engine_fifo_base.c \
+	nouveau_engine_fifo_gk20a.c \
+	nouveau_engine_fifo_nv04.c \
+	nouveau_engine_fifo_nv10.c \
+	nouveau_engine_fifo_nv108.c \
+	nouveau_engine_fifo_nv17.c \
+	nouveau_engine_fifo_nv40.c \
+	nouveau_engine_fifo_nv50.c \
+	nouveau_engine_fifo_nv84.c \
+	nouveau_engine_fifo_nvc0.c \
+	nouveau_engine_fifo_nve0.c
+
+.PATH:	${.CURDIR}/core/engine/graph
+SRCS+=	\
+	nouveau_engine_graph_ctxgk110b.c \
+	nouveau_engine_graph_ctxgk20a.c \
+	nouveau_engine_graph_ctxgm107.c \
+	nouveau_engine_graph_ctxnv108.c \
+	nouveau_engine_graph_ctxnv40.c \
+	nouveau_engine_graph_ctxnv50.c \
+	nouveau_engine_graph_ctxnvc0.c \
+	nouveau_engine_graph_ctxnvc1.c \
+	nouveau_engine_graph_ctxnvc4.c \
+	nouveau_engine_graph_ctxnvc8.c \
+	nouveau_engine_graph_ctxnvd7.c \
+	nouveau_engine_graph_ctxnvd9.c \
+	nouveau_engine_graph_ctxnve4.c \
+	nouveau_engine_graph_ctxnvf0.c \
+	nouveau_engine_graph_gk110b.c \
+	nouveau_engine_graph_gk20a.c \
+	nouveau_engine_graph_gm107.c \
+	nouveau_engine_graph_nv04.c \
+	nouveau_engine_graph_nv10.c \
+	nouveau_engine_graph_nv108.c \
+	nouveau_engine_graph_nv20.c \
+	nouveau_engine_graph_nv25.c \
+	nouveau_engine_graph_nv2a.c \
+	nouveau_engine_graph_nv30.c \
+	nouveau_engine_graph_nv34.c \
+	nouveau_engine_graph_nv35.c \
+	nouveau_engine_graph_nv40.c \
+	nouveau_engine_graph_nv50.c \
+	nouveau_engine_graph_nvc0.c \
+	nouveau_engine_graph_nvc1.c \
+	nouveau_engine_graph_nvc4.c \
+	nouveau_engine_graph_nvc8.c \
+	nouveau_engine_graph_nvd7.c \
+	nouveau_engine_graph_nvd9.c \
+	nouveau_engine_graph_nve4.c \
+	nouveau_engine_graph_nvf0.c
+
+.PATH:	${.CURDIR}/core/engine/mpeg
+SRCS+=	\
+	nouveau_engine_mpeg_nv31.c \
+	nouveau_engine_mpeg_nv40.c \
+	nouveau_engine_mpeg_nv44.c \
+	nouveau_engine_mpeg_nv50.c \
+	nouveau_engine_mpeg_nv84.c
+
+.PATH:	${.CURDIR}/core/engine/perfmon
+SRCS+=	\
+	nouveau_engine_perfmon_base.c \
+	nouveau_engine_perfmon_daemon.c \
+	nouveau_engine_perfmon_nv40.c \
+	nouveau_engine_perfmon_nv50.c \
+	nouveau_engine_perfmon_nv84.c \
+	nouveau_engine_perfmon_nva3.c \
+	nouveau_engine_perfmon_nvc0.c \
+	nouveau_engine_perfmon_nve0.c \
+	nouveau_engine_perfmon_nvf0.c
+
+.PATH:	${.CURDIR}/core/engine/ppp
+SRCS+=	\
+	nouveau_engine_ppp_nv98.c \
+	nouveau_engine_ppp_nvc0.c
+
+.PATH:	${.CURDIR}/core/engine/software
+SRCS+=	\
+	nouveau_engine_software_nv04.c \
+	nouveau_engine_software_nv10.c \
+	nouveau_engine_software_nv50.c \
+	nouveau_engine_software_nvc0.c
+
+.PATH:	${.CURDIR}/core/engine/vp
+SRCS+=	\
+	nouveau_engine_vp_nv84.c \
+	nouveau_engine_vp_nv98.c \
+	nouveau_engine_vp_nvc0.c \
+	nouveau_engine_vp_nve0.c
+
+.PATH:	${.CURDIR}/core/subdev/bar
+SRCS+=	\
+	nouveau_subdev_bar_base.c \
+	nouveau_subdev_bar_gk20a.c \
+	nouveau_subdev_bar_nv50.c \
+	nouveau_subdev_bar_nvc0.c
+
+.PATH:	${.CURDIR}/core/subdev/bios
+SRCS+=	\
+	nouveau_subdev_bios_P0260.c \
+	nouveau_subdev_bios_base.c \
+	nouveau_subdev_bios_bit.c \
+	nouveau_subdev_bios_boost.c \
+	nouveau_subdev_bios_conn.c \
+	nouveau_subdev_bios_cstep.c \
+	nouveau_subdev_bios_dcb.c \
+	nouveau_subdev_bios_disp.c \
+	nouveau_subdev_bios_dp.c \
+	nouveau_subdev_bios_extdev.c \
+	nouveau_subdev_bios_gpio.c \
+	nouveau_subdev_bios_i2c.c \
+	nouveau_subdev_bios_init.c \
+	nouveau_subdev_bios_mxm.c \
+	nouveau_subdev_bios_perf.c \
+	nouveau_subdev_bios_pll.c \
+	nouveau_subdev_bios_ramcfg.c \
+	nouveau_subdev_bios_rammap.c \
+	nouveau_subdev_bios_therm.c \
+	nouveau_subdev_bios_timing.c \
+	nouveau_subdev_bios_vmap.c \
+	nouveau_subdev_bios_volt.c \
+	nouveau_subdev_bios_xpio.c
+
+.PATH:	${.CURDIR}/core/subdev/bus
+SRCS+=	\
+	nouveau_subdev_bus_hwsq.c \
+	nouveau_subdev_bus_nv04.c \
+	nouveau_subdev_bus_nv31.c \
+	nouveau_subdev_bus_nv50.c \
+	nouveau_subdev_bus_nv94.c \
+	nouveau_subdev_bus_nvc0.c
+
+.PATH:	${.CURDIR}/core/subdev/clock
+SRCS+=	\
+	nouveau_subdev_clock_base.c \
+	nouveau_subdev_clock_nv04.c \
+	nouveau_subdev_clock_nv40.c \
+	nouveau_subdev_clock_nv50.c \
+	nouveau_subdev_clock_nv84.c \
+	nouveau_subdev_clock_nva3.c \
+	nouveau_subdev_clock_nvaa.c \
+	nouveau_subdev_clock_nvc0.c \
+	nouveau_subdev_clock_nve0.c \
+	nouveau_subdev_clock_pllnv04.c \
+	nouveau_subdev_clock_pllnva3.c
+#	nouveau_subdev_clock_gk20a.c
+
+.PATH:	${.CURDIR}/core/subdev/devinit
+SRCS+=	\
+	nouveau_subdev_devinit_base.c \
+	nouveau_subdev_devinit_gm107.c \
+	nouveau_subdev_devinit_nv04.c \
+	nouveau_subdev_devinit_nv05.c \
+	nouveau_subdev_devinit_nv10.c \
+	nouveau_subdev_devinit_nv1a.c \
+	nouveau_subdev_devinit_nv20.c \
+	nouveau_subdev_devinit_nv50.c \
+	nouveau_subdev_devinit_nv84.c \
+	nouveau_subdev_devinit_nv98.c \
+	nouveau_subdev_devinit_nva3.c \
+	nouveau_subdev_devinit_nvaf.c \
+	nouveau_subdev_devinit_nvc0.c
+
+.PATH:	${.CURDIR}/core/subdev/fb
+SRCS+=	\
+	nouveau_subdev_fb_base.c \
+	nouveau_subdev_fb_gddr5.c \
+	nouveau_subdev_fb_gk20a.c \
+	nouveau_subdev_fb_gm107.c \
+	nouveau_subdev_fb_nv04.c \
+	nouveau_subdev_fb_nv10.c \
+	nouveau_subdev_fb_nv1a.c \
+	nouveau_subdev_fb_nv20.c \
+	nouveau_subdev_fb_nv25.c \
+	nouveau_subdev_fb_nv30.c \
+	nouveau_subdev_fb_nv35.c \
+	nouveau_subdev_fb_nv36.c \
+	nouveau_subdev_fb_nv40.c \
+	nouveau_subdev_fb_nv41.c \
+	nouveau_subdev_fb_nv44.c \
+	nouveau_subdev_fb_nv46.c \
+	nouveau_subdev_fb_nv47.c \
+	nouveau_subdev_fb_nv49.c \
+	nouveau_subdev_fb_nv4e.c \
+	nouveau_subdev_fb_nv50.c \
+	nouveau_subdev_fb_nv84.c \
+	nouveau_subdev_fb_nva3.c \
+	nouveau_subdev_fb_nvaa.c \
+	nouveau_subdev_fb_nvaf.c \
+	nouveau_subdev_fb_nvc0.c \
+	nouveau_subdev_fb_nve0.c \
+	nouveau_subdev_fb_ramgk20a.c \
+	nouveau_subdev_fb_ramgm107.c \
+	nouveau_subdev_fb_ramnv04.c \
+	nouveau_subdev_fb_ramnv10.c \
+	nouveau_subdev_fb_ramnv1a.c \
+	nouveau_subdev_fb_ramnv20.c \
+	nouveau_subdev_fb_ramnv40.c \
+	nouveau_subdev_fb_ramnv41.c \
+	nouveau_subdev_fb_ramnv44.c \
+	nouveau_subdev_fb_ramnv49.c \
+	nouveau_subdev_fb_ramnv4e.c \
+	nouveau_subdev_fb_ramnv50.c \
+	nouveau_subdev_fb_ramnva3.c \
+	nouveau_subdev_fb_ramnvaa.c \
+	nouveau_subdev_fb_ramnvc0.c \
+	nouveau_subdev_fb_ramnve0.c \
+	nouveau_subdev_fb_sddr3.c
+
+.PATH:	${.CURDIR}/core/subdev/gpio
+SRCS+=	\
+	nouveau_subdev_gpio_base.c \
+	nouveau_subdev_gpio_nv10.c \
+	nouveau_subdev_gpio_nv50.c \
+	nouveau_subdev_gpio_nv92.c \
+	nouveau_subdev_gpio_nvd0.c \
+	nouveau_subdev_gpio_nve0.c
+
+.PATH:	${.CURDIR}/core/subdev/i2c
+SRCS+=	\
+	nouveau_subdev_i2c_anx9805.c \
+	nouveau_subdev_i2c_aux.c \
+	nouveau_subdev_i2c_base.c \
+	nouveau_subdev_i2c_bit.c \
+	nouveau_subdev_i2c_gf117.c \
+	nouveau_subdev_i2c_nv04.c \
+	nouveau_subdev_i2c_nv4e.c \
+	nouveau_subdev_i2c_nv50.c \
+	nouveau_subdev_i2c_nv94.c \
+	nouveau_subdev_i2c_nvd0.c \
+	nouveau_subdev_i2c_nve0.c \
+	nouveau_subdev_i2c_pad.c \
+	nouveau_subdev_i2c_padnv04.c \
+	nouveau_subdev_i2c_padnv94.c
+
+.PATH:	${.CURDIR}/core/subdev/ibus
+SRCS+=	\
+	nouveau_subdev_ibus_gk20a.c \
+	nouveau_subdev_ibus_nvc0.c \
+	nouveau_subdev_ibus_nve0.c
+
+.PATH:	${.CURDIR}/core/subdev/instmem
+SRCS+=	\
+	nouveau_subdev_instmem_base.c \
+	nouveau_subdev_instmem_nv04.c \
+	nouveau_subdev_instmem_nv40.c \
+	nouveau_subdev_instmem_nv50.c
+
+.PATH:	${.CURDIR}/core/subdev/ltc
+SRCS+=	\
+	nouveau_subdev_ltc_base.c \
+	nouveau_subdev_ltc_gf100.c \
+	nouveau_subdev_ltc_gk104.c \
+	nouveau_subdev_ltc_gm107.c
+
+.PATH:	${.CURDIR}/core/subdev/mc
+SRCS+=	\
+	nouveau_subdev_mc_base.c \
+	nouveau_subdev_mc_gk20a.c \
+	nouveau_subdev_mc_nv04.c \
+	nouveau_subdev_mc_nv40.c \
+	nouveau_subdev_mc_nv44.c \
+	nouveau_subdev_mc_nv4c.c \
+	nouveau_subdev_mc_nv50.c \
+	nouveau_subdev_mc_nv94.c \
+	nouveau_subdev_mc_nv98.c \
+	nouveau_subdev_mc_nvc0.c \
+	nouveau_subdev_mc_nvc3.c
+
+.PATH:	${.CURDIR}/core/subdev/mxm
+SRCS+=	\
+	nouveau_subdev_mxm_base.c \
+	nouveau_subdev_mxm_mxms.c \
+	nouveau_subdev_mxm_nv50.c
+
+.PATH:	${.CURDIR}/core/subdev/pwr
+SRCS+=	\
+	nouveau_subdev_pwr_base.c \
+	nouveau_subdev_pwr_gk104.c \
+	nouveau_subdev_pwr_memx.c \
+	nouveau_subdev_pwr_nv108.c \
+	nouveau_subdev_pwr_nva3.c \
+	nouveau_subdev_pwr_nvc0.c \
+	nouveau_subdev_pwr_nvd0.c
+
+.PATH:	${.CURDIR}/core/subdev/therm
+SRCS+=	\
+	nouveau_subdev_therm_base.c \
+	nouveau_subdev_therm_fan.c \
+	nouveau_subdev_therm_fannil.c \
+	nouveau_subdev_therm_fanpwm.c \
+	nouveau_subdev_therm_fantog.c \
+	nouveau_subdev_therm_ic.c \
+	nouveau_subdev_therm_nv40.c \
+	nouveau_subdev_therm_nv50.c \
+	nouveau_subdev_therm_nv84.c \
+	nouveau_subdev_therm_nva3.c \
+	nouveau_subdev_therm_nvd0.c \
+	nouveau_subdev_therm_temp.c
+
+.PATH:	${.CURDIR}/core/subdev/timer
+SRCS+=	\
+	nouveau_subdev_timer_base.c \
+	nouveau_subdev_timer_gk20a.c \
+	nouveau_subdev_timer_nv04.c
+
+.PATH:	${.CURDIR}/core/subdev/vm
+SRCS+=	\
+	nouveau_subdev_vm_base.c \
+	nouveau_subdev_vm_nv04.c \
+	nouveau_subdev_vm_nv41.c \
+	nouveau_subdev_vm_nv44.c \
+	nouveau_subdev_vm_nv50.c \
+	nouveau_subdev_vm_nvc0.c
+
+.PATH:	${.CURDIR}/core/subdev/volt
+SRCS+=	\
+	nouveau_subdev_volt_base.c \
+	nouveau_subdev_volt_gpio.c \
+	nouveau_subdev_volt_nv40.c
+
+.PATH:	${.CURDIR}/dispnv04
+SRCS+=	\
+	nouveau_dispnv04_arb.c \
+	nouveau_dispnv04_crtc.c \
+	nouveau_dispnv04_cursor.c \
+	nouveau_dispnv04_dac.c \
+	nouveau_dispnv04_dfp.c \
+	nouveau_dispnv04_disp.c \
+	nouveau_dispnv04_hw.c \
+	nouveau_dispnv04_overlay.c \
+	nouveau_dispnv04_tvmodesnv17.c \
+	nouveau_dispnv04_tvnv04.c \
+	nouveau_dispnv04_tvnv17.c
+
+.PATH:	${.CURDIR}/nvif
+	nouveau_nvif_client.c \
+	nouveau_nvif_device.c \
+	nouveau_nvif_notify.c \
+	nouveau_nvif_object.c
+
+SRCS+=	bus_if.h device_if.h iicbus_if.h pci_if.h
+SRCS+=	opt_acpi.h opt_ktr.h
+
+CFLAGS+=-I${.CURDIR}/core
+CFLAGS+=-I${.CURDIR}/core/include
+CFLAGS+=-I${SYSDIR}/contrib/dev/acpica/source/include
+CFLAGS+=-I${SYSDIR}/dev/drm/include
+CFLAGS+=-I${SYSDIR}/dev/drm/include/drm
+
+.include <bsd.kmod.mk>
-- 
2.5.3

