diff options
author | David Dawes <dawes@xfree86.org> | 2003-04-17 18:44:38 +0000 |
---|---|---|
committer | David Dawes <dawes@xfree86.org> | 2003-04-17 18:44:38 +0000 |
commit | dbb7beb51d8adb4b5616fbcca7999b00d760b839 (patch) | |
tree | b52e43d8a969e4a9c2e830dfdbb1c780d786d19c /linux/Makefile.kernel | |
parent | c2d7ff1bf98f92add98fb76b63d2bdb190f3cf2c (diff) |
Rework the Linux drm kernel module build to leverage off the standard
kernel build system. This is based on suggestions and examples from
David Woodhouse. This approach has the advantage that the build
requirements of a wider range of standard kernels are now supported
transparently, but the disadvantage of some extra complexity to handle
building against clean vendor-distributed kernel source trees. This has
been tested with some recent Red Hat and SuSE distributions.
Diffstat (limited to 'linux/Makefile.kernel')
-rw-r--r-- | linux/Makefile.kernel | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/linux/Makefile.kernel b/linux/Makefile.kernel index 7e659dfd..5f79e430 100644 --- a/linux/Makefile.kernel +++ b/linux/Makefile.kernel @@ -1,19 +1,41 @@ # # Makefile for the drm device driver. This driver provides support for the # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. - -O_TARGET := drm.o -list-multi := gamma.o tdfx.o r128.o mga.o i810.o i830.o radeon.o ffb.o +# +# Based on David Woodhouse's mtd build. +# +# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.kernel,v 1.17 2003/04/12 17:18:17 dawes Exp $ +# gamma-objs := gamma_drv.o gamma_dma.o tdfx-objs := tdfx_drv.o -r128-objs := r128_drv.o r128_cce.o r128_irq.o r128_state.o -mga-objs := mga_drv.o mga_dma.o mga_irq.o mga_state.o mga_warp.o +r128-objs := r128_drv.o r128_cce.o r128_state.o r128_irq.o +mga-objs := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o i810-objs := i810_drv.o i810_dma.o i830-objs := i830_drv.o i830_dma.o i830_irq.o -radeon-objs := radeon_drv.o radeon_cp.o radeon_irq.o radeon_mem.o radeon_state.o +radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o +sis-objs := sis_drv.o sis_ds.o sis_mm.o ffb-objs := ffb_drv.o ffb_context.o +# Kernel version checks + +BELOW25 := $(shell if [ $(PATCHLEVEL) -lt 5 ]; then echo y; fi) + +# There were major build changes starting with 2.5.52 +ifneq ($(BELOW25),y) +BELOW2552 := $(shell if [ $(SUBLEVEL) -lt 52 ]; then echo y; fi) +else +BELOW2552 := y +endif + +ifeq ($(BELOW25),y) +O_TARGET := drm.o +list-multi := gamma.o tdfx.o r128.o mga.o i810.o i830.o ffb.o radeon.o +obj-m := +obj-n := +obj- := +endif + obj-$(CONFIG_DRM_GAMMA) += gamma.o obj-$(CONFIG_DRM_TDFX) += tdfx.o obj-$(CONFIG_DRM_R128) += r128.o @@ -21,10 +43,14 @@ obj-$(CONFIG_DRM_RADEON)+= radeon.o obj-$(CONFIG_DRM_MGA) += mga.o obj-$(CONFIG_DRM_I810) += i810.o obj-$(CONFIG_DRM_I830) += i830.o +obj-$(CONFIG_DRM_SIS) += sis.o obj-$(CONFIG_DRM_FFB) += ffb.o +ifeq ($(BELOW2552),y) include $(TOPDIR)/Rules.make +endif +ifeq ($(BELOW25),y) gamma.o: $(gamma-objs) $(lib) $(LD) -r -o $@ $(gamma-objs) $(lib) @@ -46,5 +72,10 @@ r128.o: $(r128-objs) $(lib) radeon.o: $(radeon-objs) $(lib) $(LD) -r -o $@ $(radeon-objs) $(lib) +sis.o: $(sis-objs) $(lib) + $(LD) -r -o $@ $(sis-objs) $(lib) + ffb.o: $(ffb-objs) $(lib) $(LD) -r -o $@ $(ffb-objs) $(lib) +endif + |