diff --git a/Makefile b/Makefile index 875f93bd4a7..c79fb1cb28b 100644 --- a/Makefile +++ b/Makefile @@ -45,10 +45,6 @@ install: done -# DirectFBGL module installation -linux-directfb-install: - cd src/mesa/drivers/directfb && $(MAKE) install - .PHONY: default doxygen clean realclean install linux-directfb-install # If there's no current configuration file @@ -182,10 +178,11 @@ ultrix-gcc: # Rules for making release tarballs -DIRECTORY = Mesa-7.4 -LIB_NAME = MesaLib-7.4 -DEMO_NAME = MesaDemos-7.4 -GLUT_NAME = MesaGLUT-7.4 +VERSION=7.5-devel +DIRECTORY = Mesa-$(VERSION) +LIB_NAME = MesaLib-$(VERSION) +DEMO_NAME = MesaDemos-$(VERSION) +GLUT_NAME = MesaGLUT-$(VERSION) MAIN_FILES = \ $(DIRECTORY)/Makefile* \ diff --git a/SConstruct b/SConstruct index 88cdffa5048..a22b9483da0 100644 --- a/SConstruct +++ b/SConstruct @@ -46,9 +46,9 @@ common.AddOptions(opts) opts.Add(ListOption('statetrackers', 'state trackers to build', default_statetrackers, ['mesa', 'python'])) opts.Add(ListOption('drivers', 'pipe drivers to build', default_drivers, - ['softpipe', 'failover', 'i915simple', 'i965simple', 'cell', 'trace'])) + ['softpipe', 'failover', 'i915simple', 'i965simple', 'cell', 'trace', 'r300'])) opts.Add(ListOption('winsys', 'winsys drivers to build', default_winsys, - ['xlib', 'intel', 'gdi'])) + ['xlib', 'intel', 'gdi', 'amd'])) opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0'))) diff --git a/autogen.sh b/autogen.sh index 19e5b55fcfa..c76bf8b07bd 100755 --- a/autogen.sh +++ b/autogen.sh @@ -11,6 +11,8 @@ if test "x$SRCDIR" != "x$ORIGDIR"; then exit 1 fi +MAKEFLAGS="" + autoreconf -v --install || exit 1 "$srcdir"/configure "$@" diff --git a/configs/autoconf.in b/configs/autoconf.in index 4a89716ab60..b352974a4c5 100644 --- a/configs/autoconf.in +++ b/configs/autoconf.in @@ -22,8 +22,8 @@ LDFLAGS = @LDFLAGS@ EXTRA_LIB_PATH = @EXTRA_LIB_PATH@ # Assembler -ASM_SOURCES = @ASM_SOURCES@ -ASM_API = @ASM_API@ +MESA_ASM_SOURCES = @MESA_ASM_SOURCES@ +GLAPI_ASM_SOURCES = @GLAPI_ASM_SOURCES@ # Misc tools and flags MAKE = @MAKE@ @@ -50,16 +50,32 @@ GLUT_LIB_NAME = @GLUT_LIB_NAME@ GLW_LIB_NAME = @GLW_LIB_NAME@ OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ +# Globs used to install the lib and all symlinks +GL_LIB_GLOB = @GL_LIB_GLOB@ +GLU_LIB_GLOB = @GLU_LIB_GLOB@ +GLUT_LIB_GLOB = @GLUT_LIB_GLOB@ +GLW_LIB_GLOB = @GLW_LIB_GLOB@ +OSMESA_LIB_GLOB = @OSMESA_LIB_GLOB@ + # Directories to build LIB_DIR = @LIB_DIR@ SRC_DIRS = @SRC_DIRS@ GLU_DIRS = @GLU_DIRS@ DRIVER_DIRS = @DRIVER_DIRS@ +GALLIUM_DIRS = @GALLIUM_DIRS@ +GALLIUM_AUXILIARY_DIRS = @GALLIUM_AUXILIARY_DIRS@ +GALLIUM_DRIVER_DIRS = @GALLIUM_DRIVER_DIRS@ +GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@ +GALLIUM_WINSYS_DRM_DIRS = @GALLIUM_WINSYS_DRM_DIRS@ +GALLIUM_STATE_TRACKERS_DIRS = @GALLIUM_STATE_TRACKERS_DIRS@ +GALLIUM_AUXILIARIES = $(foreach DIR,$(GALLIUM_AUXILIARY_DIRS),$(TOP)/src/gallium/auxiliary/$(DIR)/lib$(DIR).a) +GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVER_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) + # Which subdirs under $(TOP)/progs/ to enter: PROGRAM_DIRS = @PROGRAM_DIRS@ # Driver specific build vars -DRI_DIRS = @DRI_DIRS@ +DRI_DIRS = @DRI_DIRS@ WINDOW_SYSTEM = @WINDOW_SYSTEM@ USING_EGL = @USING_EGL@ diff --git a/configs/default b/configs/default index 40f3a2a02dc..a90d46f18e1 100644 --- a/configs/default +++ b/configs/default @@ -81,7 +81,7 @@ MOTIF_CFLAGS = -I/usr/include/Motif1.2 LIB_DIR = lib SRC_DIRS = mesa gallium egl gallium/winsys glu glut/glx glew glw GLU_DIRS = sgi -DRIVER_DIRS = +DRIVER_DIRS = x11 osmesa # Which subdirs under $(TOP)/progs/ to enter: PROGRAM_DIRS = demos redbook samples glsl xdemos @@ -89,11 +89,14 @@ PROGRAM_DIRS = demos redbook samples glsl xdemos EGL_DRIVERS_DIRS = demo # Gallium directories and -GALLIUM_AUXILIARY_DIRS = draw translate cso_cache pipebuffer tgsi sct rtasm util +GALLIUM_DIRS = auxiliary drivers state_trackers +GALLIUM_AUXILIARY_DIRS = draw translate cso_cache pipebuffer tgsi sct rtasm util indices GALLIUM_AUXILIARIES = $(foreach DIR,$(GALLIUM_AUXILIARY_DIRS),$(TOP)/src/gallium/auxiliary/$(DIR)/lib$(DIR).a) -GALLIUM_DRIVER_DIRS = softpipe i915simple i965simple nv04 nv10 nv20 nv30 nv40 nv50 failover trace +GALLIUM_DRIVER_DIRS = softpipe i915simple i965simple failover trace GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVER_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) GALLIUM_WINSYS_DIRS = xlib egl_xlib +GALLIUM_WINSYS_DRM_DIRS = +GALLIUM_STATE_TRACKERS_DIRS = glx # Library dependencies diff --git a/configs/linux-cell b/configs/linux-cell index df08d262bd3..d58a7a6ec72 100644 --- a/configs/linux-cell +++ b/configs/linux-cell @@ -28,13 +28,16 @@ SDK = /opt/cell/sdk/usr CFLAGS = $(OPT_FLAGS) -Wall -Winline -Wmissing-prototypes \ -fPIC -m32 -std=c99 -mabi=altivec -maltivec \ -I. -I$(SDK)/include \ - -DGALLIUM_CELL -DUSE_XSHM -D_BSD_SOURCE + -DGALLIUM_CELL -DUSE_XSHM -D_BSD_SOURCE -D_SVID_SOURCE CXXFLAGS = $(CFLAGS) # Omitting glw here: SRC_DIRS = gallium mesa gallium/winsys glu glut/glx glew +# Build no traditional Mesa drivers: +DRIVER_DIRS = + MKDEP_OPTIONS = -fdepend -Y diff --git a/configs/linux-dri b/configs/linux-dri index c667a386f39..c5e30d30608 100644 --- a/configs/linux-dri +++ b/configs/linux-dri @@ -57,16 +57,11 @@ PROGRAM_DIRS := egl $(PROGRAM_DIRS) # EGL directories EGL_DRIVERS_DIRS = demo glx -DRIVER_DIRS = +DRIVER_DIRS = dri WINDOW_SYSTEM = dri -GALLIUM_WINSYS_DIRS = drm +GALLIUM_WINSYS_DIRS = drm +GALLIUM_WINSYS_DRM_DIRS = intel +GALLIUM_STATE_TRACKERS_DIRS = egl -# gamma are missing because they have not been converted to use the new -# interface. - -# XXX: need to figure out a way for gallium and non-gallium builds to -# coexist: -# - -#DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \ -# savage sis tdfx trident unichrome ffb +DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \ + savage sis tdfx trident unichrome ffb diff --git a/configure.ac b/configure.ac index 33c107266a2..2d48ccf63ae 100644 --- a/configure.ac +++ b/configure.ac @@ -46,10 +46,14 @@ esac MKDEP_OPTIONS=-fdepend dnl Ask gcc where it's keeping its secret headers if test "x$GCC" = xyes; then - GCC_INCLUDES=`$CC -print-file-name=include` - if test "x$GCC_INCLUDES" != x; then - MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES" - fi + for dir in include include-fixed; do + GCC_INCLUDES=`$CC -print-file-name=$dir` + if test "x$GCC_INCLUDES" != x && \ + test "$GCC_INCLUDES" != "$dir" && \ + test -d "$GCC_INCLUDES"; then + MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES" + fi + done fi AC_SUBST([MKDEP_OPTIONS]) @@ -221,24 +225,40 @@ dnl dnl library names dnl if test "$enable_static" = yes; then - GL_LIB_NAME='lib$(GL_LIB).a' - GLU_LIB_NAME='lib$(GLU_LIB).a' - GLUT_LIB_NAME='lib$(GLUT_LIB).a' - GLW_LIB_NAME='lib$(GLW_LIB).a' - OSMESA_LIB_NAME='lib$(OSMESA_LIB).a' + LIB_EXTENSION='a' else - GL_LIB_NAME='lib$(GL_LIB).so' - GLU_LIB_NAME='lib$(GLU_LIB).so' - GLUT_LIB_NAME='lib$(GLUT_LIB).so' - GLW_LIB_NAME='lib$(GLW_LIB).so' - OSMESA_LIB_NAME='lib$(OSMESA_LIB).so' + case "$host_os" in + darwin* ) + LIB_EXTENSION='dylib' ;; + * ) + LIB_EXTENSION='so' ;; + esac fi + +GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION} +GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION} +GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION} +GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION} +OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION} + +GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*' +GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*' +GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*' +GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*' +OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*' + AC_SUBST([GL_LIB_NAME]) AC_SUBST([GLU_LIB_NAME]) AC_SUBST([GLUT_LIB_NAME]) AC_SUBST([GLW_LIB_NAME]) AC_SUBST([OSMESA_LIB_NAME]) +AC_SUBST([GL_LIB_GLOB]) +AC_SUBST([GLU_LIB_GLOB]) +AC_SUBST([GLUT_LIB_GLOB]) +AC_SUBST([GLW_LIB_GLOB]) +AC_SUBST([OSMESA_LIB_GLOB]) + dnl dnl Arch/platform-specific settings dnl @@ -250,8 +270,8 @@ AC_ARG_ENABLE([asm], ) asm_arch="" ASM_FLAGS="" -ASM_SOURCES="" -ASM_API="" +MESA_ASM_SOURCES="" +GLAPI_ASM_SOURCES="" AC_MSG_CHECKING([whether to enable assembly]) test "x$enable_asm" = xno && AC_MSG_RESULT([no]) # disable if cross compiling on x86/x86_64 since we must run gen_matypes @@ -292,19 +312,19 @@ if test "x$enable_asm" = xyes; then case "$asm_arch" in x86) ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM" - ASM_SOURCES='$(X86_SOURCES)' - ASM_API='$(X86_API)' + MESA_ASM_SOURCES='$(X86_SOURCES)' + GLAPI_ASM_SOURCES='$(X86_API)' AC_MSG_RESULT([yes, x86]) ;; x86_64) ASM_FLAGS="-DUSE_X86_64_ASM" - ASM_SOURCES='$(X86-64_SOURCES)' - ASM_API='$(X86-64_API)' + MESA_ASM_SOURCES='$(X86-64_SOURCES)' + GLAPI_ASM_SOURCES='$(X86-64_API)' AC_MSG_RESULT([yes, x86_64]) ;; ppc) ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM" - ASM_SOURCES='$(PPC_SOURCES)' + MESA_ASM_SOURCES='$(PPC_SOURCES)' AC_MSG_RESULT([yes, ppc]) ;; *) @@ -313,8 +333,8 @@ if test "x$enable_asm" = xyes; then esac fi AC_SUBST([ASM_FLAGS]) -AC_SUBST([ASM_SOURCES]) -AC_SUBST([ASM_API]) +AC_SUBST([MESA_ASM_SOURCES]) +AC_SUBST([GLAPI_ASM_SOURCES]) dnl PIC code macro MESA_PIC_FLAGS @@ -389,9 +409,16 @@ esac dnl dnl Driver specific build directories dnl -SRC_DIRS="mesa" +SRC_DIRS="mesa egl glew" GLU_DIRS="sgi" WINDOW_SYSTEM="" +GALLIUM_DIRS="auxiliary drivers state_trackers" +GALLIUM_WINSYS_DIRS="" +GALLIUM_WINSYS_DRM_DIRS="" +GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util" +GALLIUM_DRIVER_DIRS="softpipe failover trace" +GALLIUM_STATE_TRACKERS_DIRS="" + case "$mesa_driver" in xlib) DRIVER_DIRS="x11" @@ -400,6 +427,7 @@ dri) SRC_DIRS="glx/x11 $SRC_DIRS" DRIVER_DIRS="dri" WINDOW_SYSTEM="dri" + GALLIUM_WINSYS_DIRS="drm $GALLIUM_WINSYS_DIRS" ;; osmesa) DRIVER_DIRS="osmesa" @@ -409,6 +437,12 @@ AC_SUBST([SRC_DIRS]) AC_SUBST([GLU_DIRS]) AC_SUBST([DRIVER_DIRS]) AC_SUBST([WINDOW_SYSTEM]) +AC_SUBST([GALLIUM_DIRS]) +AC_SUBST([GALLIUM_WINSYS_DIRS]) +AC_SUBST([GALLIUM_WINSYS_DRM_DIRS]) +AC_SUBST([GALLIUM_DRIVER_DIRS]) +AC_SUBST([GALLIUM_AUXILIARY_DIRS]) +AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS]) dnl dnl User supplied program configuration @@ -656,10 +690,10 @@ if test "$mesa_driver" = dri; then case "$host_os" in linux*) DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER" - DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS" if test "x$driglx_direct" = xyes; then DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" fi + DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS" case "$host_cpu" in x86_64) @@ -1029,6 +1063,90 @@ fi AC_SUBST([APP_LIB_DEPS]) AC_SUBST([PROGRAM_DIRS]) +dnl +dnl Gallium configuration +dnl +AC_ARG_ENABLE([gallium], + [AS_HELP_STRING([--disable-gallium], + [build gallium @<:@default=enabled@:>@])], + [enable_gallium="$enableval"], + [enable_gallium=yes]) +if test "x$enable_gallium" = xyes; then + SRC_DIRS="$SRC_DIRS gallium gallium/winsys" +fi + +dnl +dnl Gallium state trackers configuration +dnl +AC_ARG_WITH([state-trackers], + [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@], + [comma delimited state_trackers list, e.g. + "egl,glx" @<:@default=auto@:>@])], + [with_state_trackers="$withval"], + [with_state_trackers=yes]) + +case "$with_state_trackers" in +no) + GALLIUM_STATE_TRACKERS_DIRS="" + ;; +yes) + # look at what else is built + case "$mesa_driver" in + dri) + GALLIUM_STATE_TRACKERS_DIRS=egl + ;; + esac + ;; +*) + # verify the requested state tracker exist + state_trackers=`IFS=', '; echo $with_state_trackers` + for tracker in $state_trackers; do + test -d "$srcdir/src/gallium/state_trackers/$tracker" || \ + AC_MSG_ERROR([state tracker '$tracker' doesn't exist]) + done + GALLIUM_STATE_TRACKERS_DIRS="$state_trackers" + ;; +esac + +dnl +dnl Gallium Intel configuration +dnl +AC_ARG_ENABLE([gallium-intel], + [AS_HELP_STRING([--disable-gallium-intel], + [build gallium intel @<:@default=enabled@:>@])], + [enable_gallium_intel="$enableval"], + [enable_gallium_intel=yes]) +if test "x$enable_gallium_intel" = xyes; then + GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel" + GALLIUM_DRIVER_DIRS="$GALLIUM_DRIVER_DIRS i915simple i965simple" +fi + +dnl +dnl Gallium Radeon configuration +dnl +AC_ARG_ENABLE([gallium-radeon], + [AS_HELP_STRING([--enable-gallium-radeon], + [build gallium radeon @<:@default=disabled@:>@])], + [enable_gallium_radeon="$enableval"], + [enable_gallium_radeon=no]) +if test "x$enable_gallium_radeon" = xyes; then + GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon" + GALLIUM_DRIVER_DIRS="$GALLIUM_DRIVER_DIRS r300" +fi + +dnl +dnl Gallium Radeon configuration +dnl +AC_ARG_ENABLE([gallium-nouveau], + [AS_HELP_STRING([--enable-gallium-nouveau], + [build gallium nouveau @<:@default=disabled@:>@])], + [enable_gallium_nouveau="$enableval"], + [enable_gallium_nouveau=no]) +if test "x$enable_gallium_nouveau" = xyes; then + GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau" + GALLIUM_DRIVER_DIRS="$GALLIUM_DRIVER_DIRS nv04 nv10 nv20 nv30 nv40 nv50" +fi + dnl Restore LDFLAGS and CPPFLAGS LDFLAGS="$_SAVE_LDFLAGS" @@ -1076,6 +1194,19 @@ fi fi echo " Use XCB: $enable_xcb" +echo "" +if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then + echo " Gallium: yes" + echo " Gallium dirs: $GALLIUM_DIRS" + echo " Winsys dirs: $GALLIUM_WINSYS_DIRS" + echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS" + echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS" + echo " Driver dirs: $GALLIUM_DRIVER_DIRS" + echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS" +else + echo " Gallium: no" +fi + dnl Libraries echo "" echo " Shared libs: $enable_shared" diff --git a/docs/README.directfb b/docs/README.directfb index e3bada4888b..d66ca8d3caa 100644 --- a/docs/README.directfb +++ b/docs/README.directfb @@ -22,7 +22,8 @@ Installation to install OpenGL libraries and - make linux-directfb-install + cd src/mesa/drivers/directfb ; make install to install DirectFBGL module in the proper location. + Actually, that last command may not be needed. Please provide feedback. diff --git a/docs/cell.html b/docs/cell.html index 7fbbba7c7e0..49b62cac7b0 100644 --- a/docs/cell.html +++ b/docs/cell.html @@ -30,13 +30,9 @@ The second phase is now underway.

