First attempt at building a dri module in this tree
authorKeith Whitwell <keith@tungstengraphics.com>
Wed, 14 Apr 2004 12:44:07 +0000 (12:44 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Wed, 14 Apr 2004 12:44:07 +0000 (12:44 +0000)
-- make target is linux-dri
-- will attempt to build i830_dri.so

The object builds but hasn't been tested.

Makefile
configs/linux-dri [new file with mode: 0644]
configs/linux-solo
configs/linux-x86-debug [new file with mode: 0644]
src/mesa/drivers/dri/Makefile
src/mesa/drivers/dri/Makefile.template [new file with mode: 0644]
src/mesa/drivers/dri/i830/Makefile

index 334779e5a91c313fb2c40a174f15dc05b8ace1f4..ad59e5b85bc3fbf465db0c42f1d690d4a9f6510b 100644 (file)
--- 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 (file)
index 0000000..1fa60eb
--- /dev/null
@@ -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
index 3870e27f6438388d2db4efaf872cbec2abe06022..841f8f7e5301f70ed8c3d784f9db52ab645bfaa5 100644 (file)
@@ -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 (file)
index 0000000..c28329f
--- /dev/null
@@ -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
index 2967106ea5d1b785f3802c1e683a4b2a7c75c601..43731c005038988c28047659b749df66b44a3561 100644 (file)
@@ -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 (file)
index 0000000..487cc43
--- /dev/null
@@ -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
index 4f07b4cddeeeac155ef549a8639c6979453c4bb1..f6ba1fa62162b4ad0c8178e943bffe226c9ef72f 100644 (file)
@@ -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