drm/linux/Makefile.linux

233 lines
7.0 KiB
Makefile
Raw Normal View History

1999-12-05 16:10:37 -07:00
# Makefile -- For the Direct Rendering Manager module (drm)
# Created: Mon Jan 4 09:26:53 1999 by faith@precisioninsight.com
#
2000-06-08 08:38:22 -06:00
# Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
# Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
1999-12-05 16:10:37 -07:00
# All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
2000-08-16 12:29:06 -06:00
# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.9 2000/08/04 03:51:47 tsi Exp $
2000-06-08 08:38:22 -06:00
#
# ***** NOTE NOTE NOTE NOTE NOTE *****
# To override the automatic Linux source tree determination, pass the
# pathname for the kernel that you want to compile on the command line,
# like this:
# make TREE=/usr/my-kernel-tree/include
#
#
# ***** NOTE NOTE NOTE NOTE NOTE *****
# Because some distributions patch 2.2.x kernels to make kill_fasync have
# three parameters, this script tries to determine, via the examination of
# header files, if your kernel has been patched. If this detection is
# incorrect, you can override the value on the command line, like this:
# make PARAMS=2
# or
# make PARAMS=3
1999-12-05 16:10:37 -07:00
.SUFFIXES:
# *** Setup
2000-04-04 16:08:14 -06:00
# **** End of SMP/MODVERSIONS detection
2000-08-16 12:29:06 -06:00
MODS= gamma.o tdfx.o r128.o sis.o
1999-12-05 16:10:37 -07:00
LIBS= libdrm.a
PROGS= drmstat
DRMOBJS= init.o memory.o proc.o auth.o context.o drawable.o bufs.o \
2000-04-04 16:08:14 -06:00
lists.o lock.o ioctl.o fops.o vm.o dma.o ctxbitmap.o
1999-12-05 16:10:37 -07:00
DRMHEADERS= drm.h drmP.h
GAMMAOBJS= gamma_drv.o gamma_dma.o
GAMMAHEADERS= gamma_drv.h $(DRMHEADERS)
TDFXOBJS= tdfx_drv.o tdfx_context.o
TDFXHEADERS= tdfx_drv.h $(DRMHEADERS)
2000-05-18 00:14:27 -06:00
R128OBJS= r128_drv.o r128_dma.o r128_bufs.o r128_context.o
R128HEADERS= r128_drv.h r128_drm.h $(DRMHEADERS)
2000-08-16 12:29:06 -06:00
SISOBJS= sis_drv.o sis_context.o sis_ds.o sis_mm.o
SISHEADERS= sis_drv.h sis_ds.h sis_drm_public.h $(DRMHEADERS)
1999-12-05 16:10:37 -07:00
PROGOBJS= drmstat.po xf86drm.po xf86drmHash.po xf86drmRandom.po sigio.po
PROGHEADERS= xf86drm.h $(DRMHEADERS)
2000-04-04 16:08:14 -06:00
INC= /usr/include
1999-12-05 16:10:37 -07:00
CFLAGS= -O2 $(WARNINGS)
WARNINGS= -Wall -Wwrite-strings -Wpointer-arith -Wcast-align \
2000-08-04 04:04:55 -06:00
-Wstrict-prototypes -Wnested-externs \
-Wpointer-arith
# -Wshadow -Winline -- make output too noisy
1999-12-05 16:10:37 -07:00
MODCFLAGS= $(CFLAGS) -D__KERNEL__ -DMODULE -fomit-frame-pointer
PRGCFLAGS= $(CFLAGS) -g -ansi -pedantic -DPOSIX_C_SOURCE=199309L \
-D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE \
-I../../../../../../include -I../../../../../../../../include \
-I../../../../../../../../programs/Xserver/hw/xfree86/common
PRGLIBS=
# **** Start of SMP/MODVERSIONS detection
# First, locate correct tree for this kernel version. If we find a
# matching tree, we assume that we can rely on that tree's autoconf.h.
# This may not be correct, but it is the best assumption we can make.
VERSION := $(shell uname -r)
A := /usr/src/linux-$(VERSION)/include
B := /usr/src/linux/include
C := /usr/include
V := $(shell gcc -E -nostdinc -I$A picker.c 2>/dev/null \
| grep -s 'RELEASE = ' | cut -d' ' -f3)
ifeq ($(V),"$(VERSION)")
TREE := $A
else
V := $(shell gcc -E -nostdinc -I$B picker.c 2>/dev/null \
| grep -s 'RELEASE = ' | cut -d' ' -f3)
ifeq ($(V),"$(VERSION)")
TREE := $B
else
V := $(shell gcc -E -nostdinc -I$C picker.c 2>/dev/null \
| grep -s 'RELEASE = ' | cut -d' ' -f3)
ifeq ($(V),"$(VERSION)")
TREE := $C
else
TREE := 0
endif
endif
endif
ifeq ($(TREE),0)
all:; @echo Error: Could not locate kernel tree in $A $B $C
else
SMP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
| grep -s 'SMP = ' | cut -d' ' -f3)
MODVERSIONS := $(shell gcc -E -I $(TREE) picker.c 2>/dev/null \
| grep -s 'MODVERSIONS = ' | cut -d' ' -f3)
2000-04-04 16:08:14 -06:00
AGP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
| grep -s 'AGP = ' | cut -d' ' -f3)
2000-06-08 08:38:22 -06:00
PARAMS := $(shell if fgrep kill_fasync $(TREE)/linux/fs.h \
| fgrep -q band; then echo 3; else echo 2; fi)
2000-04-04 16:08:14 -06:00
ifeq ($(AGP),0)
AGP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
| grep -s 'AGP_MODULE = ' | cut -d' ' -f3)
endif
ifeq ($(AGP),1)
2000-08-04 04:04:55 -06:00
MODCFLAGS += -DCONFIG_AGP -DCONFIG_AGP_MODULE
2000-04-04 16:08:14 -06:00
DRMOBJS += agpsupport.o
MODS += mga.o i810.o
MGAOBJS= mga_drv.o mga_dma.o mga_bufs.o mga_state.o mga_context.o
MGAHEADERS= mga_drv.h $(DRMHEADERS)
I810OBJS= i810_drv.o i810_dma.o i810_bufs.o i810_context.o
I810HEADERS= i810_drv.h $(DRMHEADERS)
endif
2000-06-08 08:38:22 -06:00
all::;@echo === KERNEL HEADERS IN $(TREE)
all::;@echo === SMP=${SMP} MODVERSIONS=${MODVERSIONS} AGP=${AGP}
all::;@echo === kill_fasync has $(PARAMS) parameters
all:: $(LIBS) $(MODS) $(PROGS)
endif
# **** End of SMP/MODVERSIONS detection
1999-12-05 16:10:37 -07:00
# **** Handle SMP/MODVERSIONS
ifeq ($(SMP),1)
MODCFLAGS += -D__SMP__
endif
ifeq ($(MODVERSIONS),1)
MODCFLAGS += -DMODVERSIONS -include $(TREE)/linux/modversions.h
1999-12-05 16:10:37 -07:00
endif
2000-06-08 08:38:22 -06:00
ifeq ($(PARAMS),3)
MODCFLAGS += -DKILLFASYNCHASTHREEPARAMETERS
endif
2000-04-04 16:08:14 -06:00
1999-12-05 16:10:37 -07:00
# **** End of configuration
libdrm.a: $(DRMOBJS)
-$(RM) -f $@
$(AR) rcs $@ $(DRMOBJS)
2000-08-04 04:04:55 -06:00
gamma_drv.o: gamma_drv.c
$(CC) $(MODCFLAGS) -DEXPORT_SYMTAB -I$(TREE) -c $< -o $@
1999-12-05 16:10:37 -07:00
gamma.o: $(GAMMAOBJS) $(LIBS)
$(LD) -r $^ -o $@
2000-08-04 04:04:55 -06:00
tdfx_drv.o: tdfx_drv.c
$(CC) $(MODCFLAGS) -DEXPORT_SYMTAB -I$(TREE) -c $< -o $@
1999-12-05 16:10:37 -07:00
tdfx.o: $(TDFXOBJS) $(LIBS)
$(LD) -r $^ -o $@
2000-08-04 04:04:55 -06:00
r128_drv.o: r128_drv.c
$(CC) $(MODCFLAGS) -DEXPORT_SYMTAB -I$(TREE) -c $< -o $@
2000-05-18 00:14:27 -06:00
r128.o: $(R128OBJS) $(LIBS)
$(LD) -r $^ -o $@
2000-08-16 12:29:06 -06:00
sis.o: $(SISOBJS) $(LIBS)
$(LD) -r $^ -o $@
2000-04-04 16:08:14 -06:00
ifeq ($(AGP),1)
2000-08-04 04:04:55 -06:00
mga_drv.o: mga_drv.c
$(CC) $(MODCFLAGS) -DEXPORT_SYMTAB -I$(TREE) -c $< -o $@
2000-04-04 16:08:14 -06:00
mga.o: $(MGAOBJS) $(LIBS)
$(LD) -r $^ -o $@
2000-08-04 04:04:55 -06:00
i810_drv.o: i810_drv.c
$(CC) $(MODCFLAGS) -DEXPORT_SYMTAB -I$(TREE) -c $< -o $@
2000-04-04 16:08:14 -06:00
i810.o: $(I810OBJS) $(LIBS)
$(LD) -r $^ -o $@
endif
1999-12-05 16:10:37 -07:00
drmstat: $(PROGOBJS)
$(CC) $(PRGCFLAGS) $^ $(PRGLIBS) -o $@
.PHONY: ChangeLog
ChangeLog:
@rm -f Changelog
@rcs2log -i 2 -r -l \
2000-07-19 12:38:41 -06:00
| sed 's,@.*light,,' \
| sed 's,/cvsroot/.*/drm/kernel/,,g' \
> ChangeLog
1999-12-05 16:10:37 -07:00
# .o files are used for modules
%.o: %.c
2000-06-08 08:38:22 -06:00
$(CC) $(MODCFLAGS) -I$(TREE) -c $< -o $@
1999-12-05 16:10:37 -07:00
%.po: %.c
$(CC) $(PRGCFLAGS) -DDRM_USE_MALLOC -c $< -o $@
$(DRMOBJS): $(DRMHEADERS)
$(GAMMAOBJS): $(GAMMAHEADERS)
$(TDFXOBJS): $(TDFXHEADERS)
2000-05-18 00:14:27 -06:00
$(R128OBJS): $(R128HEADERS)
2000-04-04 16:08:14 -06:00
ifeq ($(AGP),1)
$(MGAOBJS): $(MGAHEADERS)
$(I810OBJS): $(I810HEADERS)
endif
1999-12-05 16:10:37 -07:00
$(PROGOBJS): $(PROGHEADERS)
clean:
2000-04-04 16:08:14 -06:00
rm -f *.o *.a *.po *~ core $(PROGS)