Source Code

-The latest Cell driver source code is on the gallium-0.2 branch -of the Mesa git repository. -After you've cloned the repository, check out the branch with: +The latest Cell driver source code is on the master branch of the Mesa +git repository.

-
-   git-checkout -b gallium-0.2 origin/gallium-0.2
-

To build the driver you'll need the IBM Cell SDK (version 2.1 or 3.0). To use the driver you'll need a Cell system, such as a PS3 running Linux, @@ -50,17 +46,19 @@ special changes.

To compile the code, run make linux-cell. -To build in debug mode, run make linux-cell-debug. +Or to build in debug mode, run make linux-cell-debug.

-To use the library, make sure LD_LIBRARY_PATH points the Mesa/lib/ -directory that contains libGL.so. -

+To use the library, make sure your current directory is the top of the +Mesa tree, then set LD_LIBRARY_PATH like this: +
+  export LD_LIBRARY_PATH=$PWD/lib/gallium:$PWD/lib/
+

-Verify that the Cell driver is being used by running glxinfo -and looking for: +Verify that the Cell driver is being used by running +progs/xdemos/glxinfo and looking for:

   OpenGL renderer string: Gallium 0.2, Cell on Xlib
 
diff --git a/docs/relnotes-7.5.html b/docs/relnotes-7.5.html new file mode 100644 index 00000000000..621bd4afacf --- /dev/null +++ b/docs/relnotes-7.5.html @@ -0,0 +1,56 @@ + + +Mesa Release Notes + + + + + + + +

Mesa 7.5 Release Notes / date TBD

+ +

+Mesa 7.5 is a new development release. +

+

+Mesa 7.5 implements the OpenGL 2.1 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 2.1. +

+

+See the Compiling/Installing page for prerequisites +for DRI ardware acceleration. +

+ + +

MD5 checksums

+
+tbd
+
+ + +

New features

+ + + +

Bug fixes

+ + +

Changes

+ + + + diff --git a/docs/relnotes.html b/docs/relnotes.html index 61c6a20c291..c5ed109390f 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -10,8 +10,8 @@

Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.5) designate new developmental releases. -Even numbered versions (such as 6.4) designate stable releases. +Odd numbered versions (such as 7.5) designate new developmental releases. +Even numbered versions (such as 7.4) designate stable releases.

@@ -20,6 +20,7 @@ The release notes summarize what's new or changed in each Mesa release.