summaryrefslogtreecommitdiff
path: root/linux/Makefile.linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux/Makefile.linux')
-rw-r--r--linux/Makefile.linux157
1 files changed, 157 insertions, 0 deletions
diff --git a/linux/Makefile.linux b/linux/Makefile.linux
new file mode 100644
index 00000000..0f14540d
--- /dev/null
+++ b/linux/Makefile.linux
@@ -0,0 +1,157 @@
+# Makefile -- For the Direct Rendering Manager module (drm)
+# Created: Mon Jan 4 09:26:53 1999 by faith@precisioninsight.com
+# Revised: Sun Feb 13 23:15:59 2000 by kevin@precisioninsight.com
+#
+# Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+# 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.
+#
+# $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/generic/Makefile.linux,v 1.23 1999/07/02 17:46:30 faith Exp $
+# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.5 2000/02/14 06:27:25 martin Exp $
+#
+
+.SUFFIXES:
+
+# *** Setup
+
+MODS= gamma.o tdfx.o
+LIBS= libdrm.a
+PROGS= drmstat
+
+DRMOBJS= 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
+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)
+
+PROGOBJS= drmstat.po xf86drm.po xf86drmHash.po xf86drmRandom.po sigio.po
+PROGHEADERS= xf86drm.h $(DRMHEADERS)
+
+CFLAGS= -O2 $(WARNINGS)
+WARNINGS= -Wall -Wwrite-strings -Wpointer-arith -Wcast-align \
+ -Wstrict-prototypes -Wshadow -Wnested-externs \
+ -Winline -Wpointer-arith
+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
+
+# To override this determination, pass the path on the make command line:
+# make TREE=/usr/my-kernel-tree/include
+# or hardcode a value for TREE here:
+# TREE:=/usr/include
+
+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)
+all::;@echo KERNEL HEADERS IN $(TREE): SMP=${SMP} MODVERSIONS=${MODVERSIONS}
+all:: $(LIBS) $(MODS) $(PROGS)
+endif
+
+# **** End of SMP/MODVERSIONS detection
+
+# **** Handle SMP/MODVERSIONS
+ifeq ($(SMP),1)
+MODCFLAGS += -D__SMP__
+endif
+ifeq ($(MODVERSIONS),1)
+MODCFLAGS += -DMODVERSIONS -include $(TREE)/linux/modversions.h
+endif
+
+# **** End of configuration
+
+libdrm.a: $(DRMOBJS)
+ -$(RM) -f $@
+ $(AR) rcs $@ $(DRMOBJS)
+
+gamma.o: $(GAMMAOBJS) $(LIBS)
+ $(LD) -r $^ -o $@
+
+tdfx.o: $(TDFXOBJS) $(LIBS)
+ $(LD) -r $^ -o $@
+
+drmstat: $(PROGOBJS)
+ $(CC) $(PRGCFLAGS) $^ $(PRGLIBS) -o $@
+
+.PHONY: ChangeLog
+ChangeLog:
+ @rm -f Changelog
+ @rcs2log -i 2 -r -l \
+ | sed 's,@.*alephnull.com,@precisioninsight.com,' > ChangeLog
+
+
+# .o files are used for modules
+%.o: %.c
+ $(CC) $(MODCFLAGS) -c $< -o $@
+
+%.po: %.c
+ $(CC) $(PRGCFLAGS) -DDRM_USE_MALLOC -c $< -o $@
+
+
+$(DRMOBJS): $(DRMHEADERS)
+$(GAMMAOBJS): $(GAMMAHEADERS)
+$(TDFXOBJS): $(TDFXHEADERS)
+$(PROGOBJS): $(PROGHEADERS)
+
+clean:
+ rm -f *.o *.po *~ core $(PROGS)
+