Add new code to do SMP/MODVERSIONS detection for more distributions
parent
aa724a52b9
commit
9a838857e1
|
@ -1,6 +1,6 @@
|
||||||
# Makefile -- For the Direct Rendering Manager module (drm)
|
# Makefile -- For the Direct Rendering Manager module (drm)
|
||||||
# Created: Mon Jan 4 09:26:53 1999 by faith@precisioninsight.com
|
# Created: Mon Jan 4 09:26:53 1999 by faith@precisioninsight.com
|
||||||
# Revised: Thu Oct 7 10:56:13 1999 by faith@precisioninsight.com
|
# Revised: Thu Jan 13 09:53:33 2000 by faith@precisioninsight.com
|
||||||
#
|
#
|
||||||
# Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
# Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
@ -25,36 +25,12 @@
|
||||||
# DEALINGS IN THE SOFTWARE.
|
# 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 $
|
# $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.2 1999/12/14 01:33:55 robin Exp $
|
# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/generic/Makefile.linux,v 1.3 1999/06/27 14:08:21 dawes Exp $
|
||||||
#
|
#
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
|
||||||
# **** Start of SMP/MODVERSIONS detection
|
|
||||||
|
|
||||||
# *** Setup
|
# *** Setup
|
||||||
LINUX=/usr/src/linux
|
|
||||||
AUTOCONF=$(LINUX)/include/linux/autoconf.h
|
|
||||||
|
|
||||||
# ** SMP
|
|
||||||
SMP := $(shell \
|
|
||||||
if grep -q '^\#define.*CONFIG_SMP.*1' $(AUTOCONF); \
|
|
||||||
then echo 1; else echo 0; fi)
|
|
||||||
# If that doesn't do automatic detection properly on your system,
|
|
||||||
# uncomment one of these lines:
|
|
||||||
#SMP := 0
|
|
||||||
#SMP := 1
|
|
||||||
|
|
||||||
# ** MODVERSIONS
|
|
||||||
MODVERSIONS := $(shell \
|
|
||||||
if grep -q '^\#define.*CONFIG_MODVERSIONS.*1' $(AUTOCONF); \
|
|
||||||
then echo 1; else echo 0; fi)
|
|
||||||
# If that doesn't do automatic detection properly on your system,
|
|
||||||
# uncomment one of these lines:
|
|
||||||
#MODVERSIONS := 0
|
|
||||||
#MODVERSIONS := 1
|
|
||||||
|
|
||||||
# **** End of SMP/MODVERSIONS detection
|
|
||||||
|
|
||||||
MODS= gamma.o tdfx.o
|
MODS= gamma.o tdfx.o
|
||||||
LIBS= libdrm.a
|
LIBS= libdrm.a
|
||||||
|
@ -73,8 +49,6 @@ TDFXHEADERS= tdfx_drv.h $(DRMHEADERS)
|
||||||
PROGOBJS= drmstat.po xf86drm.po xf86drmHash.po xf86drmRandom.po sigio.po
|
PROGOBJS= drmstat.po xf86drm.po xf86drmHash.po xf86drmRandom.po sigio.po
|
||||||
PROGHEADERS= xf86drm.h $(DRMHEADERS)
|
PROGHEADERS= xf86drm.h $(DRMHEADERS)
|
||||||
|
|
||||||
INC= /usr/include
|
|
||||||
|
|
||||||
CFLAGS= -O2 $(WARNINGS)
|
CFLAGS= -O2 $(WARNINGS)
|
||||||
WARNINGS= -Wall -Wwrite-strings -Wpointer-arith -Wcast-align \
|
WARNINGS= -Wall -Wwrite-strings -Wpointer-arith -Wcast-align \
|
||||||
-Wstrict-prototypes -Wshadow -Wnested-externs \
|
-Wstrict-prototypes -Wshadow -Wnested-externs \
|
||||||
|
@ -86,18 +60,45 @@ PRGCFLAGS= $(CFLAGS) -g -ansi -pedantic -DPOSIX_C_SOURCE=199309L \
|
||||||
-I../../../../../../../../programs/Xserver/hw/xfree86/common
|
-I../../../../../../../../programs/Xserver/hw/xfree86/common
|
||||||
PRGLIBS=
|
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
|
||||||
|
TREE := $(shell \
|
||||||
|
if grep -q $(VERSION) $A/linux/version.h; then echo $A; \
|
||||||
|
elif grep -q $(VERSION) $B/linux/version.h; then echo $B; \
|
||||||
|
elif grep -q $(VERSION) $C/linux/version.h; then echo $C; \
|
||||||
|
else echo 0; fi)
|
||||||
|
|
||||||
|
ifeq "$TREE" "0"
|
||||||
|
all:; echo Error: Could not locate kernel tree
|
||||||
|
else
|
||||||
|
SMP := $(shell gcc -E -nostdinc -I$(TREE) picker.c 2>/dev/null \
|
||||||
|
| grep 'SMP = ' | cut -d' ' -f3)
|
||||||
|
MODVERSIONS := $(shell gcc -E -I $(TREE) picker.c 2>/dev/null \
|
||||||
|
| grep '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
|
# **** Handle SMP/MODVERSIONS
|
||||||
ifeq ($(SMP),1)
|
ifeq ($(SMP),1)
|
||||||
MODCFLAGS += -D__SMP__
|
MODCFLAGS += -D__SMP__
|
||||||
endif
|
endif
|
||||||
ifeq ($(MODVERSIONS),1)
|
ifeq ($(MODVERSIONS),1)
|
||||||
MODCFLAGS += -DMODVERSIONS -include /usr/include/linux/modversions.h
|
MODCFLAGS += -DMODVERSIONS -include $(TREE)/linux/modversions.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# **** End of configuration
|
# **** End of configuration
|
||||||
|
|
||||||
all: $(LIBS) $(MODS) $(PROGS)
|
|
||||||
|
|
||||||
libdrm.a: $(DRMOBJS)
|
libdrm.a: $(DRMOBJS)
|
||||||
-$(RM) -f $@
|
-$(RM) -f $@
|
||||||
$(AR) rcs $@ $(DRMOBJS)
|
$(AR) rcs $@ $(DRMOBJS)
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
#include <linux/autoconf.h>
|
||||||
|
|
||||||
|
#ifndef CONFIG_SMP
|
||||||
|
#define CONFIG_SMP 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_MODVERSIONS
|
||||||
|
#define CONFIG_MODVERSIONS 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SMP = CONFIG_SMP
|
||||||
|
MODVERSIONS = CONFIG_MODVERSIONS
|
Loading…
Reference in New Issue