summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/Makefile.kernel140
1 files changed, 56 insertions, 84 deletions
diff --git a/linux/Makefile.kernel b/linux/Makefile.kernel
index 5c4d885a..17d79924 100644
--- a/linux/Makefile.kernel
+++ b/linux/Makefile.kernel
@@ -10,108 +10,80 @@
# parent makes..
#
-O_TARGET := drm.o
+O_OBJS :=
+OX_OBJS :=
+M_OBJS :=
+MX_OBJS :=
-L_OBJS := init.o memory.o proc.o auth.o context.o drawable.o bufs.o \
- lists.o lock.o ioctl.o fops.o vm.o dma.o ctxbitmap.o
+# Object file lists.
-M_OBJS :=
+obj-y :=
+obj-m :=
+obj-n :=
+obj- :=
-ifneq ($(CONFIG_AGP),)
- L_OBJS += agpsupport.o
-endif
+SUB_DIRS :=
+MOD_SUB_DIRS := $(SUB_DIRS)
+ALL_SUB_DIRS := $(SUB_DIRS)
-ifeq ($(CONFIG_DRM_GAMMA),y)
- OX_OBJS += gamma_drv.o
- O_OBJS += gamma_dma.o
-else
- ifeq ($(CONFIG_DRM_GAMMA),m)
- MIX_OBJS += gamma_drv.o
- MI_OBJS += gamma_dma.o
- M_OBJS += gamma.o
- endif
-endif
+O_TARGET := drm.o
+module-list := gamma.o tdfx.o r128.o ffb.o mga.o i810.o
+export-objs := $(patsubst %.o,%_drv.o,$(module-list))
-ifeq ($(CONFIG_DRM_TDFX),y)
- OX_OBJS += tdfx_drv.o
- O_OBJS += tdfx_context.o
-else
- ifeq ($(CONFIG_DRM_TDFX),m)
- MIX_OBJS += tdfx_drv.o
- MI_OBJS += tdfx_context.o
- M_OBJS += tdfx.o
- endif
-endif
+lib-objs := init.o memory.o proc.o auth.o context.o drawable.o bufs.o
+lib-objs += lists.o lock.o ioctl.o fops.o vm.o dma.o ctxbitmap.o
ifneq ($(CONFIG_AGP),)
-ifeq ($(CONFIG_DRM_MGA),y)
- OX_OBJS += mga_drv.o
- O_OBJS += mga_context.o mga_dma.o mga_bufs.o mga_state.o
-else
- ifeq ($(CONFIG_DRM_MGA),m)
- MIX_OBJS += mga_drv.o
- MI_OBJS += mga_context.o mga_dma.o mga_bufs.o mga_state.o
- M_OBJS += mga.o
- endif
-endif
+ lib-objs += agpsupport.o
endif
-ifneq ($(CONFIG_AGP),)
-ifeq ($(CONFIG_DRM_I810),y)
- OX_OBJS += i810_drv.o
- O_OBJS += i810_context.o i810_bufs.o i810_dma.o
-else
- ifeq ($(CONFIG_DRM_I810),m)
- MIX_OBJS += i810_drv.o
- MI_OBJS += i810_context.o i810_bufs.o i810_dma.o
- M_OBJS += i810.o
- endif
-endif
+gamma-objs := $(lib-objs) gamma_drv.o gamma_dma.o
+tdfx-objs := $(lib-objs) tdfx_drv.o tdfx_context.o
+r128-objs := $(lib-objs) r128_drv.o r128_dma.o r128_context.o r128_bufs.o
+ffb-objs := $(lib-objs) ffb_drv.o ffb_context.o
+mga-objs := $(lib-objs) mga_drv.o mga_dma.o mga_context.o mga_bufs.o \
+ mga_state.o
+i810-objs := $(lib-objs) i810_drv.o i810_dma.o i810_context.o i810_bufs.o
+
+obj-$(CONFIG_DRM_GAMMA) += gamma.o $(gamma-objs)
+obj-$(CONFIG_DRM_TDFX) += tdfx.o $(tdfx-objs)
+obj-$(CONFIG_DRM_R128) += r128.o $(r128-objs)
+obj-$(CONFIG_DRM_FFB) += ffb.o $(ffb-objs)
+
+ifneq ($CONFIG_AGP),)
+obj-$(CONFIG_DRM_MGA) += mga.o $(mga-objs) $(lib-objs)
+obj-$(CONFIG_DRM_I810) += i810.o $(i810-objs) $(lib-objs)
endif
-ifeq ($(CONFIG_DRM_R128),y)
- OX_OBJS += r128_drv.o
- O_OBJS += r128_context.o r128_bufs.o r128_dma.o
-else
- ifeq ($(CONFIG_DRM_R128),m)
- MIX_OBJS += r128_drv.o
- MI_OBJS += r128_context.o r128_bufs.o r128_dma.o
- M_OBJS += r128.o
- endif
-endif
+# Take module names out of obj-y and int-m
-ifeq ($(CONFIG_DRM_FFB),y)
- OX_OBJS += ffb_drv.o
- O_OBJS += ffb_context.o
-else
- ifeq ($(CONFIG_DRM_FFB),m)
- MIX_OBJC += ffb_drv.o
- MI_OBJS += ffb_context.o
- M_OBJS += ffb.o
- endif
-endif
+obj-y := $(filter-out $(module-list), $(obj-y))
+int-m := $(filter-out $(module-list), $(obj-m))
+
+# Translate to Rules.make lists.
-O_OBJS += $(L_OBJS)
+O_OBJS := $(filter-out $(export-objs), $(obj-y))
+OX_OBJS := $(filter $(export-objs), $(obj-y))
+M_OBJS := $(sort $(filter $(module-list), $(obj-m)))
+MI_OBJS := $(sort $(filter-out $(export-objs), $(int-m)))
+MIX_OBJS := $(sort $(filter $(export-objs), $(int-m)))
include $(TOPDIR)/Rules.make
-gamma.o : gamma_drv.o gamma_dma.o $(L_OBJS)
- $(LD) $(LD_RFLAG) -r -o $@ gamma_drv.o gamma_dma.o $(L_OBJS)
+gamma.o: $(gamma-objs)
+ $(LD) $(LD_RFLAG) -r -o $@ $(gamma-objs)
-tdfx.o: tdfx_drv.o tdfx_context.o $(L_OBJS)
- $(LD) $(LD_RFLAG) -r -o $@ tdfx_drv.o tdfx_context.o $(L_OBJS)
+tdfx.o: $(tdfx-objs)
+ $(LD) $(LD_RFLAG) -r -o $@ $(tdfx-objs)
-mga.o: mga_drv.o mga_context.o mga_dma.o mga_bufs.o mga_state.o $(L_OBJS)
- $(LD) $(LD_RFLAG) -r -o $@ mga_drv.o mga_bufs.o mga_dma.o \
- mga_context.o mga_state.o $(L_OBJS)
+mga.o: $(mga-objs)
+ $(LD) $(LD_RFLAG) -r -o $@ $(mga-objs)
-i810.o: i810_drv.o i810_context.o i810_bufs.o i810_dma.o $(L_OBJS)
- $(LD) $(LD_RFLAG) -r -o $@ i810_drv.o i810_bufs.o i810_dma.o \
- i810_context.o $(L_OBJS)
+i810.o: $(i810-objs)
+ $(LD) $(LD_RFLAG) -r -o $@ $(i810-objs)
-r128.o: r128_drv.o r128_context.o r128_bufs.o r128_dma.o $(L_OBJS)
- $(LD) $(LD_RFLAG) -r -o $@ r128_drv.o r128_bufs.o r128_dma.o \
- r128_context.o $(L_OBJS)
+r128.o: $(r128-objs)
+ $(LD) $(LD_RFLAG) -r -o $@ $(r128-objs)
-ffb.o: ffb_drv.o ffb_context.o $(L_OBJS)
- $(LD) $(LD_RFLAG) -r -o $@ ffb_drv.o ffb_context.o $(L_OBJS)
+ffb.o: $(ffb-objs)
+ $(LD) $(LD_RFLAG) -r -o $@ $(ffb-objs)