mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-08 10:28:04 +02:00
Move Makefile.linux to Makefile.
Get rid of Makefile juggling hacks which are no longer necessary.
This commit is contained in:
parent
6f6d2a553a
commit
0f32a88527
2 changed files with 382 additions and 19 deletions
|
|
@ -6,7 +6,7 @@
|
|||
# platforms in a flexible way by David Dawes. It's not clear, however,
|
||||
# that this approach is simpler than the old one.
|
||||
#
|
||||
# The purpose of this Makefile.linux file is to handle setting up everything
|
||||
# The purpose of this Makefile is to handle setting up everything
|
||||
# needed for an out-of-kernel source build. Makefile.kernel contains
|
||||
# everything required for in-kernel source builds. It is included into
|
||||
# this file, so none of that should be duplicated here.
|
||||
|
|
@ -18,17 +18,17 @@
|
|||
# By default, the build is done against the running linux kernel source.
|
||||
# To build against a different kernel source tree, set LINUXDIR:
|
||||
#
|
||||
# make -f Makefile.linux LINUXDIR=/path/to/kernel/source
|
||||
# make LINUXDIR=/path/to/kernel/source
|
||||
|
||||
#
|
||||
# To build only some modules, either set DRM_MODULES to the list of modules,
|
||||
# or specify the modules as targets:
|
||||
#
|
||||
# make -f Makefile.linux r128.o radeon.o
|
||||
# make r128.o radeon.o
|
||||
#
|
||||
# or:
|
||||
#
|
||||
# make -f Makefile.linux DRM_MODULES="r128 radeon"
|
||||
# make DRM_MODULES="r128 radeon"
|
||||
#
|
||||
|
||||
SHELL=/bin/sh
|
||||
|
|
@ -157,24 +157,10 @@ ifeq ($(CLEANCONFIG),y)
|
|||
CLEANFILES += $(LINUXDIR)/.config .config $(LINUXDIR)/tmp_include_depends
|
||||
endif
|
||||
|
||||
# The Makefile renaming hack is required because the standard kernel build,
|
||||
# especially 2.5.52 and later, explicitly references the Makefile by the
|
||||
# name "Makefile". For builds prior to 2.5.52, the name GNUmakefile could
|
||||
# have been used.
|
||||
|
||||
all: modules
|
||||
|
||||
modules: includes
|
||||
@if test -f Makefile && cmp -s Makefile Makefile.linux; then : ; \
|
||||
else \
|
||||
if [ -e Makefile ]; then \
|
||||
(set -x; mv -f Makefile Makefile._xx_); fi; \
|
||||
(set -x; ln -s Makefile.linux Makefile); fi
|
||||
make -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
|
||||
@if cmp -s Makefile Makefile.linux; then \
|
||||
(set -x; rm -f Makefile); \
|
||||
if [ -e Makefile._xx_ ]; then \
|
||||
(set -x; mv -f Makefile._xx_ Makefile); fi; fi
|
||||
|
||||
ifeq ($(HEADERFROMBOOT),1)
|
||||
|
||||
|
|
@ -241,7 +227,7 @@ clean cleandir:
|
|||
rm -f $(CLEANFILES)
|
||||
|
||||
$(MODULE_LIST)::
|
||||
make -f Makefile.linux DRM_MODULES=$@ modules
|
||||
make DRM_MODULES=$@ modules
|
||||
|
||||
# Build test utilities
|
||||
|
||||
377
linux/Makefile
Normal file
377
linux/Makefile
Normal file
|
|
@ -0,0 +1,377 @@
|
|||
# Makefile -- For the Direct Rendering Manager module (drm)
|
||||
#
|
||||
# Based on David Woodhouse's mtd build.
|
||||
#
|
||||
# Modified to handle the DRM requirements and builds on a wider range of
|
||||
# platforms in a flexible way by David Dawes. It's not clear, however,
|
||||
# that this approach is simpler than the old one.
|
||||
#
|
||||
# The purpose of this Makefile is to handle setting up everything
|
||||
# needed for an out-of-kernel source build. Makefile.kernel contains
|
||||
# everything required for in-kernel source builds. It is included into
|
||||
# this file, so none of that should be duplicated here.
|
||||
#
|
||||
# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.40 2003/08/17 17:12:25 dawes Exp $
|
||||
#
|
||||
|
||||
#
|
||||
# By default, the build is done against the running linux kernel source.
|
||||
# To build against a different kernel source tree, set LINUXDIR:
|
||||
#
|
||||
# make LINUXDIR=/path/to/kernel/source
|
||||
|
||||
#
|
||||
# To build only some modules, either set DRM_MODULES to the list of modules,
|
||||
# or specify the modules as targets:
|
||||
#
|
||||
# make r128.o radeon.o
|
||||
#
|
||||
# or:
|
||||
#
|
||||
# make DRM_MODULES="r128 radeon"
|
||||
#
|
||||
|
||||
SHELL=/bin/sh
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
ifndef LINUXDIR
|
||||
RUNNING_REL := $(shell uname -r)
|
||||
|
||||
LINUXDIR := /lib/modules/$(RUNNING_REL)/build
|
||||
endif
|
||||
|
||||
MACHINE := $(shell uname -m)
|
||||
|
||||
# Modules for all architectures
|
||||
MODULE_LIST := gamma.o tdfx.o r128.o radeon.o mga.o sis.o savage.o via.o mach64.o
|
||||
|
||||
# Modules only for ix86 architectures
|
||||
ifneq (,$(findstring 86,$(MACHINE)))
|
||||
ARCHX86 := 1
|
||||
MODULE_LIST += i830.o i810.o
|
||||
endif
|
||||
|
||||
# Add ffb.o for sparc??
|
||||
|
||||
DRM_MODULES ?= $(MODULE_LIST)
|
||||
|
||||
# These definitions are for handling dependencies in the out of kernel build.
|
||||
|
||||
DRMTEMPLATES = drm_auth.h drm_bufs.h drm_context.h drm_dma.h drm_drawable.h \
|
||||
drm_drv.h drm_fops.h drm_init.h drm_ioctl.h drm_irq.h \
|
||||
drm_lock.h drm_memory.h drm_proc.h drm_stub.h drm_vm.h
|
||||
|
||||
DRMSHARED = drm.h drm_sarea.h
|
||||
DRMHEADERS = drmP.h $(DRMSHARED)
|
||||
|
||||
GAMMAHEADERS = gamma.h gamma_context.h gamma_drm.h gamma_drv.h gamma_lists.h \
|
||||
gamma_old_dma.h gamma_lock.h $(DRMHEADERS) $(DRMTEMPLATES)
|
||||
TDFXHEADERS = tdfx.h $(DRMHEADERS) $(DRMTEMPLATES)
|
||||
TDFXSHARED = tdfx.h
|
||||
R128HEADERS = r128.h r128_drv.h r128_drm.h $(DRMHEADERS) $(DRMTEMPLATES)
|
||||
R128SHARED = r128.h r128_drv.h r128_drm.h r128_cce.c r128_state.c r128_irq.c
|
||||
RADEONHEADERS = radeon.h radeon_drv.h radeon_drm.h $(DRMHEADERS) \
|
||||
$(DRMTEMPLATES)
|
||||
RADEONSHARED = radeon.h radeon_drv.h radeon_drm.h radeon_cp.c radeon_irq.c \
|
||||
radeon_mem.c radeon_state.c
|
||||
MGAHEADERS = mga.h mga_drv.h mga_drm.h mga_ucode.h $(DRMHEADERS) \
|
||||
$(DRMTEMPLATES)
|
||||
MGASHARED = mga.h mga_dma.c mga_drm.h mga_drv.h mga_irq.c mga_state.c \
|
||||
mga_ucode.h mga_warp.c
|
||||
I810HEADERS = i810.h i810_drv.h i810_drm.h $(DRMHEADERS) $(DRMTEMPLATES)
|
||||
I830HEADERS = i830.h i830_drv.h i830_drm.h $(DRMHEADERS) $(DRMTEMPLATES)
|
||||
SISHEADERS= sis.h sis_drv.h sis_drm.h $(DRMHEADERS)
|
||||
SISSHARED= sis.h sis_drv.h sis_drm.h sis_ds.c sis_ds.h sis_mm.c
|
||||
SAVAGEHEADERS= savage.h savage_drv.h savage_drm.h $(DRMHEADERS) \
|
||||
$(DRMTEMPLATES)
|
||||
VIAHEADERS = via_drm.h via_drv.h via.h via_mm.h via_ds.h \
|
||||
$(DRMHEADERS) $(DRMTEMPLATES)
|
||||
VIASHARED = via_drm.h via_drv.h via.h via_mm.h via_ds.h via_drv.c \
|
||||
via_ds.c via_irq.c via_map.c via_mm.c
|
||||
MACH64HEADERS = mach64.h mach64_drv.h mach64_drm.h $(DRMHEADERS) \
|
||||
$(DRMTEMPLATES)
|
||||
MACH64SHARED = mach64.h mach64_drv.h mach64_drm.h mach64_dma.c \
|
||||
mach64_irq.c mach64_state.c
|
||||
|
||||
SHAREDSRC = $(DRMSHARED) $(MGASHARED) $(R128SHARED) $(RADEONSHARED) \
|
||||
$(SISSHARED) $(TDFXSHARED) $(VIASHARED) $(MACH64SHARED)
|
||||
|
||||
PROGS = dristat drmstat
|
||||
|
||||
CLEANFILES = *.o *.ko $(PROGS) .depend .*.flags .*.d .*.cmd *.mod.c linux
|
||||
|
||||
# VERSION is not defined from the initial invocation. It is defined when
|
||||
# this Makefile is invoked from the kernel's root Makefile.
|
||||
|
||||
ifndef VERSION
|
||||
|
||||
ifdef RUNNING_REL
|
||||
|
||||
# SuSE has the version.h and autoconf.h headers for the current kernel
|
||||
# in /boot as /boot/vmlinuz.version.h and /boot/vmlinuz.autoconf.h.
|
||||
# Check these first to see if they match the running kernel.
|
||||
|
||||
BOOTVERSION_PREFIX = /boot/vmlinuz.
|
||||
|
||||
V := $(shell if [ -f $(BOOTVERSION_PREFIX)version.h ]; then \
|
||||
grep UTS_RELEASE $(BOOTVERSION_PREFIX)version.h | \
|
||||
cut -d' ' -f3; fi)
|
||||
|
||||
ifeq ($(V),"$(RUNNING_REL)")
|
||||
HEADERFROMBOOT := 1
|
||||
GETCONFIG := MAKEFILES=$(shell pwd)/.config
|
||||
HAVECONFIG := y
|
||||
endif
|
||||
|
||||
# On Red Hat we need to check if there is a .config file in the kernel
|
||||
# source directory. If there isn't, we need to check if there's a
|
||||
# matching file in the configs subdirectory.
|
||||
|
||||
ifneq ($(HAVECONFIG),y)
|
||||
HAVECONFIG := $(shell if [ -e $(LINUXDIR)/.config ]; then echo y; fi)
|
||||
endif
|
||||
|
||||
ifneq ($(HAVECONFIG),y)
|
||||
REL_BASE := $(shell echo $(RUNNING_REL) | sed 's/-.*//')
|
||||
REL_TYPE := $(shell echo $(RUNNING_REL) | sed 's/[0-9.-]//g')
|
||||
ifeq ($(REL_TYPE),)
|
||||
RHCONFIG := configs/kernel-$(REL_BASE)-$(MACHINE).config
|
||||
else
|
||||
RHCONFIG := configs/kernel-$(REL_BASE)-$(MACHINE)-$(REL_TYPE).config
|
||||
endif
|
||||
HAVECONFIG := $(shell if [ -e $(LINUXDIR)/$(RHCONFIG) ]; then echo y; fi)
|
||||
ifneq ($(HAVECONFIG),y)
|
||||
RHCONFIG :=
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(HAVECONFIG),y)
|
||||
$(error Cannot find a kernel config file)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
CLEANCONFIG := $(shell if cmp -s $(LINUXDIR)/.config .config; then echo y; fi)
|
||||
ifeq ($(CLEANCONFIG),y)
|
||||
CLEANFILES += $(LINUXDIR)/.config .config $(LINUXDIR)/tmp_include_depends
|
||||
endif
|
||||
|
||||
all: modules
|
||||
|
||||
modules: includes
|
||||
make -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules
|
||||
|
||||
ifeq ($(HEADERFROMBOOT),1)
|
||||
|
||||
BOOTHEADERS = version.h autoconf.h
|
||||
BOOTCONFIG = .config
|
||||
|
||||
CLEANFILES += $(BOOTHEADERS) $(BOOTCONFIG)
|
||||
|
||||
includes:: $(BOOTHEADERS) $(BOOTCONFIG)
|
||||
|
||||
version.h: $(BOOTVERSION_PREFIX)version.h
|
||||
rm -f $@
|
||||
ln -s $< $@
|
||||
|
||||
autoconf.h: $(BOOTVERSION_PREFIX)autoconf.h
|
||||
rm -f $@
|
||||
ln -s $< $@
|
||||
|
||||
.config: $(BOOTVERSION_PREFIX)config
|
||||
rm -f $@
|
||||
ln -s $< $@
|
||||
endif
|
||||
|
||||
# This prepares an unused Red Hat kernel tree for the build.
|
||||
ifneq ($(RHCONFIG),)
|
||||
includes:: $(LINUXDIR)/.config $(LINUXDIR)/tmp_include_depends .config
|
||||
|
||||
$(LINUXDIR)/.config: $(LINUXDIR)/$(RHCONFIG)
|
||||
rm -f $@
|
||||
ln -s $< $@
|
||||
|
||||
.config: $(LINUXDIR)/$(RHCONFIG)
|
||||
rm -f $@
|
||||
ln -s $< $@
|
||||
|
||||
$(LINUXDIR)/tmp_include_depends:
|
||||
echo all: > $@
|
||||
endif
|
||||
|
||||
# Make sure that the shared source files are linked into this directory.
|
||||
|
||||
|
||||
SHAREDDIR := ../shared
|
||||
|
||||
HASSHARED := $(shell if [ -d $(SHAREDDIR) ]; then echo y; fi)
|
||||
|
||||
ifeq ($(HASSHARED),y)
|
||||
includes:: $(SHAREDSRC)
|
||||
|
||||
$(SHAREDSRC):
|
||||
@if [ -r $(SHAREDDIR)/$@ ]; then \
|
||||
(rm -f $@; set -x; ln -s $(SHAREDDIR)/$@ $@); fi
|
||||
|
||||
CLEANFILES += $(SHAREDSRC)
|
||||
endif
|
||||
|
||||
includes:: linux
|
||||
|
||||
linux:
|
||||
rm -f linux
|
||||
ln -s . linux
|
||||
|
||||
clean cleandir:
|
||||
rm -f $(CLEANFILES)
|
||||
|
||||
$(MODULE_LIST)::
|
||||
make DRM_MODULES=$@ modules
|
||||
|
||||
# Build test utilities
|
||||
|
||||
PRGCFLAGS = $(CFLAGS) -g -ansi -pedantic -DPOSIX_C_SOURCE=199309L \
|
||||
-D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE \
|
||||
-I. -I../../..
|
||||
|
||||
DRMSTATLIBS = -L../../.. -L.. -ldrm -lxf86_os \
|
||||
-L../../../../dummylib -ldummy -lm
|
||||
|
||||
programs: $(PROGS)
|
||||
|
||||
dristat: dristat.c
|
||||
$(CC) $(PRGCFLAGS) $< -o $@
|
||||
|
||||
drmstat: drmstat.c
|
||||
$(CC) $(PRGCFLAGS) $< -o $@ $(DRMSTATLIBS)
|
||||
|
||||
else
|
||||
|
||||
# Check for kernel versions that we don't support.
|
||||
|
||||
BELOW24 := $(shell if [ $(VERSION) -lt 2 -o $(PATCHLEVEL) -lt 4 ]; then \
|
||||
echo y; fi)
|
||||
|
||||
ifeq ($(BELOW24),y)
|
||||
$(error Only 2.4.x and later kernels are supported \
|
||||
($(VERSION).$(PATCHLEVEL).$(SUBLEVEL)))
|
||||
endif
|
||||
|
||||
ifdef ARCHX86
|
||||
ifndef CONFIG_X86_CMPXCHG
|
||||
$(error CONFIG_X86_CMPXCHG needs to be enabled in the kernel)
|
||||
endif
|
||||
endif
|
||||
|
||||
# This needs to go before all other include paths.
|
||||
CC += -I$(DRMSRCDIR)
|
||||
|
||||
# Check for Red Hat's 4-argument do_munmap().
|
||||
DOMUNMAP := $(shell grep do_munmap $(LINUXDIR)/include/linux/mm.h | \
|
||||
grep -c acct)
|
||||
|
||||
ifneq ($(DOMUNMAP),0)
|
||||
EXTRA_CFLAGS += -DDO_MUNMAP_4_ARGS
|
||||
endif
|
||||
|
||||
# Check for 5-argument remap_page_range() in RH9 kernel, and 2.5.x kernels
|
||||
RPR := $(shell grep remap_page_range $(LINUXDIR)/include/linux/mm.h | \
|
||||
grep -c vma)
|
||||
|
||||
ifneq ($(RPR),0)
|
||||
EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_5_ARGS
|
||||
endif
|
||||
|
||||
# Check for 4-argument vmap() in some 2.5.x and 2.4.x kernels
|
||||
VMAP := $(shell grep -A1 'vmap.*count,$$' $(LINUXDIR)/include/linux/vmalloc.h | \
|
||||
grep -c prot)
|
||||
|
||||
ifneq ($(VMAP),0)
|
||||
EXTRA_CFLAGS += -DVMAP_4_ARGS
|
||||
endif
|
||||
|
||||
# Check for PAGE_AGP definition
|
||||
PAGE_AGP := $(shell cat $(LINUXDIR)/include/asm/agp.h 2>/dev/null | \
|
||||
grep -c PAGE_AGP)
|
||||
|
||||
ifneq ($(PAGE_AGP),0)
|
||||
EXTRA_CFLAGS += -DHAVE_PAGE_AGP
|
||||
endif
|
||||
|
||||
|
||||
# Start with all modules turned off.
|
||||
CONFIG_DRM_GAMMA := n
|
||||
CONFIG_DRM_TDFX := n
|
||||
CONFIG_DRM_MGA := n
|
||||
CONFIG_DRM_I810 := n
|
||||
CONFIG_DRM_R128 := n
|
||||
CONFIG_DRM_RADEON := n
|
||||
CONFIG_DRM_I830 := n
|
||||
CONFIG_DRM_SIS := n
|
||||
CONFIG_DRM_FFB := n
|
||||
CONFIG_DRM_SAVAGE := n
|
||||
CONFIG_DRM_VIA := n
|
||||
CONFIG_DRM_MACH64 := n
|
||||
|
||||
# Enable module builds for the modules requested/supported.
|
||||
|
||||
ifneq (,$(findstring gamma,$(DRM_MODULES)))
|
||||
CONFIG_DRM_GAMMA := m
|
||||
endif
|
||||
ifneq (,$(findstring tdfx,$(DRM_MODULES)))
|
||||
CONFIG_DRM_TDFX := m
|
||||
endif
|
||||
ifneq (,$(findstring r128,$(DRM_MODULES)))
|
||||
CONFIG_DRM_R128 := m
|
||||
endif
|
||||
ifneq (,$(findstring radeon,$(DRM_MODULES)))
|
||||
CONFIG_DRM_RADEON := m
|
||||
endif
|
||||
ifneq (,$(findstring sis,$(DRM_MODULES)))
|
||||
CONFIG_DRM_SIS := m
|
||||
endif
|
||||
ifneq (,$(findstring via,$(DRM_MODULES)))
|
||||
CONFIG_DRM_VIA := m
|
||||
endif
|
||||
ifneq (,$(findstring mach64,$(DRM_MODULES)))
|
||||
CONFIG_DRM_MACH64 := m
|
||||
endif
|
||||
|
||||
|
||||
|
||||
# These require AGP support
|
||||
|
||||
ifdef CONFIG_AGP
|
||||
ifneq (,$(findstring mga,$(DRM_MODULES)))
|
||||
CONFIG_DRM_MGA := m
|
||||
endif
|
||||
ifneq (,$(findstring i810,$(DRM_MODULES)))
|
||||
CONFIG_DRM_I810 := m
|
||||
endif
|
||||
ifneq (,$(findstring i830,$(DRM_MODULES)))
|
||||
CONFIG_DRM_I830 := m
|
||||
endif
|
||||
ifneq (,$(findstring savage,$(DRM_MODULES)))
|
||||
CONFIG_DRM_SAVAGE := m
|
||||
endif
|
||||
endif
|
||||
|
||||
include $(DRMSRCDIR)/Makefile.kernel
|
||||
|
||||
# Depencencies
|
||||
$(gamma-objs): $(GAMMAHEADERS)
|
||||
$(tdfx-objs): $(TDFXHEADERS)
|
||||
$(r128-objs): $(R128HEADERS)
|
||||
$(mga-objs): $(MGAHEADERS)
|
||||
$(i810-objs): $(I810HEADERS)
|
||||
$(i830-objs): $(I830HEADERS)
|
||||
$(radeon-objs): $(RADEONHEADERS)
|
||||
$(sis-objs): $(SISHEADERS)
|
||||
$(ffb-objs): $(FFBHEADERS)
|
||||
$(savage-objs): $(SAVAGEHEADERS)
|
||||
$(via-objs): $(VIAHEADERS)
|
||||
$(mach64-objs): $(MACH64HEADERS)
|
||||
|
||||
endif
|
||||
|
||||
Loading…
Add table
Reference in a new issue