From e61df587295e585a3643b523c499d6594962f76a Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 14 Apr 2004 12:44:07 +0000 Subject: [PATCH] First attempt at building a dri module in this tree -- make target is linux-dri -- will attempt to build i830_dri.so The object builds but hasn't been tested. --- Makefile | 4 +- configs/linux-dri | 34 ++++++++++++ configs/linux-solo | 2 + configs/linux-x86-debug | 10 ++++ src/mesa/drivers/dri/Makefile | 8 ++- src/mesa/drivers/dri/Makefile.template | 94 ++++++++++++++++++++++++++++++++++ src/mesa/drivers/dri/i830/Makefile | 83 +----------------------------- 7 files changed, 147 insertions(+), 88 deletions(-) create mode 100644 configs/linux-dri create mode 100644 configs/linux-x86-debug create mode 100644 src/mesa/drivers/dri/Makefile.template diff --git a/Makefile b/Makefile index 334779e..ad59e5b 100644 --- a/Makefile +++ b/Makefile @@ -64,6 +64,7 @@ linux \ linux-alpha \ linux-alpha-static \ linux-debug \ +linux-dri \ linux-glide \ linux-icc \ linux-icc-static \ @@ -78,6 +79,7 @@ linux-sparc5 \ linux-static \ linux-ultrasparc \ linux-x86 \ +linux-x86-debug \ linux-x86-64 \ linux-x86-64-static \ linux-x86-glide \ @@ -94,7 +96,7 @@ sunos5 \ sunos5-gcc \ sunos5-smp \ ultrix-gcc: - cp $(TOP)/configs/$@ $(TOP)/configs/current + (cd configs && rm -f current && ln -s $@ current) make default diff --git a/configs/linux-dri b/configs/linux-dri new file mode 100644 index 0000000..1fa60eb --- /dev/null +++ b/configs/linux-dri @@ -0,0 +1,34 @@ +# -*-makefile-*- +# Configuration for linux-dri: Linux DRI hardware drivers for XFree86 & others + +include $(TOP)/configs/default + +CONFIG_NAME = linux-dri + +# Compiler and flags +CC = gcc +CXX = g++ + +CFLAGS = -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS -D_GNU_SOURCE -DGLX_DIRECT_RENDERING -I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions + +CXXFLAGS = -Wall -g -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE + + + +#ASM_SOURCES = $(X86_SOURCES) + +# Library/program dependencies +GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl + +GLUT_LIB_DEPS = -L$(LIB_DIR) -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm +GLW_LIB_DEPS = -L$(LIB_DIR) -lGL -L/usr/X11R6/lib -lXt -lXm -lX11 + + +# Directories +SRC_DIRS = mesa glu glut/glx glw +DRIVER_DIRS = dri +PROGRAM_DIRS = +WINDOW_SYSTEM=dri + +#DRI_DIRS = dri_client gamma i810 i830 mach64 mga r128 r200 radeon sis tdfx +DRI_DIRS = dri_client i830 diff --git a/configs/linux-solo b/configs/linux-solo index 3870e27..841f8f7 100644 --- a/configs/linux-solo +++ b/configs/linux-solo @@ -26,3 +26,5 @@ APP_LIB_DEPS = -L$(LIB_DIR) -lglut -lGLU -lGL -lm -lpthread SRC_DIRS = mesa glx glu glw glut/mini DRIVER_DIRS = dri PROGRAM_DIRS = miniglx + +DRI_DIRS = fb gamma i810 i830 mach64 mga r128 r200 radeon sis tdfx diff --git a/configs/linux-x86-debug b/configs/linux-x86-debug new file mode 100644 index 0000000..c28329f --- /dev/null +++ b/configs/linux-x86-debug @@ -0,0 +1,10 @@ +# Configuration for Linux with x86 code, but no gcc optimizations and +# debugging enabled. + +include $(TOP)/configs/linux-x86 + +CONFIG_NAME = linux-x86-debug + +CFLAGS = -Wall -g -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include + +CXXFLAGS = -Wall -g -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE diff --git a/src/mesa/drivers/dri/Makefile b/src/mesa/drivers/dri/Makefile index 2967106..43731c0 100644 --- a/src/mesa/drivers/dri/Makefile +++ b/src/mesa/drivers/dri/Makefile @@ -4,8 +4,6 @@ TOP = ../../../.. include $(TOP)/configs/current -#SUBDIRS = fb ffb gamma i810 i830 mach64 mga r128 r200 radeon sis tdfx unichrome -SUBDIRS = fb gamma i810 i830 mach64 mga r128 r200 radeon sis tdfx default: $(LIB_DIR) subdirs @@ -16,12 +14,12 @@ $(LIB_DIR): subdirs: - @for dir in $(SUBDIRS) ; do \ - (cd $$dir ; make) ; \ + @for dir in $(DRI_DIRS) ; do \ + (cd $$dir ; make) || exit 1; \ done clean: - @for dir in $(SUBDIRS) ; do \ + @for dir in $(DRI_DIRS) ; do \ (cd $$dir ; make clean) ; \ done diff --git a/src/mesa/drivers/dri/Makefile.template b/src/mesa/drivers/dri/Makefile.template new file mode 100644 index 0000000..487cc43 --- /dev/null +++ b/src/mesa/drivers/dri/Makefile.template @@ -0,0 +1,94 @@ +# -*-makefile-*- + +TOP = ../../../../.. +include $(TOP)/configs/current + + +MESA_MODULES = $(TOP)/src/mesa/mesa.a + + +ifeq ($(WINDOW_SYSTEM),dri) +WINOBJ=../dri_client/dri.a +WINLIB= +INCLUDES = $(SHARED_INCLUDES) \ + -I../dri_client \ + -I../dri_client/imports + +OBJECTS = $(C_SOURCES:.c=.o) \ + $(ASM_SOURCES:.S=.o) + +else +WINOBJ= +WINLIB=-L$(MESA)/src/glx/mini +MINIGLX_INCLUDES = -I$(TOP)/src/glx/mini +MINIGLX_SOURCES = +INCLUDES = $(MINIGLX_INCLUDES) \ + $(SHARED_INCLUDES) + +OBJECTS = $(C_SOURCES:.c=.o) \ + $(MINIGLX_SOURCES:.c=.o) \ + $(ASM_SOURCES:.S=.o) +endif + + +### Include directories +SHARED_INCLUDES = \ + -I. \ + -I../common \ + -Iserver \ + -I$(TOP)/include \ + -I$(TOP)/src/mesa \ + -I$(TOP)/src/mesa/main \ + -I$(TOP)/src/mesa/glapi \ + -I$(TOP)/src/mesa/math \ + -I$(TOP)/src/mesa/transform \ + -I$(TOP)/src/mesa/shader \ + -I$(TOP)/src/mesa/swrast \ + -I$(TOP)/src/mesa/swrast_setup + + +##### RULES ##### + +.c.o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ + +.S.o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ + + +##### TARGETS ##### + +default: depend $(LIB_DIR)/$(LIBNAME) + + +#$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile +# @echo BUILDING FOR: $(WINDOW_SYSTEM) +# $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \ +# $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS) + + +$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile + rm -f $@ && gcc -o $@ -shared $(OBJECTS) $(MESA_MODULES) $(WINOBJ) -lGL -lc -lm + + + + + +# Run 'make depend' to update the dependencies if you change +# what's included by any source file. +depend: $(C_SOURCES) $(ASM_SOURCES) + touch depend + $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(C_SOURCES) $(ASM_SOURCES) \ + >& /dev/null + + +# Emacs tags +tags: + etags `find . -name \*.[ch]` `find ../include` + + +# Remove .o and backup files +clean: + -rm -f *.o */*.o *~ *.o *~ *.so server/*.o + +include depend diff --git a/src/mesa/drivers/dri/i830/Makefile b/src/mesa/drivers/dri/i830/Makefile index 4f07b4c..f6ba1fa 100644 --- a/src/mesa/drivers/dri/i830/Makefile +++ b/src/mesa/drivers/dri/i830/Makefile @@ -1,22 +1,9 @@ -# src/mesa/drivers/dri/i830/Makefile TOP = ../../../../.. include $(TOP)/configs/current LIBNAME = i830_dri.so -DEFINES += \ - -D_HAVE_SWRAST=1 \ - -D_HAVE_SWTNL=1 \ - -D_HAVE_SANITY=1 \ - -D_HAVE_CODEGEN=1 \ - -D_HAVE_LIGHTING=1 \ - -D_HAVE_TEXGEN=1 \ - -D_HAVE_USERCLIP=1 \ - -DGLX_DIRECT_RENDERING - -# Not yet -# MINIGLX_SOURCES = server/i830_dri.c COMMON_SOURCES = \ ../../common/driverfuncs.c \ @@ -44,76 +31,8 @@ C_SOURCES = \ $(MINIGLX_SOURCES) \ $(DRIVER_SOURCES) -# Include directories -INCLUDE_DIRS = \ - -I. \ - -I../common \ - -Iserver \ - -I$(TOP)/src/glx/mini \ - -I$(TOP)/include \ - -I$(DRM_SOURCE_PATH)/shared \ - -I$(TOP)/src/mesa \ - -I$(TOP)/src/mesa/main \ - -I$(TOP)/src/mesa/glapi \ - -I$(TOP)/src/mesa/math \ - -I$(TOP)/src/mesa/transform \ - -I$(TOP)/src/mesa/shader \ - -I$(TOP)/src/mesa/swrast \ - -I$(TOP)/src/mesa/swrast_setup - -# Core Mesa objects -MESA_MODULES = $(TOP)/src/mesa/mesa.a - -# Libraries that the driver shared lib depends on -LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc - - -ifeq ($(WINDOW_SYSTEM),dri) -WINOBJ=$(MESABUILDDIR)/dri/dri.a -WINLIB= -else -WINOBJ= -WINLIB=-L$(MESA)/src/glx/mini -endif - ASM_SOURCES = -OBJECTS = $(C_SOURCES:.c=.o) \ - $(ASM_SOURCES:.S=.o) - - -##### RULES ##### - -.c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@ - - -##### TARGETS ##### - -default: depend $(LIB_DIR)/$(LIBNAME) - - -$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile - $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \ - $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS) - - -depend: $(C_SOURCES) $(ASM_SOURCES) - touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \ - >& /dev/null - - -# Emacs tags -tags: - etags `find . -name \*.[ch]` `find ../include` - - -clean: - -rm -f *.o server/*.o +include ../Makefile.template -include depend -- 2.7.4