# This Makefile is loosely based on the drm.git/linux-core/Makefile and # the preliminary work by Christopher James Halse Rogers. # Edited by Pekka Paalanen # Edited by Albert Pool # Edited by Martin Peres # By default, the build is done against the running linux kernel source. # To build against a different kernel source tree, set LINUXDIR: # make LINUXDIR=/usr/src/linux # By default, it is assumed the Nouveau kernel tree is found in $PWD/../. # To use a different path to the Nouveau kernel tree, set NOUVEAUROOTDIR: # make NOUVEAUROOTDIR=/mnt/sda6/nouveau/master # 'make headers' will install the headers by default to # $NOUVEAUROOTDIR/usr/include/drm. To use a different location, # set HEADERINSDIR: # # make HEADERINSDIR=/path/to/install/headers ifndef LINUXDIR RUNNING_REL := $(shell uname -r) LINUXDIR := $(shell if [ -e /lib/modules/$(RUNNING_REL)/build ]; then \ echo /lib/modules/$(RUNNING_REL)/build; \ else echo /lib/modules/$(RUNNING_REL)/source; fi) endif NOUVEAUGITREMOTE ?= origin NOUVEAUROOTDIR=/usr/src/linux #?= $(CURDIR)/.. override NOUVEAUROOTDIR := $(abspath $(NOUVEAUROOTDIR)) HEADERINSDIR ?= $(NOUVEAUROOTDIR)/usr/include/uapi/drm override HEADERINSDIR := $(abspath $(HEADERINSDIR)) TESTFILE := drivers/gpu/drm/nouveau/nouveau_drm.h ifeq ($(wildcard $(NOUVEAUROOTDIR)/$(TESTFILE)),) $(error $(NOUVEAUROOTDIR) does not look like the right kernel tree, \ please set NOUVEAUROOTDIR) endif GIT_REVISION := $(shell GIT_DIR=$(NOUVEAUROOTDIR)/.git \ git describe --always --abbrev=17 2> /dev/null) DRMINC := $(NOUVEAUROOTDIR)/include/drm DRMDIR := $(NOUVEAUROOTDIR)/drivers/gpu/drm DRMCFG := \ CONFIG_DRM=m \ CONFIG_DRM_KMS_HELPER=m \ CONFIG_DRM_TTM=m \ CONFIG_DRM_NOUVEAU=m \ CONFIG_DRM_NOUVEAU_KMS=n \ CONFIG_DRM_NOUVEAU_BACKLIGHT=y \ CONFIG_DRM_NOUVEAU_DEBUG=y \ CONFIG_DRM_I2C_CH7006=m \ CONFIG_DRM_I2C_SIL164=m \ CONFIG_DRM_AST=n \ CONFIG_DRM_CIRRUS_QEMU=n \ CONFIG_DRM_TDFX=n \ CONFIG_DRM_R128=n \ CONFIG_DRM_RADEON=n \ CONFIG_DRM_MGA=n \ CONFIG_DRM_MGAG200=n \ CONFIG_DRM_I810=n \ CONFIG_DRM_I830=n \ CONFIG_DRM_I915=n \ CONFIG_DRM_GMA500=n \ CONFIG_DRM_SIS=n \ CONFIG_DRM_SAVAGE=n \ CONFIG_DRM_UDL=n \ CONFIG_DRM_VIA=n \ CONFIG_DRM_VMWGFX=n EXTRA_CFLAGS := MYEXTRA_CFLAGS := MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_BACKLIGHT MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_DEBUG ifneq ($(GIT_REVISION),) MYEXTRA_CFLAGS += '-DGIT_REVISION=\"$(GIT_REVISION)\"' endif MYPARMS := -C $(LINUXDIR) KCPPFLAGS="-I$(DRMINC)" SUBDIRS="$(DRMDIR)" $(DRMCFG) MYEXTRA_CFLAGS += $(EXTRA_CFLAGS) ifneq ($(MYEXTRA_CFLAGS),) MYPARMS += EXTRA_CFLAGS="$(MYEXTRA_CFLAGS)" endif .PHONY: all modules install clean archive headers FORCE all: modules FORCE: modules: $(MAKE) $(MYPARMS) modules install: $(MAKE) $(MYPARMS) modules_install clean: $(MAKE) $(MYPARMS) clean headers: mkdir -p $(HEADERINSDIR) cd $(LINUXDIR) && \ perl scripts/headers_install.pl $(DRMINC) $(HEADERINSDIR) dummy \ $(unifdef-y) archive: newttm-devel-compat.tar.gz newttm-devel.tar.gz master.tar.gz newttm-devel-compat.tar.gz: EXTRAS=nouveau README-nouveau %.tar: FORCE GIT_DIR=$(NOUVEAUROOTDIR)/.git \ git archive --format=tar --prefix=$*/ $(NOUVEAUGITREMOTE)/$* \ drivers/gpu/drm include/drm $(EXTRAS) > $@ %.tar.gz: %.tar gzip -9 -c $< > $@ # The commit id of the archive can be read with # $ zcat foo.tar.gz | git get-tar-commit-id