Compare commits
	
		
			200 Commits
		
	
	
		
			mesa-7.10.
			...
			intel_2009
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					85396d8ef4 | ||
| 
						 | 
					f11b84998d | ||
| 
						 | 
					d2f6791062 | ||
| 
						 | 
					49e0c74ddd | ||
| 
						 | 
					83e14773c5 | ||
| 
						 | 
					4605937843 | ||
| 
						 | 
					b8ef30c45c | ||
| 
						 | 
					4f17040cb1 | ||
| 
						 | 
					98c2c9ef8c | ||
| 
						 | 
					d805c82068 | ||
| 
						 | 
					6c3bec4387 | ||
| 
						 | 
					7d3561c871 | ||
| 
						 | 
					5c47d53924 | ||
| 
						 | 
					a18216308a | ||
| 
						 | 
					14f13fbcfa | ||
| 
						 | 
					ca24095c1e | ||
| 
						 | 
					d5e0e03d43 | ||
| 
						 | 
					775ca8e3fa | ||
| 
						 | 
					39345a4928 | ||
| 
						 | 
					7be149cfd1 | ||
| 
						 | 
					8c9d7b2474 | ||
| 
						 | 
					6ef0951b17 | ||
| 
						 | 
					2b33b77337 | ||
| 
						 | 
					0590edeea0 | ||
| 
						 | 
					7511d76bd7 | ||
| 
						 | 
					7f30aba920 | ||
| 
						 | 
					4fa700260e | ||
| 
						 | 
					781fb79c59 | ||
| 
						 | 
					5b7e9f2f3a | ||
| 
						 | 
					d4d4b63d7f | ||
| 
						 | 
					9e9fe51acd | ||
| 
						 | 
					b65bc1b6cb | ||
| 
						 | 
					6cb796f6fc | ||
| 
						 | 
					de197cf991 | ||
| 
						 | 
					bf1e6581a5 | ||
| 
						 | 
					80ec7843bc | ||
| 
						 | 
					366d6e8cd1 | ||
| 
						 | 
					63ed288396 | ||
| 
						 | 
					88ce34f400 | ||
| 
						 | 
					f535de8721 | ||
| 
						 | 
					1db913f687 | ||
| 
						 | 
					0e5d1f43af | ||
| 
						 | 
					09c587ae55 | ||
| 
						 | 
					775d8431e9 | ||
| 
						 | 
					3217ea8a1d | ||
| 
						 | 
					00aea5853d | ||
| 
						 | 
					20d34b50b5 | ||
| 
						 | 
					9cff0acb36 | ||
| 
						 | 
					791b59493f | ||
| 
						 | 
					7dff7029fa | ||
| 
						 | 
					f8fd9bc46b | ||
| 
						 | 
					53f0e141c0 | ||
| 
						 | 
					14a794300e | ||
| 
						 | 
					912ec292c1 | ||
| 
						 | 
					e814b5ae2f | ||
| 
						 | 
					0fea05915a | ||
| 
						 | 
					dfa44f0ff9 | ||
| 
						 | 
					f850ff2bcc | ||
| 
						 | 
					66f972ab55 | ||
| 
						 | 
					17db2db9dc | ||
| 
						 | 
					dba79af9bc | ||
| 
						 | 
					b009a32bf4 | ||
| 
						 | 
					7122490982 | ||
| 
						 | 
					6ada1d47d9 | ||
| 
						 | 
					55865335f4 | ||
| 
						 | 
					918e5221ef | ||
| 
						 | 
					9feb26584a | ||
| 
						 | 
					a8528a2e86 | ||
| 
						 | 
					119360cccd | ||
| 
						 | 
					ac2216542d | ||
| 
						 | 
					37e5c057f1 | ||
| 
						 | 
					4d9b8e0f93 | ||
| 
						 | 
					c1b71f46b5 | ||
| 
						 | 
					4a25ac9564 | ||
| 
						 | 
					35d965b39b | ||
| 
						 | 
					d0aab00609 | ||
| 
						 | 
					ef33d0f103 | ||
| 
						 | 
					349b819768 | ||
| 
						 | 
					50443db882 | ||
| 
						 | 
					c503cacb53 | ||
| 
						 | 
					e862b4e38f | ||
| 
						 | 
					e9dfc858fb | ||
| 
						 | 
					5efbca1e21 | ||
| 
						 | 
					d6d8663a88 | ||
| 
						 | 
					13990bd98a | ||
| 
						 | 
					def630d0a2 | ||
| 
						 | 
					ca2564f1e6 | ||
| 
						 | 
					711a57f7c7 | ||
| 
						 | 
					058cf2fff1 | ||
| 
						 | 
					715f509c5d | ||
| 
						 | 
					e704e6c6f3 | ||
| 
						 | 
					01f34e667a | ||
| 
						 | 
					4d0a7b33c5 | ||
| 
						 | 
					fb1d2ed34c | ||
| 
						 | 
					9395fedf98 | ||
| 
						 | 
					9abc0d80af | ||
| 
						 | 
					90e89c01df | ||
| 
						 | 
					790d93e362 | ||
| 
						 | 
					e9f3783169 | ||
| 
						 | 
					e41780fedc | ||
| 
						 | 
					d0edbbb3f3 | ||
| 
						 | 
					e10119c23e | ||
| 
						 | 
					208c087f39 | ||
| 
						 | 
					0c8b40b42b | ||
| 
						 | 
					5199f451bb | ||
| 
						 | 
					dd7cde5230 | ||
| 
						 | 
					ab5746e5d8 | ||
| 
						 | 
					3bd446c0ab | ||
| 
						 | 
					9b78402ee4 | ||
| 
						 | 
					cf1ef0f308 | ||
| 
						 | 
					fd1f65ba61 | ||
| 
						 | 
					967345b497 | ||
| 
						 | 
					41ad853a6a | ||
| 
						 | 
					842baa29cb | ||
| 
						 | 
					9556d870a1 | ||
| 
						 | 
					42ce790086 | ||
| 
						 | 
					b17769af42 | ||
| 
						 | 
					9030277b0d | ||
| 
						 | 
					a37a9bf769 | ||
| 
						 | 
					8afb8a8145 | ||
| 
						 | 
					801f933694 | ||
| 
						 | 
					75ecd6ebbf | ||
| 
						 | 
					1cd7317fdb | ||
| 
						 | 
					1865291701 | ||
| 
						 | 
					3edbcce7d5 | ||
| 
						 | 
					b1fb34d0ac | ||
| 
						 | 
					606099f545 | ||
| 
						 | 
					32e3142071 | ||
| 
						 | 
					66eea4e104 | ||
| 
						 | 
					e428cf3afd | ||
| 
						 | 
					842b5164d2 | ||
| 
						 | 
					a6f7e909a7 | ||
| 
						 | 
					ca87e5a7bd | ||
| 
						 | 
					45c4b4dfbd | ||
| 
						 | 
					2adaec1226 | ||
| 
						 | 
					549586c319 | ||
| 
						 | 
					463ac421a5 | ||
| 
						 | 
					6801240205 | ||
| 
						 | 
					a22088b7d5 | ||
| 
						 | 
					e89c49147f | ||
| 
						 | 
					67634240d1 | ||
| 
						 | 
					819b028a8e | ||
| 
						 | 
					a43c30ef41 | ||
| 
						 | 
					b65bfde84d | ||
| 
						 | 
					c39e6917ac | ||
| 
						 | 
					c79079895f | ||
| 
						 | 
					4480e631cd | ||
| 
						 | 
					c32661c3ce | ||
| 
						 | 
					d5c06bb812 | ||
| 
						 | 
					9d5aa36239 | ||
| 
						 | 
					e3050c1777 | ||
| 
						 | 
					06295ddbdd | ||
| 
						 | 
					e2092bb23c | ||
| 
						 | 
					528836d0ad | ||
| 
						 | 
					3511442e43 | ||
| 
						 | 
					d20c53b511 | ||
| 
						 | 
					091cc122ad | ||
| 
						 | 
					c983abbb9e | ||
| 
						 | 
					a0a81204c2 | ||
| 
						 | 
					409d4f839c | ||
| 
						 | 
					0ab36958ea | ||
| 
						 | 
					c2445f43a3 | ||
| 
						 | 
					f3d1c136b7 | ||
| 
						 | 
					dd10a8b09d | ||
| 
						 | 
					dd312366da | ||
| 
						 | 
					d2fe466ef3 | ||
| 
						 | 
					fe5328bfad | ||
| 
						 | 
					c0891dde07 | ||
| 
						 | 
					0e6d9c1a55 | ||
| 
						 | 
					5f74a66132 | ||
| 
						 | 
					46f8b62d5f | ||
| 
						 | 
					3e3e80c431 | ||
| 
						 | 
					0486d117e4 | ||
| 
						 | 
					29981c14da | ||
| 
						 | 
					98d5efb2c5 | ||
| 
						 | 
					77a44aafaf | ||
| 
						 | 
					8278c70716 | ||
| 
						 | 
					ac0955f5e2 | ||
| 
						 | 
					4130c35ca8 | ||
| 
						 | 
					d440647eb8 | ||
| 
						 | 
					7e8f2c56c0 | ||
| 
						 | 
					a0880a152f | ||
| 
						 | 
					4608a9172f | ||
| 
						 | 
					d0e38f7ec0 | ||
| 
						 | 
					a69bdbbbdd | ||
| 
						 | 
					88c97a2662 | ||
| 
						 | 
					ce9c69ddbc | ||
| 
						 | 
					e430fcb716 | ||
| 
						 | 
					11a363e632 | ||
| 
						 | 
					41e63fbdb2 | ||
| 
						 | 
					b543401a5c | ||
| 
						 | 
					8c4f08fbad | ||
| 
						 | 
					f3081a34d2 | ||
| 
						 | 
					7b1d3cf392 | ||
| 
						 | 
					25515b557e | ||
| 
						 | 
					51625ff86e | ||
| 
						 | 
					4d8f661726 | ||
| 
						 | 
					efa69a2f66 | ||
| 
						 | 
					30a6dd78d5 | ||
| 
						 | 
					9f75836308 | 
@@ -1,10 +0,0 @@
 | 
				
			|||||||
;; -*- emacs-lisp -*-
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; This file is processed by the dirvars emacs package.  Each variable
 | 
					 | 
				
			||||||
;; setting below is performed when this dirvars file is loaded.
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
indent-tabs-mode: nil
 | 
					 | 
				
			||||||
tab-width: 8
 | 
					 | 
				
			||||||
c-basic-offset: 3
 | 
					 | 
				
			||||||
kde-emacs-after-parent-string: ""
 | 
					 | 
				
			||||||
evaluate: (c-set-offset 'inline-open '0)
 | 
					 | 
				
			||||||
							
								
								
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,16 +1,8 @@
 | 
				
			|||||||
*.a
 | 
					*.a
 | 
				
			||||||
*.dll
 | 
					 | 
				
			||||||
*.exe
 | 
					 | 
				
			||||||
*.ilk
 | 
					 | 
				
			||||||
*.o
 | 
					*.o
 | 
				
			||||||
*.obj
 | 
					 | 
				
			||||||
*.os
 | 
					 | 
				
			||||||
*.pc
 | 
					 | 
				
			||||||
*.pdb
 | 
					 | 
				
			||||||
*.pyc
 | 
					 | 
				
			||||||
*.pyo
 | 
					 | 
				
			||||||
*.so
 | 
					*.so
 | 
				
			||||||
*.sw[a-z]
 | 
					*.sw[a-z]
 | 
				
			||||||
 | 
					*.pc
 | 
				
			||||||
*~
 | 
					*~
 | 
				
			||||||
depend
 | 
					depend
 | 
				
			||||||
depend.bak
 | 
					depend.bak
 | 
				
			||||||
@@ -22,7 +14,3 @@ aclocal.m4
 | 
				
			|||||||
config.log
 | 
					config.log
 | 
				
			||||||
config.status
 | 
					config.status
 | 
				
			||||||
cscope*
 | 
					cscope*
 | 
				
			||||||
.scon*
 | 
					 | 
				
			||||||
config.py
 | 
					 | 
				
			||||||
build
 | 
					 | 
				
			||||||
.dir-locals.el
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										302
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										302
									
								
								Makefile
									
									
									
									
									
								
							@@ -2,7 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
TOP = .
 | 
					TOP = .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SUBDIRS = src
 | 
					SUBDIRS = src progs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
default: $(TOP)/configs/current
 | 
					default: $(TOP)/configs/current
 | 
				
			||||||
@@ -12,8 +12,6 @@ default: $(TOP)/configs/current
 | 
				
			|||||||
		fi \
 | 
							fi \
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
all: default
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
doxygen:
 | 
					doxygen:
 | 
				
			||||||
	cd doxygen && $(MAKE)
 | 
						cd doxygen && $(MAKE)
 | 
				
			||||||
@@ -37,8 +35,6 @@ realclean: clean
 | 
				
			|||||||
	  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
 | 
						  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
distclean: realclean
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
install:
 | 
					install:
 | 
				
			||||||
	@for dir in $(SUBDIRS) ; do \
 | 
						@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
@@ -48,7 +44,11 @@ install:
 | 
				
			|||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: default doxygen clean realclean distclean install
 | 
					# 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
 | 
					# If there's no current configuration file
 | 
				
			||||||
$(TOP)/configs/current:
 | 
					$(TOP)/configs/current:
 | 
				
			||||||
@@ -80,6 +80,8 @@ catamount-osmesa-pgi \
 | 
				
			|||||||
darwin \
 | 
					darwin \
 | 
				
			||||||
darwin-fat-32bit \
 | 
					darwin-fat-32bit \
 | 
				
			||||||
darwin-fat-all \
 | 
					darwin-fat-all \
 | 
				
			||||||
 | 
					darwin-static \
 | 
				
			||||||
 | 
					darwin-static-x86ppc \
 | 
				
			||||||
freebsd \
 | 
					freebsd \
 | 
				
			||||||
freebsd-dri \
 | 
					freebsd-dri \
 | 
				
			||||||
freebsd-dri-amd64 \
 | 
					freebsd-dri-amd64 \
 | 
				
			||||||
@@ -103,36 +105,32 @@ irix6-n32-static \
 | 
				
			|||||||
irix6-o32 \
 | 
					irix6-o32 \
 | 
				
			||||||
irix6-o32-static \
 | 
					irix6-o32-static \
 | 
				
			||||||
linux \
 | 
					linux \
 | 
				
			||||||
linux-i965 \
 | 
					 | 
				
			||||||
linux-alpha \
 | 
					linux-alpha \
 | 
				
			||||||
linux-alpha-static \
 | 
					linux-alpha-static \
 | 
				
			||||||
linux-cell \
 | 
					 | 
				
			||||||
linux-cell-debug \
 | 
					 | 
				
			||||||
linux-debug \
 | 
					linux-debug \
 | 
				
			||||||
 | 
					linux-directfb \
 | 
				
			||||||
linux-dri \
 | 
					linux-dri \
 | 
				
			||||||
linux-dri-debug \
 | 
					linux-dri-debug \
 | 
				
			||||||
linux-dri-x86 \
 | 
					linux-dri-x86 \
 | 
				
			||||||
linux-dri-x86-64 \
 | 
					linux-dri-x86-64 \
 | 
				
			||||||
linux-dri-ppc \
 | 
					linux-dri-ppc \
 | 
				
			||||||
linux-dri-xcb \
 | 
					linux-dri-xcb \
 | 
				
			||||||
linux-egl \
 | 
					 | 
				
			||||||
linux-indirect \
 | 
					linux-indirect \
 | 
				
			||||||
linux-fbdev \
 | 
					linux-fbdev \
 | 
				
			||||||
 | 
					linux-glide \
 | 
				
			||||||
linux-ia64-icc \
 | 
					linux-ia64-icc \
 | 
				
			||||||
linux-ia64-icc-static \
 | 
					linux-ia64-icc-static \
 | 
				
			||||||
linux-icc \
 | 
					linux-icc \
 | 
				
			||||||
linux-icc-static \
 | 
					linux-icc-static \
 | 
				
			||||||
linux-llvm \
 | 
					 | 
				
			||||||
linux-llvm-debug \
 | 
					 | 
				
			||||||
linux-opengl-es \
 | 
					 | 
				
			||||||
linux-osmesa \
 | 
					linux-osmesa \
 | 
				
			||||||
linux-osmesa-static \
 | 
					 | 
				
			||||||
linux-osmesa16 \
 | 
					linux-osmesa16 \
 | 
				
			||||||
linux-osmesa16-static \
 | 
					linux-osmesa16-static \
 | 
				
			||||||
linux-osmesa32 \
 | 
					linux-osmesa32 \
 | 
				
			||||||
linux-ppc \
 | 
					linux-ppc \
 | 
				
			||||||
linux-ppc-static \
 | 
					linux-ppc-static \
 | 
				
			||||||
linux-profile \
 | 
					linux-solo \
 | 
				
			||||||
 | 
					linux-solo-x86 \
 | 
				
			||||||
 | 
					linux-solo-ia64 \
 | 
				
			||||||
linux-sparc \
 | 
					linux-sparc \
 | 
				
			||||||
linux-sparc5 \
 | 
					linux-sparc5 \
 | 
				
			||||||
linux-static \
 | 
					linux-static \
 | 
				
			||||||
@@ -143,9 +141,8 @@ linux-x86-debug \
 | 
				
			|||||||
linux-x86-32 \
 | 
					linux-x86-32 \
 | 
				
			||||||
linux-x86-64 \
 | 
					linux-x86-64 \
 | 
				
			||||||
linux-x86-64-debug \
 | 
					linux-x86-64-debug \
 | 
				
			||||||
linux-x86-64-profile \
 | 
					 | 
				
			||||||
linux-x86-64-static \
 | 
					linux-x86-64-static \
 | 
				
			||||||
linux-x86-profile \
 | 
					linux-x86-glide \
 | 
				
			||||||
linux-x86-static \
 | 
					linux-x86-static \
 | 
				
			||||||
netbsd \
 | 
					netbsd \
 | 
				
			||||||
openbsd \
 | 
					openbsd \
 | 
				
			||||||
@@ -167,36 +164,30 @@ sunos5-v9 \
 | 
				
			|||||||
sunos5-v9-static \
 | 
					sunos5-v9-static \
 | 
				
			||||||
sunos5-v9-cc-g++ \
 | 
					sunos5-v9-cc-g++ \
 | 
				
			||||||
ultrix-gcc:
 | 
					ultrix-gcc:
 | 
				
			||||||
	@ if test -f configs/current -o -L configs/current; then \
 | 
						@ if test -f configs/current || test -L configs/current ; then \
 | 
				
			||||||
		if ! cmp configs/$@ configs/current > /dev/null; then \
 | 
							echo "Please run 'make realclean' before changing configs" ; \
 | 
				
			||||||
			echo "Please run 'make realclean' before changing configs" ; \
 | 
							exit 1 ; \
 | 
				
			||||||
			exit 1 ; \
 | 
					 | 
				
			||||||
		fi ; \
 | 
					 | 
				
			||||||
	else \
 | 
					 | 
				
			||||||
		cd configs && rm -f current && ln -s $@ current ; \
 | 
					 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
						(cd configs && rm -f current && ln -s $@ current)
 | 
				
			||||||
	$(MAKE) default
 | 
						$(MAKE) default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Rules for making release tarballs
 | 
					# Rules for making release tarballs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VERSION=7.10.2
 | 
					VERSION=7.4
 | 
				
			||||||
DIRECTORY = Mesa-$(VERSION)
 | 
					DIRECTORY = Mesa-$(VERSION)
 | 
				
			||||||
LIB_NAME = MesaLib-$(VERSION)
 | 
					LIB_NAME = MesaLib-$(VERSION)
 | 
				
			||||||
 | 
					DEMO_NAME = MesaDemos-$(VERSION)
 | 
				
			||||||
GLUT_NAME = MesaGLUT-$(VERSION)
 | 
					GLUT_NAME = MesaGLUT-$(VERSION)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This is part of MAIN_FILES
 | 
					 | 
				
			||||||
MAIN_ES_FILES = \
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.xml				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.py					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.dtd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MAIN_FILES = \
 | 
					MAIN_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/Makefile*						\
 | 
						$(DIRECTORY)/Makefile*						\
 | 
				
			||||||
	$(DIRECTORY)/configure						\
 | 
						$(DIRECTORY)/configure						\
 | 
				
			||||||
	$(DIRECTORY)/configure.ac					\
 | 
						$(DIRECTORY)/configure.ac					\
 | 
				
			||||||
	$(DIRECTORY)/acinclude.m4					\
 | 
						$(DIRECTORY)/acinclude.m4					\
 | 
				
			||||||
	$(DIRECTORY)/aclocal.m4						\
 | 
						$(DIRECTORY)/aclocal.m4						\
 | 
				
			||||||
 | 
						$(DIRECTORY)/descrip.mms					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/mms-config.					\
 | 
				
			||||||
	$(DIRECTORY)/bin/config.guess					\
 | 
						$(DIRECTORY)/bin/config.guess					\
 | 
				
			||||||
	$(DIRECTORY)/bin/config.sub					\
 | 
						$(DIRECTORY)/bin/config.sub					\
 | 
				
			||||||
	$(DIRECTORY)/bin/install-sh					\
 | 
						$(DIRECTORY)/bin/install-sh					\
 | 
				
			||||||
@@ -209,6 +200,9 @@ MAIN_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/docs/README.*					\
 | 
						$(DIRECTORY)/docs/README.*					\
 | 
				
			||||||
	$(DIRECTORY)/docs/RELNOTES*					\
 | 
						$(DIRECTORY)/docs/RELNOTES*					\
 | 
				
			||||||
	$(DIRECTORY)/docs/*.spec					\
 | 
						$(DIRECTORY)/docs/*.spec					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/internal/glcore.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/dmesa.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/ggimesa.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/gl.h					\
 | 
						$(DIRECTORY)/include/GL/gl.h					\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glext.h					\
 | 
						$(DIRECTORY)/include/GL/glext.h					\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/gl_mangle.h				\
 | 
						$(DIRECTORY)/include/GL/gl_mangle.h				\
 | 
				
			||||||
@@ -219,34 +213,35 @@ MAIN_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/include/GL/glx_mangle.h				\
 | 
						$(DIRECTORY)/include/GL/glx_mangle.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glfbdev.h				\
 | 
						$(DIRECTORY)/include/GL/glfbdev.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/mesa_wgl.h				\
 | 
						$(DIRECTORY)/include/GL/mesa_wgl.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/mglmesa.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/osmesa.h				\
 | 
						$(DIRECTORY)/include/GL/osmesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/svgamesa.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/vms_x_fix.h				\
 | 
						$(DIRECTORY)/include/GL/vms_x_fix.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/wglext.h				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/include/GL/wmesa.h					\
 | 
						$(DIRECTORY)/include/GL/wmesa.h					\
 | 
				
			||||||
	$(DIRECTORY)/src/glsl/Makefile					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glsl/Makefile.template				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glsl/SConscript				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glsl/*.[ch]					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glsl/*.[cly]pp					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glsl/README					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glsl/glcpp/*.[chly]				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glsl/glcpp/README				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/Makefile					\
 | 
						$(DIRECTORY)/src/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/descrip.mms					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/Makefile*					\
 | 
						$(DIRECTORY)/src/mesa/Makefile*					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/sources.mak				\
 | 
						$(DIRECTORY)/src/mesa/sources					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/gl.pc.in					\
 | 
						$(DIRECTORY)/src/mesa/gl.pc.in					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/osmesa.pc.in				\
 | 
						$(DIRECTORY)/src/mesa/osmesa.pc.in				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/depend					\
 | 
						$(DIRECTORY)/src/mesa/depend					\
 | 
				
			||||||
	$(MAIN_ES_FILES)						\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/main/*.[chS]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/main/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/glapi/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/glapi/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/math/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/math/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/math/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/math/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/program/*.[chly]				\
 | 
						$(DIRECTORY)/src/mesa/shader/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/program/*.cpp				\
 | 
						$(DIRECTORY)/src/mesa/shader/descrip.mms			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/program/Makefile				\
 | 
						$(DIRECTORY)/src/mesa/shader/grammar/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/program/descrip.mms			\
 | 
						$(DIRECTORY)/src/mesa/shader/grammar/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.gc			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.syn		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/Makefile		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/swrast/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/swrast/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/swrast/descrip.mms			\
 | 
						$(DIRECTORY)/src/mesa/swrast/descrip.mms			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\
 | 
				
			||||||
@@ -263,18 +258,32 @@ MAIN_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/src/mesa/drivers/beos/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/beos/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/common/descrip.mms		\
 | 
						$(DIRECTORY)/src/mesa/drivers/common/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/directfb/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dos/*.[chS]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/fbdev/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/fbdev/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c			\
 | 
						$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/glide/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/display/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win		\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms		\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def			\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/svga/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/windows/*/*.def			\
 | 
						$(DIRECTORY)/src/mesa/drivers/windows/*/*.def			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/x11/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms			\
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/x11/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/glslcompiler/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/glslcompiler/glslcompiler.c	\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/ppc/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/ppc/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/sparc/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/sparc/*.[chS]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/x86/Makefile				\
 | 
						$(DIRECTORY)/src/mesa/x86/Makefile				\
 | 
				
			||||||
@@ -283,90 +292,44 @@ MAIN_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/x86-64/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/x86-64/*.[chS]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/x86-64/Makefile				\
 | 
						$(DIRECTORY)/src/mesa/x86-64/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/README					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/*.[ch]					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/sampleMakefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/vms/analyze_map.com				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/vms/xlib.opt					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/vms/xlib_share.opt					\
 | 
				
			||||||
	$(DIRECTORY)/windows/VC8/
 | 
						$(DIRECTORY)/windows/VC8/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MAPI_FILES = \
 | 
					 | 
				
			||||||
	$(DIRECTORY)/include/GLES/*.h					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/include/GLES2/*.h					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/include/VG/*.h					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/es?api/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/es?api/*.pc.in				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/gen/Makefile			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/gen/*.xml				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/gen/*.py				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/gen/*.dtd				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/gen-es/Makefile			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/gen-es/*.xml			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/gen-es/*.py				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/SConscript				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/sources.mak				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/glapi/*.[chS]				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/mapi/mapi_abi.py				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/mapi/sources.mak				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/mapi/*.[ch]				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/vgapi/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/vgapi/vgapi.csv				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mapi/vgapi/vg.pc.in
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EGL_FILES = \
 | 
					 | 
				
			||||||
	$(DIRECTORY)/include/KHR/*.h					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/include/EGL/*.h					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/Makefile					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/*/Makefile					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/*/Makefile.template			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/*/*.[ch]					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/*/*/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/*/*/*.[ch]					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/main/*.pc.in				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/egl/main/*.def
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM_FILES = \
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/state_tracker/*[ch]			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/Makefile.template			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/SConscript				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/targets/Makefile.dri			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/targets/Makefile.xorg			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/targets/SConscript.dri			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/SConscript				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/SConscript				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/*.[ch]				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/auxiliary/gallivm/*.cpp		\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/*.py				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/*.csv				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/*/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/*/SConscript			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/*/*.[ch]				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/gallium/*/*/*/*.py
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRI_FILES = \
 | 
					DRI_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/include/GL/internal/dri_interface.h		\
 | 
						$(DIRECTORY)/include/GL/internal/dri_interface.h		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/internal/glcore.h			\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/internal/sarea.h			\
 | 
						$(DIRECTORY)/include/GL/internal/sarea.h			\
 | 
				
			||||||
	$(DIRECTORY)/src/glx/Makefile					\
 | 
						$(DIRECTORY)/src/glx/Makefile					\
 | 
				
			||||||
	$(DIRECTORY)/src/glx/*.[ch]					\
 | 
						$(DIRECTORY)/src/glx/x11/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glx/x11/*.[ch]					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template		\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/dri.pc.in			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/dri.pc.in			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.[ch]		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po		\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*.cpp			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*/*.[chS]			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SGI_GLU_FILES = \
 | 
					SGI_GLU_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/src/glu/Makefile					\
 | 
						$(DIRECTORY)/src/glu/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/glu.pc.in					\
 | 
						$(DIRECTORY)/src/glu/glu.pc.in					\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/Makefile				\
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/Makefile.mgw				\
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.mgw				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/Makefile.win				\
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.win				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.DJ				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/glu.def				\
 | 
						$(DIRECTORY)/src/glu/sgi/glu.def				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/dummy.cc				\
 | 
						$(DIRECTORY)/src/glu/sgi/dummy.cc				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/glu.exports				\
 | 
						$(DIRECTORY)/src/glu/sgi/glu.exports				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/glu.exports.darwin			\
 | 
						$(DIRECTORY)/src/glu/sgi/glu.exports.darwin			\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/mesaglu.opt				\
 | 
						$(DIRECTORY)/src/glu/sgi/mesaglu.opt				\
 | 
				
			||||||
@@ -382,6 +345,15 @@ SGI_GLU_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/src/glu/sgi/libtess/*.[ch]				\
 | 
						$(DIRECTORY)/src/glu/sgi/libtess/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
 | 
						$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MESA_GLU_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/README[12]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/mms_depend		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/*.def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/depend		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLW_FILES = \
 | 
					GLW_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/src/glw/*.[ch]			\
 | 
						$(DIRECTORY)/src/glw/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/glw/Makefile*			\
 | 
						$(DIRECTORY)/src/glw/Makefile*			\
 | 
				
			||||||
@@ -389,6 +361,43 @@ GLW_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/src/glw/glw.pc.in			\
 | 
						$(DIRECTORY)/src/glw/glw.pc.in			\
 | 
				
			||||||
	$(DIRECTORY)/src/glw/depend
 | 
						$(DIRECTORY)/src/glw/depend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEMO_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/beos/*.cpp			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/beos/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/images/*.rgb			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/images/*.rgba		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/demos/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/demos/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/demos/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/demos/*.cxx			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/demos/*.dat			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/demos/README			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/fbdev/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/fbdev/glfbdevtest.c		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/osdemos/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/osdemos/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/xdemos/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/xdemos/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/xdemos/*.[chf]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/redbook/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/redbook/README		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/redbook/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/samples/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/samples/README		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/samples/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/*.frag			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/*.vert			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/Makefile.ugl		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/*.bmp			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/ggi/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC6/progs/demos/*.dsp	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC6/progs/progs.dsw	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/demos/*.vcproj	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/progs.sln
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLUT_FILES = \
 | 
					GLUT_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glut.h			\
 | 
						$(DIRECTORY)/include/GL/glut.h			\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glutf90.h		\
 | 
						$(DIRECTORY)/include/GL/glutf90.h		\
 | 
				
			||||||
@@ -396,33 +405,41 @@ GLUT_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/src/glut/glx/depend		\
 | 
						$(DIRECTORY)/src/glut/glx/depend		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/glx/glut.pc.in		\
 | 
						$(DIRECTORY)/src/glut/glx/glut.pc.in		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/glx/*def			\
 | 
						$(DIRECTORY)/src/glut/glx/*def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/mms_depend		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/glx/*.[ch]		\
 | 
						$(DIRECTORY)/src/glut/glx/*.[ch]		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/beos/*.[ch]		\
 | 
						$(DIRECTORY)/src/glut/beos/*.[ch]		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/beos/*.cpp		\
 | 
						$(DIRECTORY)/src/glut/beos/*.cpp		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/beos/Makefile
 | 
						$(DIRECTORY)/src/glut/beos/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/Makefile.DJ		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/ggi/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/ggi/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/fbdev/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/fbdev/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/mini/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/mini/glut.pc.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/NOTES		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC6/progs/glut/glut.dsp	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/glut/glut.vcproj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DEPEND_FILES = \
 | 
					DEPEND_FILES = \
 | 
				
			||||||
	$(TOP)/src/mesa/depend		\
 | 
						$(TOP)/src/mesa/depend		\
 | 
				
			||||||
	$(TOP)/src/glx/depend		\
 | 
						$(TOP)/src/glx/x11/depend	\
 | 
				
			||||||
	$(TOP)/src/glw/depend		\
 | 
						$(TOP)/src/glw/depend		\
 | 
				
			||||||
	$(TOP)/src/glut/glx/depend	\
 | 
						$(TOP)/src/glut/glx/depend	\
 | 
				
			||||||
	$(TOP)/src/glu/sgi/depend
 | 
						$(TOP)/src/glu/sgi/depend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIB_FILES = \
 | 
					LIB_FILES = $(MAIN_FILES) $(DRI_FILES) $(SGI_GLU_FILES) $(GLW_FILES)
 | 
				
			||||||
	$(MAIN_FILES)		\
 | 
					 | 
				
			||||||
	$(MAPI_FILES)		\
 | 
					 | 
				
			||||||
	$(ES_FILES)		\
 | 
					 | 
				
			||||||
	$(EGL_FILES)		\
 | 
					 | 
				
			||||||
	$(GALLIUM_FILES)	\
 | 
					 | 
				
			||||||
	$(DRI_FILES)		\
 | 
					 | 
				
			||||||
	$(SGI_GLU_FILES)	\
 | 
					 | 
				
			||||||
	$(GLW_FILES)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Everything for new a Mesa release:
 | 
					# Everything for new a Mesa release:
 | 
				
			||||||
tarballs: rm_depend configure aclocal.m4 lib_gz glut_gz \
 | 
					tarballs: rm_depend configure aclocal.m4 lib_gz demo_gz glut_gz \
 | 
				
			||||||
	lib_bz2 glut_bz2 lib_zip glut_zip md5
 | 
						lib_bz2 demo_bz2 glut_bz2 lib_zip demo_zip glut_zip md5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Helper for autoconf builds
 | 
					# Helper for autoconf builds
 | 
				
			||||||
@@ -441,40 +458,60 @@ rm_depend:
 | 
				
			|||||||
		touch $$dep ; \
 | 
							touch $$dep ; \
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
rm_config:
 | 
					lib_gz:
 | 
				
			||||||
	rm -f configs/current
 | 
						rm -f configs/current ; \
 | 
				
			||||||
	rm -f configs/autoconf
 | 
						rm -f configs/autoconf ; \
 | 
				
			||||||
 | 
					 | 
				
			||||||
lib_gz: rm_config
 | 
					 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
	tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
						tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
				
			||||||
	gzip $(LIB_NAME).tar ; \
 | 
						gzip $(LIB_NAME).tar ; \
 | 
				
			||||||
	mv $(LIB_NAME).tar.gz $(DIRECTORY)
 | 
						mv $(LIB_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					demo_gz:
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						gzip $(DEMO_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
glut_gz:
 | 
					glut_gz:
 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
	tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
						tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
				
			||||||
	gzip $(GLUT_NAME).tar ; \
 | 
						gzip $(GLUT_NAME).tar ; \
 | 
				
			||||||
	mv $(GLUT_NAME).tar.gz $(DIRECTORY)
 | 
						mv $(GLUT_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
lib_bz2: rm_config
 | 
					lib_bz2:
 | 
				
			||||||
 | 
						rm -f configs/current ; \
 | 
				
			||||||
 | 
						rm -f configs/autoconf ; \
 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
	tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
						tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
				
			||||||
	bzip2 $(LIB_NAME).tar ; \
 | 
						bzip2 $(LIB_NAME).tar ; \
 | 
				
			||||||
	mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
 | 
						mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					demo_bz2:
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						bzip2 $(DEMO_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
glut_bz2:
 | 
					glut_bz2:
 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
	tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
						tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
				
			||||||
	bzip2 $(GLUT_NAME).tar ; \
 | 
						bzip2 $(GLUT_NAME).tar ; \
 | 
				
			||||||
	mv $(GLUT_NAME).tar.bz2 $(DIRECTORY)
 | 
						mv $(GLUT_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
lib_zip: rm_config
 | 
					lib_zip:
 | 
				
			||||||
 | 
						rm -f configs/current ; \
 | 
				
			||||||
 | 
						rm -f configs/autoconf ; \
 | 
				
			||||||
	rm -f $(LIB_NAME).zip ; \
 | 
						rm -f $(LIB_NAME).zip ; \
 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
	zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
 | 
						zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
 | 
				
			||||||
	mv $(LIB_NAME).zip $(DIRECTORY)
 | 
						mv $(LIB_NAME).zip $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					demo_zip:
 | 
				
			||||||
 | 
						rm -f $(DEMO_NAME).zip ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						zip -qr $(DEMO_NAME).zip $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).zip $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
glut_zip:
 | 
					glut_zip:
 | 
				
			||||||
	rm -f $(GLUT_NAME).zip ; \
 | 
						rm -f $(GLUT_NAME).zip ; \
 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
@@ -485,11 +522,12 @@ md5:
 | 
				
			|||||||
	@-md5sum $(LIB_NAME).tar.gz
 | 
						@-md5sum $(LIB_NAME).tar.gz
 | 
				
			||||||
	@-md5sum $(LIB_NAME).tar.bz2
 | 
						@-md5sum $(LIB_NAME).tar.bz2
 | 
				
			||||||
	@-md5sum $(LIB_NAME).zip
 | 
						@-md5sum $(LIB_NAME).zip
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).tar.gz
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).tar.bz2
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).zip
 | 
				
			||||||
	@-md5sum $(GLUT_NAME).tar.gz
 | 
						@-md5sum $(GLUT_NAME).tar.gz
 | 
				
			||||||
	@-md5sum $(GLUT_NAME).tar.bz2
 | 
						@-md5sum $(GLUT_NAME).tar.bz2
 | 
				
			||||||
	@-md5sum $(GLUT_NAME).zip
 | 
						@-md5sum $(GLUT_NAME).zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: tarballs rm_depend rm_config md5 \
 | 
					.PHONY: tarballs rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 \
 | 
				
			||||||
	lib_gz glut_gz \
 | 
						glut_bz2 lib_zip demo_zip glut_zip md5
 | 
				
			||||||
	lib_bz2 glut_bz2 \
 | 
					 | 
				
			||||||
	lib_zip glut_zip
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										88
									
								
								Makefile.DJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								Makefile.DJ
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					# Mesa 3-D graphics library
 | 
				
			||||||
 | 
					# Version:  4.0
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# Copyright (C) 1999  Brian Paul   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 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
 | 
				
			||||||
 | 
					# BRIAN PAUL 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DOS/DJGPP makefile for Mesa
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Author: Daniel Borca
 | 
				
			||||||
 | 
					#  Email : dborca@users.sourceforge.net
 | 
				
			||||||
 | 
					#  Web   : http://www.geocities.com/dborca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Available options:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    Environment variables:
 | 
				
			||||||
 | 
					#	GLIDE		path to Glide3 SDK; used with FX.
 | 
				
			||||||
 | 
					#			default = $(TOP)/glide3
 | 
				
			||||||
 | 
					#	FX=1		build for 3dfx Glide3. Note that this disables
 | 
				
			||||||
 | 
					#			compilation of most DMesa code and requires fxMesa.
 | 
				
			||||||
 | 
					#			As a consequence, you'll need the DJGPP Glide3
 | 
				
			||||||
 | 
					#			library to build any application.
 | 
				
			||||||
 | 
					#			default = no
 | 
				
			||||||
 | 
					#	X86=1		optimize for x86 (if possible, use MMX, SSE, 3DNow).
 | 
				
			||||||
 | 
					#			default = no
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    Targets:
 | 
				
			||||||
 | 
					#	all:		build everything
 | 
				
			||||||
 | 
					#	libgl:		build GL
 | 
				
			||||||
 | 
					#	libglu:		build GLU
 | 
				
			||||||
 | 
					#	libglut:	build GLUT
 | 
				
			||||||
 | 
					#	clean:		remove object files
 | 
				
			||||||
 | 
					#	realclean:	remove all generated files
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY : all libgl libglu libglut clean realclean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -Wall -W -pedantic
 | 
				
			||||||
 | 
					CFLAGS += -O2 -ffast-math
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export CFLAGS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
				
			||||||
 | 
					UNLINK = del $(subst /,\,$(1))
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					UNLINK = $(RM) $(1)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: libgl libglu libglut
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					libgl: lib
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.DJ -C src/mesa
 | 
				
			||||||
 | 
					libglu: lib
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.DJ -C src/glu/sgi
 | 
				
			||||||
 | 
					libglut: lib
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.DJ -C src/glut/dos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lib:
 | 
				
			||||||
 | 
						mkdir lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.DJ clean -C src/mesa
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.DJ clean -C src/glu/mesa
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.DJ clean -C src/glu/sgi
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.DJ clean -C src/glut/dos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					realclean: clean
 | 
				
			||||||
 | 
						-$(call UNLINK,lib/*.a)
 | 
				
			||||||
 | 
						-$(call UNLINK,lib/*.dxe)
 | 
				
			||||||
							
								
								
									
										110
									
								
								Makefile.mgw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								Makefile.mgw
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
				
			|||||||
 | 
					# Mesa 3-D graphics library
 | 
				
			||||||
 | 
					# Version:  4.0
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# Copyright (C) 1999  Brian Paul   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 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
 | 
				
			||||||
 | 
					# BRIAN PAUL 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MinGW makefile v1.2 for Mesa
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Copyright (C) 2002 - Daniel Borca
 | 
				
			||||||
 | 
					#  Email : dborca@users.sourceforge.net
 | 
				
			||||||
 | 
					#  Web   : http://www.geocities.com/dborca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Available options:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    Environment variables:
 | 
				
			||||||
 | 
					#	GLIDE		path to Glide3 SDK; used with FX.
 | 
				
			||||||
 | 
					#			default = $(TOP)/glide3
 | 
				
			||||||
 | 
					#	FX=1		build for 3dfx Glide3. Note that this disables
 | 
				
			||||||
 | 
					#			compilation of most WMesa code and requires fxMesa.
 | 
				
			||||||
 | 
					#			As a consequence, you'll need the Win32 Glide3
 | 
				
			||||||
 | 
					#			library to build any application.
 | 
				
			||||||
 | 
					#			default = no
 | 
				
			||||||
 | 
					#	ICD=1		build the installable client driver interface
 | 
				
			||||||
 | 
					#			(windows opengl driver interface)
 | 
				
			||||||
 | 
					#			default = no
 | 
				
			||||||
 | 
					#	X86=1		optimize for x86 (if possible, use MMX, SSE, 3DNow).
 | 
				
			||||||
 | 
					#			default = no
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    Targets:
 | 
				
			||||||
 | 
					#	all:		build everything
 | 
				
			||||||
 | 
					#	libgl:		build GL
 | 
				
			||||||
 | 
					#	clean:		remove object files
 | 
				
			||||||
 | 
					#	realclean:	remove all generated files
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MinGW core makefile updated for Mesa 7.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  Updated : by Heromyth, on 2007-7-21
 | 
				
			||||||
 | 
					#  Email   : zxpmyth@yahoo.com.cn
 | 
				
			||||||
 | 
					#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
 | 
				
			||||||
 | 
					#            The others havn't been tested yet.
 | 
				
			||||||
 | 
					#            2) The generated DLLs are *not* compatible with the ones built
 | 
				
			||||||
 | 
					#            with the other compilers like VC8, especially for GLUT. 
 | 
				
			||||||
 | 
					#            3) MAlthough more tests are needed, it can be used individually!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY : all libgl clean realclean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifeq ($(ICD),1)
 | 
				
			||||||
 | 
					  # when -std=c99 mingw will not define WIN32
 | 
				
			||||||
 | 
					  CFLAGS = -Wall -Werror
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  # I love c89
 | 
				
			||||||
 | 
					  CFLAGS = -Wall -pedantic
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					CFLAGS += -O2 -ffast-math
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export CFLAGS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
				
			||||||
 | 
					UNLINK = del $(subst /,\,$(1))
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					UNLINK = $(RM) $(1)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: libgl libglu libglut example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					libgl: lib
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.mgw -C src/mesa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					libglu: libgl
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.mgw -C src/glu/sgi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					libglut: libglu 
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.mgw -C src/glut/glx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					example: libglut 
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.mgw star -C progs/samples
 | 
				
			||||||
 | 
						copy progs\samples\star.exe lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lib:
 | 
				
			||||||
 | 
						mkdir lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.mgw clean -C src/mesa
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.mgw clean -C src/glu/sgi
 | 
				
			||||||
 | 
						$(MAKE) -f Makefile.mgw clean -C src/glut/glx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					realclean: clean
 | 
				
			||||||
 | 
						-$(call UNLINK,lib/*.a)
 | 
				
			||||||
 | 
						-$(call UNLINK,lib/*.dll)
 | 
				
			||||||
							
								
								
									
										132
									
								
								SConstruct
									
									
									
									
									
								
							
							
						
						
									
										132
									
								
								SConstruct
									
									
									
									
									
								
							@@ -1,132 +0,0 @@
 | 
				
			|||||||
#######################################################################
 | 
					 | 
				
			||||||
# Top-level SConstruct
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# For example, invoke scons as 
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   scons build=debug llvm=yes machine=x86
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# to set configuration variables. Or you can write those options to a file
 | 
					 | 
				
			||||||
# named config.py:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   # config.py
 | 
					 | 
				
			||||||
#   build='debug'
 | 
					 | 
				
			||||||
#   llvm=True
 | 
					 | 
				
			||||||
#   machine='x86'
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# Invoke
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   scons -h
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# to get the full list of options. See scons manpage for more info.
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import os.path
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
import SCons.Util
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import common
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					 | 
				
			||||||
# Configuration options
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
opts = Variables('config.py')
 | 
					 | 
				
			||||||
common.AddOptions(opts)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
env = Environment(
 | 
					 | 
				
			||||||
	options = opts,
 | 
					 | 
				
			||||||
	tools = ['gallium'],
 | 
					 | 
				
			||||||
	toolpath = ['#scons'],	
 | 
					 | 
				
			||||||
	ENV = os.environ,
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Backwards compatability with old target configuration variable
 | 
					 | 
				
			||||||
try:
 | 
					 | 
				
			||||||
    targets = ARGUMENTS['targets']
 | 
					 | 
				
			||||||
except KeyError:
 | 
					 | 
				
			||||||
    pass
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    targets = targets.split(',')
 | 
					 | 
				
			||||||
    print 'scons: warning: targets option is deprecated; pass the targets on their own such as'
 | 
					 | 
				
			||||||
    print
 | 
					 | 
				
			||||||
    print '  scons %s' % ' '.join(targets)
 | 
					 | 
				
			||||||
    print 
 | 
					 | 
				
			||||||
    COMMAND_LINE_TARGETS.append(targets)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Help(opts.GenerateHelpText(env))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					 | 
				
			||||||
# Environment setup
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Includes
 | 
					 | 
				
			||||||
env.Prepend(CPPPATH = [
 | 
					 | 
				
			||||||
	'#/include',
 | 
					 | 
				
			||||||
])
 | 
					 | 
				
			||||||
env.Append(CPPPATH = [
 | 
					 | 
				
			||||||
	'#/src/gallium/include',
 | 
					 | 
				
			||||||
	'#/src/gallium/auxiliary',
 | 
					 | 
				
			||||||
	'#/src/gallium/drivers',
 | 
					 | 
				
			||||||
	'#/src/gallium/winsys',
 | 
					 | 
				
			||||||
])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if env['msvc']:
 | 
					 | 
				
			||||||
    env.Append(CPPPATH = ['#include/c99'])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Embedded
 | 
					 | 
				
			||||||
if env['platform'] == 'embedded':
 | 
					 | 
				
			||||||
	env.Append(CPPDEFINES = [
 | 
					 | 
				
			||||||
		'_POSIX_SOURCE',
 | 
					 | 
				
			||||||
		('_POSIX_C_SOURCE', '199309L'), 
 | 
					 | 
				
			||||||
		'_SVID_SOURCE',
 | 
					 | 
				
			||||||
		'_BSD_SOURCE', 
 | 
					 | 
				
			||||||
		'_GNU_SOURCE',
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		'PTHREADS',
 | 
					 | 
				
			||||||
	])
 | 
					 | 
				
			||||||
	env.Append(LIBS = [
 | 
					 | 
				
			||||||
		'm',
 | 
					 | 
				
			||||||
		'pthread',
 | 
					 | 
				
			||||||
		'dl',
 | 
					 | 
				
			||||||
	])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Posix
 | 
					 | 
				
			||||||
if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
 | 
					 | 
				
			||||||
	env.Append(CPPDEFINES = [
 | 
					 | 
				
			||||||
		'_POSIX_SOURCE',
 | 
					 | 
				
			||||||
		('_POSIX_C_SOURCE', '199309L'), 
 | 
					 | 
				
			||||||
		'_SVID_SOURCE',
 | 
					 | 
				
			||||||
		'_BSD_SOURCE', 
 | 
					 | 
				
			||||||
		'_GNU_SOURCE',
 | 
					 | 
				
			||||||
		'PTHREADS',
 | 
					 | 
				
			||||||
		'HAVE_POSIX_MEMALIGN',
 | 
					 | 
				
			||||||
	])
 | 
					 | 
				
			||||||
	if env['gcc']:
 | 
					 | 
				
			||||||
		env.Append(CFLAGS = ['-fvisibility=hidden'])
 | 
					 | 
				
			||||||
	if env['platform'] == 'darwin':
 | 
					 | 
				
			||||||
		env.Append(CPPDEFINES = ['_DARWIN_C_SOURCE'])
 | 
					 | 
				
			||||||
	env.Append(LIBS = [
 | 
					 | 
				
			||||||
		'm',
 | 
					 | 
				
			||||||
		'pthread',
 | 
					 | 
				
			||||||
		'dl',
 | 
					 | 
				
			||||||
	])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# for debugging
 | 
					 | 
				
			||||||
#print env.Dump()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Export('env')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					 | 
				
			||||||
# Invoke SConscripts
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# TODO: Build several variants at the same time?
 | 
					 | 
				
			||||||
# http://www.scons.org/wiki/SimultaneousVariantBuilds
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SConscript(
 | 
					 | 
				
			||||||
	'src/SConscript',
 | 
					 | 
				
			||||||
	variant_dir = env['build_dir'],
 | 
					 | 
				
			||||||
	duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -11,8 +11,6 @@ if test "x$SRCDIR" != "x$ORIGDIR"; then
 | 
				
			|||||||
	exit 1
 | 
						exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MAKEFLAGS=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
autoreconf -v --install || exit 1
 | 
					autoreconf -v --install || exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"$srcdir"/configure "$@"
 | 
					"$srcdir"/configure "$@"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										71
									
								
								bin/config.guess
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								bin/config.guess
									
									
									
									
										vendored
									
									
								
							@@ -1,10 +1,10 @@
 | 
				
			|||||||
#! /bin/sh
 | 
					#! /bin/sh
 | 
				
			||||||
# Attempt to guess a canonical system name.
 | 
					# Attempt to guess a canonical system name.
 | 
				
			||||||
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 | 
					#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 | 
				
			||||||
#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 | 
					#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
 | 
				
			||||||
#   Free Software Foundation, Inc.
 | 
					#   Inc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
timestamp='2009-02-03'
 | 
					timestamp='2007-07-22'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This file is free software; you can redistribute it and/or modify it
 | 
					# This file is free software; you can redistribute it and/or modify it
 | 
				
			||||||
# under the terms of the GNU General Public License as published by
 | 
					# under the terms of the GNU General Public License as published by
 | 
				
			||||||
@@ -56,8 +56,8 @@ version="\
 | 
				
			|||||||
GNU config.guess ($timestamp)
 | 
					GNU config.guess ($timestamp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Originally written by Per Bothner.
 | 
					Originally written by Per Bothner.
 | 
				
			||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
 | 
					Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 | 
				
			||||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 | 
					Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is free software; see the source for copying conditions.  There is NO
 | 
					This is free software; see the source for copying conditions.  There is NO
 | 
				
			||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 | 
					warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 | 
				
			||||||
@@ -331,20 +331,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 | 
				
			|||||||
	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 | 
						echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 | 
					    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 | 
				
			||||||
	eval $set_cc_for_build
 | 
						echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 | 
				
			||||||
	SUN_ARCH="i386"
 | 
					 | 
				
			||||||
	# If there is a compiler, see if it is configured for 64-bit objects.
 | 
					 | 
				
			||||||
	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
 | 
					 | 
				
			||||||
	# This test works for both compilers.
 | 
					 | 
				
			||||||
	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
 | 
					 | 
				
			||||||
	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
 | 
					 | 
				
			||||||
		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
 | 
					 | 
				
			||||||
		grep IS_64BIT_ARCH >/dev/null
 | 
					 | 
				
			||||||
	    then
 | 
					 | 
				
			||||||
		SUN_ARCH="x86_64"
 | 
					 | 
				
			||||||
	    fi
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 | 
					 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    sun4*:SunOS:6*:*)
 | 
					    sun4*:SunOS:6*:*)
 | 
				
			||||||
	# According to config.sub, this is the proper way to canonicalize
 | 
						# According to config.sub, this is the proper way to canonicalize
 | 
				
			||||||
@@ -545,7 +532,7 @@ EOF
 | 
				
			|||||||
		echo rs6000-ibm-aix3.2
 | 
							echo rs6000-ibm-aix3.2
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    *:AIX:*:[456])
 | 
					    *:AIX:*:[45])
 | 
				
			||||||
	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 | 
						IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 | 
				
			||||||
	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 | 
						if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 | 
				
			||||||
		IBM_ARCH=rs6000
 | 
							IBM_ARCH=rs6000
 | 
				
			||||||
@@ -809,12 +796,9 @@ EOF
 | 
				
			|||||||
	    x86)
 | 
						    x86)
 | 
				
			||||||
		echo i586-pc-interix${UNAME_RELEASE}
 | 
							echo i586-pc-interix${UNAME_RELEASE}
 | 
				
			||||||
		exit ;;
 | 
							exit ;;
 | 
				
			||||||
	    EM64T | authenticamd | genuineintel)
 | 
						    EM64T | authenticamd)
 | 
				
			||||||
		echo x86_64-unknown-interix${UNAME_RELEASE}
 | 
							echo x86_64-unknown-interix${UNAME_RELEASE}
 | 
				
			||||||
		exit ;;
 | 
							exit ;;
 | 
				
			||||||
	    IA64)
 | 
					 | 
				
			||||||
		echo ia64-unknown-interix${UNAME_RELEASE}
 | 
					 | 
				
			||||||
		exit ;;
 | 
					 | 
				
			||||||
	esac ;;
 | 
						esac ;;
 | 
				
			||||||
    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 | 
					    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 | 
				
			||||||
	echo i${UNAME_MACHINE}-pc-mks
 | 
						echo i${UNAME_MACHINE}-pc-mks
 | 
				
			||||||
@@ -849,14 +833,7 @@ EOF
 | 
				
			|||||||
	echo ${UNAME_MACHINE}-pc-minix
 | 
						echo ${UNAME_MACHINE}-pc-minix
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    arm*:Linux:*:*)
 | 
					    arm*:Linux:*:*)
 | 
				
			||||||
	eval $set_cc_for_build
 | 
						echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
				
			||||||
	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 | 
					 | 
				
			||||||
	    | grep -q __ARM_EABI__
 | 
					 | 
				
			||||||
	then
 | 
					 | 
				
			||||||
	    echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    avr32*:Linux:*:*)
 | 
					    avr32*:Linux:*:*)
 | 
				
			||||||
	echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
						echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
				
			||||||
@@ -948,9 +925,6 @@ EOF
 | 
				
			|||||||
	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 | 
						if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 | 
				
			||||||
	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
 | 
						echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    padre:Linux:*:*)
 | 
					 | 
				
			||||||
	echo sparc-unknown-linux-gnu
 | 
					 | 
				
			||||||
	exit ;;
 | 
					 | 
				
			||||||
    parisc:Linux:*:* | hppa:Linux:*:*)
 | 
					    parisc:Linux:*:* | hppa:Linux:*:*)
 | 
				
			||||||
	# Look for CPU level
 | 
						# Look for CPU level
 | 
				
			||||||
	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
 | 
						case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
 | 
				
			||||||
@@ -980,8 +954,8 @@ EOF
 | 
				
			|||||||
    x86_64:Linux:*:*)
 | 
					    x86_64:Linux:*:*)
 | 
				
			||||||
	echo x86_64-unknown-linux-gnu
 | 
						echo x86_64-unknown-linux-gnu
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    xtensa*:Linux:*:*)
 | 
					    xtensa:Linux:*:*)
 | 
				
			||||||
    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 | 
					    	echo xtensa-unknown-linux-gnu
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    i*86:Linux:*:*)
 | 
					    i*86:Linux:*:*)
 | 
				
			||||||
	# The BFD linker knows what the default object file format is, so
 | 
						# The BFD linker knows what the default object file format is, so
 | 
				
			||||||
@@ -1001,6 +975,9 @@ EOF
 | 
				
			|||||||
	  a.out-i386-linux)
 | 
						  a.out-i386-linux)
 | 
				
			||||||
		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
 | 
							echo "${UNAME_MACHINE}-pc-linux-gnuaout"
 | 
				
			||||||
		exit ;;
 | 
							exit ;;
 | 
				
			||||||
 | 
						  coff-i386)
 | 
				
			||||||
 | 
							echo "${UNAME_MACHINE}-pc-linux-gnucoff"
 | 
				
			||||||
 | 
							exit ;;
 | 
				
			||||||
	  "")
 | 
						  "")
 | 
				
			||||||
		# Either a pre-BFD a.out linker (linux-gnuoldld) or
 | 
							# Either a pre-BFD a.out linker (linux-gnuoldld) or
 | 
				
			||||||
		# one that does not give us useful --help.
 | 
							# one that does not give us useful --help.
 | 
				
			||||||
@@ -1154,16 +1131,6 @@ EOF
 | 
				
			|||||||
    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
 | 
					    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
 | 
				
			||||||
        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
 | 
					        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
 | 
				
			||||||
          && { echo i486-ncr-sysv4; exit; } ;;
 | 
					          && { echo i486-ncr-sysv4; exit; } ;;
 | 
				
			||||||
    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
 | 
					 | 
				
			||||||
	OS_REL='.3'
 | 
					 | 
				
			||||||
	test -r /etc/.relid \
 | 
					 | 
				
			||||||
	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
 | 
					 | 
				
			||||||
	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
 | 
					 | 
				
			||||||
	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
 | 
					 | 
				
			||||||
	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
 | 
					 | 
				
			||||||
	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
 | 
					 | 
				
			||||||
	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
 | 
					 | 
				
			||||||
	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
 | 
					 | 
				
			||||||
    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 | 
					    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 | 
				
			||||||
	echo m68k-unknown-lynxos${UNAME_RELEASE}
 | 
						echo m68k-unknown-lynxos${UNAME_RELEASE}
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
@@ -1239,9 +1206,6 @@ EOF
 | 
				
			|||||||
    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 | 
					    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 | 
				
			||||||
	echo i586-pc-beos
 | 
						echo i586-pc-beos
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 | 
					 | 
				
			||||||
	echo i586-pc-haiku
 | 
					 | 
				
			||||||
	exit ;;
 | 
					 | 
				
			||||||
    SX-4:SUPER-UX:*:*)
 | 
					    SX-4:SUPER-UX:*:*)
 | 
				
			||||||
	echo sx4-nec-superux${UNAME_RELEASE}
 | 
						echo sx4-nec-superux${UNAME_RELEASE}
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
@@ -1350,9 +1314,6 @@ EOF
 | 
				
			|||||||
    i*86:rdos:*:*)
 | 
					    i*86:rdos:*:*)
 | 
				
			||||||
	echo ${UNAME_MACHINE}-pc-rdos
 | 
						echo ${UNAME_MACHINE}-pc-rdos
 | 
				
			||||||
	exit ;;
 | 
						exit ;;
 | 
				
			||||||
    i*86:AROS:*:*)
 | 
					 | 
				
			||||||
	echo ${UNAME_MACHINE}-pc-aros
 | 
					 | 
				
			||||||
	exit ;;
 | 
					 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#echo '(No uname command or uname output not recognized.)' 1>&2
 | 
					#echo '(No uname command or uname output not recognized.)' 1>&2
 | 
				
			||||||
@@ -1513,9 +1474,9 @@ This script, last modified $timestamp, has failed to recognize
 | 
				
			|||||||
the operating system you are using. It is advised that you
 | 
					the operating system you are using. It is advised that you
 | 
				
			||||||
download the most up to date version of the config scripts from
 | 
					download the most up to date version of the config scripts from
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 | 
					  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
 | 
				
			||||||
and
 | 
					and
 | 
				
			||||||
  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 | 
					  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If the version you run ($0) is already up to date, please
 | 
					If the version you run ($0) is already up to date, please
 | 
				
			||||||
send the following data and any information you think might be
 | 
					send the following data and any information you think might be
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										95
									
								
								bin/config.sub
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										95
									
								
								bin/config.sub
									
									
									
									
										vendored
									
									
								
							@@ -1,10 +1,10 @@
 | 
				
			|||||||
#! /bin/sh
 | 
					#! /bin/sh
 | 
				
			||||||
# Configuration validation subroutine script.
 | 
					# Configuration validation subroutine script.
 | 
				
			||||||
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 | 
					#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 | 
				
			||||||
#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 | 
					#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
 | 
				
			||||||
#   Free Software Foundation, Inc.
 | 
					#   Inc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
timestamp='2009-02-03'
 | 
					timestamp='2007-06-28'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# This file is (in principle) common to ALL GNU software.
 | 
					# This file is (in principle) common to ALL GNU software.
 | 
				
			||||||
# The presence of a machine in this file suggests that SOME GNU software
 | 
					# The presence of a machine in this file suggests that SOME GNU software
 | 
				
			||||||
@@ -72,8 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
 | 
				
			|||||||
version="\
 | 
					version="\
 | 
				
			||||||
GNU config.sub ($timestamp)
 | 
					GNU config.sub ($timestamp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
 | 
					Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 | 
				
			||||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 | 
					Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is free software; see the source for copying conditions.  There is NO
 | 
					This is free software; see the source for copying conditions.  There is NO
 | 
				
			||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 | 
					warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 | 
				
			||||||
@@ -122,7 +122,6 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 | 
				
			|||||||
case $maybe_os in
 | 
					case $maybe_os in
 | 
				
			||||||
  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
 | 
					  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
 | 
				
			||||||
  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
 | 
					  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
 | 
				
			||||||
  kopensolaris*-gnu* | \
 | 
					 | 
				
			||||||
  storm-chaos* | os2-emx* | rtmk-nova*)
 | 
					  storm-chaos* | os2-emx* | rtmk-nova*)
 | 
				
			||||||
    os=-$maybe_os
 | 
					    os=-$maybe_os
 | 
				
			||||||
    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
 | 
					    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
 | 
				
			||||||
@@ -250,16 +249,13 @@ case $basic_machine in
 | 
				
			|||||||
	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 | 
						| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 | 
				
			||||||
	| i370 | i860 | i960 | ia64 \
 | 
						| i370 | i860 | i960 | ia64 \
 | 
				
			||||||
	| ip2k | iq2000 \
 | 
						| ip2k | iq2000 \
 | 
				
			||||||
	| lm32 \
 | 
					 | 
				
			||||||
	| m32c | m32r | m32rle | m68000 | m68k | m88k \
 | 
						| m32c | m32r | m32rle | m68000 | m68k | m88k \
 | 
				
			||||||
	| maxq | mb | microblaze | mcore | mep | metag \
 | 
						| maxq | mb | microblaze | mcore | mep \
 | 
				
			||||||
	| mips | mipsbe | mipseb | mipsel | mipsle \
 | 
						| mips | mipsbe | mipseb | mipsel | mipsle \
 | 
				
			||||||
	| mips16 \
 | 
						| mips16 \
 | 
				
			||||||
	| mips64 | mips64el \
 | 
						| mips64 | mips64el \
 | 
				
			||||||
	| mips64octeon | mips64octeonel \
 | 
					 | 
				
			||||||
	| mips64orion | mips64orionel \
 | 
					 | 
				
			||||||
	| mips64r5900 | mips64r5900el \
 | 
					 | 
				
			||||||
	| mips64vr | mips64vrel \
 | 
						| mips64vr | mips64vrel \
 | 
				
			||||||
 | 
						| mips64orion | mips64orionel \
 | 
				
			||||||
	| mips64vr4100 | mips64vr4100el \
 | 
						| mips64vr4100 | mips64vr4100el \
 | 
				
			||||||
	| mips64vr4300 | mips64vr4300el \
 | 
						| mips64vr4300 | mips64vr4300el \
 | 
				
			||||||
	| mips64vr5000 | mips64vr5000el \
 | 
						| mips64vr5000 | mips64vr5000el \
 | 
				
			||||||
@@ -281,7 +277,7 @@ case $basic_machine in
 | 
				
			|||||||
	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 | 
						| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 | 
				
			||||||
	| pyramid \
 | 
						| pyramid \
 | 
				
			||||||
	| score \
 | 
						| score \
 | 
				
			||||||
	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 | 
						| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 | 
				
			||||||
	| sh64 | sh64le \
 | 
						| sh64 | sh64le \
 | 
				
			||||||
	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 | 
						| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 | 
				
			||||||
	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
 | 
						| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
 | 
				
			||||||
@@ -290,7 +286,7 @@ case $basic_machine in
 | 
				
			|||||||
	| v850 | v850e \
 | 
						| v850 | v850e \
 | 
				
			||||||
	| we32k \
 | 
						| we32k \
 | 
				
			||||||
	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
 | 
						| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
 | 
				
			||||||
	| z8k | z80)
 | 
						| z8k)
 | 
				
			||||||
		basic_machine=$basic_machine-unknown
 | 
							basic_machine=$basic_machine-unknown
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	m6811 | m68hc11 | m6812 | m68hc12)
 | 
						m6811 | m68hc11 | m6812 | m68hc12)
 | 
				
			||||||
@@ -333,17 +329,14 @@ case $basic_machine in
 | 
				
			|||||||
	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 | 
						| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 | 
				
			||||||
	| i*86-* | i860-* | i960-* | ia64-* \
 | 
						| i*86-* | i860-* | i960-* | ia64-* \
 | 
				
			||||||
	| ip2k-* | iq2000-* \
 | 
						| ip2k-* | iq2000-* \
 | 
				
			||||||
	| lm32-* \
 | 
					 | 
				
			||||||
	| m32c-* | m32r-* | m32rle-* \
 | 
						| m32c-* | m32r-* | m32rle-* \
 | 
				
			||||||
	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 | 
						| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 | 
				
			||||||
	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
 | 
						| m88110-* | m88k-* | maxq-* | mcore-* \
 | 
				
			||||||
	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 | 
						| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 | 
				
			||||||
	| mips16-* \
 | 
						| mips16-* \
 | 
				
			||||||
	| mips64-* | mips64el-* \
 | 
						| mips64-* | mips64el-* \
 | 
				
			||||||
	| mips64octeon-* | mips64octeonel-* \
 | 
					 | 
				
			||||||
	| mips64orion-* | mips64orionel-* \
 | 
					 | 
				
			||||||
	| mips64r5900-* | mips64r5900el-* \
 | 
					 | 
				
			||||||
	| mips64vr-* | mips64vrel-* \
 | 
						| mips64vr-* | mips64vrel-* \
 | 
				
			||||||
 | 
						| mips64orion-* | mips64orionel-* \
 | 
				
			||||||
	| mips64vr4100-* | mips64vr4100el-* \
 | 
						| mips64vr4100-* | mips64vr4100el-* \
 | 
				
			||||||
	| mips64vr4300-* | mips64vr4300el-* \
 | 
						| mips64vr4300-* | mips64vr4300el-* \
 | 
				
			||||||
	| mips64vr5000-* | mips64vr5000el-* \
 | 
						| mips64vr5000-* | mips64vr5000el-* \
 | 
				
			||||||
@@ -365,24 +358,20 @@ case $basic_machine in
 | 
				
			|||||||
	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 | 
						| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 | 
				
			||||||
	| pyramid-* \
 | 
						| pyramid-* \
 | 
				
			||||||
	| romp-* | rs6000-* \
 | 
						| romp-* | rs6000-* \
 | 
				
			||||||
	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 | 
						| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 | 
				
			||||||
	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 | 
						| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 | 
				
			||||||
	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 | 
						| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 | 
				
			||||||
	| sparclite-* \
 | 
						| sparclite-* \
 | 
				
			||||||
	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 | 
						| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 | 
				
			||||||
	| tahoe-* | thumb-* \
 | 
						| tahoe-* | thumb-* \
 | 
				
			||||||
	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 | 
						| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
 | 
				
			||||||
	| tron-* \
 | 
						| tron-* \
 | 
				
			||||||
	| v850-* | v850e-* | vax-* \
 | 
						| v850-* | v850e-* | vax-* \
 | 
				
			||||||
	| we32k-* \
 | 
						| we32k-* \
 | 
				
			||||||
	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 | 
						| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 | 
				
			||||||
	| xstormy16-* | xtensa*-* \
 | 
						| xstormy16-* | xtensa-* \
 | 
				
			||||||
	| ymp-* \
 | 
						| ymp-* \
 | 
				
			||||||
	| z8k-* | z80-*)
 | 
						| z8k-*)
 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	# Recognize the basic CPU types without company name, with glob match.
 | 
					 | 
				
			||||||
	xtensa*)
 | 
					 | 
				
			||||||
		basic_machine=$basic_machine-unknown
 | 
					 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	# Recognize the various machine names and aliases which stand
 | 
						# Recognize the various machine names and aliases which stand
 | 
				
			||||||
	# for a CPU type and a company and sometimes even an OS.
 | 
						# for a CPU type and a company and sometimes even an OS.
 | 
				
			||||||
@@ -446,10 +435,6 @@ case $basic_machine in
 | 
				
			|||||||
		basic_machine=m68k-apollo
 | 
							basic_machine=m68k-apollo
 | 
				
			||||||
		os=-bsd
 | 
							os=-bsd
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	aros)
 | 
					 | 
				
			||||||
		basic_machine=i386-pc
 | 
					 | 
				
			||||||
		os=-aros
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	aux)
 | 
						aux)
 | 
				
			||||||
		basic_machine=m68k-apple
 | 
							basic_machine=m68k-apple
 | 
				
			||||||
		os=-aux
 | 
							os=-aux
 | 
				
			||||||
@@ -458,22 +443,10 @@ case $basic_machine in
 | 
				
			|||||||
		basic_machine=ns32k-sequent
 | 
							basic_machine=ns32k-sequent
 | 
				
			||||||
		os=-dynix
 | 
							os=-dynix
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	blackfin)
 | 
					 | 
				
			||||||
		basic_machine=bfin-unknown
 | 
					 | 
				
			||||||
		os=-linux
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	blackfin-*)
 | 
					 | 
				
			||||||
		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
 | 
					 | 
				
			||||||
		os=-linux
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	c90)
 | 
						c90)
 | 
				
			||||||
		basic_machine=c90-cray
 | 
							basic_machine=c90-cray
 | 
				
			||||||
		os=-unicos
 | 
							os=-unicos
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
        cegcc)
 | 
					 | 
				
			||||||
		basic_machine=arm-unknown
 | 
					 | 
				
			||||||
		os=-cegcc
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	convex-c1)
 | 
						convex-c1)
 | 
				
			||||||
		basic_machine=c1-convex
 | 
							basic_machine=c1-convex
 | 
				
			||||||
		os=-bsd
 | 
							os=-bsd
 | 
				
			||||||
@@ -541,10 +514,6 @@ case $basic_machine in
 | 
				
			|||||||
		basic_machine=m88k-motorola
 | 
							basic_machine=m88k-motorola
 | 
				
			||||||
		os=-sysv3
 | 
							os=-sysv3
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	dicos)
 | 
					 | 
				
			||||||
		basic_machine=i686-pc
 | 
					 | 
				
			||||||
		os=-dicos
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	djgpp)
 | 
						djgpp)
 | 
				
			||||||
		basic_machine=i586-pc
 | 
							basic_machine=i586-pc
 | 
				
			||||||
		os=-msdosdjgpp
 | 
							os=-msdosdjgpp
 | 
				
			||||||
@@ -699,14 +668,6 @@ case $basic_machine in
 | 
				
			|||||||
		basic_machine=m68k-isi
 | 
							basic_machine=m68k-isi
 | 
				
			||||||
		os=-sysv
 | 
							os=-sysv
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	m68knommu)
 | 
					 | 
				
			||||||
		basic_machine=m68k-unknown
 | 
					 | 
				
			||||||
		os=-linux
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	m68knommu-*)
 | 
					 | 
				
			||||||
		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
 | 
					 | 
				
			||||||
		os=-linux
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	m88k-omron*)
 | 
						m88k-omron*)
 | 
				
			||||||
		basic_machine=m88k-omron
 | 
							basic_machine=m88k-omron
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -852,14 +813,6 @@ case $basic_machine in
 | 
				
			|||||||
		basic_machine=i860-intel
 | 
							basic_machine=i860-intel
 | 
				
			||||||
		os=-osf
 | 
							os=-osf
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	parisc)
 | 
					 | 
				
			||||||
		basic_machine=hppa-unknown
 | 
					 | 
				
			||||||
		os=-linux
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	parisc-*)
 | 
					 | 
				
			||||||
		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
 | 
					 | 
				
			||||||
		os=-linux
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	pbd)
 | 
						pbd)
 | 
				
			||||||
		basic_machine=sparc-tti
 | 
							basic_machine=sparc-tti
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -1068,10 +1021,6 @@ case $basic_machine in
 | 
				
			|||||||
		basic_machine=tic6x-unknown
 | 
							basic_machine=tic6x-unknown
 | 
				
			||||||
		os=-coff
 | 
							os=-coff
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	tile*)
 | 
					 | 
				
			||||||
		basic_machine=tile-unknown
 | 
					 | 
				
			||||||
		os=-linux-gnu
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	tx39)
 | 
						tx39)
 | 
				
			||||||
		basic_machine=mipstx39-unknown
 | 
							basic_machine=mipstx39-unknown
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
@@ -1147,10 +1096,6 @@ case $basic_machine in
 | 
				
			|||||||
		basic_machine=z8k-unknown
 | 
							basic_machine=z8k-unknown
 | 
				
			||||||
		os=-sim
 | 
							os=-sim
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	z80-*-coff)
 | 
					 | 
				
			||||||
		basic_machine=z80-unknown
 | 
					 | 
				
			||||||
		os=-sim
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	none)
 | 
						none)
 | 
				
			||||||
		basic_machine=none-none
 | 
							basic_machine=none-none
 | 
				
			||||||
		os=-none
 | 
							os=-none
 | 
				
			||||||
@@ -1189,7 +1134,7 @@ case $basic_machine in
 | 
				
			|||||||
	we32k)
 | 
						we32k)
 | 
				
			||||||
		basic_machine=we32k-att
 | 
							basic_machine=we32k-att
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 | 
						sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
 | 
				
			||||||
		basic_machine=sh-unknown
 | 
							basic_machine=sh-unknown
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
 | 
						sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
 | 
				
			||||||
@@ -1261,9 +1206,8 @@ case $os in
 | 
				
			|||||||
	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 | 
						-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 | 
				
			||||||
	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
 | 
						      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
 | 
				
			||||||
	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
 | 
						      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
 | 
				
			||||||
	      | -kopensolaris* \
 | 
					 | 
				
			||||||
	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 | 
						      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 | 
				
			||||||
	      | -aos* | -aros* \
 | 
						      | -aos* \
 | 
				
			||||||
	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 | 
						      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 | 
				
			||||||
	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 | 
						      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 | 
				
			||||||
	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
 | 
						      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
 | 
				
			||||||
@@ -1272,7 +1216,7 @@ case $os in
 | 
				
			|||||||
	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 | 
						      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 | 
				
			||||||
	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 | 
						      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 | 
				
			||||||
	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 | 
						      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 | 
				
			||||||
	      | -chorusos* | -chorusrdb* | -cegcc* \
 | 
						      | -chorusos* | -chorusrdb* \
 | 
				
			||||||
	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 | 
						      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 | 
				
			||||||
	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
 | 
						      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
 | 
				
			||||||
	      | -uxpv* | -beos* | -mpeix* | -udk* \
 | 
						      | -uxpv* | -beos* | -mpeix* | -udk* \
 | 
				
			||||||
@@ -1412,9 +1356,6 @@ case $os in
 | 
				
			|||||||
	-zvmoe)
 | 
						-zvmoe)
 | 
				
			||||||
		os=-zvmoe
 | 
							os=-zvmoe
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	-dicos*)
 | 
					 | 
				
			||||||
		os=-dicos
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	-none)
 | 
						-none)
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
	*)
 | 
						*)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								bin/minstall
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								bin/minstall
									
									
									
									
									
								
							@@ -31,7 +31,7 @@ if [ $# -ge 2 ] ; then
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	# Last cmd line arg is the dest dir
 | 
						# Last cmd line arg is the dest dir
 | 
				
			||||||
	for FILE in $@ ; do
 | 
						for FILE in $@ ; do
 | 
				
			||||||
		DESTDIR="$FILE"
 | 
							DEST="$FILE"
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Loop over args, moving them to DEST directory
 | 
						# Loop over args, moving them to DEST directory
 | 
				
			||||||
@@ -42,25 +42,6 @@ if [ $# -ge 2 ] ; then
 | 
				
			|||||||
			exit 0
 | 
								exit 0
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                DEST=$DESTDIR
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                # On CYGWIN, because DLLs are loaded by the native Win32 loader,
 | 
					 | 
				
			||||||
                # they are installed in the executable path.  Stub libraries used
 | 
					 | 
				
			||||||
                # only for linking are installed in the library path
 | 
					 | 
				
			||||||
                case `uname` in
 | 
					 | 
				
			||||||
                    CYGWIN*)
 | 
					 | 
				
			||||||
                        case $FILE in
 | 
					 | 
				
			||||||
                            *.dll)
 | 
					 | 
				
			||||||
                                DEST="$DEST/../bin"
 | 
					 | 
				
			||||||
                                ;;
 | 
					 | 
				
			||||||
                            *)
 | 
					 | 
				
			||||||
                                ;;
 | 
					 | 
				
			||||||
                        esac
 | 
					 | 
				
			||||||
	                ;;
 | 
					 | 
				
			||||||
                    *)
 | 
					 | 
				
			||||||
                        ;;
 | 
					 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		PWDSAVE=`pwd`
 | 
							PWDSAVE=`pwd`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		# determine file's type
 | 
							# determine file's type
 | 
				
			||||||
@@ -85,11 +66,8 @@ if [ $# -ge 2 ] ; then
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		elif [ -f "$FILE" ] ; then
 | 
							elif [ -f "$FILE" ] ; then
 | 
				
			||||||
			#echo "$FILE" is a regular file
 | 
								#echo "$FILE" is a regular file
 | 
				
			||||||
			# Only copy if the files differ
 | 
								$RM "$DEST/`basename $FILE`"
 | 
				
			||||||
			if ! cmp -s $FILE $DEST/`basename $FILE`; then
 | 
								cp "$FILE" "$DEST"
 | 
				
			||||||
				$RM "$DEST/`basename $FILE`"
 | 
					 | 
				
			||||||
				cp "$FILE" "$DEST"
 | 
					 | 
				
			||||||
			fi
 | 
					 | 
				
			||||||
			if [ $MODE ] ; then
 | 
								if [ $MODE ] ; then
 | 
				
			||||||
				FILE=`basename "$FILE"`
 | 
									FILE=`basename "$FILE"`
 | 
				
			||||||
				chmod $MODE "$DEST/$FILE"
 | 
									chmod $MODE "$DEST/$FILE"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										341
									
								
								bin/mklib
									
									
									
									
									
								
							
							
						
						
									
										341
									
								
								bin/mklib
									
									
									
									
									
								
							@@ -25,109 +25,6 @@
 | 
				
			|||||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
					# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Clear CDPATH as the 'cd' command will echo stuff
 | 
					 | 
				
			||||||
# to stdout if it is set
 | 
					 | 
				
			||||||
unset CDPATH
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Given a list of files, look for .a archives and unpack them.
 | 
					 | 
				
			||||||
# Return the original list of files minus the .a files plus the unpacked files.
 | 
					 | 
				
			||||||
# first param:  name of a temp directory (to be deleted when finished)
 | 
					 | 
				
			||||||
# remaining params:  list of .o and .a files
 | 
					 | 
				
			||||||
expand_archives() {
 | 
					 | 
				
			||||||
    DIR=$1
 | 
					 | 
				
			||||||
    shift
 | 
					 | 
				
			||||||
    FILES=$@
 | 
					 | 
				
			||||||
    NEWFILES=""
 | 
					 | 
				
			||||||
    ORIG_DIR=`pwd`
 | 
					 | 
				
			||||||
    mkdir -p "$DIR"
 | 
					 | 
				
			||||||
    cd "$DIR"
 | 
					 | 
				
			||||||
    for FILE in $FILES ; do
 | 
					 | 
				
			||||||
        case $FILE in
 | 
					 | 
				
			||||||
            *.a)
 | 
					 | 
				
			||||||
                # extract the .o files from this .a archive
 | 
					 | 
				
			||||||
                case $FILE in
 | 
					 | 
				
			||||||
                    /*) ;;
 | 
					 | 
				
			||||||
                    *)  FILE="$ORIG_DIR/$FILE" ;;
 | 
					 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
                MEMBERS=`ar t $FILE`
 | 
					 | 
				
			||||||
                ar x $FILE
 | 
					 | 
				
			||||||
                for MEMBER in $MEMBERS ; do
 | 
					 | 
				
			||||||
                    NEWFILES="$NEWFILES $DIR/$MEMBER"
 | 
					 | 
				
			||||||
                done
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            *)
 | 
					 | 
				
			||||||
                # other file type, just add to list
 | 
					 | 
				
			||||||
                NEWFILES="$NEWFILES $FILE"
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
        esac
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    cd "$ORIG_DIR"
 | 
					 | 
				
			||||||
    echo $NEWFILES
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make static library with 'ar'
 | 
					 | 
				
			||||||
# params:
 | 
					 | 
				
			||||||
#    options to ar
 | 
					 | 
				
			||||||
#    1 or 0 to indicate if ranlib should be run
 | 
					 | 
				
			||||||
#    libname to make
 | 
					 | 
				
			||||||
#    list of object files
 | 
					 | 
				
			||||||
# Return name of library we made
 | 
					 | 
				
			||||||
# Example: "make_ar_static_lib -ru 1 libfoo.a foo.o bar.o"
 | 
					 | 
				
			||||||
make_ar_static_lib() {
 | 
					 | 
				
			||||||
    OPTS=$1
 | 
					 | 
				
			||||||
    shift;
 | 
					 | 
				
			||||||
    RANLIB=$1
 | 
					 | 
				
			||||||
    shift;
 | 
					 | 
				
			||||||
    LIBNAME=$1
 | 
					 | 
				
			||||||
    shift;
 | 
					 | 
				
			||||||
    OBJECTS=$@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # remove existing lib, if present
 | 
					 | 
				
			||||||
    rm -f ${LIBNAME}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # make static lib
 | 
					 | 
				
			||||||
    ar ${OPTS} ${LIBNAME} ${OBJECTS}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # run ranlib
 | 
					 | 
				
			||||||
    if [ ${RANLIB} = 1 ] ; then
 | 
					 | 
				
			||||||
        ranlib ${LIBNAME}
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo ${LIBNAME}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Print usage info.
 | 
					 | 
				
			||||||
usage() {
 | 
					 | 
				
			||||||
    echo 'Usage: mklib [options] objects'
 | 
					 | 
				
			||||||
    echo 'Create a shared library from object files.'
 | 
					 | 
				
			||||||
    echo '  -o LIBRARY    specifies the name of the resulting library, without'
 | 
					 | 
				
			||||||
    echo '                the leading "lib" or any suffix.'
 | 
					 | 
				
			||||||
    echo '                (eg: "-o GL" might result in "libGL.so" being made)'
 | 
					 | 
				
			||||||
    echo '  -major N      specifies major version number (default is 1)'
 | 
					 | 
				
			||||||
    echo '  -minor N      specifies minor version number (default is 0)'
 | 
					 | 
				
			||||||
    echo '  -patch N      specifies patch version number (default is 0)'
 | 
					 | 
				
			||||||
    echo '  -lLIBRARY     specifies a dependency on LIBRARY'
 | 
					 | 
				
			||||||
    echo '  -LDIR         search in DIR for library dependencies at build time'
 | 
					 | 
				
			||||||
    echo '  -RDIR         search in DIR for library dependencies at run time'
 | 
					 | 
				
			||||||
    echo '  -linker L     explicity specify the linker program to use (eg: gcc, g++)'
 | 
					 | 
				
			||||||
    echo '                Not observed on all systems at this time.'
 | 
					 | 
				
			||||||
    echo '  -ldflags OPT  specify any additional linker flags in OPT'
 | 
					 | 
				
			||||||
    echo '  -cplusplus    link with C++ runtime'
 | 
					 | 
				
			||||||
    echo '  -static       make a static library (default is dynamic/shared)'
 | 
					 | 
				
			||||||
    echo '  -dlopen       make a shared library suitable for dynamic loading'
 | 
					 | 
				
			||||||
    echo '  -install DIR  put resulting library file(s) in DIR'
 | 
					 | 
				
			||||||
    echo '  -arch ARCH    override using `uname` to determine host system'
 | 
					 | 
				
			||||||
    echo '  -archopt OPT  specify an extra achitecture-specific option OPT'
 | 
					 | 
				
			||||||
    echo '  -altopts OPTS alternate options to override all others'
 | 
					 | 
				
			||||||
    echo "  -noprefix     don't prefix library name with 'lib' nor add any suffix"
 | 
					 | 
				
			||||||
    echo '  -exports FILE only export the symbols listed in FILE'
 | 
					 | 
				
			||||||
    echo '  -id NAME      Sets the id of the dylib (Darwin)'
 | 
					 | 
				
			||||||
    echo '  -h, --help    display this information and exit'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Option defaults
 | 
					# Option defaults
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
@@ -155,7 +52,31 @@ while true
 | 
				
			|||||||
do
 | 
					do
 | 
				
			||||||
    case $1 in
 | 
					    case $1 in
 | 
				
			||||||
	'-h' | '--help')
 | 
						'-h' | '--help')
 | 
				
			||||||
	    usage
 | 
						    echo 'Usage: mklib [options] objects'
 | 
				
			||||||
 | 
						    echo 'Create a shared library from object files.'
 | 
				
			||||||
 | 
						    echo '  -o LIBRARY    specifies the name of the resulting library, without'
 | 
				
			||||||
 | 
						    echo '                the leading "lib" or any suffix.'
 | 
				
			||||||
 | 
						    echo '                (eg: "-o GL" might result in "libGL.so" being made)'
 | 
				
			||||||
 | 
						    echo '  -major N      specifies major version number (default is 1)'
 | 
				
			||||||
 | 
						    echo '  -minor N      specifies minor version number (default is 0)'
 | 
				
			||||||
 | 
						    echo '  -patch N      specifies patch version number (default is 0)'
 | 
				
			||||||
 | 
						    echo '  -lLIBRARY     specifies a dependency on LIBRARY'
 | 
				
			||||||
 | 
						    echo '  -LDIR         search in DIR for library dependencies at build time'
 | 
				
			||||||
 | 
						    echo '  -RDIR         search in DIR for library dependencies at run time'
 | 
				
			||||||
 | 
						    echo '  -linker L     explicity specify the linker program to use (eg: gcc, g++)'
 | 
				
			||||||
 | 
						    echo '                Not observed on all systems at this time.'
 | 
				
			||||||
 | 
						    echo '  -ldflags OPT  specify any additional linker flags in OPT'
 | 
				
			||||||
 | 
						    echo '  -cplusplus    link with C++ runtime'
 | 
				
			||||||
 | 
						    echo '  -static       make a static library (default is dynamic/shared)'
 | 
				
			||||||
 | 
						    echo '  -dlopen       make a shared library suitable for dynamic loading'
 | 
				
			||||||
 | 
						    echo '  -install DIR  put resulting library file(s) in DIR'
 | 
				
			||||||
 | 
						    echo '  -arch ARCH    override using `uname` to determine host system'
 | 
				
			||||||
 | 
						    echo '  -archopt OPT  specify an extra achitecture-specific option OPT'
 | 
				
			||||||
 | 
						    echo '  -altopts OPTS alternate options to override all others'
 | 
				
			||||||
 | 
						    echo "  -noprefix     don't prefix library name with 'lib' nor add any suffix"
 | 
				
			||||||
 | 
						    echo '  -exports FILE only export the symbols listed in FILE'
 | 
				
			||||||
 | 
						    echo '  -id NAME      Sets the id of the dylib (Darwin)'
 | 
				
			||||||
 | 
						    echo '  -h, --help    display this information and exit'
 | 
				
			||||||
	    exit 1
 | 
						    exit 1
 | 
				
			||||||
	    ;;
 | 
						    ;;
 | 
				
			||||||
	'-o')
 | 
						'-o')
 | 
				
			||||||
@@ -255,32 +176,15 @@ if [ ${ARCH} = "auto" ] ; then
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ $STATIC = 1 ]; then
 | 
					 | 
				
			||||||
    # filter out linker options inside object list
 | 
					 | 
				
			||||||
    NEWOBJECTS=""
 | 
					 | 
				
			||||||
    for OBJ in $OBJECTS ; do
 | 
					 | 
				
			||||||
	case $OBJ in
 | 
					 | 
				
			||||||
	    -Wl,*)
 | 
					 | 
				
			||||||
		echo "mklib: warning: ignoring $OBJ for static library"
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	    *)
 | 
					 | 
				
			||||||
		NEWOBJECTS="$NEWOBJECTS $OBJ"
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	esac
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    OBJECTS=$NEWOBJECTS
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Error checking
 | 
					# Error checking
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
if [ "x${LIBNAME}" = "x" ] ; then
 | 
					if [ "x${LIBNAME}" = "x" ] ; then
 | 
				
			||||||
    echo "mklib: Error: no library name specified (-h for help)"
 | 
					    echo "mklib: Error: no library name specified"
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
if [ "x${OBJECTS}" = "x" ] ; then
 | 
					if [ "x${OBJECTS}" = "x" ] ; then
 | 
				
			||||||
    echo "mklib: Error: no object files specified (-h for help)"
 | 
					    echo "mklib: Error: no object files specified"
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -348,24 +252,42 @@ case $ARCH in
 | 
				
			|||||||
            # finish up
 | 
					            # finish up
 | 
				
			||||||
            FINAL_LIBS="${LIBNAME}"
 | 
					            FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
        elif [ $STATIC = 1 ] ; then
 | 
					        elif [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    # make a static .a library
 | 
					 | 
				
			||||||
            LIBNAME="lib${LIBNAME}.a"     # prefix with "lib", suffix with ".a"
 | 
					            LIBNAME="lib${LIBNAME}.a"     # prefix with "lib", suffix with ".a"
 | 
				
			||||||
            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
 | 
					            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
            OPTS="-ru"
 | 
					            OPTS="-ru"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    # expand .a into .o files
 | 
						    # expand any .a objects into constituent .o files.
 | 
				
			||||||
	    NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
 | 
						    NEWOBJECTS=""
 | 
				
			||||||
 | 
						    DELETIA=""
 | 
				
			||||||
 | 
						    for OBJ in ${OBJECTS} ; do
 | 
				
			||||||
 | 
							if [ `expr match $OBJ '.*\.a'` -gt 0 ] ; then
 | 
				
			||||||
 | 
							    # extract the .o files from this .a archive
 | 
				
			||||||
 | 
							    FILES=`ar t $OBJ`
 | 
				
			||||||
 | 
							    ar x $OBJ
 | 
				
			||||||
 | 
							    NEWOBJECTS="$NEWOBJECTS $FILES"
 | 
				
			||||||
 | 
							    # keep track of temporary .o files and delete them below
 | 
				
			||||||
 | 
							    DELETIA="$DELETIA $FILES"
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    # ordinary .o file
 | 
				
			||||||
 | 
							    NEWOBJECTS="$NEWOBJECTS $OBJ"
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
						    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # make static lib
 | 
					            # make lib
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
 | 
					            ${LINK} ${OPTS} ${LIBNAME} ${NEWOBJECTS}
 | 
				
			||||||
 | 
					            ranlib ${LIBNAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    # remove temporary extracted .o files
 | 
						    # remove temporary extracted .o files
 | 
				
			||||||
	    rm -rf ${LIBNAME}.obj
 | 
						    rm -f ${DELETIA}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
	    # make dynamic library
 | 
					 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
						    LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
				
			||||||
	    case $ARCH in 'Linux' | 'GNU' | GNU/*)
 | 
						    case $ARCH in 'Linux' | 'GNU' | GNU/*)
 | 
				
			||||||
		OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
 | 
							OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
 | 
				
			||||||
@@ -426,7 +348,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making SunOS static library: " ${LIBNAME}
 | 
						    echo "mklib: Making SunOS static library: " ${LIBNAME}
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib -ruc 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    if [ $NOPREFIX = 0 ] ; then
 | 
						    if [ $NOPREFIX = 0 ] ; then
 | 
				
			||||||
		LIBNAME="lib${LIBNAME}.so"
 | 
							LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
@@ -494,16 +418,13 @@ case $ARCH in
 | 
				
			|||||||
		OPTS="${OPTS} -Wl,-Mmapfile.scope"
 | 
							OPTS="${OPTS} -Wl,-Mmapfile.scope"
 | 
				
			||||||
	    fi
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    # Check if objects are 64-bit
 | 
						    # Check if objects are SPARC v9
 | 
				
			||||||
	    # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1
 | 
						    # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1
 | 
				
			||||||
	    set ${OBJECTS}
 | 
						    set ${OBJECTS}
 | 
				
			||||||
	    if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then
 | 
						    if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then
 | 
				
			||||||
		ABI64=`file $1 | grep "ELF 64-bit"`
 | 
							SPARCV9=`file $1 | grep SPARCV9`
 | 
				
			||||||
		if [ "${ABI64}" ] ; then
 | 
							if [ "${SPARCV9}" ] ; then
 | 
				
			||||||
		    case `uname -p` in
 | 
							    OPTS="${OPTS} -xarch=v9"
 | 
				
			||||||
			sparc)	    OPTS="${OPTS} -xarch=v9" ;;
 | 
					 | 
				
			||||||
			i386)	    OPTS="${OPTS} -xarch=amd64" ;;
 | 
					 | 
				
			||||||
		    esac
 | 
					 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
	    fi
 | 
						    fi
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
@@ -548,19 +469,13 @@ case $ARCH in
 | 
				
			|||||||
	    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
						    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
	    FINAL_LIBS=${LIBNAME}
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
        elif [ $STATIC = 1 ] ; then
 | 
					        elif [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    # make a static .a library
 | 
					 | 
				
			||||||
	    STLIB="lib${LIBNAME}.a"
 | 
						    STLIB="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making FreeBSD static library: " ${STLIB}
 | 
						    echo "mklib: Making FreeBSD static library: " ${STLIB}
 | 
				
			||||||
 | 
						    rm -f ${STLIB}
 | 
				
			||||||
	    # expand .a into .o files
 | 
						    ar cq ${STLIB} ${OBJECTS}
 | 
				
			||||||
	    NEW_OBJECTS=`expand_archives ${STLIB}.obj $OBJECTS`
 | 
						    ranlib ${STLIB}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${STLIB}
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib cq 1 ${STLIB} ${NEW_OBJECTS}`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    # remove temporary extracted .o files
 | 
					 | 
				
			||||||
	    rm -rf ${STLIB}.obj
 | 
					 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    # make dynamic library
 | 
					 | 
				
			||||||
	    SHLIB="lib${LIBNAME}.so.${MAJOR}"
 | 
						    SHLIB="lib${LIBNAME}.so.${MAJOR}"
 | 
				
			||||||
	    OPTS="-shared -Wl,-soname,${SHLIB}"
 | 
						    OPTS="-shared -Wl,-soname,${SHLIB}"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
@@ -578,7 +493,10 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}_pic.a"
 | 
						    LIBNAME="lib${LIBNAME}_pic.a"
 | 
				
			||||||
	    echo "mklib: Making NetBSD PIC static library: " ${LIBNAME}
 | 
						    echo "mklib: Making NetBSD PIC static library: " ${LIBNAME}
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib cq 1 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar cq ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    ranlib ${LIBNAME}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
 | 
						    LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
 | 
				
			||||||
	    echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
 | 
						    echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
 | 
				
			||||||
@@ -591,7 +509,9 @@ case $ARCH in
 | 
				
			|||||||
    'IRIX' | 'IRIX64')
 | 
					    'IRIX' | 'IRIX64')
 | 
				
			||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib rc 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar rc ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -642,7 +562,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making HP-UX static library: " ${LIBNAME}
 | 
						    echo "mklib: Making HP-UX static library: " ${LIBNAME}
 | 
				
			||||||
    	    FINAL_LIBS=`make_ar_static_lib -ruv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
            # HP uses a .2 for their current GL/GLU libraries
 | 
					            # HP uses a .2 for their current GL/GLU libraries
 | 
				
			||||||
	    if [ ${LIBNAME} = "GL" -o ${LIBNAME} = "GLU" ] ; then
 | 
						    if [ ${LIBNAME} = "GL" -o ${LIBNAME} = "GLU" ] ; then
 | 
				
			||||||
@@ -672,7 +594,8 @@ case $ARCH in
 | 
				
			|||||||
	if [ $STATIC = 1 ] ; then
 | 
						if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making AIX static library: " ${LIBNAME}
 | 
						    echo "mklib: Making AIX static library: " ${LIBNAME}
 | 
				
			||||||
    	    FINAL_LIBS=`make_ar_static_lib -ruv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    ar -ruv ${X64} ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    EXPFILE="lib${LIBNAME}.exp"
 | 
						    EXPFILE="lib${LIBNAME}.exp"
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"  # shared objects are still stored in the .a libraries
 | 
						    LIBNAME="lib${LIBNAME}.a"  # shared objects are still stored in the .a libraries
 | 
				
			||||||
@@ -723,7 +646,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making OSF/1 static library: " ${LIBNAME}
 | 
						    echo "mklib: Making OSF/1 static library: " ${LIBNAME}
 | 
				
			||||||
    	    FINAL_LIBS=`make_ar_static_lib -ruv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    VERSION="${MAJOR}.${MINOR}"
 | 
						    VERSION="${MAJOR}.${MINOR}"
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"
 | 
						    LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
@@ -746,20 +671,12 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
            LIBNAME="lib${LIBNAME}.a"
 | 
					            LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
            echo "mklib: Making Darwin static library: " ${LIBNAME}
 | 
					            echo "mklib: Making Darwin static library: " ${LIBNAME}
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
            OPTS="-ruvs"
 | 
					            OPTS="-ruvs"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
            # expand .a into .o files
 | 
					 | 
				
			||||||
            NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # make static lib
 | 
					 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # remove temporary extracted .o files
 | 
					 | 
				
			||||||
            rm -rf ${LIBNAME}.obj
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            FINAL_LIBS=${LIBNAME}
 | 
					            FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            # On Darwin a .bundle is used for a library that you want to dlopen
 | 
					            # On Darwin a .bundle is used for a library that you want to dlopen
 | 
				
			||||||
@@ -787,10 +704,22 @@ case $ARCH in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	    # examine first object to determine ABI
 | 
						    # examine first object to determine ABI
 | 
				
			||||||
    	    set ${OBJECTS}
 | 
					    	    set ${OBJECTS}
 | 
				
			||||||
            ABIS=`lipo -info $1 | sed s/.*://`
 | 
					            ABI_PPC=`file $1 | grep ' ppc'`
 | 
				
			||||||
            for ABI in $ABIS; do
 | 
					            ABI_I386=`file $1 | grep ' i386'`
 | 
				
			||||||
                OPTS="${OPTS} -arch ${ABI}"
 | 
					            ABI_PPC64=`file $1 | grep ' ppc64'`
 | 
				
			||||||
            done
 | 
					            ABI_X86_64=`file $1 | grep ' x86_64'`
 | 
				
			||||||
 | 
					            if [ "${ABI_PPC}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch ppc"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_I386}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch i386"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_PPC64}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch ppc64"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_X86_64}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch x86_64"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
@@ -818,14 +747,16 @@ case $ARCH in
 | 
				
			|||||||
    'LynxOS')
 | 
					    'LynxOS')
 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	echo "mklib: Making LynxOS static library: " ${LIBNAME}
 | 
						echo "mklib: Making LynxOS static library: " ${LIBNAME}
 | 
				
			||||||
        FINAL_LIBS=`make_ar_static_lib -ru 0 ${LIBNAME} ${OBJECTS}`
 | 
						rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'BeOS')
 | 
					    'BeOS')
 | 
				
			||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
            LIBNAME="lib${LIBNAME}.a"
 | 
					            LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
            echo "mklib: Making BeOS static library: " ${LIBNAME}
 | 
					            echo "mklib: Making BeOS static library: " ${LIBNAME}
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib -cru 0 ${LIBNAME} ${OBJECTS}`
 | 
					            ar -cru "${LIBNAME}" ${OBJECTS}
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"
 | 
						    LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
	    echo "mklib: Making BeOS shared library: " ${LIBNAME}
 | 
						    echo "mklib: Making BeOS shared library: " ${LIBNAME}
 | 
				
			||||||
@@ -904,7 +835,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making AIX GCC static library: " ${LIBNAME}
 | 
						    echo "mklib: Making AIX GCC static library: " ${LIBNAME}
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib ru 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
	    echo "mklib: Making AIX GCC shared library: " ${LIBNAME}
 | 
						    echo "mklib: Making AIX GCC shared library: " ${LIBNAME}
 | 
				
			||||||
@@ -925,65 +858,48 @@ case $ARCH in
 | 
				
			|||||||
	fi
 | 
						fi
 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	echo "mklib: Making static library for Ultrix: " ${LIBNAME}
 | 
						echo "mklib: Making static library for Ultrix: " ${LIBNAME}
 | 
				
			||||||
        FINAL_LIBS=`make_ar_static_lib ru 0 ${LIBNAME} ${OBJECTS}`
 | 
						rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     CYGWIN*)
 | 
					     CYGWIN*)
 | 
				
			||||||
	# GCC-based environment
 | 
						# GCC-based environment
 | 
				
			||||||
 | 
					 | 
				
			||||||
	if [ "x$LINK" = "x" ] ; then
 | 
					 | 
				
			||||||
	    # -linker was not specified so set default link command now
 | 
					 | 
				
			||||||
            if [ $CPLUSPLUS = 1 ] ; then
 | 
					 | 
				
			||||||
                LINK=g++
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
                LINK=gcc
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if [ $NOPREFIX = 1 ] ; then
 | 
					 | 
				
			||||||
	    # No "lib" or ".so" part
 | 
					 | 
				
			||||||
	    echo "mklib: Making CYGWIN shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	    OPTS="-shared -Wl,--enable-auto-image-base"
 | 
					 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
	    rm -f ${LIBNAME}
 | 
					 | 
				
			||||||
	    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} || exit $?
 | 
					 | 
				
			||||||
	    FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
	CYGNAME="cyg${LIBNAME}"     # prefix with "cyg"
 | 
						CYGNAME="cyg${LIBNAME}"     # prefix with "cyg"
 | 
				
			||||||
	LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
						LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME=${LIBNAME}.a
 | 
					            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a
 | 
				
			||||||
            echo "mklib: Making CYGWIN static library: " ${LIBNAME}
 | 
					            LINK="ar"
 | 
				
			||||||
            OPTS="-ru"
 | 
					            OPTS="-ru"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
            # expand .a into .o files
 | 
					            ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS}
 | 
				
			||||||
            NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
 | 
						    ranlib ${LIBNAME}.a
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
 | 
					            FINAL_LIBS=${LIBNAME}.a
 | 
				
			||||||
 | 
					 | 
				
			||||||
            # remove temporary extracted .o files
 | 
					 | 
				
			||||||
            rm -rf ${LIBNAME}.obj
 | 
					 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
	    OPTS="-shared -Wl,--enable-auto-image-base -Wl,-export-all -Wl,--out-implib=${LIBNAME}-${MAJOR}.dll.a"
 | 
						    OPTS="-shared -Wl,-export-all -Wl,--out-implib=${LIBNAME}-${MAJOR}.dll.a"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            echo "mklib: Making CYGWIN shared library: " ${CYGNAME}-${MAJOR}.dll
 | 
					            echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}-${MAJOR}.dll
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
					                LINK="g++"
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                LINK="gcc"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # rm any old libs
 | 
					            # rm any old libs
 | 
				
			||||||
            rm -f ${CYGNAME}-${MAJOR}.dll
 | 
					            rm -f ${LIBNAME}-${MAJOR}.dll
 | 
				
			||||||
            rm -f ${LIBNAME}-${MAJOR}.dll.a
 | 
					 | 
				
			||||||
            rm -f ${LIBNAME}.dll.a
 | 
					            rm -f ${LIBNAME}.dll.a
 | 
				
			||||||
            rm -f ${LIBNAME}.a
 | 
					            rm -f ${LIBNAME}.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # make lib
 | 
					            # make lib
 | 
				
			||||||
            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} || exit $?
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS}
 | 
				
			||||||
            # make usual symlinks
 | 
					            # make usual symlinks
 | 
				
			||||||
            ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
 | 
					            ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
 | 
				
			||||||
            # finish up
 | 
					            # finish up
 | 
				
			||||||
@@ -991,7 +907,6 @@ case $ARCH in
 | 
				
			|||||||
	    # special case for installing in bin
 | 
						    # special case for installing in bin
 | 
				
			||||||
            FINAL_BINS="${CYGNAME}-${MAJOR}.dll"
 | 
					            FINAL_BINS="${CYGNAME}-${MAJOR}.dll"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'example')
 | 
					    'example')
 | 
				
			||||||
@@ -1000,7 +915,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making static library for example arch: " ${LIBNAME}
 | 
						    echo "mklib: Making static library for example arch: " ${LIBNAME}
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib rv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar rv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
	    echo "mklib: Making shared library for example arch: " ${LIBNAME}
 | 
						    echo "mklib: Making shared library for example arch: " ${LIBNAME}
 | 
				
			||||||
@@ -1021,11 +938,5 @@ esac
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
if [ ${INSTALLDIR} != "." ] ; then
 | 
					if [ ${INSTALLDIR} != "." ] ; then
 | 
				
			||||||
    echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
 | 
					    echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
 | 
				
			||||||
    test -d ${INSTALLDIR} || mkdir -p ${INSTALLDIR}
 | 
					 | 
				
			||||||
    mv ${FINAL_LIBS} ${INSTALLDIR}/
 | 
					    mv ${FINAL_LIBS} ${INSTALLDIR}/
 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ "x${FINAL_BINS}" != "x" ] ; then
 | 
					 | 
				
			||||||
        echo "mklib: Installing" ${FINAL_BINS} "in" ${INSTALLDIR}
 | 
					 | 
				
			||||||
        mv ${FINAL_BINS} ${INSTALLDIR}/
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										94
									
								
								common.py
									
									
									
									
									
								
							
							
						
						
									
										94
									
								
								common.py
									
									
									
									
									
								
							@@ -1,94 +0,0 @@
 | 
				
			|||||||
#######################################################################
 | 
					 | 
				
			||||||
# Common SCons code
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import os.path
 | 
					 | 
				
			||||||
import re
 | 
					 | 
				
			||||||
import subprocess
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
import platform as _platform
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import SCons.Script.SConscript
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					 | 
				
			||||||
# Defaults
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
_platform_map = {
 | 
					 | 
				
			||||||
	'linux2': 'linux',
 | 
					 | 
				
			||||||
	'win32': 'windows',
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
default_platform = sys.platform
 | 
					 | 
				
			||||||
default_platform = _platform_map.get(default_platform, default_platform)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Search sys.argv[] for a "platform=foo" argument since we don't have
 | 
					 | 
				
			||||||
# an 'env' variable at this point.
 | 
					 | 
				
			||||||
if 'platform' in SCons.Script.ARGUMENTS:
 | 
					 | 
				
			||||||
    selected_platform = SCons.Script.ARGUMENTS['platform']
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    selected_platform = default_platform
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cross_compiling = selected_platform != default_platform
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
_machine_map = {
 | 
					 | 
				
			||||||
	'x86': 'x86',
 | 
					 | 
				
			||||||
	'i386': 'x86',
 | 
					 | 
				
			||||||
	'i486': 'x86',
 | 
					 | 
				
			||||||
	'i586': 'x86',
 | 
					 | 
				
			||||||
	'i686': 'x86',
 | 
					 | 
				
			||||||
	'ppc' : 'ppc',
 | 
					 | 
				
			||||||
	'x86_64': 'x86_64',
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# find default_machine value
 | 
					 | 
				
			||||||
if 'PROCESSOR_ARCHITECTURE' in os.environ:
 | 
					 | 
				
			||||||
	default_machine = os.environ['PROCESSOR_ARCHITECTURE']
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
	default_machine = _platform.machine()
 | 
					 | 
				
			||||||
default_machine = _machine_map.get(default_machine, 'generic')
 | 
					 | 
				
			||||||
default_toolchain = 'default'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if selected_platform == 'windows' and cross_compiling:
 | 
					 | 
				
			||||||
    default_machine = 'x86'
 | 
					 | 
				
			||||||
    default_toolchain = 'crossmingw'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# find default_llvm value
 | 
					 | 
				
			||||||
if 'LLVM' in os.environ:
 | 
					 | 
				
			||||||
    default_llvm = 'yes'
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    default_llvm = 'no'
 | 
					 | 
				
			||||||
    try:
 | 
					 | 
				
			||||||
        if selected_platform != 'windows' and \
 | 
					 | 
				
			||||||
           subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0:
 | 
					 | 
				
			||||||
            default_llvm = 'yes'
 | 
					 | 
				
			||||||
    except:
 | 
					 | 
				
			||||||
        pass
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					 | 
				
			||||||
# Common options
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def AddOptions(opts):
 | 
					 | 
				
			||||||
	try:
 | 
					 | 
				
			||||||
		from SCons.Variables.BoolVariable import BoolVariable as BoolOption
 | 
					 | 
				
			||||||
	except ImportError:
 | 
					 | 
				
			||||||
		from SCons.Options.BoolOption import BoolOption
 | 
					 | 
				
			||||||
	try:
 | 
					 | 
				
			||||||
		from SCons.Variables.EnumVariable import EnumVariable as EnumOption
 | 
					 | 
				
			||||||
	except ImportError:
 | 
					 | 
				
			||||||
		from SCons.Options.EnumOption import EnumOption
 | 
					 | 
				
			||||||
	opts.Add(EnumOption('build', 'build type', 'debug',
 | 
					 | 
				
			||||||
	                  allowed_values=('debug', 'checked', 'profile', 'release')))
 | 
					 | 
				
			||||||
	opts.Add(BoolOption('quiet', 'quiet command lines', 'yes'))
 | 
					 | 
				
			||||||
	opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
 | 
					 | 
				
			||||||
											 allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
 | 
					 | 
				
			||||||
	opts.Add(EnumOption('platform', 'target platform', default_platform,
 | 
					 | 
				
			||||||
											 allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'embedded', 'cygwin', 'sunos5', 'freebsd8')))
 | 
					 | 
				
			||||||
	opts.Add('toolchain', 'compiler toolchain', default_toolchain)
 | 
					 | 
				
			||||||
	opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
 | 
					 | 
				
			||||||
	opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
 | 
					 | 
				
			||||||
	opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
 | 
					 | 
				
			||||||
	opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
 | 
					 | 
				
			||||||
@@ -14,32 +14,16 @@ ARCH_FLAGS = @ARCH_FLAGS@
 | 
				
			|||||||
ASM_FLAGS = @ASM_FLAGS@
 | 
					ASM_FLAGS = @ASM_FLAGS@
 | 
				
			||||||
PIC_FLAGS = @PIC_FLAGS@
 | 
					PIC_FLAGS = @PIC_FLAGS@
 | 
				
			||||||
DEFINES = @DEFINES@
 | 
					DEFINES = @DEFINES@
 | 
				
			||||||
API_DEFINES = @API_DEFINES@
 | 
					 | 
				
			||||||
GLES_OVERLAY = @GLES_OVERLAY@
 | 
					 | 
				
			||||||
CFLAGS = @CPPFLAGS@ @CFLAGS@ \
 | 
					CFLAGS = @CPPFLAGS@ @CFLAGS@ \
 | 
				
			||||||
	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
 | 
						$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
 | 
				
			||||||
CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ \
 | 
					CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ \
 | 
				
			||||||
	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
						$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			||||||
LDFLAGS = @LDFLAGS@
 | 
					LDFLAGS = @LDFLAGS@
 | 
				
			||||||
EXTRA_LIB_PATH = @EXTRA_LIB_PATH@
 | 
					EXTRA_LIB_PATH = @EXTRA_LIB_PATH@
 | 
				
			||||||
RADEON_CFLAGS = @RADEON_CFLAGS@
 | 
					 | 
				
			||||||
RADEON_LDFLAGS = @RADEON_LDFLAGS@
 | 
					 | 
				
			||||||
INTEL_LIBS = @INTEL_LIBS@
 | 
					 | 
				
			||||||
INTEL_CFLAGS = @INTEL_CFLAGS@
 | 
					 | 
				
			||||||
X11_LIBS = @X11_LIBS@
 | 
					 | 
				
			||||||
X11_CFLAGS = @X11_CFLAGS@
 | 
					 | 
				
			||||||
LLVM_CFLAGS = @LLVM_CFLAGS@
 | 
					 | 
				
			||||||
LLVM_LDFLAGS = @LLVM_LDFLAGS@
 | 
					 | 
				
			||||||
LLVM_LIBS = @LLVM_LIBS@
 | 
					 | 
				
			||||||
GLW_CFLAGS = @GLW_CFLAGS@
 | 
					 | 
				
			||||||
GLUT_CFLAGS = @GLUT_CFLAGS@
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# dlopen
 | 
					# Assembler
 | 
				
			||||||
DLOPEN_LIBS = @DLOPEN_LIBS@
 | 
					ASM_SOURCES = @ASM_SOURCES@
 | 
				
			||||||
 | 
					ASM_API = @ASM_API@
 | 
				
			||||||
# Source selection
 | 
					 | 
				
			||||||
MESA_ASM_SOURCES = @MESA_ASM_SOURCES@
 | 
					 | 
				
			||||||
GLAPI_ASM_SOURCES = @GLAPI_ASM_SOURCES@
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Misc tools and flags
 | 
					# Misc tools and flags
 | 
				
			||||||
MAKE = @MAKE@
 | 
					MAKE = @MAKE@
 | 
				
			||||||
@@ -47,10 +31,9 @@ SHELL = @SHELL@
 | 
				
			|||||||
MKLIB_OPTIONS = @MKLIB_OPTIONS@
 | 
					MKLIB_OPTIONS = @MKLIB_OPTIONS@
 | 
				
			||||||
MKDEP = @MKDEP@
 | 
					MKDEP = @MKDEP@
 | 
				
			||||||
MKDEP_OPTIONS = @MKDEP_OPTIONS@
 | 
					MKDEP_OPTIONS = @MKDEP_OPTIONS@
 | 
				
			||||||
INSTALL = @INSTALL@
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Python and flags (generally only needed by the developers)
 | 
					# Python and flags (generally only needed by the developers)
 | 
				
			||||||
PYTHON2 = @PYTHON2@
 | 
					PYTHON2 = python
 | 
				
			||||||
PYTHON_FLAGS = -t -O -O
 | 
					PYTHON_FLAGS = -t -O -O
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library names (base name)
 | 
					# Library names (base name)
 | 
				
			||||||
@@ -59,9 +42,6 @@ GLU_LIB = GLU
 | 
				
			|||||||
GLUT_LIB = glut
 | 
					GLUT_LIB = glut
 | 
				
			||||||
GLW_LIB = GLw
 | 
					GLW_LIB = GLw
 | 
				
			||||||
OSMESA_LIB = @OSMESA_LIB@
 | 
					OSMESA_LIB = @OSMESA_LIB@
 | 
				
			||||||
GLESv1_CM_LIB = GLESv1_CM
 | 
					 | 
				
			||||||
GLESv2_LIB = GLESv2
 | 
					 | 
				
			||||||
VG_LIB = OpenVG
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library names (actual file names)
 | 
					# Library names (actual file names)
 | 
				
			||||||
GL_LIB_NAME = @GL_LIB_NAME@
 | 
					GL_LIB_NAME = @GL_LIB_NAME@
 | 
				
			||||||
@@ -69,40 +49,19 @@ GLU_LIB_NAME = @GLU_LIB_NAME@
 | 
				
			|||||||
GLUT_LIB_NAME = @GLUT_LIB_NAME@
 | 
					GLUT_LIB_NAME = @GLUT_LIB_NAME@
 | 
				
			||||||
GLW_LIB_NAME = @GLW_LIB_NAME@
 | 
					GLW_LIB_NAME = @GLW_LIB_NAME@
 | 
				
			||||||
OSMESA_LIB_NAME = @OSMESA_LIB_NAME@
 | 
					OSMESA_LIB_NAME = @OSMESA_LIB_NAME@
 | 
				
			||||||
EGL_LIB_NAME = @EGL_LIB_NAME@
 | 
					 | 
				
			||||||
GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@
 | 
					 | 
				
			||||||
GLESv2_LIB_NAME = @GLESv2_LIB_NAME@
 | 
					 | 
				
			||||||
VG_LIB_NAME = @VG_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@
 | 
					 | 
				
			||||||
EGL_LIB_GLOB = @EGL_LIB_GLOB@
 | 
					 | 
				
			||||||
GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@
 | 
					 | 
				
			||||||
GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@
 | 
					 | 
				
			||||||
VG_LIB_GLOB = @VG_LIB_GLOB@
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories to build
 | 
					# Directories to build
 | 
				
			||||||
LIB_DIR = @LIB_DIR@
 | 
					LIB_DIR = @LIB_DIR@
 | 
				
			||||||
SRC_DIRS = @SRC_DIRS@
 | 
					SRC_DIRS = @SRC_DIRS@
 | 
				
			||||||
GLU_DIRS = @GLU_DIRS@
 | 
					GLU_DIRS = @GLU_DIRS@
 | 
				
			||||||
DRIVER_DIRS = @DRIVER_DIRS@
 | 
					DRIVER_DIRS = @DRIVER_DIRS@
 | 
				
			||||||
EGL_DRIVERS_DIRS = @EGL_DRIVERS_DIRS@
 | 
					# Which subdirs under $(TOP)/progs/ to enter:
 | 
				
			||||||
GALLIUM_DIRS = @GALLIUM_DIRS@
 | 
					PROGRAM_DIRS = @PROGRAM_DIRS@
 | 
				
			||||||
GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@
 | 
					 | 
				
			||||||
GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@
 | 
					 | 
				
			||||||
GALLIUM_TARGET_DIRS = @GALLIUM_TARGET_DIRS@
 | 
					 | 
				
			||||||
GALLIUM_STATE_TRACKERS_DIRS = @GALLIUM_STATE_TRACKERS_DIRS@
 | 
					 | 
				
			||||||
GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Driver specific build vars
 | 
					# Driver specific build vars
 | 
				
			||||||
DRI_DIRS = @DRI_DIRS@ 
 | 
					DRI_DIRS = @DRI_DIRS@
 | 
				
			||||||
EGL_PLATFORMS = @EGL_PLATFORMS@
 | 
					WINDOW_SYSTEM = @WINDOW_SYSTEM@
 | 
				
			||||||
EGL_CLIENT_APIS = @EGL_CLIENT_APIS@
 | 
					USING_EGL = @USING_EGL@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
X11_INCLUDES = @X11_INCLUDES@
 | 
					X11_INCLUDES = @X11_INCLUDES@
 | 
				
			||||||
@@ -115,7 +74,6 @@ MOTIF_CFLAGS = @MOTIF_CFLAGS@
 | 
				
			|||||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) @GL_LIB_DEPS@
 | 
					GL_LIB_DEPS = $(EXTRA_LIB_PATH) @GL_LIB_DEPS@
 | 
				
			||||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_DEPS@ \
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_DEPS@ \
 | 
				
			||||||
	$(EXTRA_LIB_PATH) @OSMESA_LIB_DEPS@
 | 
						$(EXTRA_LIB_PATH) @OSMESA_LIB_DEPS@
 | 
				
			||||||
EGL_LIB_DEPS = $(EXTRA_LIB_PATH) @EGL_LIB_DEPS@
 | 
					 | 
				
			||||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLU_MESA_DEPS@ \
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLU_MESA_DEPS@ \
 | 
				
			||||||
	$(EXTRA_LIB_PATH) @GLU_LIB_DEPS@
 | 
						$(EXTRA_LIB_PATH) @GLU_LIB_DEPS@
 | 
				
			||||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLUT_MESA_DEPS@ \
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLUT_MESA_DEPS@ \
 | 
				
			||||||
@@ -123,9 +81,6 @@ GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLUT_MESA_DEPS@ \
 | 
				
			|||||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \
 | 
				
			||||||
	$(EXTRA_LIB_PATH) @GLW_LIB_DEPS@
 | 
						$(EXTRA_LIB_PATH) @GLW_LIB_DEPS@
 | 
				
			||||||
APP_LIB_DEPS = $(EXTRA_LIB_PATH) @APP_LIB_DEPS@
 | 
					APP_LIB_DEPS = $(EXTRA_LIB_PATH) @APP_LIB_DEPS@
 | 
				
			||||||
GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv1_CM_LIB_DEPS@
 | 
					 | 
				
			||||||
GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv2_LIB_DEPS@
 | 
					 | 
				
			||||||
VG_LIB_DEPS = $(EXTRA_LIB_PATH) @VG_LIB_DEPS@
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# DRI dependencies
 | 
					# DRI dependencies
 | 
				
			||||||
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@
 | 
					DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@
 | 
				
			||||||
@@ -149,13 +104,7 @@ INSTALL_INC_DIR = $(includedir)
 | 
				
			|||||||
DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@
 | 
					DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Where libGL will look for DRI hardware drivers
 | 
					# Where libGL will look for DRI hardware drivers
 | 
				
			||||||
DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@
 | 
					DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 | 
				
			||||||
 | 
					 | 
				
			||||||
# EGL driver install directory
 | 
					 | 
				
			||||||
EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Xorg driver install directory (for xorg state-tracker)
 | 
					 | 
				
			||||||
XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# pkg-config substitutions
 | 
					# pkg-config substitutions
 | 
				
			||||||
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
 | 
					GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
 | 
				
			||||||
@@ -174,23 +123,3 @@ GLW_PC_LIB_PRIV = @GLW_PC_LIB_PRIV@
 | 
				
			|||||||
GLW_PC_CFLAGS = @GLW_PC_CFLAGS@
 | 
					GLW_PC_CFLAGS = @GLW_PC_CFLAGS@
 | 
				
			||||||
OSMESA_PC_REQ = @OSMESA_PC_REQ@
 | 
					OSMESA_PC_REQ = @OSMESA_PC_REQ@
 | 
				
			||||||
OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@
 | 
					OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@
 | 
				
			||||||
GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@
 | 
					 | 
				
			||||||
GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@
 | 
					 | 
				
			||||||
EGL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
 | 
					 | 
				
			||||||
EGL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@
 | 
					 | 
				
			||||||
EGL_PC_CFLAGS = @GL_PC_CFLAGS@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@
 | 
					 | 
				
			||||||
XCB_DRI2_LIBS = @XCB_DRI2_LIBS@
 | 
					 | 
				
			||||||
LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@
 | 
					 | 
				
			||||||
LIBUDEV_LIBS = @LIBUDEV_LIBS@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_LLVM = @MESA_LLVM@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LLVM_VERSION = @LLVM_VERSION@
 | 
					 | 
				
			||||||
ifneq ($(LLVM_VERSION),)
 | 
					 | 
				
			||||||
  HAVE_LLVM := 0x0$(subst .,0,$(LLVM_VERSION:svn=))
 | 
					 | 
				
			||||||
  DEFINES += -DHAVE_LLVM=$(HAVE_LLVM)
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,8 +26,8 @@ ifeq ($(CPU), x86)
 | 
				
			|||||||
		-DUSE_3DNOW_ASM \
 | 
							-DUSE_3DNOW_ASM \
 | 
				
			||||||
		-DUSE_SSE_ASM
 | 
							-DUSE_SSE_ASM
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
						ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
	GLAPI_ASM_SOURCES = $(X86_API)
 | 
						ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CC = gcc
 | 
						CC = gcc
 | 
				
			||||||
	CXX = g++
 | 
						CXX = g++
 | 
				
			||||||
@@ -90,9 +90,10 @@ else
 | 
				
			|||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = gallium mesa glu glut/beos
 | 
					SRC_DIRS = mesa glu glut/beos
 | 
				
			||||||
GLU_DIRS = sgi
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
DRIVER_DIRS = beos
 | 
					DRIVER_DIRS = beos
 | 
				
			||||||
 | 
					PROGRAM_DIRS = beos samples redbook demos tests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
GL_LIB_DEPS = 
 | 
					GL_LIB_DEPS = 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			|||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			|||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,6 +23,7 @@ OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			|||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,16 +10,13 @@ X11_DIR = $(INSTALL_DIR)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Compiler and flags
 | 
					# Compiler and flags
 | 
				
			||||||
CC = gcc
 | 
					CC = gcc
 | 
				
			||||||
CXX = g++
 | 
					CXX = gcc
 | 
				
			||||||
PIC_FLAGS = -fPIC
 | 
					PIC_FLAGS = -fPIC
 | 
				
			||||||
DEFINES =  -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \
 | 
					DEFINES =  -D_DARWIN_C_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L \
 | 
				
			||||||
	   -DGLX_ALIAS_UNSUPPORTED \
 | 
						   -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS \
 | 
				
			||||||
	   -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL
 | 
						   -DGLX_ALIAS_UNSUPPORTED -DGLX_INDIRECT_RENDERING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# -DGLX_INDIRECT_RENDERING \
 | 
					# -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx/x11
 | 
				
			||||||
 | 
					 | 
				
			||||||
# -D_GNU_SOURCE          - for src/mesa/main ...
 | 
					 | 
				
			||||||
# -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx
 | 
					 | 
				
			||||||
# -DGLX_USE_APPLEGL      - supposed to be used with GLX_DIRECT_RENDERING to use AGL rather than DRM, but doesn't compile
 | 
					# -DGLX_USE_APPLEGL      - supposed to be used with GLX_DIRECT_RENDERING to use AGL rather than DRM, but doesn't compile
 | 
				
			||||||
# -DIN_DRI_DRIVER
 | 
					# -DIN_DRI_DRIVER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -52,8 +49,9 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X
 | 
				
			|||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# omit glw lib for now:
 | 
					# omit glw lib for now:
 | 
				
			||||||
SRC_DIRS = glsl mapi/glapi mapi/vgapi glx/apple mesa gallium glu glut/glx
 | 
					SRC_DIRS = glx/x11 mesa glu glut/glx
 | 
				
			||||||
GLU_DIRS = sgi
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
#DRIVER_DIRS = dri
 | 
					#DRIVER_DIRS = dri
 | 
				
			||||||
DRI_DIRS = swrast
 | 
					DRI_DIRS = swrast
 | 
				
			||||||
 | 
					PROGRAM_DIRS = xdemos
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ CONFIG_NAME = default
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Version info
 | 
					# Version info
 | 
				
			||||||
MESA_MAJOR=7
 | 
					MESA_MAJOR=7
 | 
				
			||||||
MESA_MINOR=10
 | 
					MESA_MINOR=3
 | 
				
			||||||
MESA_TINY=0
 | 
					MESA_TINY=0
 | 
				
			||||||
MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY)
 | 
					MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -19,17 +19,11 @@ DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			|||||||
# Compiler and flags
 | 
					# Compiler and flags
 | 
				
			||||||
CC = cc
 | 
					CC = cc
 | 
				
			||||||
CXX = CC
 | 
					CXX = CC
 | 
				
			||||||
HOST_CC = $(CC)
 | 
					 | 
				
			||||||
CFLAGS = -O
 | 
					CFLAGS = -O
 | 
				
			||||||
CXXFLAGS = -O
 | 
					CXXFLAGS = -O
 | 
				
			||||||
LDFLAGS =
 | 
					LDFLAGS =
 | 
				
			||||||
HOST_CFLAGS = $(CFLAGS)
 | 
					 | 
				
			||||||
GLU_CFLAGS = 
 | 
					GLU_CFLAGS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Compiler for building demos/tests/etc
 | 
					 | 
				
			||||||
APP_CC = $(CC)
 | 
					 | 
				
			||||||
APP_CXX = $(CXX)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Misc tools and flags
 | 
					# Misc tools and flags
 | 
				
			||||||
SHELL = /bin/sh
 | 
					SHELL = /bin/sh
 | 
				
			||||||
MKLIB = $(SHELL) $(TOP)/bin/mklib
 | 
					MKLIB = $(SHELL) $(TOP)/bin/mklib
 | 
				
			||||||
@@ -37,10 +31,7 @@ MKLIB_OPTIONS =
 | 
				
			|||||||
MKDEP = makedepend
 | 
					MKDEP = makedepend
 | 
				
			||||||
MKDEP_OPTIONS = -fdepend
 | 
					MKDEP_OPTIONS = -fdepend
 | 
				
			||||||
MAKE = make
 | 
					MAKE = make
 | 
				
			||||||
 | 
					INSTALL = $(SHELL) $(TOP)/bin/minstall
 | 
				
			||||||
# Use MINSTALL for installing libraries, INSTALL for everything else
 | 
					 | 
				
			||||||
MINSTALL = $(SHELL) $(TOP)/bin/minstall
 | 
					 | 
				
			||||||
INSTALL = $(MINSTALL)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Tools for regenerating glapi (generally only needed by the developers)
 | 
					# Tools for regenerating glapi (generally only needed by the developers)
 | 
				
			||||||
PYTHON2 = python
 | 
					PYTHON2 = python
 | 
				
			||||||
@@ -54,10 +45,6 @@ GLU_LIB = GLU
 | 
				
			|||||||
GLUT_LIB = glut
 | 
					GLUT_LIB = glut
 | 
				
			||||||
GLW_LIB = GLw
 | 
					GLW_LIB = GLw
 | 
				
			||||||
OSMESA_LIB = OSMesa
 | 
					OSMESA_LIB = OSMesa
 | 
				
			||||||
EGL_LIB = EGL
 | 
					 | 
				
			||||||
GLESv1_CM_LIB = GLESv1_CM
 | 
					 | 
				
			||||||
GLESv2_LIB = GLESv2
 | 
					 | 
				
			||||||
VG_LIB = OpenVG
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library names (actual file names)
 | 
					# Library names (actual file names)
 | 
				
			||||||
@@ -66,10 +53,6 @@ GLU_LIB_NAME = lib$(GLU_LIB).so
 | 
				
			|||||||
GLUT_LIB_NAME = lib$(GLUT_LIB).so
 | 
					GLUT_LIB_NAME = lib$(GLUT_LIB).so
 | 
				
			||||||
GLW_LIB_NAME = lib$(GLW_LIB).so
 | 
					GLW_LIB_NAME = lib$(GLW_LIB).so
 | 
				
			||||||
OSMESA_LIB_NAME = lib$(OSMESA_LIB).so
 | 
					OSMESA_LIB_NAME = lib$(OSMESA_LIB).so
 | 
				
			||||||
EGL_LIB_NAME = lib$(EGL_LIB).so
 | 
					 | 
				
			||||||
GLESv1_CM_LIB_NAME = lib$(GLESv1_CM_LIB).so
 | 
					 | 
				
			||||||
GLESv2_LIB_NAME = lib$(GLESv2_LIB).so
 | 
					 | 
				
			||||||
VG_LIB_NAME = lib$(VG_LIB).so
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# globs used to install the lib and all symlinks
 | 
					# globs used to install the lib and all symlinks
 | 
				
			||||||
GL_LIB_GLOB = $(GL_LIB_NAME)*
 | 
					GL_LIB_GLOB = $(GL_LIB_NAME)*
 | 
				
			||||||
@@ -77,13 +60,9 @@ GLU_LIB_GLOB = $(GLU_LIB_NAME)*
 | 
				
			|||||||
GLUT_LIB_GLOB = $(GLUT_LIB_NAME)*
 | 
					GLUT_LIB_GLOB = $(GLUT_LIB_NAME)*
 | 
				
			||||||
GLW_LIB_GLOB = $(GLW_LIB_NAME)*
 | 
					GLW_LIB_GLOB = $(GLW_LIB_NAME)*
 | 
				
			||||||
OSMESA_LIB_GLOB = $(OSMESA_LIB_NAME)*
 | 
					OSMESA_LIB_GLOB = $(OSMESA_LIB_NAME)*
 | 
				
			||||||
EGL_LIB_GLOB = $(EGL_LIB_NAME)*
 | 
					 | 
				
			||||||
GLESv1_CM_LIB_GLOB = $(GLESv1_CM_LIB_NAME)*
 | 
					 | 
				
			||||||
GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)*
 | 
					 | 
				
			||||||
VG_LIB_GLOB = $(VG_LIB_NAME)*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Optional assembly language optimization files for libGL
 | 
					# Optional assembly language optimization files for libGL
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in
 | 
					# GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in
 | 
				
			||||||
# order to build the Motif widget too)
 | 
					# order to build the Motif widget too)
 | 
				
			||||||
@@ -93,45 +72,24 @@ MOTIF_CFLAGS = -I/usr/include/Motif1.2
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Directories to build
 | 
					# Directories to build
 | 
				
			||||||
LIB_DIR = lib
 | 
					LIB_DIR = lib
 | 
				
			||||||
SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
 | 
					SRC_DIRS = mesa glu glut/glx glw
 | 
				
			||||||
	gallium egl gallium/winsys gallium/targets glu glut/glx glw
 | 
					 | 
				
			||||||
GLU_DIRS = sgi
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
DRIVER_DIRS = x11 osmesa
 | 
					DRIVER_DIRS = x11 osmesa
 | 
				
			||||||
 | 
					# Which subdirs under $(TOP)/progs/ to enter:
 | 
				
			||||||
 | 
					PROGRAM_DIRS = demos redbook samples glsl xdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# EGL drivers to build
 | 
					 | 
				
			||||||
EGL_DRIVERS_DIRS = glx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Gallium directories and 
 | 
					 | 
				
			||||||
GALLIUM_DIRS = auxiliary drivers state_trackers
 | 
					 | 
				
			||||||
GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS = softpipe trace rbug identity galahad i915 i965 svga r300 nvfx nv50 failover
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
 | 
					 | 
				
			||||||
GALLIUM_WINSYS_DIRS = sw sw/xlib
 | 
					 | 
				
			||||||
GALLIUM_TARGET_DIRS = libgl-xlib
 | 
					 | 
				
			||||||
GALLIUM_STATE_TRACKERS_DIRS = glx vega
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# native platforms EGL should support
 | 
					 | 
				
			||||||
EGL_PLATFORMS = x11
 | 
					 | 
				
			||||||
EGL_CLIENT_APIS = $(GL_LIB)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library dependencies
 | 
					# Library dependencies
 | 
				
			||||||
#EXTRA_LIB_PATH ?=
 | 
					#EXTRA_LIB_PATH ?=
 | 
				
			||||||
GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
 | 
					GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
 | 
				
			||||||
EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -ldl -lpthread
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
				
			||||||
GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXi -lm
 | 
				
			||||||
GLUT_LIB_DEPS   = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lm
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
 | 
				
			||||||
GLW_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -lX11
 | 
					 | 
				
			||||||
APP_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
					 | 
				
			||||||
GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
 | 
					 | 
				
			||||||
GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
 | 
					 | 
				
			||||||
VG_LIB_DEPS    = $(EXTRA_LIB_PATH) -lpthread
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Program dependencies - specific GL/glut libraries added in Makefiles
 | 
					# Program dependencies - specific GL/glut libraries added in Makefiles
 | 
				
			||||||
APP_LIB_DEPS = -lm
 | 
					APP_LIB_DEPS = -lm
 | 
				
			||||||
X11_LIBS = -lX11
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
DLOPEN_LIBS = -ldl
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Installation directories (for make install)
 | 
					# Installation directories (for make install)
 | 
				
			||||||
INSTALL_DIR = /usr/local
 | 
					INSTALL_DIR = /usr/local
 | 
				
			||||||
@@ -142,12 +100,6 @@ DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri
 | 
				
			|||||||
# Where libGL will look for DRI hardware drivers
 | 
					# Where libGL will look for DRI hardware drivers
 | 
				
			||||||
DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 | 
					DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# EGL driver install directory
 | 
					 | 
				
			||||||
EGL_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/egl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Xorg driver install directory (for xorg state-tracker)
 | 
					 | 
				
			||||||
XORG_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/xorg/modules/drivers
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# pkg-config substitutions
 | 
					# pkg-config substitutions
 | 
				
			||||||
GL_PC_REQ_PRIV =
 | 
					GL_PC_REQ_PRIV =
 | 
				
			||||||
GL_PC_LIB_PRIV =
 | 
					GL_PC_LIB_PRIV =
 | 
				
			||||||
@@ -165,12 +117,3 @@ GLW_PC_LIB_PRIV =
 | 
				
			|||||||
GLW_PC_CFLAGS =
 | 
					GLW_PC_CFLAGS =
 | 
				
			||||||
OSMESA_PC_REQ =
 | 
					OSMESA_PC_REQ =
 | 
				
			||||||
OSMESA_PC_LIB_PRIV =
 | 
					OSMESA_PC_LIB_PRIV =
 | 
				
			||||||
GLESv1_CM_PC_REQ_PRIV =
 | 
					 | 
				
			||||||
GLESv1_CM_PC_LIB_PRIV =
 | 
					 | 
				
			||||||
GLESv1_CM_PC_CFLAGS =
 | 
					 | 
				
			||||||
GLESv2_PC_REQ_PRIV =
 | 
					 | 
				
			||||||
GLESv2_PC_LIB_PRIV =
 | 
					 | 
				
			||||||
GLESv2_PC_CFLAGS =
 | 
					 | 
				
			||||||
VG_PC_REQ_PRIV =
 | 
					 | 
				
			||||||
VG_PC_LIB_PRIV =
 | 
					 | 
				
			||||||
VG_PC_CFLAGS =
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,7 +27,6 @@ CFLAGS += -fno-strict-aliasing
 | 
				
			|||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
					LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
				
			||||||
@@ -41,11 +40,15 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGL -lXt -lX11
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = glx gallium mesa glu glut/glx glw
 | 
					SRC_DIRS = glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
DRIVER_DIRS = dri
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRM_SOURCE_PATH=$(TOP)/../drm
 | 
					DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ffb and gamma are missing because they have not been converted to use the new
 | 
				
			||||||
 | 
					# interface.
 | 
				
			||||||
DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
 | 
					DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
 | 
				
			||||||
	   unichrome savage sis
 | 
						   unichrome savage sis
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,5 +6,5 @@ include $(TOP)/configs/freebsd-dri
 | 
				
			|||||||
CONFIG_NAME = freebsd-dri-x86-64
 | 
					CONFIG_NAME = freebsd-dri-x86-64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_64_ASM
 | 
					ASM_FLAGS = -DUSE_X86_64_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86-64_SOURCES)
 | 
					ASM_SOURCES = $(X86-64_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86-64_API)
 | 
					ASM_API = $(X86-64_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,5 +9,5 @@ CONFIG_NAME = freebsd-dri-x86
 | 
				
			|||||||
PIC_FLAGS = 
 | 
					PIC_FLAGS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,12 +22,11 @@ DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
X11_INCLUDES = -I/usr/X11R6/include
 | 
					X11_INCLUDES = -I/usr/X11R6/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS = -Wall -Wmissing-prototypes -Wdeclaration-after-statement \
 | 
					CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
				
			||||||
	-Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
						$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math 
 | 
				
			||||||
	$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
CXXFLAGS = -Wall -Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
					CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
				
			||||||
	$(DEFINES) $(X11_INCLUDES)
 | 
						$(X11_INCLUDES) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Work around aliasing bugs - developers should comment this out
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,72 +0,0 @@
 | 
				
			|||||||
# linux-cell  (non-debug build)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-cell
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Omiting other gallium drivers:
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS = cell softpipe trace rbug identity
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Compiler and flags
 | 
					 | 
				
			||||||
CC = ppu32-gcc
 | 
					 | 
				
			||||||
CXX = ppu32-g++
 | 
					 | 
				
			||||||
HOST_CC = gcc
 | 
					 | 
				
			||||||
APP_CC = gcc
 | 
					 | 
				
			||||||
APP_CXX = g++
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -O3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Cell SDK location
 | 
					 | 
				
			||||||
## For SDK 2.1: (plus, remove -DSPU_MAIN_PARAM_LONG_LONG below)
 | 
					 | 
				
			||||||
#SDK = /opt/ibm/cell-sdk/prototype/sysroot/usr
 | 
					 | 
				
			||||||
## For SDK 3.0:
 | 
					 | 
				
			||||||
SDK = /opt/cell/sdk/usr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COMMON_C_CPP_FLAGS = $(OPT_FLAGS) -Wall -Winline \
 | 
					 | 
				
			||||||
	-fPIC -m32 -mabi=altivec -maltivec \
 | 
					 | 
				
			||||||
	-I. -I$(SDK)/include \
 | 
					 | 
				
			||||||
	-DGALLIUM_CELL $(DEFINES)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CFLAGS = $(COMMON_C_CPP_FLAGS) -Wmissing-prototypes -std=c99
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CXXFLAGS = $(COMMON_C_CPP_FLAGS)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Omitting glw here:
 | 
					 | 
				
			||||||
SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
 | 
					 | 
				
			||||||
	gallium gallium/winsys gallium/targets glu glut/glx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Build no traditional Mesa drivers:
 | 
					 | 
				
			||||||
DRIVER_DIRS =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MKDEP_OPTIONS = -fdepend -Y
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread \
 | 
					 | 
				
			||||||
	-L$(SDK)/lib -m32 -Wl,-m,elf32ppc -R$(SDK)/lib -lspe2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CELL_SPU_LIB = $(TOP)/src/gallium/drivers/cell/spu/g3d_spu.a
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### SPU stuff
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_CC = spu-gcc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_CFLAGS = $(OPT_FLAGS) -W -Wall -Winline -Wmissing-prototypes -Wno-main \
 | 
					 | 
				
			||||||
	-I. -I$(SDK)/spu/include -I$(TOP)/src/mesa/ $(INCLUDE_DIRS) \
 | 
					 | 
				
			||||||
	-DSPU_MAIN_PARAM_LONG_LONG \
 | 
					 | 
				
			||||||
	-include spu_intrinsics.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_LFLAGS = -L$(SDK)/spu/lib -Wl,-N -lmisc -lm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_AR = ppu-ar
 | 
					 | 
				
			||||||
SPU_AR_FLAGS = -qcs
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_EMBED = ppu32-embedspu
 | 
					 | 
				
			||||||
SPU_EMBED_FLAGS = -m32
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
# linux-cell-debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-cell
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# just override name and OPT_FLAGS here:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-cell-debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -g -DDEBUG
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -4,6 +4,5 @@ include $(TOP)/configs/linux
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-debug
 | 
					CONFIG_NAME = linux-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS = -g
 | 
					OPT_FLAGS = -g -ansi -pedantic
 | 
				
			||||||
#CFLAGS += -pedantic
 | 
					 | 
				
			||||||
DEFINES += -DDEBUG -DDEBUG_MATH
 | 
					DEFINES += -DDEBUG -DDEBUG_MATH
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										38
									
								
								configs/linux-directfb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								configs/linux-directfb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# Configuration for DirectFB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-directfb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC  = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS   = -Wall -O3 -ffast-math -fPIC -std=c99 -D_GNU_SOURCE -D_POSIX_SOURCE -D_SVID_SOURCE \
 | 
				
			||||||
 | 
					         -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -Wall -O3 -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HAVE_X86 = $(shell uname -m | grep 'i[3-6]86' >/dev/null && echo yes)
 | 
				
			||||||
 | 
					ifeq ($(HAVE_X86), yes)
 | 
				
			||||||
 | 
					     CFLAGS   += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					     CXXFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					     ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					     ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS     = mesa glu glut/directfb
 | 
				
			||||||
 | 
					GLU_DIRS     = sgi
 | 
				
			||||||
 | 
					DRIVER_DIRS  = directfb
 | 
				
			||||||
 | 
					PROGRAM_DIRS = demos directfb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS   = -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB)
 | 
				
			||||||
 | 
					APP_LIB_DEPS  = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB) -l$(GLUT_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -13,7 +13,7 @@ CXX = g++
 | 
				
			|||||||
#MKDEP = gcc -M
 | 
					#MKDEP = gcc -M
 | 
				
			||||||
#MKDEP_OPTIONS = -MF depend
 | 
					#MKDEP_OPTIONS = -MF depend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS  = -O2 -g
 | 
					OPT_FLAGS  = -O -g
 | 
				
			||||||
PIC_FLAGS  = -fPIC
 | 
					PIC_FLAGS  = -fPIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
 | 
					# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
 | 
				
			||||||
@@ -38,34 +38,37 @@ GLUT_CFLAGS = -fexceptions
 | 
				
			|||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
					EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 | 
					LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
				
			||||||
LIBDRM_LIB = $(shell pkg-config --libs libdrm)
 | 
					LIBDRM_LIB = `pkg-config --libs libdrm`
 | 
				
			||||||
DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
 | 
					DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
 | 
				
			||||||
GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
					GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
				
			||||||
		-lm -lpthread -ldl $(LIBDRM_LIB)
 | 
							-lm -lpthread -ldl $(LIBDRM_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# This is now 0 by default since it seems to confuse the hell out of people
 | 
				
			||||||
SRC_DIRS := glx egl $(SRC_DIRS)
 | 
					# and generate a lot of extra noise on bugzilla.  If you need to build with
 | 
				
			||||||
 | 
					# EGL, do 'make linux-dri USING_EGL=1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# EGL directories
 | 
					USING_EGL=0
 | 
				
			||||||
EGL_DRIVERS_DIRS = glx
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					ifeq ($(USING_EGL), 1)
 | 
				
			||||||
 | 
					SRC_DIRS = egl glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
 | 
					PROGRAM_DIRS = egl xdemos
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					SRC_DIRS = glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
 | 
					PROGRAM_DIRS = xdemos
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRIVER_DIRS = dri
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel drm/i965
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
GALLIUM_TARGET_DIRS = 
 | 
					 | 
				
			||||||
GALLIUM_STATE_TRACKERS_DIRS = egl
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon \
 | 
					# gamma are missing because they have not been converted to use the new
 | 
				
			||||||
	savage sis tdfx unichrome swrast
 | 
					# interface.
 | 
				
			||||||
 | 
					DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
 | 
				
			||||||
INTEL_LIBS = `pkg-config --libs libdrm_intel`
 | 
						savage sis tdfx trident unichrome ffb
 | 
				
			||||||
INTEL_CFLAGS = `pkg-config --cflags libdrm_intel`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RADEON_LIBS = `pkg-config --libs libdrm_radeon`
 | 
					 | 
				
			||||||
RADEON_CFLAGS = `pkg-config --cflags libdrm_radeon`
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,6 @@ ARCH_FLAGS = -DDEBUG
 | 
				
			|||||||
#DRI_DIRS = i915tex i915 
 | 
					#DRI_DIRS = i915tex i915 
 | 
				
			||||||
#DRI_DIRS = i965
 | 
					#DRI_DIRS = i965
 | 
				
			||||||
#DRI_DIRS = radeon r200 r300
 | 
					#DRI_DIRS = radeon r200 r300
 | 
				
			||||||
#DRI_DIRS = unichrome sis
 | 
					#DRI_DIRS = unichrome sis trident
 | 
				
			||||||
#DRI_DIRS = i810 mga r128 tdfx
 | 
					#DRI_DIRS = i810 mga r128 tdfx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ OPT_FLAGS = -Os -mcpu=603
 | 
				
			|||||||
PIC_FLAGS = -fPIC
 | 
					PIC_FLAGS = -fPIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_PPC_ASM -DUSE_VMX_ASM
 | 
					ASM_FLAGS = -DUSE_PPC_ASM -DUSE_VMX_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(PPC_SOURCES)
 | 
					ASM_SOURCES = $(PPC_SOURCES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Build only the drivers for cards that exist on PowerPC.  At some point MGA
 | 
					# Build only the drivers for cards that exist on PowerPC.  At some point MGA
 | 
				
			||||||
# will be added, but not yet.
 | 
					# will be added, but not yet.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,9 +5,10 @@ include $(TOP)/configs/linux-dri
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-dri-x86
 | 
					CONFIG_NAME = linux-dri-x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARCH_FLAGS = -m32 -mmmx -msse -msse2
 | 
					# Add -m32 to CFLAGS:
 | 
				
			||||||
 | 
					ARCH_FLAGS = -m32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,15 +8,15 @@ CONFIG_NAME = linux-dri-x86-64
 | 
				
			|||||||
ARCH_FLAGS = -m64
 | 
					ARCH_FLAGS = -m64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_64_ASM
 | 
					ASM_FLAGS = -DUSE_X86_64_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86-64_SOURCES)
 | 
					ASM_SOURCES = $(X86-64_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86-64_API)
 | 
					ASM_API = $(X86-64_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIB_DIR = lib64
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib64
 | 
					EXTRA_LIB_PATH=-L/usr/X11R6/lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# sis is missing because it has not been converted to use
 | 
					# ffb, gamma, and sis are missing because they have not be converted to use
 | 
				
			||||||
# the new interface.  i810 are missing because there is no x86-64
 | 
					# the new interface.  i810 are missing because there is no x86-64
 | 
				
			||||||
# system where they could *ever* be used.
 | 
					# system where they could *ever* be used.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
 | 
				
			|||||||
	-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
						-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
				
			||||||
        -DHAVE_ALIAS -DUSE_XCB -DHAVE_POSIX_MEMALIGN
 | 
					        -DHAVE_ALIAS -DUSE_XCB -DHAVE_POSIX_MEMALIGN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
X11_INCLUDES = $(shell pkg-config --cflags-only-I x11) $(shell pkg-config --cflags-only-I xcb) $(shell pkg-config --cflags-only-I x11-xcb) $(shell pkg-config --cflags-only-I xcb-glx)
 | 
					X11_INCLUDES = `pkg-config --cflags-only-I x11` `pkg-config --cflags-only-I xcb` `pkg-config --cflags-only-I x11-xcb` `pkg-config --cflags-only-I xcb-glx`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
					CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
				
			||||||
	$(DEFINES) $(ASM_FLAGS) -std=c99 -ffast-math 
 | 
						$(DEFINES) $(ASM_FLAGS) -std=c99 -ffast-math 
 | 
				
			||||||
@@ -36,19 +36,38 @@ CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			|||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=$(shell pkg-config --libs-only-L x11)
 | 
					EXTRA_LIB_PATH=`pkg-config --libs-only-L x11`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 | 
					LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
				
			||||||
LIBDRM_LIB = $(shell pkg-config --libs libdrm)
 | 
					LIBDRM_LIB = `pkg-config --libs libdrm`
 | 
				
			||||||
DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
 | 
					DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
 | 
				
			||||||
GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \
 | 
					GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
				
			||||||
                $(LIBDRM_LIB) $(shell pkg-config --libs xcb) $(shell pkg-config --libs x11-xcb) $(shell pkg-config --libs xcb-glx)
 | 
							-lm -lpthread -ldl $(LIBDRM_LIB) `pkg-config --libs xcb` \
 | 
				
			||||||
 | 
							`pkg-config --libs x11-xcb` `pkg-config --libs xcb-glx`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SRC_DIRS = glx gallium mesa glu glut/glx glw
 | 
					
 | 
				
			||||||
 | 
					# This is now 0 by default since it seems to confuse the hell out of people
 | 
				
			||||||
 | 
					# and generate a lot of extra noise on bugzilla.  If you need to build with
 | 
				
			||||||
 | 
					# EGL, do 'make linux-dri USING_EGL=1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USING_EGL=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					ifeq ($(USING_EGL), 1)
 | 
				
			||||||
 | 
					SRC_DIRS = egl glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
 | 
					PROGRAM_DIRS = egl xdemos
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					SRC_DIRS = glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
 | 
					PROGRAM_DIRS = xdemos
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRIVER_DIRS = dri
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon \
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
	savage sis tdfx unichrome
 | 
					
 | 
				
			||||||
 | 
					# gamma are missing because they have not been converted to use the new
 | 
				
			||||||
 | 
					# interface.
 | 
				
			||||||
 | 
					DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon s3v \
 | 
				
			||||||
 | 
						savage sis tdfx trident unichrome ffb 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,56 +0,0 @@
 | 
				
			|||||||
# -*-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++
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#MKDEP = /usr/X11R6/bin/makedepend
 | 
					 | 
				
			||||||
#MKDEP = gcc -M
 | 
					 | 
				
			||||||
#MKDEP_OPTIONS = -MF depend
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS  = -O -g
 | 
					 | 
				
			||||||
PIC_FLAGS  = -fPIC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
 | 
					 | 
				
			||||||
ARCH_FLAGS ?=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
 | 
					 | 
				
			||||||
	-D_BSD_SOURCE -D_GNU_SOURCE \
 | 
					 | 
				
			||||||
	-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
 | 
					 | 
				
			||||||
	-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
					 | 
				
			||||||
	-DHAVE_ALIAS -DHAVE_POSIX_MEMALIGN
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
X11_INCLUDES = -I/usr/X11R6/include
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CFLAGS = -Wall -Wmissing-prototypes -std=c99 -ffast-math \
 | 
					 | 
				
			||||||
	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) $(ASM_FLAGS)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Library/program dependencies
 | 
					 | 
				
			||||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 | 
					 | 
				
			||||||
LIBDRM_LIB = $(shell pkg-config --libs libdrm)
 | 
					 | 
				
			||||||
DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
 | 
					 | 
				
			||||||
GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
					 | 
				
			||||||
		-lm -lpthread -ldl \
 | 
					 | 
				
			||||||
                $(LIBDRM_LIB)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Directories
 | 
					 | 
				
			||||||
SRC_DIRS = gallium mesa gallium/winsys gallium/targets glu egl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DRIVER_DIRS = dri
 | 
					 | 
				
			||||||
GALLIUM_WINSYS_DIRS = egl_drm
 | 
					 | 
				
			||||||
GALLIUM_TARGET_DIRS =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DRI_DIRS = intel 
 | 
					 | 
				
			||||||
@@ -4,13 +4,14 @@ include $(TOP)/configs/linux
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-fbdev
 | 
					CONFIG_NAME = linux-fbdev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS += -DUSE_GLFBDEV_DRIVER
 | 
					CFLAGS = -O3 -ffast-math -ansi -pedantic -fPIC -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS -DUSE_GLFBDEV_DRIVER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Work around aliasing bugs - developers should comment this out
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SRC_DIRS += glut/fbdev
 | 
					SRC_DIRS = mesa glu glut/fbdev
 | 
				
			||||||
DRIVER_DIRS = fbdev osmesa
 | 
					DRIVER_DIRS = fbdev osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = fbdev demos redbook samples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread
 | 
					GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread
 | 
				
			||||||
OSMESA_LIB_DEPS = -lm -lpthread
 | 
					OSMESA_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										23
									
								
								configs/linux-glide
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								configs/linux-glide
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# Configuration for generic Linux with 3Dfx Glide driver
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-glide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DFX -I/usr/include/glide -I/usr/local/glide/include
 | 
				
			||||||
 | 
					CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
 | 
				
			||||||
@@ -1,9 +0,0 @@
 | 
				
			|||||||
# Configuration for standalone mode i965 debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-i965
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM_DRIVER_DIRS = i965
 | 
					 | 
				
			||||||
GALLIUM_WINSYS_DIRS = drm/i965/xlib
 | 
					 | 
				
			||||||
GALLIUM_TARGET_DIRS =
 | 
					 | 
				
			||||||
@@ -16,7 +16,7 @@ GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
 | 
				
			|||||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,5 +23,5 @@ GL_LIB_DEPS =
 | 
				
			|||||||
GLUT_LIB_DEPS =
 | 
					GLUT_LIB_DEPS =
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -lpthread -lcxa -lunwind
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -lpthread -lcxa -lunwind
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,7 +37,7 @@ CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			|||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
					EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
				
			||||||
@@ -47,5 +47,7 @@ GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = glx glu glut/glx glw
 | 
					SRC_DIRS = glx/x11 glu glut/glx glw
 | 
				
			||||||
DRIVER_DIRS =
 | 
					DRIVER_DIRS =
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,44 +0,0 @@
 | 
				
			|||||||
# -*-makefile-*-
 | 
					 | 
				
			||||||
# Configuration for Linux and LLVM with optimizations
 | 
					 | 
				
			||||||
# Builds the llvmpipe gallium driver
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-llvm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add llvmpipe driver
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS += llvmpipe
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -O3 -ansi -pedantic
 | 
					 | 
				
			||||||
ARCH_FLAGS = -mmmx -msse -msse2 -mstackrealign
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEFINES += -DNDEBUG -DGALLIUM_LLVMPIPE -DHAVE_UDIS86
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# override -std=c99
 | 
					 | 
				
			||||||
CFLAGS += -std=gnu99
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LLVM_VERSION := $(shell llvm-config --version)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(LLVM_VERSION),)
 | 
					 | 
				
			||||||
  $(warning Could not find LLVM! Make Sure 'llvm-config' is in the path)
 | 
					 | 
				
			||||||
  MESA_LLVM=0
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  MESA_LLVM=1
 | 
					 | 
				
			||||||
  HAVE_LLVM := 0x0$(subst .,0,$(LLVM_VERSION:svn=))
 | 
					 | 
				
			||||||
  DEFINES += -DHAVE_LLVM=$(HAVE_LLVM)
 | 
					 | 
				
			||||||
#  $(info Using LLVM version: $(LLVM_VERSION))
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(MESA_LLVM),1)
 | 
					 | 
				
			||||||
  LLVM_CFLAGS=`llvm-config --cppflags`
 | 
					 | 
				
			||||||
  LLVM_CXXFLAGS=`llvm-config --cxxflags backend bitreader engine ipo interpreter instrumentation` -Wno-long-long
 | 
					 | 
				
			||||||
  LLVM_LDFLAGS = $(shell llvm-config --ldflags backend bitreader engine ipo interpreter instrumentation)
 | 
					 | 
				
			||||||
  LLVM_LIBS = $(shell llvm-config --libs backend bitwriter bitreader engine ipo interpreter instrumentation)
 | 
					 | 
				
			||||||
  MKLIB_OPTIONS=-cplusplus
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  LLVM_CFLAGS=
 | 
					 | 
				
			||||||
  LLVM_CXXFLAGS=
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LD = g++
 | 
					 | 
				
			||||||
GL_LIB_DEPS = $(LLVM_LDFLAGS) $(LLVM_LIBS) $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread -lstdc++ -ludis86
 | 
					 | 
				
			||||||
@@ -1,12 +0,0 @@
 | 
				
			|||||||
# -*-makefile-*-
 | 
					 | 
				
			||||||
# Configuration for Linux and LLVM with debugging info
 | 
					 | 
				
			||||||
# Builds the llvmpipe gallium driver
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-llvm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-llvm-debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -g -ansi -pedantic
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEFINES += -DDEBUG -UNDEBUG
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,28 +0,0 @@
 | 
				
			|||||||
# Configuration for OpenGL ES on Linux
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-opengl-es
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Directories to build
 | 
					 | 
				
			||||||
LIB_DIR = lib
 | 
					 | 
				
			||||||
SRC_DIRS = egl glsl mapi/es1api mapi/es2api mesa/es \
 | 
					 | 
				
			||||||
	gallium gallium/winsys gallium/targets
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# egl st needs this
 | 
					 | 
				
			||||||
DEFINES += -DGLX_DIRECT_RENDERING
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# no mesa or egl drivers
 | 
					 | 
				
			||||||
DRIVER_DIRS =
 | 
					 | 
				
			||||||
EGL_DRIVERS_DIRS =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS = softpipe
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# build libGLES*.so
 | 
					 | 
				
			||||||
GALLIUM_STATE_TRACKERS_DIRS = es
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# build egl_x11_{swrast,i915}.so
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS += trace rbug i915
 | 
					 | 
				
			||||||
GALLIUM_STATE_TRACKERS_DIRS += egl
 | 
					 | 
				
			||||||
GALLIUM_WINSYS_DIRS += drm/intel
 | 
					 | 
				
			||||||
GALLIUM_TARGET_DIRS += egl-swrast egl-i915
 | 
					 | 
				
			||||||
@@ -9,7 +9,7 @@ CONFIG_NAME = linux-osmesa
 | 
				
			|||||||
# Compiler and flags
 | 
					# Compiler and flags
 | 
				
			||||||
CC = gcc
 | 
					CC = gcc
 | 
				
			||||||
CXX = g++
 | 
					CXX = g++
 | 
				
			||||||
CFLAGS = -g -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -DPTHREADS
 | 
					CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS
 | 
				
			||||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
					CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Work around aliasing bugs - developers should comment this out
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
@@ -17,11 +17,12 @@ CFLAGS += -fno-strict-aliasing
 | 
				
			|||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mapi/glapi glsl mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
OSMESA_LIB_DEPS = -lm -lpthread -ldl
 | 
					OSMESA_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
				
			||||||
APP_LIB_DEPS = -lm -lpthread
 | 
					APP_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,36 +0,0 @@
 | 
				
			|||||||
# Configuration for building static libOSMesa.a on Linux, no Xlib driver
 | 
					 | 
				
			||||||
# This doesn't really have any Linux dependencies, so it should be usable
 | 
					 | 
				
			||||||
# on other (gcc-based) systems.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/default
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-osmesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Compiler and flags
 | 
					 | 
				
			||||||
CC = gcc -m32
 | 
					 | 
				
			||||||
CXX = g++ -m32
 | 
					 | 
				
			||||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS
 | 
					 | 
				
			||||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MKLIB_OPTIONS = -static
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Library names (actual file names)
 | 
					 | 
				
			||||||
GL_LIB_NAME = libGL.a
 | 
					 | 
				
			||||||
GLU_LIB_NAME = libGLU.a
 | 
					 | 
				
			||||||
GLUT_LIB_NAME = libglut.a
 | 
					 | 
				
			||||||
GLW_LIB_NAME = libGLw.a
 | 
					 | 
				
			||||||
OSMESA_LIB_NAME = libOSMesa.a
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Directories
 | 
					 | 
				
			||||||
SRC_DIRS = mesa glu
 | 
					 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Dependencies
 | 
					 | 
				
			||||||
GL_LIB_DEPS =
 | 
					 | 
				
			||||||
OSMESA_LIB_DEPS =
 | 
					 | 
				
			||||||
GLU_LIB_DEPS =
 | 
					 | 
				
			||||||
GLUT_LIB_DEPS =
 | 
					 | 
				
			||||||
GLW_LIB_DEPS =
 | 
					 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
 | 
					 | 
				
			||||||
               $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lpthread -lstdc++ -lm
 | 
					 | 
				
			||||||
@@ -20,8 +20,9 @@ OSMESA_LIB_NAME = libOSMesa16.so
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mapi/glapi glsl mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,8 +22,9 @@ OSMESA_LIB_NAME = libOSMesa16.a
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = gallium mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,8 +20,9 @@ OSMESA_LIB_NAME = libOSMesa32.so
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mapi/glapi glsl mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,29 @@
 | 
				
			|||||||
# Configuration for profiling on Linux with gprof
 | 
					# Configuration for profiling on Linux with gprof
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include $(TOP)/configs/linux-static
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-profile
 | 
					CONFIG_NAME = linux-profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS = -pg -g -O2
 | 
					# Compiler and flags
 | 
				
			||||||
DEFINES += -DNDEBUG
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -pg -O -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -pg -O -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Need to have -L/usr/X11R6/lib in these:
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Need to make static libs for profiling:
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					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).a
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										54
									
								
								configs/linux-solo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								configs/linux-solo
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					# Configuration for linux-solo: Linux DRI hardware drivers for fbdev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-solo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WARN_FLAGS = -Wall -Wundef
 | 
				
			||||||
 | 
					OPT_FLAGS  = -O3 -g
 | 
				
			||||||
 | 
					PIC_FLAGS  = -fPIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
 | 
				
			||||||
 | 
					ARCH_FLAGS ?=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DRM and pciaccess
 | 
				
			||||||
 | 
					LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
				
			||||||
 | 
					LIBDRM_LIB = `pkg-config --libs libdrm`
 | 
				
			||||||
 | 
					PCIACCESS_CFLAGS = `pkg-config --cflags pciaccess`
 | 
				
			||||||
 | 
					PCIACCESS_LIB = `pkg-config --libs pciaccess`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
 | 
				
			||||||
 | 
						-D_BSD_SOURCE -D_GNU_SOURCE -DHAVE_POSIX_MEMALIGN \
 | 
				
			||||||
 | 
						-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
 | 
				
			||||||
 | 
						-DHAVE_ALIAS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
				
			||||||
 | 
						$(ASM_FLAGS) -std=c99 -ffast-math 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(TOP)/$(LIB_DIR) $(PCIACCESS_LIB)
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -lm -lpthread -ldl
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS = glx/mini mesa glu glut/mini
 | 
				
			||||||
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
 | 
					PROGRAM_DIRS = miniglx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#DRI_DIRS = ffb gamma sis savage tdfx unichrome fb
 | 
				
			||||||
 | 
					DRI_DIRS = i810 i915tex i915 mach64 mga r128 r200 radeon
 | 
				
			||||||
							
								
								
									
										7
									
								
								configs/linux-solo-ia64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								configs/linux-solo-ia64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					# Configuration for linux-solo-ia64: Linux DRI hardware drivers for fbdev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/linux-solo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-solo-ia64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DRI_DIRS = fb mach64 mga r128 r200 radeon sis tdfx unichrome
 | 
				
			||||||
							
								
								
									
										10
									
								
								configs/linux-solo-x86
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								configs/linux-solo-x86
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					# -*-makefile-*-
 | 
				
			||||||
 | 
					# Configuration for linux-solo-x86: Linux hardware drivers for fbdev for x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/linux-solo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-solo-x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
@@ -5,5 +5,5 @@ include $(TOP)/configs/linux
 | 
				
			|||||||
CONFIG_NAME = linux-sparc
 | 
					CONFIG_NAME = linux-sparc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ASM_FLAGS = -DUSE_SPARC_ASM
 | 
					#ASM_FLAGS = -DUSE_SPARC_ASM
 | 
				
			||||||
#MESA_ASM_SOURCES = $(SPARC_SOURCES)
 | 
					#ASM_SOURCES = $(SPARC_SOURCES)
 | 
				
			||||||
#GLAPI_ASM_SOURCES = $(SPARC_API)
 | 
					#ASM_API = $(SPARC_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,5 +22,5 @@ GLUT_LIB_DEPS =
 | 
				
			|||||||
GLW_LIB_DEPS = 
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Need to specify all libraries we may need
 | 
					# Need to specify all libraries we may need
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) \
 | 
					APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \
 | 
				
			||||||
	-l$(GL_LIB) -lm -L/usr/X11R6/lib/ -lX11 -lXext -lXmu -lXi -lpthread
 | 
						-lstdc++ -lm
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,8 +4,6 @@ include $(TOP)/configs/linux
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-x86
 | 
					CONFIG_NAME = linux-x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARCH_FLAGS = -m32 -mmmx -msse -msse2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,8 @@ CONFIG_NAME = linux-x86-64
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ARCH_FLAGS = -m64
 | 
					ARCH_FLAGS = -m64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86-64_SOURCES)
 | 
					ASM_SOURCES = $(X86-64_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86-64_API)
 | 
					ASM_API = $(X86-64_API)
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_64_ASM
 | 
					ASM_FLAGS = -DUSE_X86_64_ASM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIB_DIR = lib64
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,5 +4,4 @@ include $(TOP)/configs/linux-x86-64
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-x86-64-debug
 | 
					CONFIG_NAME = linux-x86-64-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS = -g
 | 
					 | 
				
			||||||
DEFINES += -DDEBUG -DDEBUG_MATH
 | 
					DEFINES += -DDEBUG -DDEBUG_MATH
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +0,0 @@
 | 
				
			|||||||
# Configuration for profiling on Linux for 64-bit X86 (Opteron) with gprof
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-x86-64-static
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-x86-64-profile
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -pg -g -O2
 | 
					 | 
				
			||||||
DEFINES += -DNDEBUG
 | 
					 | 
				
			||||||
@@ -20,8 +20,5 @@ OSMESA_LIB_DEPS =
 | 
				
			|||||||
GLU_LIB_DEPS = 
 | 
					GLU_LIB_DEPS = 
 | 
				
			||||||
GLUT_LIB_DEPS = 
 | 
					GLUT_LIB_DEPS = 
 | 
				
			||||||
GLW_LIB_DEPS = 
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \
 | 
				
			||||||
# Need to specify all libraries we may need
 | 
						-lstdc++ -lm
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -Wl,--start-group \
 | 
					 | 
				
			||||||
               -l$(GL_LIB) $(TOP)/src/mesa/pipe/softpipe/libsoftpipe.a -Wl,--end-group \
 | 
					 | 
				
			||||||
               $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread -lstdc++ -lm
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								configs/linux-x86-glide
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								configs/linux-x86-glide
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					# Configuration for Linux with 3Dfx Glide driver and x86 optimizations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-x86-glide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -Wall -O3 -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 -DFX -I/usr/include/glide -I/usr/local/glide/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
 | 
				
			||||||
@@ -1,8 +0,0 @@
 | 
				
			|||||||
# Configuration for profiling on Linux with x86 optimizations with gprof
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-x86-static
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-x86-profile
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -pg -g -O2
 | 
					 | 
				
			||||||
DEFINES += -DNDEBUG
 | 
					 | 
				
			||||||
@@ -20,7 +20,5 @@ OSMESA_LIB_DEPS =
 | 
				
			|||||||
GLU_LIB_DEPS = 
 | 
					GLU_LIB_DEPS = 
 | 
				
			||||||
GLUT_LIB_DEPS = 
 | 
					GLUT_LIB_DEPS = 
 | 
				
			||||||
GLW_LIB_DEPS = 
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \
 | 
				
			||||||
# Need to specify all libraries we may need
 | 
						-lstdc++ -lm
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) \
 | 
					 | 
				
			||||||
	-l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread -lstdc++ -lm
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,8 +16,8 @@ ARCH_FLAGS ?=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
DEFINES = -D_REENTRANT -DUSE_XSHM
 | 
					DEFINES = -D_REENTRANT -DUSE_XSHM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(SPARC_SOURCES)
 | 
					ASM_SOURCES = $(SPARC_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(SPARC_API)
 | 
					ASM_API = $(SPARC_API)
 | 
				
			||||||
ASM_FLAGS = -DUSE_SPARC_ASM
 | 
					ASM_FLAGS = -DUSE_SPARC_ASM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
					CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1121
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										1121
									
								
								configure.ac
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										22
									
								
								descrip.mms
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								descrip.mms
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# Makefile for Mesa for VMS
 | 
				
			||||||
 | 
					# contributed by Jouk Jansen  joukj@hrem.stm.tudelft.nl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					macro : 
 | 
				
			||||||
 | 
					        @ macro=""
 | 
				
			||||||
 | 
					.ifdef NOSHARE
 | 
				
			||||||
 | 
					.else
 | 
				
			||||||
 | 
						@ if f$getsyi("HW_MODEL") .ge. 1024 then macro= "/MACRO=(SHARE=1)"
 | 
				
			||||||
 | 
					.endif
 | 
				
			||||||
 | 
						$(MMS)$(MMSQUALIFIERS)'macro' all
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all :
 | 
				
			||||||
 | 
						if f$search("lib.dir") .eqs. "" then create/directory [.lib]
 | 
				
			||||||
 | 
						set default [.src]
 | 
				
			||||||
 | 
						$(MMS)$(MMSQUALIFIERS)
 | 
				
			||||||
 | 
						set default [-.progs.util]
 | 
				
			||||||
 | 
						$(MMS)$(MMSQUALIFIERS)
 | 
				
			||||||
 | 
						set default [-.demos]
 | 
				
			||||||
 | 
						$(MMS)$(MMSQUALIFIERS)
 | 
				
			||||||
 | 
						set default [-.xdemos]
 | 
				
			||||||
 | 
						$(MMS)$(MMSQUALIFIERS)
 | 
				
			||||||
 | 
						if f$search("[-]tests.DIR") .nes. "" then pipe set default [-.tests] ; $(MMS)$(MMSQUALIFIERS)
 | 
				
			||||||
							
								
								
									
										114
									
								
								docs/GL3.txt
									
									
									
									
									
								
							
							
						
						
									
										114
									
								
								docs/GL3.txt
									
									
									
									
									
								
							@@ -1,114 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
Status of OpenGL 3.x features in Mesa
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: when an item is marked as "DONE" it means all the core Mesa
 | 
					 | 
				
			||||||
infrastructure is complete but it may be the case that few (if any) drivers
 | 
					 | 
				
			||||||
implement the features.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Feature                                               Status
 | 
					 | 
				
			||||||
----------------------------------------------------- ------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL 3.0:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLSL changes (GL_EXT_gpu_shader4, etc)                not started
 | 
					 | 
				
			||||||
Conditional rendering (GL_NV_conditional_render)      DONE (swrast & softpipe)
 | 
					 | 
				
			||||||
Map buffer subranges (GL_ARB_map_buffer_range)        DONE
 | 
					 | 
				
			||||||
Float textures, renderbuffers                         some infrastructure done
 | 
					 | 
				
			||||||
 (incl. GL_EXT_packed_float, GL_EXT_shared_exponent)
 | 
					 | 
				
			||||||
Framebuffer objects (GL_EXT_framebuffer_object)       DONE
 | 
					 | 
				
			||||||
Half-float                                            some infrastructure done
 | 
					 | 
				
			||||||
Multisample blit                                      DONE
 | 
					 | 
				
			||||||
Non-normalized Integer texture/framebuffer formats    ~50% done
 | 
					 | 
				
			||||||
1D/2D Texture arrays                                  core Mesa, swrast done
 | 
					 | 
				
			||||||
Packed depth/stencil formats                          DONE
 | 
					 | 
				
			||||||
Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE
 | 
					 | 
				
			||||||
GL_EXT_texture_compression_rgtc                       not started
 | 
					 | 
				
			||||||
Red and red/green texture formats                     DONE (swrast, i965, gallium)
 | 
					 | 
				
			||||||
Transform feedback (GL_EXT_transform_feedback)        ~50% done
 | 
					 | 
				
			||||||
   glBindFragDataLocation, glGetFragDataLocation,
 | 
					 | 
				
			||||||
   glBindBufferRange, glBindBufferBase commands
 | 
					 | 
				
			||||||
Vertex array objects (GL_APPLE_vertex_array_object)   DONE
 | 
					 | 
				
			||||||
sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     not started
 | 
					 | 
				
			||||||
glClearBuffer commands                                DONE
 | 
					 | 
				
			||||||
glGetStringi command                                  DONE
 | 
					 | 
				
			||||||
glTexParameterI, glGetTexParameterI commands          DONE
 | 
					 | 
				
			||||||
glVertexAttribI commands                              DONE (but converts int
 | 
					 | 
				
			||||||
                                                            values to floats)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL 3.1:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLSL 1.30 and 1.40                                    not started
 | 
					 | 
				
			||||||
Instanced drawing (GL_ARB_draw_instanced)             ~50% done
 | 
					 | 
				
			||||||
Buffer copying (GL_ARB_copy_buffer)                   DONE
 | 
					 | 
				
			||||||
Primitive restart (GL_NV_primitive_restart)           DONE (gallium)
 | 
					 | 
				
			||||||
16 vertex texture image units                         not started
 | 
					 | 
				
			||||||
Texture buffer objs (GL_ARB_texture_buffer_object)    not started
 | 
					 | 
				
			||||||
Rectangular textures (GL_ARB_texture_rectangle)       DONE
 | 
					 | 
				
			||||||
Uniform buffer objs (GL_ARB_uniform_buffer_object)    not started
 | 
					 | 
				
			||||||
Signed normalized texture formats                     ~50% done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL 3.2:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Core/compatibility profiles                           not started
 | 
					 | 
				
			||||||
GLSL 1.50                                             not started
 | 
					 | 
				
			||||||
Geometry shaders (GL_ARB_geometry_shader4)            partially done (Zack)
 | 
					 | 
				
			||||||
BGRA vertex order (GL_ARB_vertex_array_bgra)          DONE
 | 
					 | 
				
			||||||
Base vertex offset(GL_ARB_draw_elements_base_vertex)  DONE
 | 
					 | 
				
			||||||
Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (swrast, gallium)
 | 
					 | 
				
			||||||
Provoking vertex (GL_ARB_provoking_vertex)            DONE
 | 
					 | 
				
			||||||
Seamless cubemaps (GL_ARB_seamless_cube_map)          DONE, mostly?
 | 
					 | 
				
			||||||
Multisample textures (GL_ARB_texture_multisample)     not started
 | 
					 | 
				
			||||||
Frag depth clamp (GL_ARB_depth_clamp)                 DONE
 | 
					 | 
				
			||||||
Fence objects (GL_ARB_sync)                           DONE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL 3.3:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLSL 3.30                                             not started
 | 
					 | 
				
			||||||
GL_ARB_blend_func_extended                            not started
 | 
					 | 
				
			||||||
GL_ARB_explicit_attrib_location                       DONE (swrast, i915, i965)
 | 
					 | 
				
			||||||
GL_ARB_occlusion_query2                               not started
 | 
					 | 
				
			||||||
GL_ARB_sampler_objects                                not started
 | 
					 | 
				
			||||||
GL_ARB_texture_rgb10_a2ui                             not started
 | 
					 | 
				
			||||||
GL_ARB_texture_swizzle                                DONE (same as EXT version)
 | 
					 | 
				
			||||||
GL_ARB_timer_query                                    DONE (only Xlib sw driver)
 | 
					 | 
				
			||||||
GL_ARB_instanced_arrays                               not started
 | 
					 | 
				
			||||||
GL_ARB_vertex_type_2_10_10_10_rev                     not started
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL 4.0:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLSL 4.0                                             not started
 | 
					 | 
				
			||||||
GL_ARB_texture_query_lod                             not started
 | 
					 | 
				
			||||||
GL_ARB_draw_buffers_blend                            not started
 | 
					 | 
				
			||||||
GL_ARB_draw_indirect                                 not started
 | 
					 | 
				
			||||||
GL_ARB_gpu_shader_fp64                               not started
 | 
					 | 
				
			||||||
GL_ARB_sample_shading                                not started
 | 
					 | 
				
			||||||
GL_ARB_shader_subroutine                             not started
 | 
					 | 
				
			||||||
GL_ARB_tessellation_shader                           not started
 | 
					 | 
				
			||||||
GL_ARB_texture_buffer_object_rgb32                   not started
 | 
					 | 
				
			||||||
GL_ARB_texture_cube_map_array                        not started
 | 
					 | 
				
			||||||
GL_ARB_texture_gather                                not started
 | 
					 | 
				
			||||||
GL_ARB_transform_feedback2                           not started
 | 
					 | 
				
			||||||
GL_ARB_transform_feedback3                           not started
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL 4.1:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLSL 4.1                                             not started
 | 
					 | 
				
			||||||
GL_ARB_ES2_compatibility                             not started
 | 
					 | 
				
			||||||
GL_ARB_get_program_binary                            not started
 | 
					 | 
				
			||||||
GL_ARB_separate_shader_objects                       some infrastructure done
 | 
					 | 
				
			||||||
GL_ARB_shader_precision                              not started
 | 
					 | 
				
			||||||
GL_ARB_vertex_attrib_64bit                           not started
 | 
					 | 
				
			||||||
GL_ARB_viewport_array                                not started
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
More info about these features and the work involved can be found at
 | 
					 | 
				
			||||||
http://dri.freedesktop.org/wiki/MissingFunctionality
 | 
					 | 
				
			||||||
@@ -1,149 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_drm_image
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EGL_MESA_drm_image
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Kristian Høgsberg <krh@bitplanet.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Proposal
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Version 2, August 25, 2010
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EGL Extension #not assigned
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Reguires EGL 1.4 or later.  This extension is written against the
 | 
					 | 
				
			||||||
    wording of the EGL 1.4 specification.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EGL_KHR_base_image is required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension provides entry points for integrating EGLImage with the
 | 
					 | 
				
			||||||
    Linux DRM mode setting and memory management drivers.  The extension
 | 
					 | 
				
			||||||
    lets applications create EGLImages without a client API resource and
 | 
					 | 
				
			||||||
    lets the application get the DRM buffer handles.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Open-source; freely implementable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy,
 | 
					 | 
				
			||||||
                                      const EGLint *attrib_list);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy,
 | 
					 | 
				
			||||||
                                     EGLImageKHR image,
 | 
					 | 
				
			||||||
                                     EGLint *name,
 | 
					 | 
				
			||||||
				     EGLint *handle,
 | 
					 | 
				
			||||||
				     EGLint *stride);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted in the <attrib_list> parameter of eglCreateDRMImageMESA:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_FORMAT_MESA		0x31D0
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_USE_MESA			0x31D1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted as values for the EGL_IMAGE_FORMAT_MESA attribute:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_FORMAT_ARGB32_MESA	0x31D2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Bits accepted in EGL_DRM_BUFFER_USE_MESA:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_USE_SCANOUT_MESA		0x0001
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_USE_SHARE_MESA		0x0002
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted in the <target> parameter of eglCreateImageKHR:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_MESA			0x31D3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Use when importing drm buffer:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_STRIDE_MESA		0x31D4
 | 
					 | 
				
			||||||
        EGL_DRM_BUFFER_FORMAT_MESA		0x31D0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the EGL 1.4 Specification:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    To create a DRM EGLImage, call
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy,
 | 
					 | 
				
			||||||
                                          const EGLint *attrib_list);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In the attribute list, pass EGL_WIDTH, EGL_HEIGHT and format and
 | 
					 | 
				
			||||||
    use in the attrib list using EGL_DRM_BUFFER_FORMAT_MESA and
 | 
					 | 
				
			||||||
    EGL_DRM_BUFFER_USE_MESA.  The only format specified by this
 | 
					 | 
				
			||||||
    extension is EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, where each pixel
 | 
					 | 
				
			||||||
    is a CPU-endian, 32-bit quantity, with alpha in the upper 8 bits,
 | 
					 | 
				
			||||||
    then red, then green, then blue.  The bit values accepted by
 | 
					 | 
				
			||||||
    EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA and
 | 
					 | 
				
			||||||
    EGL_DRM_BUFFER_USE_SHARE_MESA.  EGL_DRM_BUFFER_USE_SCANOUT_MESA
 | 
					 | 
				
			||||||
    requests that the created EGLImage should be usable as a scanout
 | 
					 | 
				
			||||||
    buffer with the DRM kernel modesetting API.  The
 | 
					 | 
				
			||||||
    EGL_DRM_BUFFER_USE_SHARE_MESA bit requests that the EGLImage can
 | 
					 | 
				
			||||||
    be shared with other processes by passing the underlying DRM
 | 
					 | 
				
			||||||
    buffer name.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    To create a process local handle or a global DRM name for a
 | 
					 | 
				
			||||||
    buffer, call
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy,
 | 
					 | 
				
			||||||
                                         EGLImageKHR image,
 | 
					 | 
				
			||||||
                                         EGLint *name,
 | 
					 | 
				
			||||||
                                         EGLint *handle,
 | 
					 | 
				
			||||||
                                         EGLint *stride);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If <name> is non-NULL, a global name is assigned to the image and
 | 
					 | 
				
			||||||
    written to <name>, the handle (local to the DRM file descriptor,
 | 
					 | 
				
			||||||
    for use with DRM kernel modesetting API) is written to <handle> if
 | 
					 | 
				
			||||||
    non-NULL and the stride (in bytes) is written to <stride>, if
 | 
					 | 
				
			||||||
    non-NULL.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Import a shared buffer by calling eglCreateImageKHR with
 | 
					 | 
				
			||||||
    EGL_DRM_BUFFER_MESA as the target, using EGL_WIDTH, EGL_HEIGHT,
 | 
					 | 
				
			||||||
    EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_STRIDE_MESA
 | 
					 | 
				
			||||||
    in the attrib list.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1.  Why don't we use eglCreateImageKHR with a target that
 | 
					 | 
				
			||||||
        indicates that we want to create an EGLImage from scratch?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RESOLVED: The eglCreateImageKHR entry point is reserved for
 | 
					 | 
				
			||||||
        creating an EGLImage from an already existing client API
 | 
					 | 
				
			||||||
        resource.  This is fine when we're creating the EGLImage from
 | 
					 | 
				
			||||||
        an existing DRM buffer name, it doesn't seem right to overload
 | 
					 | 
				
			||||||
        the function to also allocate the underlying resource.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    2.  Why don't we use an eglQueryImageMESA type functions for
 | 
					 | 
				
			||||||
        querying the DRM EGLImage attributes (name, handle, and stride)?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RESOLVED: The eglQueryImage function has been proposed often,
 | 
					 | 
				
			||||||
        but it goes against the EGLImage design.  EGLImages are opaque
 | 
					 | 
				
			||||||
        handles to a 2D array of pixels, which can be passed between
 | 
					 | 
				
			||||||
        client APIs.  By referenceing an EGLImage in a client API, the
 | 
					 | 
				
			||||||
        EGLImage target (a texture, a renderbuffer or such) can be
 | 
					 | 
				
			||||||
        used to query the attributes of the EGLImage.  We don't have a
 | 
					 | 
				
			||||||
        full client API for creating and querying DRM buffers, though,
 | 
					 | 
				
			||||||
        so we use a new EGL extension entry point instead.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Version 1, June 3, 2010
 | 
					 | 
				
			||||||
        Initial draft (Kristian Høgsberg)
 | 
					 | 
				
			||||||
    Version 2, August 25, 2010
 | 
					 | 
				
			||||||
        Flesh out the extension a bit, add final EGL tokens, capture
 | 
					 | 
				
			||||||
        some of the original discussion in the issues section.
 | 
					 | 
				
			||||||
@@ -13,7 +13,7 @@ Contact
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Status
 | 
					Status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Obsolete.
 | 
					    XXX - Not complete yet!!!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,7 +43,7 @@ Issues
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
New Procedures and Functions
 | 
					New Procedures and Functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int glXSwapIntervalMESA(unsigned int interval)
 | 
					    int glXSwapIntervalMESA(int interval)
 | 
				
			||||||
    int glXGetSwapIntervalMESA(void)
 | 
					    int glXGetSwapIntervalMESA(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
New Tokens
 | 
					New Tokens
 | 
				
			||||||
@@ -103,8 +103,11 @@ Additions to the GLX 1.3 Specification
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Errors
 | 
					Errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    glXSwapIntervalMESA returns GLX_BAD_VALUE if parameter <interval> is
 | 
				
			||||||
 | 
					    less than zero.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
 | 
					    glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
 | 
				
			||||||
    GLXContext or if the current context is not a direct rendering context.
 | 
					    GLXContext.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLX Protocol
 | 
					GLX Protocol
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,214 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_texture_signed_rgba
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_MESA_texture_signed_rgba
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Notice
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    No known IP issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    0.3, 2009-03-24
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Not assigned ?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Written based on the wording of the OpenGL 2.0 specification.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension trivially interacts with ARB_texture_float.
 | 
					 | 
				
			||||||
    This extension shares some language with ARB_texture_compression_rgtc
 | 
					 | 
				
			||||||
    but does not depend on it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL prior to 3.1 does not support any signed texture formats.
 | 
					 | 
				
			||||||
    ARB_texture_compression_rgtc introduces some compressed red and
 | 
					 | 
				
			||||||
    red_green signed formats but no uncompressed ones, which might
 | 
					 | 
				
			||||||
    still be useful. NV_texture_shader adds signed texture formats,
 | 
					 | 
				
			||||||
    but also a lot of functionality which has been superceded by fragment
 | 
					 | 
				
			||||||
    shaders.
 | 
					 | 
				
			||||||
    It is usually possible to get the same functionality
 | 
					 | 
				
			||||||
    using a unsigned format by doing scale and bias in a shader, but this
 | 
					 | 
				
			||||||
    is undesirable since modern hardware has direct support for this.
 | 
					 | 
				
			||||||
    This extension adds a signed 4-channel texture format by backporting
 | 
					 | 
				
			||||||
    the relevant features from OpenGL 3.1, as a means to support this in
 | 
					 | 
				
			||||||
    OpenGL implementations only supporting older versions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    1) What should this extension be called?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       RESOLVED: MESA_texture_signed_rgba seems reasonable.
 | 
					 | 
				
			||||||
       The rgba part is there because only 4 channel format is supported.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    2) Should the full set of signed formats (alpha, luminance, rgb, etc.)
 | 
					 | 
				
			||||||
       be supported?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       RESOLVED: NO. To keep this extension simple, only add the most
 | 
					 | 
				
			||||||
       universal format, rgba. alpha/luminance can't be trivially supported
 | 
					 | 
				
			||||||
       since OpenGL 3.1 does not support them any longer, and there is some
 | 
					 | 
				
			||||||
       implied dependency on ARB_texture_rg for red/red_green formats so
 | 
					 | 
				
			||||||
       avoid all this. Likewise, only 8 bits per channel is supported.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    3) Should this extension use new enums for the texture formats?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       RESOLVED: NO. Same enums as those used in OpenGL 3.1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    4) How are signed integer values mapped to floating-point values?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       RESOLVED: Same as described in issue 5) of
 | 
					 | 
				
			||||||
       ARB_texture_compression_rgtc (quote):
 | 
					 | 
				
			||||||
       A signed 8-bit two's complement value X is computed to
 | 
					 | 
				
			||||||
       a floating-point value Xf with the formula:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                { X / 127.0, X > -128
 | 
					 | 
				
			||||||
           Xf = {
 | 
					 | 
				
			||||||
                { -1.0,      X == -128
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       This conversion means -1, 0, and +1 are all exactly representable,
 | 
					 | 
				
			||||||
       however -128 and -127 both map to -1.0.  Mapping -128 to -1.0
 | 
					 | 
				
			||||||
       avoids the numerical awkwardness of have a representable value
 | 
					 | 
				
			||||||
       slightly more negative than -1.0.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       This conversion is intentionally NOT the "byte" conversion listed
 | 
					 | 
				
			||||||
       in Table 2.9 for component conversions.  That conversion says:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
           Xf = (2*X + 1) / 255.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       The Table 2.9 conversion is incapable of exactly representing
 | 
					 | 
				
			||||||
       zero.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       (Difference to ARB_texture_compression_rgtc):
 | 
					 | 
				
			||||||
       This is the same mapping as OpenGL 3.1 uses.
 | 
					 | 
				
			||||||
       This is also different to what NV_texture_shader used.
 | 
					 | 
				
			||||||
       The above mapping should be considered the reference, but there
 | 
					 | 
				
			||||||
       is some leeway so other mappings are allowed for implementations which
 | 
					 | 
				
			||||||
       cannot do this. Particulary the mapping given in NV_texture_shader or
 | 
					 | 
				
			||||||
       the standard OpenGL byte/float mapping is considered acceptable too, as
 | 
					 | 
				
			||||||
       might be a mapping which represents -1.0 by -128, 0.0 by 0 and 1.0 by
 | 
					 | 
				
			||||||
       127 (that is, uses different scale factors for negative and positive
 | 
					 | 
				
			||||||
       numbers).
 | 
					 | 
				
			||||||
       Also, it is ok to store incoming GL_BYTE user data as-is, without
 | 
					 | 
				
			||||||
       converting to GL_FLOAT (using the standard OpenGL float/byte mapping)
 | 
					 | 
				
			||||||
       and converting back (using the mapping described here).
 | 
					 | 
				
			||||||
       Other than those subtle issues there are no other non-standard
 | 
					 | 
				
			||||||
       conversions used, so when using for instance CopyTexImage2D with
 | 
					 | 
				
			||||||
       a framebuffer clamped to [0,1] all converted numbers will be in the range
 | 
					 | 
				
			||||||
       [0, 127] (and not scaled and biased).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    5) How will signed components resulting from RGBA8_SNORM texture
 | 
					 | 
				
			||||||
       fetches interact with fragment coloring?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       RESOLVED: Same as described in issue 6) of
 | 
					 | 
				
			||||||
       ARB_texture_compression_rgtc (quote):
 | 
					 | 
				
			||||||
       The specification language for this extension is silent
 | 
					 | 
				
			||||||
       about clamping behavior leaving this to the core specification
 | 
					 | 
				
			||||||
       and other extensions.  The clamping or lack of clamping is left
 | 
					 | 
				
			||||||
       to the core specification and other extensions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       For assembly program extensions supporting texture fetches
 | 
					 | 
				
			||||||
       (ARB_fragment_program, NV_fragment_program, NV_vertex_program3,
 | 
					 | 
				
			||||||
       etc.) or the OpenGL Shading Language, these signed formats will
 | 
					 | 
				
			||||||
       appear as expected with unclamped signed components as a result
 | 
					 | 
				
			||||||
       of a texture fetch instruction.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       If ARB_color_buffer_float is supported, its clamping controls
 | 
					 | 
				
			||||||
       will apply.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       NV_texture_shader extension, if supported, adds support for
 | 
					 | 
				
			||||||
       fixed-point textures with signed components and relaxed the
 | 
					 | 
				
			||||||
       fixed-function texture environment clamping appropriately.  If the
 | 
					 | 
				
			||||||
       NV_texture_shader extension is supported, its specified behavior
 | 
					 | 
				
			||||||
       for the texture environment applies where intermediate values
 | 
					 | 
				
			||||||
       are clamped to [-1,1] unless stated otherwise as in the case
 | 
					 | 
				
			||||||
       of explicitly clamped to [0,1] for GL_COMBINE.  or clamping the
 | 
					 | 
				
			||||||
       linear interpolation weight to [0,1] for GL_DECAL and GL_BLEND.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Otherwise, the conventional core texture environment clamps
 | 
					 | 
				
			||||||
       incoming, intermediate, and output color components to [0,1].
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       This implies that the conventional texture environment
 | 
					 | 
				
			||||||
       functionality of unextended OpenGL 1.5 or OpenGL 2.0 without
 | 
					 | 
				
			||||||
       using GLSL (and with none of the extensions referred to above)
 | 
					 | 
				
			||||||
       is unable to make proper use of the signed texture formats added
 | 
					 | 
				
			||||||
       by this extension because the conventional texture environment
 | 
					 | 
				
			||||||
       requires texture source colors to be clamped to [0,1].  Texture
 | 
					 | 
				
			||||||
       filtering of these signed formats would be still signed, but
 | 
					 | 
				
			||||||
       negative values generated post-filtering would be clamped to
 | 
					 | 
				
			||||||
       zero by the core texture environment functionality.  The
 | 
					 | 
				
			||||||
       expectation is clearly that this extension would be co-implemented
 | 
					 | 
				
			||||||
       with one of the previously referred to extensions or used with
 | 
					 | 
				
			||||||
       GLSL for the new signed formats to be useful.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    6) Should the RGBA_SNORM tokens also be accepted by CopyTexImage
 | 
					 | 
				
			||||||
       functions?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       RESOLVED: YES.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    7) What to do with GetTexParameter if ARB_texture_float is supported,
 | 
					 | 
				
			||||||
       in particular what datatype should this return for TEXTURE_RED_TYPE_ARB,
 | 
					 | 
				
			||||||
       TEXTURE_GREEN_TYPE_ARB, TEXTURE_BLUE_TYPE_ARB, TEXTURE_ALPHA_TYPE_ARB?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       RESOLVED: ARB_texture_float states type is either NONE,
 | 
					 | 
				
			||||||
       UNSIGNED_NORMALIZED_ARB, or FLOAT. This extension adds a new enum,
 | 
					 | 
				
			||||||
       SIGNED_NORMALIZED, which will be returned accordingly. This is the
 | 
					 | 
				
			||||||
       same behaviour as in OpenGL 3.1.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <internalformat> parameter of
 | 
					 | 
				
			||||||
    TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D, and CopyTexImage2D:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RGBA_SNORM                                0x8F93
 | 
					 | 
				
			||||||
        RGBA8_SNORM                               0x8F97
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Returned by the <params> parameter of GetTexLevelParameter:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        SIGNED_NORMALIZED                         0x8F9C
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 -- Section 3.8.1, Texture Image Specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Add to Table 3.16 (page 154): Sized internal formats
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Sized             Base             R    G    B    A    L    I    D
 | 
					 | 
				
			||||||
    Internal Format   Internal Format bits bits bits bits bits bits bits
 | 
					 | 
				
			||||||
    ---------------   --------------- ---- ---- ---- ---- ---- ---- ----
 | 
					 | 
				
			||||||
    RGBA8_SNORM       RGBA             8    8    8    8    0    0    0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies on ARB_texture_float extension:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If ARB_texture_float is supported, GetTexParameter queries with <value>
 | 
					 | 
				
			||||||
    of TEXTURE_RED_TYPE_ARB, TEXTURE_GREEN_TYPE_ARB, TEXTURE_BLUE_TYPE_ARB or
 | 
					 | 
				
			||||||
    TEXTURE_ALPHA_TYPE_ARB return SIGNED_NORMALIZED if
 | 
					 | 
				
			||||||
    the base internal format is RGBA_SNORM.
 | 
					 | 
				
			||||||
							
								
								
									
										534
									
								
								docs/MiniGLX.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										534
									
								
								docs/MiniGLX.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,534 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					  <title>Mini GLX Specification</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					<h1>
 | 
				
			||||||
 | 
					<center>Mini GLX Specification</center>
 | 
				
			||||||
 | 
					</h1>
 | 
				
			||||||
 | 
					<h2>
 | 
				
			||||||
 | 
					<center>Tungsten Graphics, Inc.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					January 20, 2003<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</center>
 | 
				
			||||||
 | 
					</h2>
 | 
				
			||||||
 | 
					<p> Copyright © 2002-2003 by Tungsten Graphics, Inc., Cedar Park,
 | 
				
			||||||
 | 
					Texas. All Rights Reserved. <br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					Permission is granted to make and distribute verbatim copies of this
 | 
				
			||||||
 | 
					document provided the copyright notice and this permission notice are
 | 
				
			||||||
 | 
					preserved on all copies.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h1>1. Introduction</h1>
 | 
				
			||||||
 | 
					<p>The Mini GLX interface facilitates OpenGL rendering on embedded
 | 
				
			||||||
 | 
					devices. The interface is a subset of the GLX interface, plus a minimal
 | 
				
			||||||
 | 
					set of Xlib-like functions.</p>
 | 
				
			||||||
 | 
					<p>Programs written to the Mini GLX specification should run unchanged
 | 
				
			||||||
 | 
					on systems with the X Window System and the GLX extension. The intention
 | 
				
			||||||
 | 
					is to allow flexibility for prototyping and testing.</p>
 | 
				
			||||||
 | 
					<p>This document serves as both the reference guide and programming
 | 
				
			||||||
 | 
					guide for Mini GLX.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h1>2. Mini GLX Concepts</h1>
 | 
				
			||||||
 | 
					<p>The OpenGL specification does not describe how OpenGL rendering
 | 
				
			||||||
 | 
					contexts and drawing surfaces (i.e. the frame buffer) are created and
 | 
				
			||||||
 | 
					managed. Rather, this is handled by an OpenGL window system interface,
 | 
				
			||||||
 | 
					such as Mini GLX.</p>
 | 
				
			||||||
 | 
					<p>There are three main datatypes or resources managed by Mini GLX. The
 | 
				
			||||||
 | 
					resources and their corresponding GLX or Xlib data types are:</p>
 | 
				
			||||||
 | 
					<table cellspacing="10" align="center">
 | 
				
			||||||
 | 
					  <tbody>
 | 
				
			||||||
 | 
					    <tr>
 | 
				
			||||||
 | 
					      <td><u>Resource</u></td>
 | 
				
			||||||
 | 
					      <td><u>Data type</u></td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					    <tr>
 | 
				
			||||||
 | 
					      <td>pixel formats</td>
 | 
				
			||||||
 | 
					      <td>X Visual and XVisualInfo</td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					    <tr>
 | 
				
			||||||
 | 
					      <td>drawing surfaces</td>
 | 
				
			||||||
 | 
					      <td>X Window or GLXDrawable</td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					    <tr>
 | 
				
			||||||
 | 
					      <td>rendering contexts</td>
 | 
				
			||||||
 | 
					      <td>GLXContext</td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					  </tbody>
 | 
				
			||||||
 | 
					</table>
 | 
				
			||||||
 | 
					<p>Pixel formats or X Visuals describe the per-pixel attributes of the
 | 
				
			||||||
 | 
					frame buffer.  For example, bits per color component, Z buffer size,
 | 
				
			||||||
 | 
					stencil size, TrueColor vs PseudoColor, etc.</p>
 | 
				
			||||||
 | 
					<p>Drawing surfaces or X Windows typically describe a spatial
 | 
				
			||||||
 | 
					allocation of the frame buffer (i.e. the position and size of a
 | 
				
			||||||
 | 
					rectangular region of pixels).  Since MiniGLX doesn't really support a
 | 
				
			||||||
 | 
					window system, the window is effectively the entire frame buffer.</p>
 | 
				
			||||||
 | 
					<p>A rendering context represents the current OpenGL state such as
 | 
				
			||||||
 | 
					current drawing color, line width, blending mode, texture parameters,
 | 
				
			||||||
 | 
					etc. Several rendering contexts can be created but only one can be in
 | 
				
			||||||
 | 
					use at any given time.</p>
 | 
				
			||||||
 | 
					<p>The Mini GLX interface provides all the functions needed for
 | 
				
			||||||
 | 
					choosing pixel formats, create drawing surfaces, creating rendering
 | 
				
			||||||
 | 
					contexts and binding rendering contexts to drawing surfaces.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h1>3. Using Mini GLX</h1>
 | 
				
			||||||
 | 
					<p>To use the Mini GLX interface in your application, include the
 | 
				
			||||||
 | 
					GL/miniglx.h header file at compile time:</p>
 | 
				
			||||||
 | 
					<blockquote><code>	#include <GL/miniglx.h><br>
 | 
				
			||||||
 | 
					  </code></blockquote>
 | 
				
			||||||
 | 
					<code></code>Applications should link with libGL.so (i.e. <code>gcc
 | 
				
			||||||
 | 
					myprogram.o -lGL -o myprogram</code>).  libGL.so implements the
 | 
				
			||||||
 | 
					MiniGLX API functions and, in turn, loads a hardware-specific device
 | 
				
			||||||
 | 
					driver (such as <code>radeon_dri.so</code>) at runtime.  The
 | 
				
			||||||
 | 
					environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
 | 
				
			||||||
 | 
					directory where these modules are located.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					The remainder of this section describes the MiniGLX API functions.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<h2>3.1 Initialization</h2>
 | 
				
			||||||
 | 
					<p>The XOpenDisplay function is used to initialize the graphics system:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>Display *XOpenDisplay(const char *displayname)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>The <code>displayName</code> parameter is currently ignored in Mini
 | 
				
			||||||
 | 
					GLX. It is recommended that <code>NULL</code> be passed as the<code>displayName</code>
 | 
				
			||||||
 | 
					parameter.</p>
 | 
				
			||||||
 | 
					<p>If XOpenDisplay is able to initialize the graphics system a pointer
 | 
				
			||||||
 | 
					to a Display will be returned.  Otherwise, NULL will be returned.</p>
 | 
				
			||||||
 | 
					<h2>3.2 Choosing a Visual</h2>
 | 
				
			||||||
 | 
					<p>A visual (i.e. pixel format) must be chosen before a drawing surface
 | 
				
			||||||
 | 
					or rendering context can be created.  This is done with the
 | 
				
			||||||
 | 
					glXChooseVisual function:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>XVisualInfo *glXChooseVisual(Display *dpy, int screen, const int *attribList)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p><code>dpy</code> is a pointer to the display returned by
 | 
				
			||||||
 | 
					XOpenDisplay. </p>
 | 
				
			||||||
 | 
					<p><code>screen</code> is currently ignored by Mini GLX and should be
 | 
				
			||||||
 | 
					zero. </p>
 | 
				
			||||||
 | 
					<p><code>attribList</code> is a list of GLX attributes which describe
 | 
				
			||||||
 | 
					the desired pixel format.  It is terminated by the token <code>None</code>.
 | 
				
			||||||
 | 
					The attributes are as follows:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>GLX_USE_GL</code></dt>
 | 
				
			||||||
 | 
					    <dd>This attribute should always be present in order to maintain
 | 
				
			||||||
 | 
					compatibility with GLX.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_RGBA</code></dt>
 | 
				
			||||||
 | 
					    <dd>If present, only RGBA pixel formats will be considered.
 | 
				
			||||||
 | 
					Otherwise, only color index formats are considered.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_DOUBLEBUFFER</code></dt>
 | 
				
			||||||
 | 
					    <dd>if present, only double-buffered pixel formats will	be chosen.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_RED_SIZE n</code></dt>
 | 
				
			||||||
 | 
					    <dd>Must be followed by a non-negative integer indicating the
 | 
				
			||||||
 | 
					minimum number of bits per red pixel component that is acceptable.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_GREEN_SIZE n</code></dt>
 | 
				
			||||||
 | 
					    <dd>Must be followed by a non-negative integer indicating the
 | 
				
			||||||
 | 
					minimum number of bits per green pixel component that is acceptable.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_BLUE_SIZE n</code></dt>
 | 
				
			||||||
 | 
					    <dd>Must be followed by a non-negative integer indicating the
 | 
				
			||||||
 | 
					minimum number of bits per blue pixel component that is acceptable.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_ALPHA_SIZE n</code></dt>
 | 
				
			||||||
 | 
					    <dd>Must be followed by a non-negative integer indicating the
 | 
				
			||||||
 | 
					minimum number of bits per alpha pixel component that is acceptable.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_STENCIL_SIZE n</code></dt>
 | 
				
			||||||
 | 
					    <dd>Must be followed by a non-negative integer indicating the
 | 
				
			||||||
 | 
					minimum number of bits per stencil value that is acceptable.</dd>
 | 
				
			||||||
 | 
					    <dt><code>None</code></dt>
 | 
				
			||||||
 | 
					    <dd>This token is used to terminate the attribute list.</dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>glXChooseVisual will return a pointer to an XVisualInfo object which
 | 
				
			||||||
 | 
					most closely matches the requirements of the attribute list.  If there
 | 
				
			||||||
 | 
					is no visual which matches the request, NULL will be returned.</p>
 | 
				
			||||||
 | 
					<p>Note that visuals with accumulation buffers and depth buffers are
 | 
				
			||||||
 | 
					not available.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h2>3.3 Creating a Drawing Surface</h2>
 | 
				
			||||||
 | 
					<p>Drawing surfaces are created as X windows.  For Mini GLX,
 | 
				
			||||||
 | 
					windows are <i>full-screen</i>; they cover the entire frame buffer.
 | 
				
			||||||
 | 
					 Also, Mini GLX imposes a limit of one window.  A second window
 | 
				
			||||||
 | 
					cannot be created until the first one is destroyed.</p>
 | 
				
			||||||
 | 
					<h3>3.3.1 Window Creation</h3>
 | 
				
			||||||
 | 
					<p>The XCreateWindow function is used to create a drawing surface:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>Window XCreateWindow( Display *display,<br>                      Window parent,<br>                      int x, int y,<br>                      unsigned int width, unsigned int height,<br>                      unsigned int borderWidth,<br>                      int depth,<br>                      unsigned int class,<br>                      Visual *visual,<br>                      unsigned long valuemask,<br>                      XSetWindowAttributes *attributes )<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>The parameters are as follows:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>display</code></dt>
 | 
				
			||||||
 | 
					    <dd>A Display pointer, as returned by XOpenDisplay.</dd>
 | 
				
			||||||
 | 
					    <dt><code>parent</code></dt>
 | 
				
			||||||
 | 
					    <dd>The parent window for the new window.  For Mini GLX, this
 | 
				
			||||||
 | 
					should be<code>RootWindow(dpy, 0)</code>.</dd>
 | 
				
			||||||
 | 
					    <dt><code>x, y</code></dt>
 | 
				
			||||||
 | 
					    <dd>The position of the window.  For Mini GLX, both values should
 | 
				
			||||||
 | 
					be zero.</dd>
 | 
				
			||||||
 | 
					    <dt><code>width, height</code></dt>
 | 
				
			||||||
 | 
					    <dd>The size of the window.  For Mini GLX, this specifies the
 | 
				
			||||||
 | 
					desired screen size such as 1024, 768 or 1280, 1024.</dd>
 | 
				
			||||||
 | 
					    <dt><code>borderWidth</code></dt>
 | 
				
			||||||
 | 
					    <dd>This parameter should be zero.</dd>
 | 
				
			||||||
 | 
					    <dt><code>depth</code></dt>
 | 
				
			||||||
 | 
					    <dd>The pixel depth for the window.  For Mini GLX this should be
 | 
				
			||||||
 | 
					the depth found in the XVisualInfo object returned by <code>glxChooseVisual</code>.</dd>
 | 
				
			||||||
 | 
					    <dt><code>class</code></dt>
 | 
				
			||||||
 | 
					    <dd>The window class.  For Mini GLX this value should be <code>InputOutput</code>.</dd>
 | 
				
			||||||
 | 
					    <dt><code>visual</code></dt>
 | 
				
			||||||
 | 
					    <dd>This parameter should be the <code>visual</code> field of the <code>XVisualInfo</code>
 | 
				
			||||||
 | 
					object returned by <code>glxChooseVisual</code>.</dd>
 | 
				
			||||||
 | 
					    <dt><code>valuemask</code></dt>
 | 
				
			||||||
 | 
					    <dd>This parameter indicates which fields of the <code>XSetWindowAttributes</code>
 | 
				
			||||||
 | 
					are to be used. For Mini GLX this is typically the bitmask<code>CWBackPixel
 | 
				
			||||||
 | 
					| CWBorderPixel | CWColormap</code>.</dd>
 | 
				
			||||||
 | 
					    <dt><code>attributes</code></dt>
 | 
				
			||||||
 | 
					    <dd>Initial window attributes. Of the fields in the <code>XSetWindowAttributes</code>
 | 
				
			||||||
 | 
					structure, the<code>background_pixel</code>, <code>border_pixel</code>
 | 
				
			||||||
 | 
					and <code>colormap</code> fields should be set.  See the discussion
 | 
				
			||||||
 | 
					below regarding colormaps.</dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p><code>XCreateWindow</code> will return a window handle if it succeeds
 | 
				
			||||||
 | 
					or zero if it fails.</p>
 | 
				
			||||||
 | 
					<h3>3.3.2 Window Mapping</h3>
 | 
				
			||||||
 | 
					<p>To display the window the XMapWindow function must be called:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void XMapWindow(Display *dpy, Window w)</pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>This function does nothing in Mini GLX but is required for Xlib/GLX
 | 
				
			||||||
 | 
					compatibility</p>
 | 
				
			||||||
 | 
					<h3>3.3.3 Colormaps<br>
 | 
				
			||||||
 | 
					</h3>
 | 
				
			||||||
 | 
					<p>Xlib requires specification of a colormap when creating a window.
 | 
				
			||||||
 | 
					 For purposes of interoperability, Mini GLX requires this as well,
 | 
				
			||||||
 | 
					though the colormap is not actually used.  The XCreateColormap
 | 
				
			||||||
 | 
					function is used to create a colormap:</p>
 | 
				
			||||||
 | 
					<blockquote><code>Colormap XCreateColormap(Display *dpy, Window window,
 | 
				
			||||||
 | 
					Visual *visual, int alloc)</code><br>
 | 
				
			||||||
 | 
					  <code></code></blockquote>
 | 
				
			||||||
 | 
					<p>The parameters are as follows:<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>dpy</code></dt>
 | 
				
			||||||
 | 
					    <dd>The display handle as returned by XOpenDisplay.</dd>
 | 
				
			||||||
 | 
					    <dt><code>window</code></dt>
 | 
				
			||||||
 | 
					    <dd> This parameter is ignored by Mini GLX but should be the value
 | 
				
			||||||
 | 
					returned by the <code>RootWindow(dpy, 0)</code> macro.<br>
 | 
				
			||||||
 | 
					    </dd>
 | 
				
			||||||
 | 
					    <dt><code>visual</code></dt>
 | 
				
			||||||
 | 
					    <dd>This parameter is ignored by Mini GLX but should be the visual
 | 
				
			||||||
 | 
					field of the XVisualInfo object returned by glXChooseVisual. </dd>
 | 
				
			||||||
 | 
					    <dt><code>alloc</code></dt>
 | 
				
			||||||
 | 
					    <dd>This parameter is ignored by Mini GLX but should be set to <code>AllocNone</code>.</dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<h2>3.4 Creating a Rendering Context</h2>
 | 
				
			||||||
 | 
					<p>An OpenGL rendering context is created with the <code>glXCreateContext</code>
 | 
				
			||||||
 | 
					function:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>GLXContext glXCreateContext(Display *dpy, XVisualInfo *visInfo, GLXContext shareList, Bool direct)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>The parameters are as follows:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>dpy</code></dt>
 | 
				
			||||||
 | 
					    <dd>The display handle as returned by XOpenDisplay.</dd>
 | 
				
			||||||
 | 
					    <dt><code>visInfo</code></dt>
 | 
				
			||||||
 | 
					    <dd>The visual as returned by glXChooseVisual.</dd>
 | 
				
			||||||
 | 
					    <dt><code>shareList</code></dt>
 | 
				
			||||||
 | 
					    <dd>If non-zero, texture objects and display lists are shared with
 | 
				
			||||||
 | 
					the named rendering context. If zero, texture objects and display lists
 | 
				
			||||||
 | 
					will (initially) be private to this context. They may be shared when a
 | 
				
			||||||
 | 
					subsequent context is created.</dd>
 | 
				
			||||||
 | 
					    <dt><code>direct</code></dt>
 | 
				
			||||||
 | 
					    <dd>Specifies whether direct or indirect rendering is desired. For
 | 
				
			||||||
 | 
					Mini GLX this value is ignored but it should be set to <code>True</code>.</dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p><code>glXCreateContext</code> will return a GLXContext handle if it
 | 
				
			||||||
 | 
					succeeds or zero if it fails due to invalid parameter or insufficient
 | 
				
			||||||
 | 
					resources.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h2>3.5 Binding a Rendering Context</h2>
 | 
				
			||||||
 | 
					<p>The final step before beginning OpenGL rendering is to bind (i.e.
 | 
				
			||||||
 | 
					activate) a rendering context and drawing surface with the
 | 
				
			||||||
 | 
					glXMakeCurrent function:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>The parameters are as follows:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>dpy</code></dt>
 | 
				
			||||||
 | 
					    <dd>The display handle, as returned by XOpenDisplay.</dd>
 | 
				
			||||||
 | 
					    <dt><code>drawable</code></dt>
 | 
				
			||||||
 | 
					    <dd>The window or drawable to bind to the rendering context. This
 | 
				
			||||||
 | 
					should be the value returned by XCreateWindow.</dd>
 | 
				
			||||||
 | 
					    <dt><code>ctx</code></dt>
 | 
				
			||||||
 | 
					    <dd>The rendering context to bind, as returned by glXCreateContext.</dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>If glXMakeCurrent succeeds True is returned.  Otherwise False is
 | 
				
			||||||
 | 
					returned to indicate an invalid display, window or context parameter.</p>
 | 
				
			||||||
 | 
					<p>After the rendering context has been bound to the drawing surface
 | 
				
			||||||
 | 
					OpenGL rendering can begin.</p>
 | 
				
			||||||
 | 
					<p>The current rendering context may be unbound by calling
 | 
				
			||||||
 | 
					glXMakeCurrent with the window and context parameters set to zero.</p>
 | 
				
			||||||
 | 
					<p>An application may create any number of rendering contexts and bind
 | 
				
			||||||
 | 
					them as needed. Note that binding a rendering context is generally not a
 | 
				
			||||||
 | 
					light-weight operation.  Most simple OpenGL applications create
 | 
				
			||||||
 | 
					only one rendering context.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h2>3.6 Color Buffer Swapping</h2>
 | 
				
			||||||
 | 
					<p>A double buffered window has two color buffers: a front buffer and a
 | 
				
			||||||
 | 
					back buffer.  Normally, rendering is directed to the back buffer while
 | 
				
			||||||
 | 
					the front buffer is displayed.  When rendering of a frame is finished
 | 
				
			||||||
 | 
					the front and back buffers are swapped to provide the illusion of
 | 
				
			||||||
 | 
					instanteous screen updates.</p>
 | 
				
			||||||
 | 
					<p>The color buffers for a particular window (i.e. drawable) may be
 | 
				
			||||||
 | 
					swapped with the glXSwapBuffers command:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void glXSwapBuffers(Display *dpy, GLXDrawable drawable)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					Any pending rendering commands will be completed before the buffer swap
 | 
				
			||||||
 | 
					takes place.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					Calling glXSwapBuffers on a window which is single-buffered has no
 | 
				
			||||||
 | 
					effect.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<h2>3.7 Releasing Resources</h2>
 | 
				
			||||||
 | 
					<h3>3.7.1 Releasing Rendering Contexts</h3>
 | 
				
			||||||
 | 
					<p>A rendering context may be destroyed by calling glXDestroyContext:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void glXDestroyContext(Display *dpy, GLXContext ctx)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<h3>3.7.2 Releasing Windows</h3>
 | 
				
			||||||
 | 
					<p>A window may be destroyed by calling XDestroyWindow:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void XDestroyWindow(Display *dpy, Window window)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<h3>3.7.3 Releasing Visuals</h3>
 | 
				
			||||||
 | 
					<p>An XVisualInfo object may be freed by calling XFree:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void XFree(void *data)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<h3>3.7.4 Releasing Colormaps</h3>
 | 
				
			||||||
 | 
					<p>A colormap may be freed by calling XFreeColormap:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void XFreeColormap(Display *dpy, Colormap colormap)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<h3>3.7.4 Releasing Display Resources</h3>
 | 
				
			||||||
 | 
					<p>When the application is about to exit, the resources associated with
 | 
				
			||||||
 | 
					the graphics system can be released by calling XCloseDisplay:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void XCloseDisplay(Display *dpy)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>The display handle becomes invalid at this point.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h2>3.8 Query Functions</h2>
 | 
				
			||||||
 | 
					<h3>3.8.1 Querying Available Visuals</h3>
 | 
				
			||||||
 | 
					A list of all available visuals can be obtained with the XGetVisualInfo
 | 
				
			||||||
 | 
					function:<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<div style="margin-left: 40px;"><code>XVisualInfo
 | 
				
			||||||
 | 
					*XGetVisualInfo(Display *dpy, long vinfo_mask, XVisualInfo
 | 
				
			||||||
 | 
					*vinfo_template, int *nitems_return)<br>
 | 
				
			||||||
 | 
					</code></div>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					The parameters are as follows:<br>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>dpy</code></dt>
 | 
				
			||||||
 | 
					    <dd>The display handle, as returned by XOpenDisplay.</dd>
 | 
				
			||||||
 | 
					    <dt><code>vinfo_mask</code></dt>
 | 
				
			||||||
 | 
					    <dd>A bitmask indicating which fields of the vinfo_template are to
 | 
				
			||||||
 | 
					be matched.  The value must be VisualScreenMask.</dd>
 | 
				
			||||||
 | 
					    <dt><code>vinfo_template</code></dt>
 | 
				
			||||||
 | 
					    <dd>A template whose fields indicate which visual attributes must
 | 
				
			||||||
 | 
					be matched by the results.  The screen field of this structure must
 | 
				
			||||||
 | 
					be zero.</dd>
 | 
				
			||||||
 | 
					    <dt><code>nitems_return</code></dt>
 | 
				
			||||||
 | 
					    <dd>Returns the number of visuals returned. </dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					The return value is the address of an array of all available visuals.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					An example of using XGetVisualInfo to get all available visuals follows:<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<div style="margin-left: 40px;"><code>XVisualInfo visTemplate, *results;</code><br>
 | 
				
			||||||
 | 
					<code>int numVisuals;</code><br>
 | 
				
			||||||
 | 
					<code>Display *dpy = XOpenDisplay(NULL);</code><br>
 | 
				
			||||||
 | 
					<code>visTemplate.screen = 0;</code><br>
 | 
				
			||||||
 | 
					<code>results = XGetVisualInfo(dpy, VisualScreenMask, &visTemplate,
 | 
				
			||||||
 | 
					&numVisuals);</code><br>
 | 
				
			||||||
 | 
					<code></code></div>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<h3>3.8.2 Querying Visual Attributes</h3>
 | 
				
			||||||
 | 
					<p>The GLX attributes of an X visual may be queried with the
 | 
				
			||||||
 | 
					glXGetConfig function:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>int glXGetConfig(Display *dpy, XVisualInfo *vis, int attribute, int *value)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>The parameters are as follows:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>dpy</code></dt>
 | 
				
			||||||
 | 
					    <dd>The display handle, as returned by XOpenDisplay.</dd>
 | 
				
			||||||
 | 
					    <dt><code>vis</code></dt>
 | 
				
			||||||
 | 
					    <dd>The visual, as returned by glXChooseVisual.</dd>
 | 
				
			||||||
 | 
					    <dt><code>attribute</code></dt>
 | 
				
			||||||
 | 
					    <dd>The attribute to query.  The attributes are listed below.</dd>
 | 
				
			||||||
 | 
					    <dt><code>value</code></dt>
 | 
				
			||||||
 | 
					    <dd>Pointer to an integer in which the result of the query will be
 | 
				
			||||||
 | 
					stored. </dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>The return value will be zero if no error occurs.<code>
 | 
				
			||||||
 | 
					 GLX_INVALID_ATTRIBUTE</code> will be returned if the attribute
 | 
				
			||||||
 | 
					parameter is invalid.<code>  GLX_BAD_VISUAL</code> will be returned
 | 
				
			||||||
 | 
					if the XVisualInfo parameter is invalid.</p>
 | 
				
			||||||
 | 
					<p>The following attributes may be queried:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <dl>
 | 
				
			||||||
 | 
					    <dt><code>GLX_USE_GL</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be <code>True</code> or <code>False</code> to
 | 
				
			||||||
 | 
					indicate if OpenGL rendering is supported with the visual.  Mini GLX
 | 
				
			||||||
 | 
					always return <code>True</code>.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_RGBA</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be <code>True</code> for RGBA visuals or <code>False</code>
 | 
				
			||||||
 | 
					for color index visuals.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_DOUBLEBUFFER</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be <code>True</code> if the visual has two
 | 
				
			||||||
 | 
					color buffers or <code>False</code> if the visual has one color buffer.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_RED_SIZE</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be the number of red bits per pixel.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_GREEN_SIZE</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be the number of green bits per pixel.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_BLUE_SIZE</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be the number of blue bits per pixel.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_ALPHA_SIZE</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be the number of alpha bits per pixel.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_DEPTH_SIZE</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be the number of bits per Z value.</dd>
 | 
				
			||||||
 | 
					    <dt><code>GLX_STENCIL_SIZE</code></dt>
 | 
				
			||||||
 | 
					    <dd>The result will be the number of bits per stencil value.<br>
 | 
				
			||||||
 | 
					      <br>
 | 
				
			||||||
 | 
					    </dd>
 | 
				
			||||||
 | 
					  </dl>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<h3>3.8.3 Querying the Current Rendering Context</h3>
 | 
				
			||||||
 | 
					<p>The current rendering context can be queried with
 | 
				
			||||||
 | 
					glXGetCurrentContext: </p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>GLXContext glXGetCurrentContext(void)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>Zero will be returned if no context is currently bound.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h3>3.8.4 Querying the Current Drawable</h3>
 | 
				
			||||||
 | 
					<p>The current drawable (i.e. window or drawing surface) can be queried
 | 
				
			||||||
 | 
					with glXGetCurrentDrawable:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>GLXDrawable glXGetCurrentDrawable(void)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>Zero will be returned if no drawable is currently bound.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h3>3.8.5 Function Address Queries</h3>
 | 
				
			||||||
 | 
					<p>The glXGetProcAddress function will return the address of any
 | 
				
			||||||
 | 
					available OpenGL or Mini GLX function:</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>void *glXGetProcAddress(const GLubyte *procName)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p>If <code>procName</code> is a valid function name, a pointer to that
 | 
				
			||||||
 | 
					function will be returned.  Otherwise, NULL will be returned.</p>
 | 
				
			||||||
 | 
					<p>The purpose of glXGetProcAddress is to facilitate using future
 | 
				
			||||||
 | 
					extensions to OpenGL or Mini GLX.  If a future version of the library
 | 
				
			||||||
 | 
					adds new extension functions they'll be accessible via
 | 
				
			||||||
 | 
					glXGetProcAddress. The alternative is to hard-code calls to the new
 | 
				
			||||||
 | 
					functions in the application but doing so will prevent linking the
 | 
				
			||||||
 | 
					application with older versions of the library.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h2>3.9 Versioning</h2>
 | 
				
			||||||
 | 
					The Mini GLX version can be queried at run time with glXQueryVersion:
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					  <pre>Bool glXQueryVersion(Display *dpy, int *major, int *minor)<br></pre>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					<p><code>major</code> will be set to the major version number and<code>minor</code>
 | 
				
			||||||
 | 
					will be set to the minor version number.<code>True</code> will be
 | 
				
			||||||
 | 
					returned if the function succeeds. <code>False</code> will be returned
 | 
				
			||||||
 | 
					if the function fails due to invalid parameters. The <code>dpy</code>
 | 
				
			||||||
 | 
					argument is currently ignored, but should be the value returned by
 | 
				
			||||||
 | 
					XOpenDisplay.</p>
 | 
				
			||||||
 | 
					<p>At compile time, the Mini GLX interface version can be tested with
 | 
				
			||||||
 | 
					the MINI_GLX_VERSION_1_<i>x</i> preprocessor tokens. For example, if
 | 
				
			||||||
 | 
					version 1.0 of Mini GLX is supported, then<code> MINI_GLX_VERSION_1_0</code>
 | 
				
			||||||
 | 
					will be defined. If version 1.1 of Mini GLX is supported, then<code>
 | 
				
			||||||
 | 
					MINI_GLX_VERSION_1_1</code> will be defined.</p>
 | 
				
			||||||
 | 
					<p>At the time of writing the current Mini GLX version is 1.0.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<h1>4.0 Interoperability with GLX and Xlib</h1>
 | 
				
			||||||
 | 
					While Mini GLX strives to be compatible with GLX and Xlib there are
 | 
				
			||||||
 | 
					some unavoidable differences which must be taken into consideration.<br>
 | 
				
			||||||
 | 
					<h2>4.1 Public vs Private Structures</h2>
 | 
				
			||||||
 | 
					The structure of many X data types is public.  For example, the <code>Display</code>
 | 
				
			||||||
 | 
					data type is defined as a structure in /usr/include/X11/Xlib.h and
 | 
				
			||||||
 | 
					programmers may access any fields of that structure at will.  Mini
 | 
				
			||||||
 | 
					GLX also defines a Display data type but its fields are hidden and not
 | 
				
			||||||
 | 
					visiblein <code>miniglx.h</code>.  Duplicating the Xlib
 | 
				
			||||||
 | 
					declaration for the <code>Display</code> data type in minigl.h would
 | 
				
			||||||
 | 
					require defining a large number of other superfluous Xlib datatypes.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					Mini GLX users are discouraged from directly accessing the fields of
 | 
				
			||||||
 | 
					Xlib data types to maximize portability - though this is unavoidable to
 | 
				
			||||||
 | 
					some extent.  For example, the <code>XVisualInfo</code> and <code>XSetWindowAtttributes</code>
 | 
				
			||||||
 | 
					data types must be completely public.
 | 
				
			||||||
 | 
					<h2>4.2 Macros</h2>
 | 
				
			||||||
 | 
					In some cases, Xlib defines macros which are meant to be used instead
 | 
				
			||||||
 | 
					of direct structure accesses.  For example, the <code>RootWindow(dpy,
 | 
				
			||||||
 | 
					screen)</code> macro returns the root window for a given screen on a
 | 
				
			||||||
 | 
					given display.  Unfortunately, macros do nothing to aid in ABI
 | 
				
			||||||
 | 
					compatibility since they are resolved at compile time instead of at
 | 
				
			||||||
 | 
					link/run time.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					Mini GLX also defines a <code>RootWindow</code> macro since it's
 | 
				
			||||||
 | 
					essential for creating windows.  But the implementation of this
 | 
				
			||||||
 | 
					macro by Xlib and Mini GLX is completely different.<br>
 | 
				
			||||||
 | 
					<h2>4.3 Summary</h2>
 | 
				
			||||||
 | 
					Because Xlib and Mini GLX define data types and macros differently,
 | 
				
			||||||
 | 
					Mini GLX applications must be recompiled when retargeting Mini GLX or
 | 
				
			||||||
 | 
					native Xlib/GLX.  That is, applications can't simply be re-linked
 | 
				
			||||||
 | 
					because of ABI incompatibilities.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					Nevertheless, the fact that Mini GLX programs can be recompiled for
 | 
				
			||||||
 | 
					Xlib and GLX increases portability and flexibility for testing and
 | 
				
			||||||
 | 
					prototyping.<br>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<h1>5.0 Example Program</h1>
 | 
				
			||||||
 | 
					<p>This section shows an example program which uses the Mini GLX
 | 
				
			||||||
 | 
					interface. The program simply draws several frames of a rotating square.<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<p>The program may be compiled for use with Xlib/GLX or Mini GLX by
 | 
				
			||||||
 | 
					setting the <code>USE_MINIGLX</code> token to 0 or 1, respectively.
 | 
				
			||||||
 | 
					 Note that the only difference is the header files which are
 | 
				
			||||||
 | 
					included.<br>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<p> </p>
 | 
				
			||||||
 | 
					<pre><code><br></code>#define USE_MINIGLX 1  /* 1 = use Mini GLX, 0 = use Xlib/GLX */<br><br>#include <stdio.h><br>#include <stdlib.h><br>#include <GL/gl.h><br><br>#if USE_MINIGLX<br>#include <GL/miniglx.h><br>#else<br>#include <GL/glx.h><br>#include <X11/Xlib.h><br>#endif<br><br><code>/*<br> * Create a simple double-buffered RGBA window.<br> */<br>static Window<br>MakeWindow(Display * dpy, unsigned int width, unsigned int height)<br>{<br>   int visAttributes[] = {<br>      GLX_RGBA,<br>      GLX_RED_SIZE, 1,<br>      GLX_GREEN_SIZE, 1,<br>      GLX_BLUE_SIZE, 1,<br>      GLX_DOUBLEBUFFER,<br>      None<br>   };<br>   XSetWindowAttributes attr;<br>   unsigned long attrMask;<br>   Window root;<br>   Window win;<br>   GLXContext ctx;<br>   XVisualInfo *visinfo;<br><br>   root = RootWindow(dpy, 0);<br><br>   /* Choose GLX visual / pixel format */<br>   visinfo = glXChooseVisual(dpy, 0, visAttributes);<br>   if (!visinfo) {<br>      printf("Error: couldn't get an RGB, Double-buffered visual\n");<br>      exit(1);<br>   }<br><br>   /* Create the window */<br>   attr.background_pixel = 0;<br>   attr.border_pixel = 0;<br>   attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);<br>   attrMask = CWBackPixel | CWBorderPixel | CWColormap;<br>   win = XCreateWindow(dpy, root, 0, 0, width, height,<br>		       0, visinfo->depth, InputOutput,<br>		       visinfo->visual, attrMask, &attr);<br>   if (!win) {<br>      printf("Error: XCreateWindow failed\n");<br>      exit(1);<br>   }<br><br>   /* Display the window */<br>   XMapWindow(dpy, win);<br><br>   /* Create GLX rendering context */<br>   ctx = glXCreateContext(dpy, visinfo, NULL, True);<br>   if (!ctx) {<br>      printf("Error: glXCreateContext failed\n");<br>      exit(1);<br>   }<br><br>   /* Bind the rendering context and window */<br>   glXMakeCurrent(dpy, win, ctx);<br><br>   return win;<br>}<br><br><br>/*<br> * Draw a few frames of a rotating square.<br> */<br>static void<br>DrawFrames(Display * dpy, Window win)<br>{<br>   int angle;<br>   glShadeModel(GL_FLAT);<br>   glClearColor(0.5, 0.5, 0.5, 1.0);<br>   for (angle = 0; angle < 360; angle += 10) {<br>      glClear(GL_COLOR_BUFFER_BIT);<br>      glColor3f(1.0, 1.0, 0.0);<br>      glPushMatrix();<br>      glRotatef(angle, 0, 0, 1);<br>      glRectf(-0.8, -0.8, 0.8, 0.8);<br>      glPopMatrix();<br>      glXSwapBuffers(dpy, win);<br>   }<br>}<br><br><br>int<br>main(int argc, char *argv[])<br>{<br>   Display *dpy;<br>   Window win;<br><br>   dpy = XOpenDisplay(NULL);<br>   if (!dpy) {<br>      printf("Error: XOpenDisplay failed\n");<br>      return 1;<br>   }<br><br>   win = MakeWindow(dpy, 300, 300);<br><br>   DrawFrames(dpy, win);<br><br>   return 0;<br>}<br></code></pre>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -644,7 +644,7 @@ Hints and Special Features:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	- The Voodoo driver supports the GL_EXT_paletted_texture. it works
 | 
						- The Voodoo driver supports the GL_EXT_paletted_texture. it works
 | 
				
			||||||
	  only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
 | 
						  only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
 | 
				
			||||||
	  is ignored because this is a limitation of the current Glide
 | 
						  is ignored because this is a limitation of the the current Glide
 | 
				
			||||||
	  version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
 | 
						  version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
 | 
				
			||||||
	  a demo of this extension.
 | 
						  a demo of this extension.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										124
									
								
								docs/README.D3D
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								docs/README.D3D
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					                     DirectX 6 Driver for Mesa 3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This software is distributed under the terms of the GNU Library
 | 
				
			||||||
 | 
					General Public License, see the LICENSE file for details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					What do you need ?
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- A PC with a DirectX 6 video driver installed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- Mesa 3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
 | 
				
			||||||
 | 
						  The Voodoo2 requires the Glide library 2.51. The Glide 3.0 is not
 | 
				
			||||||
 | 
						  compatible with the Glide 2.x so it doesn't work with the current
 | 
				
			||||||
 | 
						  version of the driver;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- Visual C++ 5.0 is only compiler test but others should be ok with
 | 
				
			||||||
 | 
					       changes to the makefiles (CFLAGS/LFLAGS).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- DirectX 6 SDK (was a MS download but not sure if still available).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- SoftIce or another debugger that will get DPF's is nice.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Tested on:
 | 
				
			||||||
 | 
					----------
 | 
				
			||||||
 | 
						Windows 95
 | 
				
			||||||
 | 
					  	Windows 98
 | 
				
			||||||
 | 
						Windows NT 5.0 (beta 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					What is able to do ?
 | 
				
			||||||
 | 
					--------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						- the driver will try and use DirectX to rasterize the OpenGL primitives
 | 
				
			||||||
 | 
						that are sent to the driver.  The driver will fall back to SW  if the rendering 
 | 
				
			||||||
 | 
						context is too big.  The fallback to SW still uses DirectDraw.  If the driver
 | 
				
			||||||
 | 
						fails to support and operation (accum, stencil, etc) then it will try and get
 | 
				
			||||||
 | 
						Mesa to render it in SW.  DirectX 6 features that are unsupported by the 
 | 
				
			||||||
 | 
						installed DirectX 6 driver will be mapped to some other best fit feature.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					How to compile:
 | 
				
			||||||
 | 
					---------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						These instructions assume you have Visual C++ installed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  You might need to increase you enviroment space.  You can do this by 
 | 
				
			||||||
 | 
						adding the following statement to you config.sys.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						shell=C:\COMMAND.COM C:\ /p /e:8198
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Next setup you compiler enviroment by running vcvars32.bat in the Visual C++
 | 
				
			||||||
 | 
					 	'bin' directoy.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						c:\DevStudio\VC\bin\vcvars32.bat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Modify the D3D makefile to point at your SDK install.  Example has the SDK
 | 
				
			||||||
 | 
						installed on my 'f' drive in the root.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						file: \Mesa-3.0\src\makefile.d3d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						SDKROOT=f:\mssdk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Now you can simply make the project.  If you look in the makefile you can see
 | 
				
			||||||
 | 
						I have some different targets like 'install'.  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						nmake /f makefile.d3d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FAQ:
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						1) I don't think the driver is using my DirectX driver.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 	  This maybe true as the current version will only select the Primary D3D driver
 | 
				
			||||||
 | 
						installed.  If you 3D card is the secondary (3dfx) then your out of luck for this
 | 
				
			||||||
 | 
						release.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						2) The driver seems like its not HW accelerated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  If you have a video card with limited memory then you might want to try and 
 | 
				
			||||||
 | 
						change your destop resolution to a low setting (640x480x16) so that the 3D part
 | 
				
			||||||
 | 
						of the card has more resources.  Remeber the driver can't make the card better...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						3) Nothing works.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Make sure you have a DirectX '6' driver installed.  Check you driver docs for this
 | 
				
			||||||
 | 
						info or use the SDK info utilities.
 | 
				
			||||||
 | 
						  The final 'dll' is named opengl32.dll and is either in the same directory as the 
 | 
				
			||||||
 | 
						OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32).
 | 
				
			||||||
 | 
						  Check your destop resolution.  Most DirectX 6 drivers will only support 16bit and
 | 
				
			||||||
 | 
						32bit color depth.  To find out for sure you can check the DirectX Info Viewer in
 | 
				
			||||||
 | 
						the SDK.
 | 
				
			||||||
 | 
						  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						4) Rendering doesn't look right.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Sometimes this is because the card doesn't support a feature that that is required.
 | 
				
			||||||
 | 
						This is usually due to unsupported alpha functions (test/blend) or texture mapping.
 | 
				
			||||||
 | 
						Some cards suffer from too small of an alpha channel.  The driver does its best to
 | 
				
			||||||
 | 
						fallback on unsupported features.  This is not to say the driver may not have a bug(s).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						5) Textures look bad.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  No mipmapping in this release.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Thanks to:
 | 
				
			||||||
 | 
					----------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Brian Paul
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Leigh McRae (leigh@altsoftware.com)
 | 
				
			||||||
 | 
					February 9, 1999
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,6 +27,12 @@ using the SDK with Visual Studio Express can be found at
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
 | 
					http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you are stuck using VC6 or VC7, you may start with these project
 | 
				
			||||||
 | 
					files, but you may need to modify them to reflect changes in the
 | 
				
			||||||
 | 
					Mesa source code tree.  If you sucessfully update the project files,
 | 
				
			||||||
 | 
					please submit them to the author of this document so that they may
 | 
				
			||||||
 | 
					be included in the next distribution. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The project files to build the core Mesa library, Windows Mesa
 | 
					The project files to build the core Mesa library, Windows Mesa
 | 
				
			||||||
drivers, OSMesa, and GLU are in the mesa directory.  The project files
 | 
					drivers, OSMesa, and GLU are in the mesa directory.  The project files
 | 
				
			||||||
to build GLUT and some demo programs are in the progs directory.
 | 
					to build GLUT and some demo programs are in the progs directory.
 | 
				
			||||||
@@ -100,6 +106,23 @@ should build all the demos.
 | 
				
			|||||||
Build System Notes
 | 
					Build System Notes
 | 
				
			||||||
----- ------ -----
 | 
					----- ------ -----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VC6 (not actively supported)
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Visual Studio 6 does not recognize files with the .cc extension as C++
 | 
				
			||||||
 | 
					language files, without a lot of unnatural tweaking.  So, the VC6
 | 
				
			||||||
 | 
					build process uses custom build steps to compile these files in the
 | 
				
			||||||
 | 
					GLU library.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Two additional configurations are provided, Debug x86 and Release x86
 | 
				
			||||||
 | 
					that activate the shader code compilation by defining SLANG_86.  It is
 | 
				
			||||||
 | 
					unknown if and how this works.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VC7 (not actively supported)
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The above-mentioned .cc problem does not exist in this version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VC8
 | 
					VC8
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								docs/README.directfb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								docs/README.directfb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					                         
 | 
				
			||||||
 | 
					                         Mesa DirectFB Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Requirements
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  To build Mesa with DirectFB (DirectFBGL) support you need:
 | 
				
			||||||
 | 
					     - DirectFB at least 1.0.0 (http://directfb.org)
 | 
				
			||||||
 | 
					     - pkg-config at least 0.9 (http://pkgconfig.sf.net)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Installation
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					  Run
 | 
				
			||||||
 | 
					     
 | 
				
			||||||
 | 
					     make linux-directfb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  to build Mesa and DirectFBGL module,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     make install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  to install OpenGL libraries and
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     make linux-directfb-install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  to install DirectFBGL module in the proper location.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -12,18 +12,31 @@
 | 
				
			|||||||
The Mesa
 | 
					The Mesa
 | 
				
			||||||
<a href="http://en.wikipedia.org/wiki/Cell_%28microprocessor%29" target="_parent">Cell</a>
 | 
					<a href="http://en.wikipedia.org/wiki/Cell_%28microprocessor%29" target="_parent">Cell</a>
 | 
				
			||||||
driver is part of the 
 | 
					driver is part of the 
 | 
				
			||||||
<a href="http://wiki.freedesktop.org/wiki/Software/gallium" target="_parent">Gallium3D</a>
 | 
					<a href="http://www.tungstengraphics.com/wiki/index.php/Gallium3D" target="_parent">Gallium3D</a>
 | 
				
			||||||
architecture.
 | 
					architecture.
 | 
				
			||||||
Tungsten Graphics did the original implementation of the Cell driver.
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					<a href="http://www.tungstengraphics.com/" target="_parent">Tungsten Graphics</a>
 | 
				
			||||||
 | 
					is leading the project.
 | 
				
			||||||
 | 
					Two phases are planned.
 | 
				
			||||||
 | 
					First, to implement the framework for parallel rasterization using the Cell
 | 
				
			||||||
 | 
					SPEs, including texture mapping.
 | 
				
			||||||
 | 
					Second, to implement a full-featured OpenGL driver with support for GLSL, etc.
 | 
				
			||||||
 | 
					The second phase is now underway.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<H2>Source Code</H2>
 | 
					<H2>Source Code</H2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The latest Cell driver source code is on the master branch of the Mesa
 | 
					The latest Cell driver source code is on the <code>gallium-0.2</code> branch
 | 
				
			||||||
git repository.
 | 
					of the Mesa git repository.
 | 
				
			||||||
 | 
					After you've cloned the repository, check out the branch with:
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					<pre>
 | 
				
			||||||
 | 
					   git-checkout -b gallium-0.2 origin/gallium-0.2
 | 
				
			||||||
 | 
					</pre>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
To build the driver you'll need the IBM Cell SDK (version 2.1 or 3.0).
 | 
					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,
 | 
					To use the driver you'll need a Cell system, such as a PS3 running Linux,
 | 
				
			||||||
@@ -37,21 +50,19 @@ special changes.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
To compile the code, run <code>make linux-cell</code>.
 | 
					To compile the code, run <code>make linux-cell</code>.
 | 
				
			||||||
Or to build in debug mode, run <code>make linux-cell-debug</code>.
 | 
					To build in debug mode, run <code>make linux-cell-debug</code>.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
To use the library, make sure your current directory is the top of the
 | 
					To use the library, make sure <code>LD_LIBRARY_PATH</code> points the Mesa/lib/
 | 
				
			||||||
Mesa tree, then set <code>LD_LIBRARY_PATH</code> like this:
 | 
					directory that contains <code>libGL.so</code>.
 | 
				
			||||||
<pre>
 | 
					</p>
 | 
				
			||||||
  export LD_LIBRARY_PATH=$PWD/lib/gallium:$PWD/lib/
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Verify that the Cell driver is being used by running
 | 
					Verify that the Cell driver is being used by running <code>glxinfo</code>
 | 
				
			||||||
<code>progs/xdemos/glxinfo</code> and looking for:
 | 
					and looking for:
 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
  OpenGL renderer string: Gallium 0.3, Cell on Xlib
 | 
					  OpenGL renderer string: Gallium 0.2, Cell on Xlib
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,6 +39,7 @@ a:visited {
 | 
				
			|||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="download.html" target="MainFrame">Downloading / Unpacking</a>
 | 
					<li><a href="download.html" target="MainFrame">Downloading / Unpacking</a>
 | 
				
			||||||
<li><a href="install.html" target="MainFrame">Compiling / Installing</a>
 | 
					<li><a href="install.html" target="MainFrame">Compiling / Installing</a>
 | 
				
			||||||
 | 
					<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
 | 
				
			||||||
<li><a href="precompiled.html" target="MainFrame">Precompiled Libraries</a>
 | 
					<li><a href="precompiled.html" target="MainFrame">Precompiled Libraries</a>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -52,12 +53,9 @@ a:visited {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<b>User Topics</b>
 | 
					<b>User Topics</b>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="shading.html" target="MainFrame">Shading Language</a>
 | 
					 | 
				
			||||||
<li><a href="egl.html" target="MainFrame">EGL</a>
 | 
					 | 
				
			||||||
<li><a href="opengles.html" target="MainFrame">OpenGL ES</a>
 | 
					 | 
				
			||||||
<li><a href="openvg.html" target="MainFrame">OpenVG / Vega</a>
 | 
					 | 
				
			||||||
<LI><A HREF="envvars.html" target="MainFrame">Environment Variables</A>
 | 
					<LI><A HREF="envvars.html" target="MainFrame">Environment Variables</A>
 | 
				
			||||||
<LI><A HREF="osmesa.html" target="MainFrame">Off-Screen Rendering</A>
 | 
					<LI><A HREF="osmesa.html" target="MainFrame">Off-Screen Rendering</A>
 | 
				
			||||||
 | 
					<LI><A HREF="pbuffers.html" target="MainFrame">Pbuffer Rendering</A>
 | 
				
			||||||
<LI><A HREF="debugging.html" target="MainFrame">Debugging Tips</A>
 | 
					<LI><A HREF="debugging.html" target="MainFrame">Debugging Tips</A>
 | 
				
			||||||
<LI><A HREF="perf.html" target="MainFrame">Performance Tips</A>
 | 
					<LI><A HREF="perf.html" target="MainFrame">Performance Tips</A>
 | 
				
			||||||
<LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A>
 | 
					<LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A>
 | 
				
			||||||
@@ -68,8 +66,8 @@ a:visited {
 | 
				
			|||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
 | 
					<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
 | 
				
			||||||
<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
 | 
					<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
 | 
				
			||||||
<li><a href="sourcetree.html" target="MainFrame">Source Code Tree</a>
 | 
					<li><a href="memory.html" target="MainFrame">DRI Memory Management</a>
 | 
				
			||||||
<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
 | 
					<li><a href="shading.html" target="MainFrame">Shading Language</a>
 | 
				
			||||||
<li><a href="utilities.html" target="MainFrame">Utilities</a>
 | 
					<li><a href="utilities.html" target="MainFrame">Utilities</a>
 | 
				
			||||||
<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
 | 
					<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
 | 
				
			||||||
<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
 | 
					<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
 | 
				
			||||||
@@ -91,6 +89,7 @@ a:visited {
 | 
				
			|||||||
<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
 | 
					<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
 | 
				
			||||||
<li><a href="science.html" target="MainFrame">Science and Technical</a>
 | 
					<li><a href="science.html" target="MainFrame">Science and Technical</a>
 | 
				
			||||||
<li><a href="utility.html" target="MainFrame">Utilities</a>
 | 
					<li><a href="utility.html" target="MainFrame">Utilities</a>
 | 
				
			||||||
 | 
					<li><a href="demos.html" target="MainFrame">Demos / other</a>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<b>Hosted by:</b>
 | 
					<b>Hosted by:</b>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								docs/demos.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								docs/demos.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					<HTML>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<TITLE>Demos</TITLE>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<link rel="stylesheet" type="text/css" href="mesa.css"></head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<BODY>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<H1>Demos</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					<li><a href="http://www.geocities.com/shobhand/homepage.html">Shobhan Dutta's Geartrain and Walkthrough Demos</a>
 | 
				
			||||||
 | 
					</li></ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -12,14 +12,12 @@
 | 
				
			|||||||
Both professional and volunteer developers contribute to Mesa.
 | 
					Both professional and volunteer developers contribute to Mesa.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
<a href="http://www.vmware.com/" target="_parent">VMware</a>
 | 
					<a href="http://www.tungstengraphics.com/" target="_parent">Tungsten Graphics</a>
 | 
				
			||||||
employs several of the main Mesa developers including Brian Paul
 | 
					employs several of the main Mesa developers including Brian Paul
 | 
				
			||||||
and Keith Whitwell.
 | 
					and Keith Whitwell.
 | 
				
			||||||
</p>
 | 
					Much of the on-going work in Mesa is done through Tungsten Graphics engineering
 | 
				
			||||||
 | 
					contracts.
 | 
				
			||||||
<p>
 | 
					Prominent examples of this work includes:
 | 
				
			||||||
In the past, Tungsten Graphics contracts implemented many Mesa features
 | 
					 | 
				
			||||||
including:
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li>DRI drivers for Intel i965, i945, i915 and other chips
 | 
					<li>DRI drivers for Intel i965, i945, i915 and other chips
 | 
				
			||||||
@@ -31,13 +29,7 @@ including:
 | 
				
			|||||||
<p>
 | 
					<p>
 | 
				
			||||||
Other companies including
 | 
					Other companies including
 | 
				
			||||||
<a href="http://www.intellinuxgraphics.org/index.html" target="_parent">Intel</a>
 | 
					<a href="http://www.intellinuxgraphics.org/index.html" target="_parent">Intel</a>
 | 
				
			||||||
and RedHat also actively contribute to the project.
 | 
					and IBM also actively contribute to the project.
 | 
				
			||||||
Intel has recently contributed the new GLSL compiler in Mesa 7.9.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="http://www.lunarg.com/" target="_parent">LunarG</a> can be contacted
 | 
					 | 
				
			||||||
for custom Mesa / 3D graphics development.
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
@@ -45,5 +37,15 @@ Volunteers have made significant contributions to all parts of Mesa, including
 | 
				
			|||||||
complete device drivers.
 | 
					complete device drivers.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<H1>Custom Development</H1>
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Contact <a href="http://www.tungstengraphics.com/" target="_parent">
 | 
				
			||||||
 | 
					Tungsten Graphics</a>
 | 
				
			||||||
 | 
					for information about custom development in Mesa, OpenGL, X and other
 | 
				
			||||||
 | 
					graphics technologies.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -107,7 +107,7 @@ Global variables are not allowed.
 | 
				
			|||||||
Function name examples:
 | 
					Function name examples:
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
	glFooBar()       - a public GL entry point (in glapi_dispatch.c)
 | 
						glFooBar()       - a public GL entry point (in dispatch.c)
 | 
				
			||||||
	_mesa_FooBar()   - the internal immediate mode function
 | 
						_mesa_FooBar()   - the internal immediate mode function
 | 
				
			||||||
	save_FooBar()    - retained mode (display list) function in dlist.c
 | 
						save_FooBar()    - retained mode (display list) function in dlist.c
 | 
				
			||||||
	foo_bar()        - a static (private) function
 | 
						foo_bar()        - a static (private) function
 | 
				
			||||||
@@ -123,21 +123,20 @@ These are the instructions for making a new Mesa release.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<H3>Get latest source files</H3>
 | 
					<H3>Get latest source files</H3>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Use git to get the latest Mesa files from the git repository, from whatever
 | 
					Use "cvs update -dAP " to get the latest Mesa files from CVS.
 | 
				
			||||||
branch is relevant.
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<H3>Verify and update version info</H3>
 | 
					<H3>Verify and update version info</H3>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Create/edit the docs/relnotes-x.y.html file to document what's new in the release.
 | 
					Create/edit the docs/RELNOTES-X.Y file to document what's new in the release.
 | 
				
			||||||
Add the new relnotes-x.y.html file to <a href="relnotes.html">relnotes.html</a>.
 | 
					Add the new RELNOTES-X.Y file to <a href="relnotes.html">relnotes.html</a>.
 | 
				
			||||||
 | 
					Update the docs/VERSIONS file too.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Update the MESA_MAJOR, MESA_MINOR and MESA_TINY version numbers in
 | 
					Edit the MESA_MAJOR, MESA_MINOR and MESA_TINY version numbers in
 | 
				
			||||||
configs/default.
 | 
					configs/default.
 | 
				
			||||||
Also update the VERSION line in the top-level Makefile.
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
@@ -145,24 +144,27 @@ Make sure the values in src/mesa/main/version.h are correct.
 | 
				
			|||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Update docs/news.html.
 | 
					Edit the top-level Makefile and verify that DIRECTORY, LIB_NAME and
 | 
				
			||||||
 | 
					DEMO_NAME are correct.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Check in all updates to git.
 | 
					Update the docs/news.html file and docs/download.html files.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Tag the files with the release name (in the form <b>mesa_X_Y</b>)
 | 
					Check in all updates to CVS.
 | 
				
			||||||
with: <code>git tag -a mesa_X_Y</code>
 | 
					</p>
 | 
				
			||||||
Then: <code>git push origin mesa_X_Y</code>
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Tag the CVS files with the release name (in the form <b>mesa_X_Y</b>).
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<H3>Make the tarballs</H3>
 | 
					<H3>Make the tarballs</H3>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Make a symbolic link from $(DIRECTORY) to 'Mesa'.  For example,
 | 
					Make a symbolic link from $(DIRECTORY) to 'Mesa'.  For example,
 | 
				
			||||||
<code>ln -s Mesa Mesa-7.5</code>
 | 
					ln -s Mesa Mesa-6.3
 | 
				
			||||||
This is needed in order to make a correct tar file in the next step.
 | 
					This is needed in order to make a correct tar file in the next step.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -175,7 +177,7 @@ Make the distribution files.  From inside the Mesa directory:
 | 
				
			|||||||
<p>
 | 
					<p>
 | 
				
			||||||
After the tarballs are created, the md5 checksums for the files will
 | 
					After the tarballs are created, the md5 checksums for the files will
 | 
				
			||||||
be computed.
 | 
					be computed.
 | 
				
			||||||
Add them to the docs/relnotes-X.Y.html file.
 | 
					Add them to the docs/news.html file.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
@@ -189,30 +191,17 @@ Follow the directions on SourceForge for creating a new "release" and
 | 
				
			|||||||
uploading the tarballs.
 | 
					uploading the tarballs.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Basically, to upload the tarball files with:
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<code>
 | 
					 | 
				
			||||||
rsync -avP ssh Mesa*-X.Y.* USERNAME@frs.sourceforge.net:uploads/
 | 
					 | 
				
			||||||
</code>
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Update the web site by copying the docs/ directory's files to 
 | 
					Update the web site by copying the docs/ directory's files to 
 | 
				
			||||||
/home/users/b/br/brianp/mesa-www/htdocs/ with:
 | 
					/home/users/b/br/brianp/mesa-www/htdocs/
 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<code>
 | 
					 | 
				
			||||||
sftp USERNAME,mesa3d@web.sourceforge.net
 | 
					 | 
				
			||||||
</code>
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Make an announcement on the mailing lists:
 | 
					Make an announcement on the mailing lists:
 | 
				
			||||||
 | 
					<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>,
 | 
				
			||||||
<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>,
 | 
					<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>
 | 
				
			||||||
<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
 | 
					 | 
				
			||||||
and
 | 
					and
 | 
				
			||||||
<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
 | 
					<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -198,8 +198,8 @@ few preprocessor defines.</p>
 | 
				
			|||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li>If <tt>GLX_USE_TLS</tt> is defined, method #4 is used.</li>
 | 
					<li>If <tt>GLX_USE_TLS</tt> is defined, method #4 is used.</li>
 | 
				
			||||||
<li>If <tt>PTHREADS</tt> is defined, method #3 is used.</li>
 | 
					<li>If <tt>PTHREADS</tt> is defined, method #3 is used.</li>
 | 
				
			||||||
<li>If any of <tt>PTHREADS</tt>,
 | 
					<li>If any of <tt>PTHREADS</tt>, <tt>USE_XTHREADS</tt>,
 | 
				
			||||||
<tt>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt>
 | 
					<tt>SOLARIS_THREADS</tt>, <tt>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt>
 | 
				
			||||||
is defined, method #2 is used.</li>
 | 
					is defined, method #2 is used.</li>
 | 
				
			||||||
<li>If none of the preceeding are defined, method #1 is used.</li>
 | 
					<li>If none of the preceeding are defined, method #1 is used.</li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
@@ -244,8 +244,8 @@ isn't a significant problem.</p>
 | 
				
			|||||||
system.  There are two steps to this.  The file must first be added to
 | 
					system.  There are two steps to this.  The file must first be added to
 | 
				
			||||||
<tt>src/mesa/sources</tt>.  That gets the file built and linked.  The second
 | 
					<tt>src/mesa/sources</tt>.  That gets the file built and linked.  The second
 | 
				
			||||||
step is to add the correct <tt>#ifdef</tt> magic to
 | 
					step is to add the correct <tt>#ifdef</tt> magic to
 | 
				
			||||||
<tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the
 | 
					<tt>src/mesa/main/dispatch.c</tt> to prevent the C version of the dispatch
 | 
				
			||||||
dispatch functions from being built.</p>
 | 
					functions from being built.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<A NAME="fixedsize"/>
 | 
					<A NAME="fixedsize"/>
 | 
				
			||||||
<H3>3.4. Fixed-Length Dispatch Stubs</H3>
 | 
					<H3>3.4. Fixed-Length Dispatch Stubs</H3>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,64 +9,94 @@
 | 
				
			|||||||
<H1>Downloading</H1>
 | 
					<H1>Downloading</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Primary Mesa download site:
 | 
					Current stable release: <b>7.4</b>
 | 
				
			||||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/"
 | 
					<br>
 | 
				
			||||||
target="_parent">freedesktop.org</a> (FTP)
 | 
					Last unstable/development release: <b>7.3</b>
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
When a new release is coming, release candidates (betas) may be found
 | 
					Primary download site:
 | 
				
			||||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/beta/" target="_parent">here</a>.
 | 
					<a href="http://sourceforge.net/project/showfiles.php?group_id=3"
 | 
				
			||||||
 | 
					target="_parent">SourceForge</a>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					When a new release is coming, release candidates (betas) can be found
 | 
				
			||||||
 | 
					<a href="http://www.mesa3d.org/beta/">here</a>.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The Mesa package is named MesaLib-x.y.z.{tar.bz2, tar.gz, zip} where x.y.z
 | 
					Mesa is distributed in several parts:
 | 
				
			||||||
is the version.  There are three types of compressed archives.
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					<li><b>MesaLib-x.y.z</b> - the main Mesa library source code, drivers
 | 
				
			||||||
 | 
					    and documentation.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					<li><b>MesaDemos-x.y.z</b> - OpenGL demonstration and test programs.
 | 
				
			||||||
 | 
					    Most of the programs require GLUT (either the
 | 
				
			||||||
 | 
					    <a href="http://www.opengl.org/resources/libraries/glut"
 | 
				
			||||||
 | 
					    target="_parent">original GLUT by Mark Kilgard</a> or
 | 
				
			||||||
 | 
					    <a href="http://freeglut.sourceforge.net" target="_parent">freeglut</a> or
 | 
				
			||||||
 | 
					    <a href="http://openglut.sourceforge.net" target="_parent">OpenGLUT</a>).
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					<li><b>MesaGLUT-x.y.z</b> - Mark Kilgard's GLUT, easily compiled and used
 | 
				
			||||||
 | 
					    with Mesa.  Plus, other implementation of GLUT for DOS, OS/2, BeOS, etc.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
There's also the MesaGLUT-x.y.z.{tar.bz2, tar.gz, zip} packages which
 | 
					If you're not interested in running the demos, you'll only need the first
 | 
				
			||||||
contain Mark Kilgard's GLUT library.
 | 
					package.
 | 
				
			||||||
This is optional.
 | 
					 | 
				
			||||||
Most Linux distributions include an implementation of GLUT (such as freeglut).
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
In the past, the Mesa demos collection was distributed as
 | 
					 | 
				
			||||||
MesaDemos-x.y.z.{tar.bz2, tar.gz, zip}.
 | 
					 | 
				
			||||||
Now, the
 | 
					 | 
				
			||||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/demos/" target="_parent">
 | 
					 | 
				
			||||||
Mesa demos</a> are distributed separately.
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					If you're new to this and not sure what you're doing, grab all three packages.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					The packages are available in .tar.gz, .tar.bz2 and .zip formats.
 | 
				
			||||||
 | 
					Other sites might offer additional package formats.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<H1>Unpacking</H1>
 | 
					<H1>Unpacking</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
To unpack .tar.gz files:
 | 
					All the packages should be in the same directory prior to unpacking.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					<li>To unpack .tar.gz files:
 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
	tar zxf MesaLib-x.y.z.tar.gz
 | 
						tar zxf MesaLib-X.Y.tar.gz
 | 
				
			||||||
 | 
						tar zxf MesaDemos-X.Y.tar.gz
 | 
				
			||||||
 | 
						tar zxf MesaGLUT-X.Y.tar.gz
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
or
 | 
					or
 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
	gzcat MesaLib-x.y.z.tar.gz | tar xf -
 | 
						gzcat MesaLib-X.Y.tar.gz | tar xf -
 | 
				
			||||||
 | 
						gzcat MesaDemos-X.Y.tar.gz | tar xf -
 | 
				
			||||||
 | 
						gzcat MesaGLUT-X.Y.tar.gz | tar xf -
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
or
 | 
					or
 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
	gunzip MesaLib-x.y.z.tar.gz ; tar xf MesaLib-x.y.z.tar
 | 
						gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
 | 
				
			||||||
 | 
						gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaDemos-X.Y.tar
 | 
				
			||||||
 | 
						gunzip MesaGLUT-X.Y.tar.gz ; tar xf MesaGLUT-X.Y.tar
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
<p>
 | 
					<li>To unpack .tar.bz2 files:
 | 
				
			||||||
To unpack .tar.bz2 files:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
	bunzip2 -c MesaLib-x.y.z.tar.gz | tar xf -
 | 
						bunzip2 -c MesaLib-X.Y.tar.gz | tar xf -
 | 
				
			||||||
 | 
						bunzip2 -c MesaDemos-X.Y.tar.gz | tar xf -
 | 
				
			||||||
 | 
						bunzip2 -c MesaGLUT-X.Y.tar.gz | tar xf -
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
<p>
 | 
					<li>To unpack .zip files:
 | 
				
			||||||
To unpack .zip files:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
	unzip MesaLib-x.y.z.zip
 | 
						unzip MesaLib-X.Y.zip
 | 
				
			||||||
 | 
						unzip MesaDemos-X.Y.zip
 | 
				
			||||||
 | 
						unzip MesaGLUT-X.Y.zip
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h1>Contents</h1>
 | 
					<h1>Contents</h1>
 | 
				
			||||||
@@ -82,13 +112,22 @@ bin/		- shell scripts for making shared libraries, etc
 | 
				
			|||||||
docs/		- documentation
 | 
					docs/		- documentation
 | 
				
			||||||
src/		- source code for libraries
 | 
					src/		- source code for libraries
 | 
				
			||||||
src/mesa	- sources for the main Mesa library and device drivers
 | 
					src/mesa	- sources for the main Mesa library and device drivers
 | 
				
			||||||
src/gallium     - sources for Gallium and Gallium drivers
 | 
					 | 
				
			||||||
src/glu		- libGLU source code
 | 
					src/glu		- libGLU source code
 | 
				
			||||||
src/glx		- sources for building libGL with full GLX and DRI support
 | 
					src/glx		- sources for building libGL with full GLX and DRI support
 | 
				
			||||||
src/glw		- Xt/Motif/OpenGL widget code
 | 
					src/glw		- Xt/Motif/OpenGL widget code
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you downloaded and unpacked the MesaGLUT.x.y.z package:
 | 
					If you downloaded and unpacked the MesaDemos.X.Y package:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<pre>
 | 
				
			||||||
 | 
					progs/demos	- original Mesa demos
 | 
				
			||||||
 | 
					progs/xdemos	- GLX OpenGL/Mesa demos
 | 
				
			||||||
 | 
					progs/redbook	- examples from the OpenGL Programming Guide
 | 
				
			||||||
 | 
					progs/samples	- examples from SGI
 | 
				
			||||||
 | 
					progs/images/	- image files
 | 
				
			||||||
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you downloaded and unpacked the MesaGLUT.X.Y package:
 | 
				
			||||||
<pre>
 | 
					<pre>
 | 
				
			||||||
src/glut	- GLUT library source code
 | 
					src/glut	- GLUT library source code
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										333
									
								
								docs/egl.html
									
									
									
									
									
								
							
							
						
						
									
										333
									
								
								docs/egl.html
									
									
									
									
									
								
							@@ -1,333 +0,0 @@
 | 
				
			|||||||
<html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<title>Mesa EGL</title>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>Mesa EGL</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The current version of EGL in Mesa implements EGL 1.4.  More information
 | 
					 | 
				
			||||||
about EGL can be found at
 | 
					 | 
				
			||||||
<a href="http://www.khronos.org/egl/" target="_parent">
 | 
					 | 
				
			||||||
http://www.khronos.org/egl/</a>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The Mesa's implementation of EGL uses a driver architecture.  The main
 | 
					 | 
				
			||||||
library (<code>libEGL</code>) is window system neutral.  It provides the EGL
 | 
					 | 
				
			||||||
API entry points and helper functions for use by the drivers.  Drivers are
 | 
					 | 
				
			||||||
dynamically loaded by the main library and most of the EGL API calls are
 | 
					 | 
				
			||||||
directly dispatched to the drivers.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The driver in use decides the window system to support.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Build EGL</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
<li>
 | 
					 | 
				
			||||||
<p>Run <code>configure</code> with the desired client APIs and enable
 | 
					 | 
				
			||||||
the driver for your hardware.  For example</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
  $ ./configure --enable-gles2 --enable-openvg --enable-gallium-nouveau
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The main library and OpenGL is enabled by default.  The first option above
 | 
					 | 
				
			||||||
enables <a href="opengles.html">OpenGL ES 2.x</a>.  The second option enables
 | 
					 | 
				
			||||||
<a href="openvg.html">OpenVG</a>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Build and install Mesa as usual.</li>
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>In the given example, it will build and install <code>libEGL</code>,
 | 
					 | 
				
			||||||
<code>libGL</code>, <code>libGLESv1_CM</code>, <code>libGLESv2</code>,
 | 
					 | 
				
			||||||
<code>libOpenVG</code>, and one or more EGL drivers.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Configure Options</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>There are several options that control the build of EGL at configuration
 | 
					 | 
				
			||||||
time</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><code>--enable-egl</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>By default, EGL is enabled.  When disabled, the main library and the drivers
 | 
					 | 
				
			||||||
will not be built.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>--with-egl-driver-dir</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The directory EGL drivers should be installed to.  If not specified, EGL
 | 
					 | 
				
			||||||
drivers will be installed to <code>${libdir}/egl</code>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>--with-egl-platforms</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>List the platforms (window systems) to support.  Its argument is a comma
 | 
					 | 
				
			||||||
seprated string such as <code>--with-egl-platforms=x11,drm</code>.  It decides
 | 
					 | 
				
			||||||
the platforms a driver may support.  The first listed platform is also used by
 | 
					 | 
				
			||||||
the main library to decide the native platform: the platform the EGL native
 | 
					 | 
				
			||||||
types such as <code>EGLNativeDisplayType</code> or
 | 
					 | 
				
			||||||
<code>EGLNativeWindowType</code> defined for.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The available platforms are <code>x11</code>, <code>drm</code>,
 | 
					 | 
				
			||||||
<code>fbdev</code>, and <code>gdi</code>.  The <code>gdi</code> platform can
 | 
					 | 
				
			||||||
only be built with SCons.  Unless for special needs, the build system should
 | 
					 | 
				
			||||||
select the right platforms automatically.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>--enable-gles1</code> and <code>--enable-gles2</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>These options enable OpenGL ES support in OpenGL.  The result is one big
 | 
					 | 
				
			||||||
internal library that supports multiple APIs.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>--enable-gles-overlay</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This option enables OpenGL ES as separate internal libraries.  This is an
 | 
					 | 
				
			||||||
alternative approach to enable OpenGL ES.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This is only supported by <code>egl_gallium</code>.  For systems using DRI
 | 
					 | 
				
			||||||
drivers, <code>--enable-gles1</code> and <code>--enable-gles2</code> are
 | 
					 | 
				
			||||||
suggested instead as all drivers will benefit.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>--enable-openvg</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>OpenVG must be explicitly enabled by this option.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>--enable-gallium-egl</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Explicitly enable or disable <code>egl_gallium</code>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Use EGL</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Demos</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>There are demos for the client APIs supported by EGL.  They can be found in
 | 
					 | 
				
			||||||
mesa/demos repository.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Environment Variables</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>There are several environment variables that control the behavior of EGL at
 | 
					 | 
				
			||||||
runtime</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><code>EGL_DRIVERS_PATH</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>By default, the main library will look for drivers in the directory where
 | 
					 | 
				
			||||||
the drivers are installed to.  This variable specifies a list of
 | 
					 | 
				
			||||||
colon-separated directories where the main library will look for drivers, in
 | 
					 | 
				
			||||||
addition to the default directory.  This variable is ignored for setuid/setgid
 | 
					 | 
				
			||||||
binaries.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This variable is usually set to test an uninstalled build.  For example, one
 | 
					 | 
				
			||||||
may set</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
  $ export LD_LIBRARY_PATH=$mesa/lib
 | 
					 | 
				
			||||||
  $ export EGL_DRIVERS_PATH=$mesa/lib/egl
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>to test a build without installation</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>EGL_DRIVER</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This variable specifies a full path to an EGL driver and it forces the
 | 
					 | 
				
			||||||
specified EGL driver to be loaded.  It comes in handy when one wants to test a
 | 
					 | 
				
			||||||
specific driver.  This variable is ignored for setuid/setgid binaries.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>EGL_PLATFORM</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This variable specifies the native platform.  The valid values are the same
 | 
					 | 
				
			||||||
as those for <code>--with-egl-platforms</code>.  When the variable is not set,
 | 
					 | 
				
			||||||
the main library uses the first platform listed in
 | 
					 | 
				
			||||||
<code>--with-egl-platforms</code> as the native platform.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Extensions like <code>EGL_MESA_drm_display</code> define new functions to
 | 
					 | 
				
			||||||
create displays for non-native platforms.  These extensions are usually used by
 | 
					 | 
				
			||||||
applications that support non-native platforms.  Setting this variable is
 | 
					 | 
				
			||||||
probably required only for some of the demos found in mesa/demo repository.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>EGL_LOG_LEVEL</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This changes the log level of the main library and the drivers.  The valid
 | 
					 | 
				
			||||||
values are: <code>debug</code>, <code>info</code>, <code>warning</code>, and
 | 
					 | 
				
			||||||
<code>fatal</code>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>EGL_SOFTWARE</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>For drivers that support both hardware and software rendering, setting this
 | 
					 | 
				
			||||||
variable to true forces the use of software rendering.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>EGL Drivers</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li><code>egl_dri2</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This driver supports both <code>x11</code> and <code>drm</code> platforms.
 | 
					 | 
				
			||||||
It functions as a DRI driver loader.  For <code>x11</code> support, it talks to
 | 
					 | 
				
			||||||
the X server directly using (XCB-)DRI2 protocol.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This driver can share DRI drivers with <code>libGL</code>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>egl_gallium</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This driver is based on Gallium3D.  It supports all rendering APIs and
 | 
					 | 
				
			||||||
hardwares supported by Gallium3D.  It is the only driver that supports OpenVG.
 | 
					 | 
				
			||||||
The supported platforms are X11, DRM, FBDEV, and GDI.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This driver comes with its own hardware drivers
 | 
					 | 
				
			||||||
(<code>pipe_<hw></code>) and client API modules
 | 
					 | 
				
			||||||
(<code>st_<api></code>).</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><code>egl_glx</code>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This driver provides a wrapper to GLX.  It uses exclusively GLX to implement
 | 
					 | 
				
			||||||
the EGL API.  It supports both direct and indirect rendering when the GLX does.
 | 
					 | 
				
			||||||
It is accelerated when the GLX is.  As such, it cannot provide functions that
 | 
					 | 
				
			||||||
is not available in GLX or GLX extensions.</p>
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Packaging</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The ABI between the main library and its drivers are not stable.  Nor is
 | 
					 | 
				
			||||||
there a plan to stabilize it at the moment.  Of the EGL drivers,
 | 
					 | 
				
			||||||
<code>egl_gallium</code> has its own hardware drivers and client API modules.
 | 
					 | 
				
			||||||
They are considered internal to <code>egl_gallium</code> and there is also no
 | 
					 | 
				
			||||||
stable ABI between them.  These should be kept in mind when packaging for
 | 
					 | 
				
			||||||
distribution.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Generally, <code>egl_dri2</code> is preferred over <code>egl_gallium</code>
 | 
					 | 
				
			||||||
when the system already has DRI drivers.  As <code>egl_gallium</code> is loaded
 | 
					 | 
				
			||||||
before <code>egl_dri2</code> when both are available, <code>egl_gallium</code>
 | 
					 | 
				
			||||||
may either be disabled with <code>--disable-gallium-egl</code> or packaged
 | 
					 | 
				
			||||||
separately.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Developers</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The sources of the main library and the classic drivers can be found at
 | 
					 | 
				
			||||||
<code>src/egl/</code>.  The sources of the <code>egl</code> state tracker can
 | 
					 | 
				
			||||||
be found at <code>src/gallium/state_trackers/egl/</code>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The suggested way to learn to write a EGL driver is to see how other drivers
 | 
					 | 
				
			||||||
are written.  <code>egl_glx</code> should be a good reference.  It works in any
 | 
					 | 
				
			||||||
environment that has GLX support, and it is simpler than most drivers.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Lifetime of Display Resources</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Contexts and surfaces are examples of display resources.  They might live
 | 
					 | 
				
			||||||
longer than the display that creates them.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>In EGL, when a display is terminated through <code>eglTerminate</code>, all
 | 
					 | 
				
			||||||
display resources should be destroyed.  Similarly, when a thread is released
 | 
					 | 
				
			||||||
throught <code>eglReleaseThread</code>, all current display resources should be
 | 
					 | 
				
			||||||
released.  Another way to destory or release resources is through functions
 | 
					 | 
				
			||||||
such as <code>eglDestroySurface</code> or <code>eglMakeCurrent</code>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>When a resource that is current to some thread is destroyed, the resource
 | 
					 | 
				
			||||||
should not be destroyed immediately.  EGL requires the resource to live until
 | 
					 | 
				
			||||||
it is no longer current.  A driver usually calls
 | 
					 | 
				
			||||||
<code>eglIs<Resource>Bound</code> to check if a resource is bound
 | 
					 | 
				
			||||||
(current) to any thread in the destroy callbacks.  If it is still bound, the
 | 
					 | 
				
			||||||
resource is not destroyed.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The main library will mark destroyed current resources as unlinked.  In a
 | 
					 | 
				
			||||||
driver's <code>MakeCurrent</code> callback,
 | 
					 | 
				
			||||||
<code>eglIs<Resource>Linked</code> can then be called to check if a newly
 | 
					 | 
				
			||||||
released resource is linked to a display.  If it is not, the last reference to
 | 
					 | 
				
			||||||
the resource is removed and the driver should destroy the resource.  But it
 | 
					 | 
				
			||||||
should be careful here because <code>MakeCurrent</code> might be called with an
 | 
					 | 
				
			||||||
uninitialized display.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>This is the only mechanism provided by the main library to help manage the
 | 
					 | 
				
			||||||
resources.  The drivers are responsible to the correct behavior as defined by
 | 
					 | 
				
			||||||
EGL.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3><code>EGL_RENDER_BUFFER</code></h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>In EGL, the color buffer a context should try to render to is decided by the
 | 
					 | 
				
			||||||
binding surface.  It should try to render to the front buffer if the binding
 | 
					 | 
				
			||||||
surface has <code>EGL_RENDER_BUFFER</code> set to
 | 
					 | 
				
			||||||
<code>EGL_SINGLE_BUFFER</code>;  If the same context is later bound to a
 | 
					 | 
				
			||||||
surface with <code>EGL_RENDER_BUFFER</code> set to
 | 
					 | 
				
			||||||
<code>EGL_BACK_BUFFER</code>, the context should try to render to the back
 | 
					 | 
				
			||||||
buffer.  However, the context is allowed to make the final decision as to which
 | 
					 | 
				
			||||||
color buffer it wants to or is able to render to.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>For pbuffer surfaces, the render buffer is always
 | 
					 | 
				
			||||||
<code>EGL_BACK_BUFFER</code>.  And for pixmap surfaces, the render buffer is
 | 
					 | 
				
			||||||
always <code>EGL_SINGLE_BUFFER</code>.  Unlike window surfaces, EGL spec
 | 
					 | 
				
			||||||
requires their <code>EGL_RENDER_BUFFER</code> values to be honored.  As a
 | 
					 | 
				
			||||||
result, a driver should never set <code>EGL_PIXMAP_BIT</code> or
 | 
					 | 
				
			||||||
<code>EGL_PBUFFER_BIT</code> bits of a config if the contexts created with the
 | 
					 | 
				
			||||||
config won't be able to honor the <code>EGL_RENDER_BUFFER</code> of pixmap or
 | 
					 | 
				
			||||||
pbuffer surfaces.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>It should also be noted that pixmap and pbuffer surfaces are assumed to be
 | 
					 | 
				
			||||||
single-buffered, in that <code>eglSwapBuffers</code> has no effect on them.  It
 | 
					 | 
				
			||||||
is desirable that a driver allocates a private color buffer for each pbuffer
 | 
					 | 
				
			||||||
surface created.  If the window system the driver supports has native pbuffers,
 | 
					 | 
				
			||||||
or if the native pixmaps have more than one color buffers, the driver should
 | 
					 | 
				
			||||||
carefully attach the native color buffers to the EGL surfaces, re-route them if
 | 
					 | 
				
			||||||
required.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>There is no defined behavior as to, for example, how
 | 
					 | 
				
			||||||
<code>glDrawBuffer</code> interacts with <code>EGL_RENDER_BUFFER</code>.  Right
 | 
					 | 
				
			||||||
now, it is desired that the draw buffer in a client API be fixed for pixmap and
 | 
					 | 
				
			||||||
pbuffer surfaces.  Therefore, the driver is responsible to guarantee that the
 | 
					 | 
				
			||||||
client API renders to the specified render buffer for pixmap and pbuffer
 | 
					 | 
				
			||||||
surfaces.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3><code>EGLDisplay</code> Mutex</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The <code>EGLDisplay</code> will be locked before calling any of the dispatch
 | 
					 | 
				
			||||||
functions (well, except for GetProcAddress which does not take an
 | 
					 | 
				
			||||||
<code>EGLDisplay</code>).  This guarantees that the same dispatch function will
 | 
					 | 
				
			||||||
not be called with the sample display at the same time.  If a driver has access
 | 
					 | 
				
			||||||
to an <code>EGLDisplay</code> without going through the EGL APIs, the driver
 | 
					 | 
				
			||||||
should as well lock the display before using it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>TODOs</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>Pass the conformance tests</li>
 | 
					 | 
				
			||||||
<li>Mixed use of OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is supported.  But
 | 
					 | 
				
			||||||
which one of <code>libGL.so</code>, <code>libGLESv1_CM.so</code>, and
 | 
					 | 
				
			||||||
<code>libGLESv2.so</code> should an application link to?  Bad things may happen
 | 
					 | 
				
			||||||
when, say, an application is linked to <code>libGLESv2.so</code> and
 | 
					 | 
				
			||||||
<code>libcairo</code>, which is linked to <code>libGL.so</code> instead.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,6 +1,4 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
See the OpenGL ARB enum registry at http://www.opengl.org/registry/api/enum.spec
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Blocks allocated to Mesa:
 | 
					Blocks allocated to Mesa:
 | 
				
			||||||
       0x8750-0x875F
 | 
					       0x8750-0x875F
 | 
				
			||||||
       0x8BB0-0x8BBF
 | 
					       0x8BB0-0x8BBF
 | 
				
			||||||
@@ -32,12 +30,12 @@ MESA_ycbcr_texture.spec:
 | 
				
			|||||||
GL_MESA_pack_invert.spec
 | 
					GL_MESA_pack_invert.spec
 | 
				
			||||||
	GL_PACK_INVERT_MESA              0x8758
 | 
						GL_PACK_INVERT_MESA              0x8758
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GL_MESA_shader_debug.spec: (obsolete)
 | 
					GL_MESA_shader_debug.spec:
 | 
				
			||||||
        GL_DEBUG_OBJECT_MESA             0x8759
 | 
					        GL_DEBUG_OBJECT_MESA             0x8759
 | 
				
			||||||
        GL_DEBUG_PRINT_MESA              0x875A
 | 
					        GL_DEBUG_PRINT_MESA              0x875A
 | 
				
			||||||
        GL_DEBUG_ASSERT_MESA             0x875B
 | 
					        GL_DEBUG_ASSERT_MESA             0x875B
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GL_MESA_program_debug.spec: (obsolete)
 | 
					GL_MESA_program_debug.spec:
 | 
				
			||||||
	GL_FRAGMENT_PROGRAM_CALLBACK_MESA      0x????
 | 
						GL_FRAGMENT_PROGRAM_CALLBACK_MESA      0x????
 | 
				
			||||||
	GL_VERTEX_PROGRAM_CALLBACK_MESA        0x????
 | 
						GL_VERTEX_PROGRAM_CALLBACK_MESA        0x????
 | 
				
			||||||
	GL_FRAGMENT_PROGRAM_POSITION_MESA      0x????
 | 
						GL_FRAGMENT_PROGRAM_POSITION_MESA      0x????
 | 
				
			||||||
@@ -47,11 +45,3 @@ GL_MESA_program_debug.spec: (obsolete)
 | 
				
			|||||||
	GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA   0x????
 | 
						GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA   0x????
 | 
				
			||||||
	GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA   0x????
 | 
						GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA   0x????
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GL_MESAX_texture_stack:
 | 
					 | 
				
			||||||
	GL_TEXTURE_1D_STACK_MESAX            0x8759
 | 
					 | 
				
			||||||
	GL_TEXTURE_2D_STACK_MESAX            0x875A
 | 
					 | 
				
			||||||
	GL_PROXY_TEXTURE_1D_STACK_MESAX      0x875B
 | 
					 | 
				
			||||||
	GL_PROXY_TEXTURE_2D_STACK_MESAX      0x875C
 | 
					 | 
				
			||||||
	GL_TEXTURE_1D_STACK_BINDING_MESAX    0x875D
 | 
					 | 
				
			||||||
	GL_TEXTURE_2D_STACK_BINDING_MESAX    0x875E
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,55 +9,26 @@
 | 
				
			|||||||
<H1>Environment Variables</H1>
 | 
					<H1>Environment Variables</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Normally, no environment variables need to be set.  Most of the environment
 | 
					Mesa supports the following environment variables:
 | 
				
			||||||
variables used by Mesa/Gallium are for debugging purposes, but they can
 | 
					 | 
				
			||||||
sometimes be useful for debugging end-user issues.
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>LibGL environment variables</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
 | 
					 | 
				
			||||||
   If set to 'verbose' additional information will be printed.
 | 
					 | 
				
			||||||
<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
 | 
					 | 
				
			||||||
<li>LIBGL_ALWAYS_INDIRECT - forces an indirect rendering context/connection.
 | 
					 | 
				
			||||||
<li>LIBGL_ALWAYS_SOFTWARE - if set, always use software rendering
 | 
					 | 
				
			||||||
<li>LIBGL_NO_DRAWARRAYS - if set do not use DrawArrays GLX protocol (for debugging)
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Core Mesa environment variables</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li>MESA_NO_ASM - if set, disables all assembly language optimizations
 | 
					<li>MESA_NO_ASM - if set, disables all assembly language optimizations
 | 
				
			||||||
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
 | 
					<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
 | 
				
			||||||
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
 | 
					<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
 | 
				
			||||||
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
 | 
					<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
 | 
				
			||||||
<li>MESA_DEBUG - if set, error messages are printed to stderr.  For example,
 | 
					<li>MESA_DEBUG - if set, error messages are printed to stderr.
 | 
				
			||||||
   if the application generates a GL_INVALID_ENUM error, a corresponding error
 | 
					If the value of MESA_DEBUG is "FP" floating point arithmetic errors will
 | 
				
			||||||
   message indicating where the error occured, and possibly why, will be
 | 
					generate exceptions.
 | 
				
			||||||
   printed to stderr.<br>
 | 
					 | 
				
			||||||
   If the value of MESA_DEBUG is 'FP' floating point arithmetic errors will
 | 
					 | 
				
			||||||
   generate exceptions.
 | 
					 | 
				
			||||||
<li>MESA_NO_DITHER - if set, disables dithering, overriding glEnable(GL_DITHER)
 | 
					<li>MESA_NO_DITHER - if set, disables dithering, overriding glEnable(GL_DITHER)
 | 
				
			||||||
<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
 | 
					<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
 | 
				
			||||||
fragment programs (intended for developers only)
 | 
					fragment programs (intended for developers only)
 | 
				
			||||||
<li>MESA_TNL_PROG - if set, implement conventional vertex transformation
 | 
					<li>MESA_TNL_PROG - if set, implement conventional vertex transformation
 | 
				
			||||||
operations with vertex programs (intended for developers only).
 | 
					operations with vertex programs (intended for developers only).
 | 
				
			||||||
Setting this variable automatically sets the MESA_TEX_PROG variable as well.
 | 
					Setting this variable automatically sets the MESA_TEX_PROG variable as well.
 | 
				
			||||||
<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
 | 
					 | 
				
			||||||
A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
 | 
					 | 
				
			||||||
and disable the GL_EXT_bar extension.
 | 
					 | 
				
			||||||
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
 | 
					 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
<H2>Mesa Xlib driver environment variables</H2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The following are only applicable to the Mesa Xlib software driver.
 | 
					The following are only applicable to the Xlib software driver.
 | 
				
			||||||
See the <A HREF="xlibdriver.html">Xlib software driver page</A> for details.
 | 
					See the <A HREF="xlibdriver.html">Xlib software driver page</A> for details.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
@@ -76,81 +47,5 @@ See the <A HREF="xlibdriver.html">Xlib software driver page</A> for details.
 | 
				
			|||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>i945/i965 driver environment variables (non-Gallium)</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>INTEL_STRICT_CONFORMANCE - if set to 1, enable sw fallbacks to improve
 | 
					 | 
				
			||||||
    OpenGL conformance.  If set to 2, always use software rendering.
 | 
					 | 
				
			||||||
<li>INTEL_NO_BLIT - if set, disable hardware-accelerated glBitmap,
 | 
					 | 
				
			||||||
    glCopyPixels, glDrawPixels.
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Radeon R300 driver environment variables (non-Gallium)</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>R300_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting.
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>EGL environment variables</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa EGL supports different sets of environment variables.  See the
 | 
					 | 
				
			||||||
<a href="egl.html">Mesa EGL</a> page for the details.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Gallium environment variables</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>GALLIUM_PRINT_OPTIONS - if non-zero, print all the Gallium environment
 | 
					 | 
				
			||||||
    variables which are used, and their current values.
 | 
					 | 
				
			||||||
<li>GALLIUM_NOSSE - if non-zero, do not use SSE runtime code generation for
 | 
					 | 
				
			||||||
    shader execution
 | 
					 | 
				
			||||||
<li>GALLIUM_NOPPC - if non-zero, do not use PPC runtime code generation for
 | 
					 | 
				
			||||||
    shader execution
 | 
					 | 
				
			||||||
<li>GALLIUM_DUMP_CPU - if non-zero, print information about the CPU on start-up
 | 
					 | 
				
			||||||
<li>TGSI_PRINT_SANITY - if set, do extra sanity checking on TGSI shaders and
 | 
					 | 
				
			||||||
    print any errors to stderr.
 | 
					 | 
				
			||||||
<LI>DRAW_FSE - ???
 | 
					 | 
				
			||||||
<LI>DRAW_NO_FSE - ???
 | 
					 | 
				
			||||||
<li>DRAW_USE_LLVM - if set to zero, the draw module will not use LLVM to execute
 | 
					 | 
				
			||||||
    shaders, vertex fetch, etc.
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Softpipe driver environment variables</h3>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
 | 
					 | 
				
			||||||
    to stderr
 | 
					 | 
				
			||||||
<li>SOFTPIPE_DUMP_GS - if set, the softpipe driver will print geometry shaders
 | 
					 | 
				
			||||||
    to stderr
 | 
					 | 
				
			||||||
<li>SOFTPIPE_NO_RAST - if set, rasterization is no-op'd.  For profiling purposes.
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>LLVMpipe driver environment variables</h3>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>LP_NO_RAST - if set LLVMpipe will no-op rasterization
 | 
					 | 
				
			||||||
<li>LP_DEBUG - a comma-separated list of debug options is acceptec.  See the
 | 
					 | 
				
			||||||
    source code for details.
 | 
					 | 
				
			||||||
<li>LP_PERF - a comma-separated list of options to selectively no-op various
 | 
					 | 
				
			||||||
    parts of the driver.  See the source code for details.
 | 
					 | 
				
			||||||
<li>LP_NUM_THREADS - an integer indicating how many threads to use for rendering.
 | 
					 | 
				
			||||||
    Zero turns of threading completely.  The default value is the number of CPU
 | 
					 | 
				
			||||||
    cores present.
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Other Gallium drivers have their own environment variables.  These may change
 | 
					 | 
				
			||||||
frequently so the source code should be consulted for details.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
<br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</BODY>
 | 
					</BODY>
 | 
				
			||||||
</HTML>
 | 
					</HTML>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,6 @@ The specifications follow.
 | 
				
			|||||||
<LI><A HREF="MESA_resize_buffers.spec">MESA_resize_buffers.spec</A>
 | 
					<LI><A HREF="MESA_resize_buffers.spec">MESA_resize_buffers.spec</A>
 | 
				
			||||||
<LI><A HREF="MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</A>
 | 
					<LI><A HREF="MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</A>
 | 
				
			||||||
<LI><A HREF="MESA_sprite_point.spec">MESA_sprite_point.spec</A> (obsolete)
 | 
					<LI><A HREF="MESA_sprite_point.spec">MESA_sprite_point.spec</A> (obsolete)
 | 
				
			||||||
<LI><A HREF="MESA_texture_signed_rgba.spec">MESA_texture_signed_rgba.spec</A>
 | 
					 | 
				
			||||||
<LI><A HREF="MESA_trace.spec">MESA_trace.spec</A> (obsolete)
 | 
					<LI><A HREF="MESA_trace.spec">MESA_trace.spec</A> (obsolete)
 | 
				
			||||||
<LI><A HREF="MESA_window_pos.spec">MESA_window_pos.spec</A>
 | 
					<LI><A HREF="MESA_window_pos.spec">MESA_window_pos.spec</A>
 | 
				
			||||||
<LI><A HREF="MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</A>
 | 
					<LI><A HREF="MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</A>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -316,19 +316,6 @@ Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates
 | 
				
			|||||||
will fix the problem.
 | 
					will fix the problem.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>3.6 How can I change the maximum framebuffer size in Mesa's
 | 
					 | 
				
			||||||
<tt>swrast</tt> backend?</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
These can be overridden by using the <tt>--with-max-width</tt> and
 | 
					 | 
				
			||||||
<tt>--with-max-height</tt> options.  The two need not be equal.
 | 
					 | 
				
			||||||
</p><p>
 | 
					 | 
				
			||||||
Do note that Mesa uses these values to size some internal buffers,
 | 
					 | 
				
			||||||
so increasing these sizes will cause Mesa to require additional
 | 
					 | 
				
			||||||
memory.  Furthermore, increasing these limits beyond <tt>4096</tt>
 | 
					 | 
				
			||||||
may introduce rasterization artifacts; see the leading comments in
 | 
					 | 
				
			||||||
<tt>src/mesa/swrast/s_tritemp.h</tt>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,9 +9,6 @@
 | 
				
			|||||||
<center><h1>Mesa fbdev/DRI Drivers</h1></center>
 | 
					<center><h1>Mesa fbdev/DRI Drivers</h1></center>
 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h1><center>NOTE: this information is obsolete and will be removed at
 | 
					 | 
				
			||||||
a future date</center></h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>1. Introduction</h1>
 | 
					<h1>1. Introduction</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
@@ -25,7 +22,7 @@ Contributors to this project include Jon Smirl, Keith Whitwell and Dave Airlie.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Applications in the fbdev/DRI environment use
 | 
					Applications in the fbdev/DRI environment use
 | 
				
			||||||
the MiniGLX interface to choose pixel
 | 
					the <a href="http://www.nabble.com/file/p15480666/MiniGXL.html"> MiniGLX</a> interface to choose pixel
 | 
				
			||||||
formats, create rendering contexts, etc.  It's a subset of the GLX and
 | 
					formats, create rendering contexts, etc.  It's a subset of the GLX and
 | 
				
			||||||
Xlib interfaces allowing some degree of application portability between
 | 
					Xlib interfaces allowing some degree of application portability between
 | 
				
			||||||
the X and X-less environments.
 | 
					the X and X-less environments.
 | 
				
			||||||
@@ -318,7 +315,8 @@ It means that the sample_server process is not running.
 | 
				
			|||||||
<h1>5.0 Programming Information</h1>
 | 
					<h1>5.0 Programming Information</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
OpenGL/Mesa is interfaced to fbdev via the MiniGLX interface.
 | 
					OpenGL/Mesa is interfaced to fbdev via the <a href="http://www.nabble.com/file/p15480666/MiniGLX.html">MiniGLX</a>
 | 
				
			||||||
 | 
					interface.
 | 
				
			||||||
MiniGLX is a subset of Xlib and GLX API functions which provides just
 | 
					MiniGLX is a subset of Xlib and GLX API functions which provides just
 | 
				
			||||||
enough functionality to setup OpenGL rendering and respond to simple
 | 
					enough functionality to setup OpenGL rendering and respond to simple
 | 
				
			||||||
input events.
 | 
					input events.
 | 
				
			||||||
@@ -334,7 +332,7 @@ This allows some degree of flexibility for software development and testing.
 | 
				
			|||||||
However, the MiniGLX API is not binary-compatible with full Xlib/GLX.
 | 
					However, the MiniGLX API is not binary-compatible with full Xlib/GLX.
 | 
				
			||||||
Some of the structures are different and some macros/functions work
 | 
					Some of the structures are different and some macros/functions work
 | 
				
			||||||
differently.
 | 
					differently.
 | 
				
			||||||
See the GL/miniglx.h header file for details.
 | 
					See the <code>GL/miniglx.h</code> header file for details.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,16 +12,15 @@
 | 
				
			|||||||
<ol>
 | 
					<ol>
 | 
				
			||||||
<li><a href="#unix-x11">Unix / X11</a>
 | 
					<li><a href="#unix-x11">Unix / X11</a>
 | 
				
			||||||
  <ul>
 | 
					  <ul>
 | 
				
			||||||
  <li><a href="#prereq-general">General prerequisites for building</a>
 | 
					  <li><a href="#prereq">Prerequisites for DRI and hardware acceleration</a>
 | 
				
			||||||
  <li><a href="#prereq-dri">Prerequisites for DRI and hardware acceleration</a>
 | 
					 | 
				
			||||||
  <li><a href="#autoconf">Building with autoconf</a>
 | 
					  <li><a href="#autoconf">Building with autoconf</a>
 | 
				
			||||||
  <li><a href="#traditional">Building with traditional Makefiles</a>
 | 
					  <li><a href="#traditional">Building with traditional Makefiles</a>
 | 
				
			||||||
  <li><a href="#libs">The Libraries</a>
 | 
					  <li><a href="#libs">The Libraries</a>
 | 
				
			||||||
 | 
					  <li><a href="#demos">Running the demos
 | 
				
			||||||
  <li><a href="#install">Installing the header and library files
 | 
					  <li><a href="#install">Installing the header and library files
 | 
				
			||||||
  <li><a href="#pkg-config">Building OpenGL programs with pkg-config
 | 
					  <li><a href="#pkg-config">Building OpenGL programs with pkg-config
 | 
				
			||||||
  </ul>
 | 
					  </ul>
 | 
				
			||||||
<li><a href="#windows">Windows</a>
 | 
					<li><a href="#windows">Windows</a>
 | 
				
			||||||
<li><a href="#scons">Building with SCons</a>
 | 
					 | 
				
			||||||
<li><a href="#other">Other</a>
 | 
					<li><a href="#other">Other</a>
 | 
				
			||||||
</ol>
 | 
					</ol>
 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
@@ -31,39 +30,25 @@
 | 
				
			|||||||
<H2>1. Unix/X11 Compilation and Installation</H1>
 | 
					<H2>1. Unix/X11 Compilation and Installation</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a name="prereq-general">
 | 
					<a name="prereq">
 | 
				
			||||||
<h3>1.1 General prerequisites for building</h3>
 | 
					<h3>1.1 Prerequisites for DRI and hardware acceleration</h3>
 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>lex / yacc - for building the GLSL compiler.
 | 
					 | 
				
			||||||
On Linux systems, flex and bison are used.
 | 
					 | 
				
			||||||
Versions 2.5.35 and 2.4.1, respectively, (or later) should work.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<li>python - Python is needed for building the Gallium components.
 | 
					 | 
				
			||||||
Version 2.6.4 or later should work.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="prereq-dri">
 | 
					 | 
				
			||||||
<h3>1.2 Prerequisites for DRI and hardware acceleration</h3>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The following are required for DRI-based hardware acceleration with Mesa:
 | 
					The following are required for DRI-based hardware acceleration with Mesa 7.3:
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">dri2proto</a> version 1.99.3 or later
 | 
					<li><a href="http://xorg.freedesktop.org/releases/individual/proto/">dri2proto</a> version 1.99.3 or later
 | 
				
			||||||
<li>Linux 2.6.28
 | 
					<li>Linux 2.6.28
 | 
				
			||||||
<li><a href="http://dri.freedesktop.org/libdrm/" target="_parent">libDRM</a>
 | 
					<li><a href="http://dri.freedesktop.org/libdrm/" target="_parent">libDRM</a>
 | 
				
			||||||
version 2.4.15 or later
 | 
					version 2.4.3 or later
 | 
				
			||||||
<li>Xorg server version 1.5 or later
 | 
					<li>Xorg server version 1.5 or later
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a name="autoconf">
 | 
					<a name="autoconf">
 | 
				
			||||||
<h3>1.3 Building with Autoconf</h3>
 | 
					<h3>1.2 Building with Autoconf</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Mesa may be <a href="autoconf.html">built using autoconf</a>.
 | 
					Mesa may be <a href="autoconf.html">built using autoconf</a>.
 | 
				
			||||||
@@ -73,7 +58,7 @@ If that fails the traditional Mesa build system is available.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a name="traditional">
 | 
					<a name="traditional">
 | 
				
			||||||
<h3>1.4 Building with traditional Makefiles</h3>
 | 
					<h3>1.3 Building with traditional Makefiles</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
The traditional Mesa build system is based on a collection of pre-defined
 | 
					The traditional Mesa build system is based on a collection of pre-defined
 | 
				
			||||||
@@ -140,7 +125,7 @@ Later, if you want to rebuild for a different configuration run
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a name="libs">
 | 
					<a name="libs">
 | 
				
			||||||
<h3>1.5 The libraries</h3>
 | 
					<h3>1.4 The libraries</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
When compilation has finished, look in the top-level <code>lib/</code>
 | 
					When compilation has finished, look in the top-level <code>lib/</code>
 | 
				
			||||||
@@ -199,11 +184,81 @@ If you built the DRI hardware drivers, you'll also see the DRI drivers:
 | 
				
			|||||||
-rwxr-xr-x   1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
 | 
					-rwxr-xr-x   1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
 | 
				
			||||||
</pre>
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<a name="demos">
 | 
				
			||||||
 | 
					<h3>1.5 Running the demos</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
If you built with Gallium support, look in lib/gallium/ for Gallium-based
 | 
					If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or
 | 
				
			||||||
versions of libGL and device drivers.
 | 
					obtained Mesa from CVS, the <b>progs/</b> directory will contain a
 | 
				
			||||||
 | 
					bunch of demonstration programs.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Before running a demo, you'll probably have to set two environment variables
 | 
				
			||||||
 | 
					to indicate where the libraries are located.  For example:
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					<b>cd lib/</b>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<b>export LD_LIBRARY_PATH=${PWD}</b>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<b>export LIBGL_DRIVERS_PATH=${PWD}</b> (if using DRI drivers)
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Next, change to the Mesa/demos/ directory:
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					<b>cd ../progs/demos</b>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Run a demo such as gears:
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					<b>./gears</b>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					If this doesn't work, try the <b>Mesa/progs/xdemos/glxinfo</b> program
 | 
				
			||||||
 | 
					and see that it prints the expected Mesa version number.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					If you're using Linux or a similar OS, verify that the demo program is
 | 
				
			||||||
 | 
					being linked with the proper library files:
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<blockquote>
 | 
				
			||||||
 | 
					<b>ldd gears</b>
 | 
				
			||||||
 | 
					</blockquote>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					You should see something like this:
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					<pre>
 | 
				
			||||||
 | 
					        libglut.so.3 => /home/brian/Mesa/lib/libglut.so.3 (0x40013000)
 | 
				
			||||||
 | 
					        libGLU.so.1 => /home/brian/Mesa/lib/libGLU.so.1 (0x40051000)
 | 
				
			||||||
 | 
					        libGL.so.1 => /home/brian/Mesa/lib/libGL.so.1 (0x400e0000)
 | 
				
			||||||
 | 
					        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
 | 
				
			||||||
 | 
					        libm.so.6 => /lib/i686/libm.so.6 (0x403da000)
 | 
				
			||||||
 | 
					        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403fc000)
 | 
				
			||||||
 | 
					        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x404da000)
 | 
				
			||||||
 | 
					        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404f1000)
 | 
				
			||||||
 | 
					        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40543000)
 | 
				
			||||||
 | 
					        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4054b000)
 | 
				
			||||||
 | 
					        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x405fd000)
 | 
				
			||||||
 | 
					        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40605000)
 | 
				
			||||||
 | 
					        libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40613000)
 | 
				
			||||||
 | 
					        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 | 
				
			||||||
 | 
					        libdl.so.2 => /lib/libdl.so.2 (0x40644000)
 | 
				
			||||||
 | 
					        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40647000)
 | 
				
			||||||
 | 
					        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40650000)
 | 
				
			||||||
 | 
					</pre>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Retrace your steps if this doesn't look right.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a name="install">
 | 
					<a name="install">
 | 
				
			||||||
@@ -273,51 +328,13 @@ For example, compiling and linking a GLUT application can be done with:
 | 
				
			|||||||
<H2>2. Windows Compilation and Installation</H1>
 | 
					<H2>2. Windows Compilation and Installation</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Please see the <a href="#scons">instructions on building with SCons</a>.
 | 
					Please see the <a href="README.WIN32">README.WIN32</a> file.
 | 
				
			||||||
Alternatively see <a href="README.WIN32">README.WIN32</a> file.
 | 
					 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a name="scons">
 | 
					 | 
				
			||||||
<H2>3. Building with SCons</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To build Mesa with SCons on Linux or Windows do
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
    scons
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The build output will be placed in
 | 
					 | 
				
			||||||
build/<i>platform</i>-<i>machine</i>-<i>debug</i>/..., where <i>platform</i> is for
 | 
					 | 
				
			||||||
example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed
 | 
					 | 
				
			||||||
by -debug for debug builds.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
    scons platform=windows toolchain=crossmingw machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
This will create:
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll — Mesa + Gallium + softpipe, binary compatible with Windows's opengl32.dll 
 | 
					 | 
				
			||||||
<li>build/windows-x86-debug/glut/glx/glut32.dll
 | 
					 | 
				
			||||||
<li>progs/build/windows-x86-debug/wgl/wglinfo.exe
 | 
					 | 
				
			||||||
<li>progs/build/windows-x86-debug/trivial/tri.exe
 | 
					 | 
				
			||||||
<li>and many other samples in progs/build/windows-x86-debug/...
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Put them all in the same directory to test them.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<a name="other">
 | 
					<a name="other">
 | 
				
			||||||
<H2>4. Other systems</H1>
 | 
					<H2>3. Other systems</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Documentation for other environments (some may be very out of date):
 | 
					Documentation for other environments (some may be very out of date):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -111,9 +111,11 @@ It implements the OpenGL 1.3 specification.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
November 2001: I cofounded Tungsten Graphics, Inc. with Keith Whitwell,
 | 
					November 2001: I cofound <a href="http://www.tungstengraphics.com" target="_parent">
 | 
				
			||||||
Jens Owen, David Dawes and Frank LaMonica.
 | 
					Tungsten Graphics, Inc.</a> with Keith Whitwell, Jens Owen, David Dawes and
 | 
				
			||||||
Tungsten Graphics was acquired by VMware in December 2008.
 | 
					Frank LaMonica.
 | 
				
			||||||
 | 
					I continue to develop Mesa as part of my resposibilities with Tungsten
 | 
				
			||||||
 | 
					Graphics and as a spare-time project.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										197
									
								
								docs/libGL.txt
									
									
									
									
									
								
							
							
						
						
									
										197
									
								
								docs/libGL.txt
									
									
									
									
									
								
							@@ -1,197 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Introduction
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This document describes the implementation of the XFree86 4.0 libGL.so
 | 
					 | 
				
			||||||
library defined by the Linux/OpenGL Base specification found at
 | 
					 | 
				
			||||||
http://reality.sgi.com/opengl/linux/linuxbase.html.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The documentation is divided into two sections:
 | 
					 | 
				
			||||||
    User's Guide
 | 
					 | 
				
			||||||
    Driver Developer's Guide
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Author:  Brian Paul     (brian@precisioninsight.com)
 | 
					 | 
				
			||||||
Date:    February 2000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
User's Guide
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Using libGL.so
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The libGL.so library defines the gl- and glX-prefixed functions needed to
 | 
					 | 
				
			||||||
run OpenGL programs.  OpenGL client applications should link with the
 | 
					 | 
				
			||||||
-lGL option to use it.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGL.so serves two primary functions: GLX protocol generation for indirect
 | 
					 | 
				
			||||||
rendering and loading/management of hardware drivers for direct rendering.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When libGL.so initializes itself it uses the DRI to determine the
 | 
					 | 
				
			||||||
appropriate hardware driver for each screen on the local X display.
 | 
					 | 
				
			||||||
The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/
 | 
					 | 
				
			||||||
directory.  Drivers are named with the convention <name>_dri.so where
 | 
					 | 
				
			||||||
<name> is a driver such as "tdfx", "i810", "gamma", etc.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The LIBGL_DRIVERS_DIR environment variable may be used to specify a
 | 
					 | 
				
			||||||
different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/.
 | 
					 | 
				
			||||||
This environment variable is ignored in setuid programs for security
 | 
					 | 
				
			||||||
reasons.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When libGL.so is unable to locate appropriate hardware drivers it will
 | 
					 | 
				
			||||||
fall back to using indirect GLX rendering.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To aid in solving problems, libGL.so will print diagnostic messages to
 | 
					 | 
				
			||||||
stderr if the LIBGL_DEBUG environment variable is defined.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGL.so is thread safe.  The overhead of thread safety for common,
 | 
					 | 
				
			||||||
single-thread clients is negligible.  However, the overhead of thread
 | 
					 | 
				
			||||||
safety for multi-threaded clients is significant.  Each GL API call
 | 
					 | 
				
			||||||
requires two calls to pthread_get_specific() which can noticably
 | 
					 | 
				
			||||||
impact performance.  Warning:  libGL.so is thread safe but individual
 | 
					 | 
				
			||||||
DRI drivers may not be.  Please consult the documentation for a driver
 | 
					 | 
				
			||||||
to learn if it is thread safe.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Indirect Rendering
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
 | 
					 | 
				
			||||||
environment variable.  Hardware acceleration will not be used.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGL.so Extensibility
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGL.so is designed to be extended without upgrading.  That is,
 | 
					 | 
				
			||||||
drivers may install new OpenGL extension functions into libGL.so
 | 
					 | 
				
			||||||
without requiring libGL.so to be replaced.  Clients of libGL.so should
 | 
					 | 
				
			||||||
use the glXGetProcAddressEXT() function to obtain the address of
 | 
					 | 
				
			||||||
functions by name.  For more details of GLX_ARB_get_proc_address see
 | 
					 | 
				
			||||||
http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGL.so is also designed with flexibility such that it may be used
 | 
					 | 
				
			||||||
with many generations of hardware drivers to come.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver Developer's Guide
 | 
					 | 
				
			||||||
------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This section describes the requirements to make an XFree86 4.0
 | 
					 | 
				
			||||||
libGL.so-compatible hardware driver.  It is not intended for end
 | 
					 | 
				
			||||||
users of libGL.so.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
XFree86 source files
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGL.so is built inside XFree86 with sources found in xc/lib/GL/.
 | 
					 | 
				
			||||||
Specifically, libGL.so is built from:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	xc/lib/GL/glx/*.c
 | 
					 | 
				
			||||||
	xc/lib/dri/XF86dri.c
 | 
					 | 
				
			||||||
	xc/lib/dri/dri_glx.c
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glapi.c
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glapitemp.h
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glapitable.h
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glapioffsets.h
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glapinoop.c
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glheader.h
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glthread.c
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/glthread.h
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/X86/glapi_x86.S
 | 
					 | 
				
			||||||
	xc/lib/GL/mesa/src/X86/assyntax.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Understand that the mesa/src/gl*.[ch] files are not tied to Mesa.  They
 | 
					 | 
				
			||||||
have no dependencies on the rest of Mesa and are designed to be reusable
 | 
					 | 
				
			||||||
in a number of projects.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The glapi_x86.X and assyntax.h files implement x86-optimized dispatch
 | 
					 | 
				
			||||||
of GL functions.  They are not required; C-based dispatch can be used
 | 
					 | 
				
			||||||
instead, with a slight performance penalty.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Driver loading and binding
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When libGL.so initializes itself (via the __glXInitialize function) a
 | 
					 | 
				
			||||||
call is made to driCreateDisplay().  This function uses DRI facilities
 | 
					 | 
				
			||||||
to determine the driver file appropriate for each screen on the local
 | 
					 | 
				
			||||||
display.  Each screen's driver is then opened with dlopen() and asked
 | 
					 | 
				
			||||||
for its __driCreateScreen() function.  The pointers to the __driCreateScreen()
 | 
					 | 
				
			||||||
functions are kept in an array, indexed by screen number, in the
 | 
					 | 
				
			||||||
__DRIdisplayRec struct.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When a driver's __driCreateScreen() function is called, it must initialize
 | 
					 | 
				
			||||||
a __DRIscreenRec struct.  This struct acts as the root of a tree of
 | 
					 | 
				
			||||||
function pointers which are called to create and destroy contexts and
 | 
					 | 
				
			||||||
drawables and perform all the operations needed by the GLX interface.
 | 
					 | 
				
			||||||
See the xc/lib/GL/glx/glxclient.h file for details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dynamic Extension Function Registration
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In order to provide forward compatibility with future drivers, libGL.so
 | 
					 | 
				
			||||||
allows drivers to register new OpenGL extension functions which weren't
 | 
					 | 
				
			||||||
known when libGL.so was built.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called
 | 
					 | 
				
			||||||
as soon as libGL.so is loaded.  This is done with gcc's constructor
 | 
					 | 
				
			||||||
attribute.  This mechanism will likely have to be changed for other compilers.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
register_extensions() loops over all local displays and screens, determines
 | 
					 | 
				
			||||||
the DRI driver for each, and calls the driver's __driRegisterExtensions()
 | 
					 | 
				
			||||||
function, if present.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The __driRegisterExtensions() function can add new entrypoints to libGL
 | 
					 | 
				
			||||||
by calling:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The parameters are the name of the function (such as "glFoobarEXT") and the
 | 
					 | 
				
			||||||
offset of the dispatch slot in the API dispatch table.  The return value
 | 
					 | 
				
			||||||
indicates success (GL_TRUE) or failure (GL_FALSE).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
_glapi_add_entrypoint() will synthesize entrypoint code in assembly
 | 
					 | 
				
			||||||
language.  Assembly languages is required since parameter passing
 | 
					 | 
				
			||||||
can't be handled correctly using a C-based solution.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The address of the new entrypoint is obtained by calling the
 | 
					 | 
				
			||||||
glXGetProcAddressARB() function.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The dispatch offset number MUST be a number allocated by SGI in the same
 | 
					 | 
				
			||||||
manner in which new GL_* constants are allocated.  Using an arbitrary
 | 
					 | 
				
			||||||
offset number will result in many problems.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dispatch Management
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When a GL context is made current, the driver must install its dispatch
 | 
					 | 
				
			||||||
table as the current dispatch table.  This is done by calling
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	void _glapi_set_dispatch(struct _glapi_table *dispatch);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This will install the named dispatch table for the calling thread.
 | 
					 | 
				
			||||||
The current dispatch table for a thread can be obtained by calling
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	struct _glapi_table *_glapi_get_dispatch(void);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For higher performance in the common single-thread case, the global
 | 
					 | 
				
			||||||
variable _glapi_Dispatch will point to the current dispatch table.
 | 
					 | 
				
			||||||
This variable will be NULL when in multi-thread mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Context Management
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
libGL.so uses the XFree86 xthreads package to manage a thread-specific
 | 
					 | 
				
			||||||
current context pointer.  See __glXGet/SetCurrentContext() in glext.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Drivers may use the _glapi_set/get_context() functions to maintain
 | 
					 | 
				
			||||||
a private thread-specific context pointer.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -13,50 +13,36 @@
 | 
				
			|||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<ul>
 | 
					<ul>
 | 
				
			||||||
<li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-users"
 | 
					<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-announce"
 | 
				
			||||||
target="_parent">mesa-users</a> - intended for end-users of Mesa and DRI
 | 
					target="_parent">mesa3d-announce</a> - announcements of new Mesa
 | 
				
			||||||
drivers.  Newbie questions are OK, but please try the general OpenGL
 | 
					versions are sent to this list.
 | 
				
			||||||
 | 
					</li>
 | 
				
			||||||
 | 
					<br>
 | 
				
			||||||
 | 
					<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-users"
 | 
				
			||||||
 | 
					target="_parent">mesa3d-users</a> - intended for users of the Mesa and DRI.
 | 
				
			||||||
 | 
					Newbie questions are appropriate, but please try the general OpenGL
 | 
				
			||||||
resources and Mesa/DRI documentation first.
 | 
					resources and Mesa/DRI documentation first.
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
<li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev"
 | 
					<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-dev"
 | 
				
			||||||
target="_parent">mesa-dev</a> - for Mesa, Gallium and DRI development
 | 
					target="_parent">mesa3d-dev</a> - for discussion of Mesa and Direct Rendering 
 | 
				
			||||||
discussion.  Not for beginners.
 | 
					Infrastructure development. Not for beginners.
 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
<li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit"
 | 
					<li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit"
 | 
				
			||||||
target="_parent">mesa-commit</a> - relays git check-in messages
 | 
					target="_parent">mesa-commit</a> - relays git check-in messages
 | 
				
			||||||
(for developers).
 | 
					(for developers).
 | 
				
			||||||
In general, people should not post to this list.
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
<li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-announce"
 | 
					Note: the old mesa3d-cvs list is no longer in use.
 | 
				
			||||||
target="_parent">mesa-announce</a> - announcements of new Mesa
 | 
					 | 
				
			||||||
versions are sent to this list.  Very low traffic.
 | 
					 | 
				
			||||||
</li>
 | 
					</li>
 | 
				
			||||||
</ul>
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Follow the links above for list archives.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The old Mesa lists hosted at SourceForge are no longer in use.
 | 
					 | 
				
			||||||
The archives are still available, however:
 | 
					 | 
				
			||||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-announce" target="_parent">mesa3d-announce</a>,
 | 
					 | 
				
			||||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-users" target="_parent">mesa3d-users</a>,
 | 
					 | 
				
			||||||
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=mesa3d-dev" target="_parent">mesa3d-dev</a>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD 
 | 
					<p>For mailing lists about Direct Rendering Modules (drm) in Linux/BSD 
 | 
				
			||||||
kernels, see the
 | 
					kernels, see <a href="http://dri.freedesktop.org/wiki/MailingLists">wiki</a>.
 | 
				
			||||||
<a href="http://dri.freedesktop.org/wiki/MailingLists" target="_parent">
 | 
					 | 
				
			||||||
DRI wiki</a>.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
<b>Notice</b>: You must subscribe to these lists in order to post to them.
 | 
					<b>Notice</b>: non-member posts to any of these lists will be automatically
 | 
				
			||||||
 | 
					rejected.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										155
									
								
								docs/news.html
									
									
									
									
									
								
							
							
						
						
									
										155
									
								
								docs/news.html
									
									
									
									
									
								
							@@ -11,150 +11,6 @@
 | 
				
			|||||||
<H1>News</H1>
 | 
					<H1>News</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>April 6, 2011</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.10.2.html">Mesa 7.10.2</a> is released.  This is a bug
 | 
					 | 
				
			||||||
fix release release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>March 2, 2011</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.10.1.html">Mesa 7.10.1</a> is released.  This is a bug
 | 
					 | 
				
			||||||
fix release release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Also, <a href="relnotes-7.9.2.html">Mesa 7.9.2</a> is released.
 | 
					 | 
				
			||||||
This is a bug fix release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>January 7, 2011</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.10.html">Mesa 7.10</a> (final) is released.  This is a new
 | 
					 | 
				
			||||||
development release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Also, <a href="relnotes-7.9.1.html">Mesa 7.9.1</a> (final) is released.
 | 
					 | 
				
			||||||
This is a bug fix release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>October 4, 2010</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.9.html">Mesa 7.9</a> (final) is released.  This is a new
 | 
					 | 
				
			||||||
development release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>September 27, 2010</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.9.html">Mesa 7.9.0-rc1</a> is released.  This is a
 | 
					 | 
				
			||||||
release candidate for the 7.9 development release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>June 16, 2010</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.8.2.html">Mesa 7.8.2</a> is released.  This is a bug-fix
 | 
					 | 
				
			||||||
release collecting fixes since the 7.8.1 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>April 5, 2010</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.8.1.html">Mesa 7.8.1</a> is released.  This is a bug-fix
 | 
					 | 
				
			||||||
release for a few critical issues in the 7.8 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>March 28, 2010</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.7.1.html">Mesa 7.7.1</a> is released.  This is a bug-fix
 | 
					 | 
				
			||||||
release fixing issues found in the 7.7 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Also, <a href="relnotes-7.8.html">Mesa 7.8</a> is released.  This is a new
 | 
					 | 
				
			||||||
development release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>December 21, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.6.1.html">Mesa 7.6.1</a> is released.  This is a bug-fix
 | 
					 | 
				
			||||||
release fixing issues found in the 7.6 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Also, <a href="relnotes-7.7.html">Mesa 7.7</a> is released.  This is a new
 | 
					 | 
				
			||||||
development release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>September 28, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.6.html">Mesa 7.6</a> is released.  This is a new feature
 | 
					 | 
				
			||||||
release.  Those especially concerned about stability may want to wait for the
 | 
					 | 
				
			||||||
follow-on 7.6.1 bug-fix release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.5.2.html">Mesa 7.5.2</a> is also released.
 | 
					 | 
				
			||||||
This is a stable release fixing bugs since the 7.5.1 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>September 3, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.5.1.html">Mesa 7.5.1</a> is released.
 | 
					 | 
				
			||||||
This is a bug-fix release which fixes bugs found in version 7.5.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>July 17, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.5.html">Mesa 7.5</a> is released.
 | 
					 | 
				
			||||||
This is a new features release.  People especially concerned about
 | 
					 | 
				
			||||||
stability may want to wait for the follow-on 7.5.1 bug-fix release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>June 23, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.4.4.html">Mesa 7.4.4</a> is released.
 | 
					 | 
				
			||||||
This is a stable release that fixes a regression in the i915/i965 drivers
 | 
					 | 
				
			||||||
that slipped into the 7.4.3 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>June 19, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.4.3.html">Mesa 7.4.3</a> is released.
 | 
					 | 
				
			||||||
This is a stable release fixing bugs since the 7.4.2 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>May 15, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.4.2.html">Mesa 7.4.2</a> is released.
 | 
					 | 
				
			||||||
This is a stable release fixing bugs since the 7.4.1 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>April 18, 2009</h2>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
<a href="relnotes-7.4.1.html">Mesa 7.4.1</a> is released.
 | 
					 | 
				
			||||||
This is a stable release fixing bugs since the 7.4 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>March 27, 2009</h2>
 | 
					<h2>March 27, 2009</h2>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
<a href="relnotes-7.4.html">Mesa 7.4</a> is released.
 | 
					<a href="relnotes-7.4.html">Mesa 7.4</a> is released.
 | 
				
			||||||
@@ -214,6 +70,9 @@ Added a new page describing the <a href="cell.html">Mesa Cell driver</a>.
 | 
				
			|||||||
<p>
 | 
					<p>
 | 
				
			||||||
Gallium3D is the codename for the new Mesa device driver architecture
 | 
					Gallium3D is the codename for the new Mesa device driver architecture
 | 
				
			||||||
which is currently under development.
 | 
					which is currently under development.
 | 
				
			||||||
 | 
					A <a href="http://www.tungstengraphics.com/wiki/index.php/Gallium3D"
 | 
				
			||||||
 | 
					target="_parent"> summary</a> of the architecture can be found on the
 | 
				
			||||||
 | 
					Tungsten Graphics website.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Gallium3D development is taking place on the <em>gallium-0.1</em> branch
 | 
					Gallium3D development is taking place on the <em>gallium-0.1</em> branch
 | 
				
			||||||
@@ -264,8 +123,11 @@ shading language and built-in functions.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<h2>April 2007</h2>
 | 
					<h2>April 2007</h2>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
Thomas Hellström of Tungsten Graphics has written a whitepaper
 | 
					Thomas Hellström of
 | 
				
			||||||
describing the new DRI memory management system</a>.
 | 
					<a href="http://www.tungstengraphics.com" target="_parent">
 | 
				
			||||||
 | 
					Tungsten Graphics</a> has written a whitepaper describing the new
 | 
				
			||||||
 | 
					<a href="http://www.tungstengraphics.com/mm.pdf">DRI memory management
 | 
				
			||||||
 | 
					system</a>.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2>December 5, 2006</h2>
 | 
					<h2>December 5, 2006</h2>
 | 
				
			||||||
@@ -1326,6 +1188,7 @@ grateful.
 | 
				
			|||||||
<p>
 | 
					<p>
 | 
				
			||||||
</p><h2>March 18, 1999</h2>
 | 
					</p><h2>March 18, 1999</h2>
 | 
				
			||||||
<p>The new webpages are now online. Enjoy, and let me know if you find any errors.
 | 
					<p>The new webpages are now online. Enjoy, and let me know if you find any errors.
 | 
				
			||||||
 | 
					For an eye-candy free version you can use <a href="http://www.mesa3d.org/txt/">http://www.mesa3d.org/txt/</a>.</p>
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
</p><h2>February 16, 1999</h2>
 | 
					</p><h2>February 16, 1999</h2>
 | 
				
			||||||
<p><a href="http://www.sgi.com/">SGI</a> releases its <a href="http://www.sgi.com/software/opensource/glx/">GLX
 | 
					<p><a href="http://www.sgi.com/">SGI</a> releases its <a href="http://www.sgi.com/software/opensource/glx/">GLX
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,80 +0,0 @@
 | 
				
			|||||||
<html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<title>OpenGL ES</title>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h1>OpenGL ES</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0.  More informations about
 | 
					 | 
				
			||||||
OpenGL ES can be found at <a href="http://www.khronos.org/opengles/"
 | 
					 | 
				
			||||||
target="_parent"> http://www.khronos.org/opengles/</a>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>OpenGL ES depends on a working EGL implementation.  Please refer to
 | 
					 | 
				
			||||||
<a href="egl.html">Mesa EGL</a> for more information about EGL.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Build the Libraries</h2>
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
<li>Run <code>configure</code> with <code>--enable-gles-overlay</code> and enable the Gallium driver for your hardware.</li>
 | 
					 | 
				
			||||||
<li>Build and install Mesa as usual.</li>
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alternatively, if XCB-DRI2 is installed on the system, one can use
 | 
					 | 
				
			||||||
<code>egl_dri2</code> EGL driver with OpenGL|ES-enabled DRI drivers
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code>.</li>
 | 
					 | 
				
			||||||
<li>Build and install Mesa as usual.</li>
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more
 | 
					 | 
				
			||||||
EGL drivers for your hardware.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Run the Demos</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>There are some demos in <code>progs/egl/</code>.  You can use them to test
 | 
					 | 
				
			||||||
your build.  For example,</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
  $ cd progs/egl/eglut
 | 
					 | 
				
			||||||
  $ make
 | 
					 | 
				
			||||||
  $ cd ../opengles1
 | 
					 | 
				
			||||||
  $ make
 | 
					 | 
				
			||||||
  $ ./torus_x11
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Developers</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Internal Libraries</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<table border="1" style="text-align: center;">
 | 
					 | 
				
			||||||
	<tr><td>Library Name</td><td>Used By</td><td>Enabled</td><td>OpenGL</td><td>OpenGL ES 1.x</td><td>OpenGL ES 2.x</td></tr>
 | 
					 | 
				
			||||||
	<tr><td><code>libmesa.a</td><td>Classic DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
 | 
					 | 
				
			||||||
	<tr><td><code>libmesagallium.a</td><td>Gallium EGL and DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
 | 
					 | 
				
			||||||
	<tr><td><code>libes1gallium.a</td><td>Gallium EGL drivers</td><td>--enable-gles-overlay</td><td>n</td><td>y</td><td>n</td></tr>
 | 
					 | 
				
			||||||
	<tr><td><code>libes2gallium.a</td><td>Gallium EGL drivers</td><td>--enable-gles-overlay</td><td>n</td><td>n</td><td>y</td></tr>
 | 
					 | 
				
			||||||
</table>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Dispatch Table</h3>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>OpenGL ES has an additional indirection when dispatching fucntions</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
  Mesa:       glFoo() --> _mesa_Foo()
 | 
					 | 
				
			||||||
  OpenGL ES:  glFoo() --> _es_Foo() --> _mesa_Foo()
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>The indirection serves several purposes</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>When a function is in Mesa and the type matches, it checks the arguments and calls the Mesa function.</li>
 | 
					 | 
				
			||||||
<li>When a function is in Mesa but the type mismatches, it checks and converts the arguments before calling the Mesa function.</li>
 | 
					 | 
				
			||||||
<li>When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.</li>
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Other than the last case, OpenGL ES uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,52 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<TITLE>OpenVG State Tracker</TITLE>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body bgcolor="#eeeeee">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>OpenVG State Tracker</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The current version of the OpenVG state tracker implements OpenVG 1.0.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
More informations about OpenVG can be found at
 | 
					 | 
				
			||||||
<a href="http://www.khronos.org/openvg/" target="_parent">
 | 
					 | 
				
			||||||
http://www.khronos.org/openvg/</a> .
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
The OpenVG state tracker depends on the Gallium architecture and a working EGL implementation.
 | 
					 | 
				
			||||||
Please refer to <a href="egl.html">Mesa EGL</a> for more information about EGL.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Building the library</h2>
 | 
					 | 
				
			||||||
<ol>
 | 
					 | 
				
			||||||
<li>Run <code>configure</code> with <code>--enable-openvg</code>.  If you do
 | 
					 | 
				
			||||||
not need OpenGL, you can add <code>--disable-opengl</code> to save the
 | 
					 | 
				
			||||||
compilation time.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Build and install Mesa as usual.</li>
 | 
					 | 
				
			||||||
</ol>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h3>Sample build</h3>
 | 
					 | 
				
			||||||
A sample build looks as follows:
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
  $ ./configure --disable-opengl --enable-openvg
 | 
					 | 
				
			||||||
  $ make
 | 
					 | 
				
			||||||
  $ make install
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>It will install <code>libOpenVG.so</code>, <code>libEGL.so</code>, and one
 | 
					 | 
				
			||||||
or more EGL drivers.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>OpenVG Demos</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>OpenVG demos can be found in mesa/demos repository.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -26,7 +26,7 @@ more information about the API functions.
 | 
				
			|||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
There are several examples of OSMesa in the <code>progs/osdemos/</code>
 | 
					There are several examples of OSMesa in the <code>progs/osdemo/</code>
 | 
				
			||||||
directory.
 | 
					directory.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										54
									
								
								docs/pbuffers.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								docs/pbuffers.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					<HTML>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<TITLE>PBuffer Rendering</TITLE>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<link rel="stylesheet" type="text/css" href="mesa.css"></head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<BODY>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<H1>PBuffer Rendering</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Basically, FBconfigs and PBuffers allow you to do off-screen rendering
 | 
				
			||||||
 | 
					with OpenGL.  The OSMesa interface does basically the same thing, but
 | 
				
			||||||
 | 
					fbconfigs and pbuffers are supported by more vendors.
 | 
				
			||||||
 | 
					PBuffer rendering may also be hardware accelerated.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					PBuffers are getting more use nowadays, though they've actually been
 | 
				
			||||||
 | 
					around for a long time on IRIX systems and other workstations.
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					The
 | 
				
			||||||
 | 
					<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt"
 | 
				
			||||||
 | 
					target="_parent">GL_SGIX_fbconfig</a>
 | 
				
			||||||
 | 
					and
 | 
				
			||||||
 | 
					<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt"
 | 
				
			||||||
 | 
					target="_parent">
 | 
				
			||||||
 | 
					GL_SGIX_pbuffer</a> extensions describe the functionality.
 | 
				
			||||||
 | 
					More recently, these extensions have been promoted to ARB extensions (on
 | 
				
			||||||
 | 
					Windows at least).
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					The Mesa/progs/xdemos/ directory has some useful code for working
 | 
				
			||||||
 | 
					with pbuffers:
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					<li><b>pbinfo.c</b> - like glxinfo, it prints a list of available
 | 
				
			||||||
 | 
					    fbconfigs and whether each supports pbuffers.
 | 
				
			||||||
 | 
					<li><b>pbutil.c</b> - a few utility functions for dealing with
 | 
				
			||||||
 | 
					    fbconfigs and pbuffers.
 | 
				
			||||||
 | 
					<li><b>pbdemo.c</b> - a demonstration of off-screen rendering with pbuffers.
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>
 | 
				
			||||||
 | 
					Mesa 4.1 and later support GL_SGIX_fbconfig and GL_SGIX_pbuffer (software
 | 
				
			||||||
 | 
					rendering only).
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</BODY>
 | 
				
			||||||
 | 
					</HTML>
 | 
				
			||||||
@@ -9,11 +9,17 @@
 | 
				
			|||||||
<H1>Precompiled Libraries</H1>
 | 
					<H1>Precompiled Libraries</H1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
In general, precompiled Mesa libraries are not available.
 | 
					In general, precompiled libraries are not available.
 | 
				
			||||||
 | 
					However, people occasionally prepare packages of precompiled libraries
 | 
				
			||||||
 | 
					for some systems.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<H2>Mesa-6.0 for Solaris</H2>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
However, some Linux distros (such as Ubuntu) seem to closely track
 | 
					Steve Christensen has submitted precompiled Mesa-6.0 libraries for
 | 
				
			||||||
Mesa and often have the latest Mesa release available as an update.
 | 
					Solaris at <a href="http://sunfreeware.com/" target="_parent">
 | 
				
			||||||
 | 
					sunfreeware.com</a>.
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</BODY>
 | 
					</BODY>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,380 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
<TITLE>Mesa Release Notes</TITLE>
 | 
					 | 
				
			||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
 | 
					 | 
				
			||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body bgcolor="#eeeeee">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Mesa 7.10.1 Release Notes / March 2, 2011</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 7.10.1 is a bug fix release which fixes bugs found since the 7.10 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 7.10.1 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.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
 | 
					 | 
				
			||||||
for DRI hardware acceleration.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>MD5 checksums</h2>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
4b4cee19f3bf16eb78bd4cc278ccf812  MesaLib-7.10.1.tar.gz
 | 
					 | 
				
			||||||
efe8da4d80c2a5d32a800770b8ce5dfa  MesaLib-7.10.1.tar.bz2
 | 
					 | 
				
			||||||
0fd2b1a025934de3f8cecf9fb9b57f4c  MesaLib-7.10.1.zip
 | 
					 | 
				
			||||||
42beb0f5188d544476c19496f725fa67  MesaGLUT-7.10.1.tar.gz
 | 
					 | 
				
			||||||
637bb8a20fdad89f7382b4ea83f896e3  MesaGLUT-7.10.1.tar.bz2
 | 
					 | 
				
			||||||
bdbf3ffb2606d6aa8afabb6c6243b91b  MesaGLUT-7.10.1.zip
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>New features</h2>
 | 
					 | 
				
			||||||
<p>None.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Bug fixes</h2>
 | 
					 | 
				
			||||||
<p>This list is likely incomplete.</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
<li>Fix an off-by-one bug in a vsplit assertion.</li>
 | 
					 | 
				
			||||||
<li>Fix incorrect handling of <tt>layout</tt> qualifier
 | 
					 | 
				
			||||||
with <tt>in</tt>, <tt>out</tt>, <tt>attribute</tt>, and <tt>varying</tt>.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Fix an i965 shader bug where the negative absolute value was generated instead of the absolute value of a negation.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Fix numerous issues handling precision qualifiers in GLSL ES.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Fixed a few GLX protocol encoder bugs (Julien Cristau)</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Assorted Gallium llvmpipe driver bug fixes</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li>Assorted Mesa/Gallium state tracker bug fixes</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=26795">Bug 26795</a> - gl_FragCoord off by one in Gallium drivers.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29164">Bug 29164</a> - [GLSL 1.20] invariant variable shouldn't be used before declaration</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29823">Bug 29823</a> - GetUniform[if]v busted</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29927">Bug 29927</a> - [glsl2] fail to compile shader with constructor for array of struct type</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=30156">Bug 30156</a> - [i965] After updating to Mesa 7.9, Civilization IV starts to show garbage</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31923">Bug 31923</a> - [GLSL 1.20] allowing inconsistent centroid declaration between two vertex shaders</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31925">Bug 31925</a> - [GLSL 1.20] "#pragma STDGL invariant(all)" fail</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32214">Bug 32214</a> - [gles2]no link error happens when missing vertex shader or frag shader</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32375">Bug 32375</a> - [gl gles2] Not able to get the attribute by function glGetVertexAttribfv</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32541">Bug 32541</a> - Segmentation Fault while running an HDR (high dynamic range) rendering demo</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32569">Bug 32569</a> - [gles2] glGetShaderPrecisionFormat not implemented yet</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32695">Bug 32695</a> - [glsl] SIGSEGV glcpp/glcpp-parse.y:833</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32831">Bug 32831</a> - [glsl] division by zero crashes GLSL compiler</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32910">Bug 32910</a> - Keywords 'in' and 'out' not handled properly for GLSL 1.20 shaders</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33219">Bug 33219</a> -[GLSL bisected] implicit sized array triggers segfault in ir_to_mesa_visitor::copy_propagate</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33306">Bug 33306</a> - GLSL integer division by zero crashes GLSL compiler</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33308">Bug 33308</a> -[glsl] ast_to_hir.cpp:3016: virtual ir_rvalue* ast_jump_statement::hir(exec_list*, _mesa_glsl_parse_state*): Assertion `ret != __null' failed.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33316">Bug 33316</a> - uniform array will be allocate one line more and initialize it when it was freed will abort</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33386">Bug 33386</a> - Dubious assembler in read_rgba_span_x86.S</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33388">Bug 33388</a> - Dubious assembler in xform4.S</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33433">Bug 33433</a> - Error in x86-64 API dispatch code.</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33507">Bug 33507</a> - [glsl] GLSL preprocessor modulus by zero crash</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33508">Bug 33508</a> - [glsl] GLSL compiler modulus by zero crash</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=33916">Bug 33916</a> - Compiler accepts reserved operators % and %=</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34030">Bug 34030</a> - [bisected] Starcraft 2: some effects are corrupted or too big</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34047">Bug 34047</a> - Assert in _tnl_import_array() when using GLfixed vertex datatypes with GLESv2</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34114">Bug 34114</a> - Sun Studio build fails due to standard library functions not being in global namespace</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34179">Bug 34179</a> - Nouveau 3D driver: nv50_pc_emit.c:863 assertion error kills Compiz</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34198">Bug 34198</a> - [GLSL] implicit sized array with index 0 used gets assertion</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/691653">Ubuntu bug 691653</a> - compiz crashes when using alt-tab (the radeon driver kills it) </li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.meego.com/show_bug.cgi?id=13005">Meego bug 13005</a> - Graphics GLSL issue lead to camera preview fail on Pinetrail</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> -->
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Changes</h2>
 | 
					 | 
				
			||||||
<p>The full set of changes can be viewed by using the following GIT command:</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
  git log mesa-7.10..mesa-7.10.1
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Alberto Milone (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>r600c: add evergreen ARL support.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Brian Paul (21):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>draw: Fix an off-by-one bug in a vsplit assertion.</li>
 | 
					 | 
				
			||||||
  <li>docs: add links to 7.9.1 and 7.10 release notes</li>
 | 
					 | 
				
			||||||
  <li>docs: added news item for 7.9.1 and 7.10 release</li>
 | 
					 | 
				
			||||||
  <li>gallivm: work around LLVM 2.6 bug when calling C functions</li>
 | 
					 | 
				
			||||||
  <li>gallivm: fix copy&paste error from previous commit</li>
 | 
					 | 
				
			||||||
  <li>mesa: fix a few format table mistakes, assertions</li>
 | 
					 | 
				
			||||||
  <li>mesa: fix num_draw_buffers==0 in fixed-function fragment program generation</li>
 | 
					 | 
				
			||||||
  <li>mesa: don't assert in GetIntegerIndexed, etc</li>
 | 
					 | 
				
			||||||
  <li>mesa: check for dummy renderbuffer in _mesa_FramebufferRenderbufferEXT()</li>
 | 
					 | 
				
			||||||
  <li>llvmpipe: make sure binning is active when we begin/end a query</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: fix incorrect fragcoord.x translation</li>
 | 
					 | 
				
			||||||
  <li>softpipe: fix off-by-one error in setup_fragcoord_coeff()</li>
 | 
					 | 
				
			||||||
  <li>cso: fix loop bound in cso_set_vertex_samplers()</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: fix incorrect glCopyPixels position on fallback path</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: set renderbuffer _BaseFormat in a few places</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: fix the default case in st_format_datatype()</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: need to translate clear color according to surface's base format</li>
 | 
					 | 
				
			||||||
  <li>docs: update 7.9.2 release notes with Brian's cherry-picks</li>
 | 
					 | 
				
			||||||
  <li>docs: add link to 7.10.1 release notes</li>
 | 
					 | 
				
			||||||
  <li>mesa: implement glGetShaderPrecisionFormat()</li>
 | 
					 | 
				
			||||||
  <li>docs: updated environment variable list</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Bryce Harrington (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>r300g: Null pointer check for buffer deref in gallium winsys</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Chad Versace (20):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>glsl: At link-time, check that globals have matching centroid qualifiers</li>
 | 
					 | 
				
			||||||
  <li>glcpp: Fix segfault when validating macro redefinitions</li>
 | 
					 | 
				
			||||||
  <li>glsl: Fix parser rule for type_specifier</li>
 | 
					 | 
				
			||||||
  <li>glsl: Change default value of ast_type_specifier::precision</li>
 | 
					 | 
				
			||||||
  <li>glsl: Add semantic checks for precision qualifiers</li>
 | 
					 | 
				
			||||||
  <li>glsl: Add support for default precision statements</li>
 | 
					 | 
				
			||||||
  <li>glsl: Remove redundant semantic check in parser</li>
 | 
					 | 
				
			||||||
  <li>glsl: Fix semantic checks on precision qualifiers</li>
 | 
					 | 
				
			||||||
  <li>glsl: Fix segfault due to missing printf argument</li>
 | 
					 | 
				
			||||||
  <li>glsl: Mark 'in' variables at global scope as read-only</li>
 | 
					 | 
				
			||||||
  <li>mesa: Refactor handling of extension strings</li>
 | 
					 | 
				
			||||||
  <li>mesa: Add/remove extensions in extension string</li>
 | 
					 | 
				
			||||||
  <li>mesa: Change dependencies of some OES extension strings</li>
 | 
					 | 
				
			||||||
  <li>mesa: Change OES_point_sprite to depend on ARB_point_sprite</li>
 | 
					 | 
				
			||||||
  <li>mesa: Change OES_standard_derivatives to be stand-alone extension</li>
 | 
					 | 
				
			||||||
  <li>i915: Disable extension OES_standard_derivatives</li>
 | 
					 | 
				
			||||||
  <li>glcpp: Raise error when modulus is zero</li>
 | 
					 | 
				
			||||||
  <li>glsl: Set operators '%' and '%=' to be reserved when GLSL < 1.30</li>
 | 
					 | 
				
			||||||
  <li>glsl: Reinstate constant-folding for division by zero</li>
 | 
					 | 
				
			||||||
  <li>tnl: Add support for datatype GL_FIXED in vertex arrays</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Chia-I Wu (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>mesa: Add glDepthRangef and glClearDepthf to APIspec.xml.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Christoph Bumiller (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>nv50,nvc0: do not forget to apply sign mode to saved TGSI inputs</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Cyril Brulebois (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>Point to bugs.freedesktop.org rather than bugzilla.freedesktop.org</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Dave Airlie (3):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>radeon/r200: fix fbo-clearmipmap + gen-teximage</li>
 | 
					 | 
				
			||||||
  <li>radeon: calculate complete texture state inside TFP function</li>
 | 
					 | 
				
			||||||
  <li>radeon: avoid segfault on 3D textures.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Dimitry Andric (4):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>mesa: s/movzx/movzbl/</li>
 | 
					 | 
				
			||||||
  <li>mesa: s/movzxw/movzwl/ in read_rgba_span_x86.S</li>
 | 
					 | 
				
			||||||
  <li>glapi: adding @ char before type specifier in glapi_x86.S</li>
 | 
					 | 
				
			||||||
  <li>glapi: add @GOTPCREL relocation type</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Eric Anholt (16):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>glsl: Fix the lowering of variable array indexing to not lose write_masks.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: When producing ir_unop_abs of an operand, strip negate.</li>
 | 
					 | 
				
			||||||
  <li>i965/vs: When MOVing to produce ABS, strip negate of the operand.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: Do flat shading when appropriate.</li>
 | 
					 | 
				
			||||||
  <li>i965: Avoid double-negation of immediate values in the VS.</li>
 | 
					 | 
				
			||||||
  <li>intel: Make renderbuffer tiling choice match texture tiling choice.</li>
 | 
					 | 
				
			||||||
  <li>i965: Fix dead pointers to fp->Parameters->ParameterValues[] after realloc.</li>
 | 
					 | 
				
			||||||
  <li>docs: Add a relnote for the Civ IV on i965.</li>
 | 
					 | 
				
			||||||
  <li>glapi: Add entrypoints and enums for GL_ARB_ES2_compatibility.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Add extension enable bit for GL_ARB_ES2_compatibility.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Add actual support for glReleaseShaderCompiler from ES2.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Add support for glDepthRangef and glClearDepthf.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Add getters for ARB_ES2_compatibility MAX_*_VECTORS.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Add getter for GL_SHADER_COMPILER with ARB_ES2_compatibility.</li>
 | 
					 | 
				
			||||||
  <li>i965: Fix a bug in i965 compute-to-MRF.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: Add a helper function for detecting math opcodes.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Fredrik Höglund (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>st/mesa: fix a regression from cae2bb76</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Ian Romanick (42):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>docs: Add 7.10 md5sums</li>
 | 
					 | 
				
			||||||
  <li>glsl: Support the 'invariant(all)' pragma</li>
 | 
					 | 
				
			||||||
  <li>glcpp: Generate an error for division by zero</li>
 | 
					 | 
				
			||||||
  <li>glsl: Add version_string containing properly formatted GLSL version</li>
 | 
					 | 
				
			||||||
  <li>glsl & glcpp: Refresh autogenerated lexer and parser files.</li>
 | 
					 | 
				
			||||||
  <li>glsl: Disallow 'in' and 'out' on globals in GLSL 1.20</li>
 | 
					 | 
				
			||||||
  <li>glsl: Track variable usage, use that to enforce semantics</li>
 | 
					 | 
				
			||||||
  <li>glsl: Allow 'in' and 'out' when 'layout' is also available</li>
 | 
					 | 
				
			||||||
  <li>docs: Initial bits of 7.10.1 release notes</li>
 | 
					 | 
				
			||||||
  <li>mesa: bump version to 7.10.1-devel</li>
 | 
					 | 
				
			||||||
  <li>doc: Update 7.10.1 release notes</li>
 | 
					 | 
				
			||||||
  <li>glsl: Emit errors or warnings when 'layout' is used with 'attribute' or 'varying'</li>
 | 
					 | 
				
			||||||
  <li>docs: Update 7.10.1 release notes</li>
 | 
					 | 
				
			||||||
  <li>glsl: Refresh autogenerated lexer and parser files.</li>
 | 
					 | 
				
			||||||
  <li>glsl: Don't assert when the value returned by a function has no rvalue</li>
 | 
					 | 
				
			||||||
  <li>linker: Set sizes for non-global arrays as well</li>
 | 
					 | 
				
			||||||
  <li>linker: Propagate max_array_access while linking functions</li>
 | 
					 | 
				
			||||||
  <li>docs: Update 7.10.1 release notes</li>
 | 
					 | 
				
			||||||
  <li>mesa: glGetUniform only returns a single element of an array</li>
 | 
					 | 
				
			||||||
  <li>linker: Generate link errors when ES shaders are missing stages</li>
 | 
					 | 
				
			||||||
  <li>mesa: Fix error checks in GetVertexAttrib functions</li>
 | 
					 | 
				
			||||||
  <li>Use C-style system headers in C++ code to avoid issues with std:: namespace</li>
 | 
					 | 
				
			||||||
  <li>docs: Update 7.10.1 release notes</li>
 | 
					 | 
				
			||||||
  <li>glapi: Regenerate for GL_ARB_ES2_compatibility.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Connect glGetShaderPrecisionFormat into the dispatch table</li>
 | 
					 | 
				
			||||||
  <li>i965: Set correct values for range/precision of fragment shader types</li>
 | 
					 | 
				
			||||||
  <li>i915: Set correct values for range/precision of fragment shader types</li>
 | 
					 | 
				
			||||||
  <li>intel: Fix typeos from 3d028024 and 790ff232</li>
 | 
					 | 
				
			||||||
  <li>glsl: Ensure that all GLSL versions are supported in the stand-alone compiler</li>
 | 
					 | 
				
			||||||
  <li>glsl: Reject shader versions not supported by the implementation</li>
 | 
					 | 
				
			||||||
  <li>mesa: Initial size for secondary color array is 3</li>
 | 
					 | 
				
			||||||
  <li>glsl: Finish out the reduce/reduce error fixes</li>
 | 
					 | 
				
			||||||
  <li>glsl: Regenerate compiler and glcpp files from cherry picks</li>
 | 
					 | 
				
			||||||
  <li>linker: Fix off-by-one error implicit array sizing</li>
 | 
					 | 
				
			||||||
  <li>docs: update 7.10.1 release notes with Ian's recent cherry picks</li>
 | 
					 | 
				
			||||||
  <li>i915: Only mark a register as available if all components are written</li>
 | 
					 | 
				
			||||||
  <li>i915: Calculate partial result to temp register first</li>
 | 
					 | 
				
			||||||
  <li>i915: Force lowering of all types of indirect array accesses in the FS</li>
 | 
					 | 
				
			||||||
  <li>docs: Update 7.10.1 with (hopefully) the last of the cherry picks</li>
 | 
					 | 
				
			||||||
  <li>docs: Clean up bug fixes list</li>
 | 
					 | 
				
			||||||
  <li>intel: Remove driver date and related bits from renderer string</li>
 | 
					 | 
				
			||||||
  <li>mesa: set version string to 7.10.1 (final)</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Jian Zhao (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>mesa: fix an error in uniform arrays in row calculating.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Julien Cristau (3):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>glx: fix request lengths</li>
 | 
					 | 
				
			||||||
  <li>glx: fix GLXChangeDrawableAttributesSGIX request</li>
 | 
					 | 
				
			||||||
  <li>glx: fix length of GLXGetFBConfigsSGIX</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Keith Packard (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>glsl: Eliminate reduce/reduce conflicts in glsl grammar</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Kenneth Graunke (20):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>glsl: Expose a public glsl_type::void_type const pointer.</li>
 | 
					 | 
				
			||||||
  <li>glsl: Don't bother unsetting a destructor that was never set.</li>
 | 
					 | 
				
			||||||
  <li>glsl, i965: Remove unnecessary talloc includes.</li>
 | 
					 | 
				
			||||||
  <li>glcpp: Remove use of talloc reference counting.</li>
 | 
					 | 
				
			||||||
  <li>ralloc: Add a fake implementation of ralloc based on talloc.</li>
 | 
					 | 
				
			||||||
  <li>Convert everything from the talloc API to the ralloc API.</li>
 | 
					 | 
				
			||||||
  <li>ralloc: a new MIT-licensed recursive memory allocator.</li>
 | 
					 | 
				
			||||||
  <li>Remove talloc from the make and automake build systems.</li>
 | 
					 | 
				
			||||||
  <li>Remove talloc from the SCons build system.</li>
 | 
					 | 
				
			||||||
  <li>Remove the talloc sources from the Mesa repository.</li>
 | 
					 | 
				
			||||||
  <li>glsl: Fix use of uninitialized values in _mesa_glsl_parse_state ctor.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: Apply source modifier workarounds to POW as well.</li>
 | 
					 | 
				
			||||||
  <li>i965: Fix shaders that write to gl_PointSize on Sandybridge.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: Avoid register coalescing away gen6 MATH workarounds.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: Correctly set up gl_FragCoord.w on Sandybridge.</li>
 | 
					 | 
				
			||||||
  <li>i965: Increase Sandybridge point size clamp.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: Refactor control flow stack handling.</li>
 | 
					 | 
				
			||||||
  <li>i965: Increase Sandybridge point size clamp in the clip state.</li>
 | 
					 | 
				
			||||||
  <li>glsl: Use reralloc instead of plain realloc.</li>
 | 
					 | 
				
			||||||
  <li>Revert "i965/fs: Correctly set up gl_FragCoord.w on Sandybridge."</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Marek Olšák (4):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>docs: fix messed up names with special characters in relnotes-7.10</li>
 | 
					 | 
				
			||||||
  <li>docs: fix messed up names with special characters in relnotes-7.9.1</li>
 | 
					 | 
				
			||||||
  <li>mesa: fix texture3D mipmap generation for UNSIGNED_BYTE_3_3_2</li>
 | 
					 | 
				
			||||||
  <li>st/dri: Track drawable context bindings</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Paulo Zanoni (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>dri_util: fail driCreateNewScreen if InitScreen is NULL</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Sam Hocevar (2):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>docs: add glsl info</li>
 | 
					 | 
				
			||||||
  <li>docs: fix glsl_compiler name</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Tom Fogal (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>Regenerate gl_mangle.h.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Tom Stellard (2):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>r300/compiler: Disable register rename pass on r500</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: Don't erase sources when converting RGB->Alpha</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Vinson Lee (3):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>ralloc: Add missing va_end following va_copy.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Move declaration before code in extensions.c.</li>
 | 
					 | 
				
			||||||
  <li>mesa: Move loop variable declarations outside for loop in extensions.c.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>nobled (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>glx: Put null check before use</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
@@ -1,201 +0,0 @@
 | 
				
			|||||||
<HTML>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
<TITLE>Mesa Release Notes</TITLE>
 | 
					 | 
				
			||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
 | 
					 | 
				
			||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<BODY>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<body bgcolor="#eeeeee">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<H1>Mesa 7.10.2 Release Notes / TBD</H1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 7.10.2 is a bug fix release which fixes bugs found since the 7.10 release.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
Mesa 7.10.2 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.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
<p>
 | 
					 | 
				
			||||||
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
 | 
					 | 
				
			||||||
for DRI hardware acceleration.
 | 
					 | 
				
			||||||
</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>MD5 checksums</h2>
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
TBD
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>New features</h2>
 | 
					 | 
				
			||||||
<p>None.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Bug fixes</h2>
 | 
					 | 
				
			||||||
<p>This list is likely incomplete.</p>
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=29172">Bug 29172</a> - Arrandale - Pill Popper Pops Pills</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=31159">Bug 31159</a> - shadow problem in 0ad game</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32688">Bug 32688</a> - [RADEON:KMS:R300G] some games have a wireframe or outline visible</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=32949">Bug 32949</a> - [glsl wine] Need for Speed renders incorrectly with GLSL enabled</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34203">Bug 34203</a> - [GLSL] fail to call long chains across shaders</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34376">Bug 34376</a> - [GLSL] allowing assignment to unsized array
 | 
					 | 
				
			||||||
  <ul>
 | 
					 | 
				
			||||||
    <li>The commit message incorrectly
 | 
					 | 
				
			||||||
    lists <a href="https://bugs.freedesktop.org/show_bug.cgi?id=34367">bug
 | 
					 | 
				
			||||||
    34367</a>.</li>
 | 
					 | 
				
			||||||
  </ul>
 | 
					 | 
				
			||||||
</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34370">Bug 34370</a> - [GLSL] "i<5 && i<4" in for loop fails</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=34374">Bug 34374</a> - [GLSL] fail to redeclare an array using initializer</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35073">Bug 35073</a> - [GM45] Alpha test is broken when rendering to FBO with no color attachment</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=35483">Bug 35483</a> - util_blit_pixels_writemask: crash in line 322 of src/gallium/auxiliary/util/u_blit.c</li>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> -->
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<h2>Changes</h2>
 | 
					 | 
				
			||||||
<p>The full set of changes can be viewed by using the following GIT command:</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<pre>
 | 
					 | 
				
			||||||
  git log mesa-7.10.1..mesa-7.10.2
 | 
					 | 
				
			||||||
</pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p><em>Note:</em> Reverted commits and the reverts are not included in this list.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Alex Deucher (2):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>r600c: add new ontario pci ids</li>
 | 
					 | 
				
			||||||
  <li>r600g: add some additional ontario pci ids</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Benjamin Franzke (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>st/dri: Fix surfaceless gl using contexts with previous bound surfaces</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Brian Paul (9):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>docs: pull 7.9.2 release notes into 7.10 branch</li>
 | 
					 | 
				
			||||||
  <li>docs: update news.html with 7.10.1 and 7.9.2 releases</li>
 | 
					 | 
				
			||||||
  <li>docs: fill in 7.10.1 release data</li>
 | 
					 | 
				
			||||||
  <li>docs: add, fix release notes links</li>
 | 
					 | 
				
			||||||
  <li>docs: update info about Mesa packaging/contents</li>
 | 
					 | 
				
			||||||
  <li>docs: update prerequisites, remove old demo info</li>
 | 
					 | 
				
			||||||
  <li>mesa: Guard against null pointer deref in fbo validation</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: Apply LOD bias from correct texture unit</li>
 | 
					 | 
				
			||||||
  <li>glsl: silence warning in printf() with a cast</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Chad Versace (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>i965: Fix tex_swizzle when depth mode is GL_RED</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Dave Airlie (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>r600: don't close fd on failed load</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Eric Anholt (2):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>i965: Apply a workaround for the Ironlake "vertex flashing".</li>
 | 
					 | 
				
			||||||
  <li>i965: Fix alpha testing when there is no color buffer in the FBO.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Fabian Bieler (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>st/mesa: Apply LOD from texture object</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Henri Verbeet (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>st/mesa: Validate state before doing blits.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Ian Romanick (13):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>docs: Add 7.10.1 md5sums</li>
 | 
					 | 
				
			||||||
  <li>glsl: Refactor AST-to-HIR code handling variable initializers</li>
 | 
					 | 
				
			||||||
  <li>glsl: Refactor AST-to-HIR code handling variable redeclarations</li>
 | 
					 | 
				
			||||||
  <li>glsl: Process redeclarations before initializers</li>
 | 
					 | 
				
			||||||
  <li>glsl: Function signatures cannot have NULL return type</li>
 | 
					 | 
				
			||||||
  <li>glsl: Add several function / call related validations</li>
 | 
					 | 
				
			||||||
  <li>linker: Add imported functions to the linked IR</li>
 | 
					 | 
				
			||||||
  <li>glsl: Use insert_before for lists instead of open coding it</li>
 | 
					 | 
				
			||||||
  <li>glsl: Only allow unsized array assignment in an initializer</li>
 | 
					 | 
				
			||||||
  <li>glcpp: Refresh autogenerated lexer files</li>
 | 
					 | 
				
			||||||
  <li>docs: Initial bits of 7.10.2 release notes</li>
 | 
					 | 
				
			||||||
  <li>mesa: set version string to 7.10.2</li>
 | 
					 | 
				
			||||||
  <li>mesa: Remove nonexistant files from _FILES lists</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Jerome Glisse (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>r600g: move user fence into base radeon structure</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>José Fonseca (2):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>mesa: Fix typo glGet*v(GL_TEXTURE_COORD_ARRAY_*).</li>
 | 
					 | 
				
			||||||
  <li>mesa: More glGet* fixes.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Kenneth Graunke (4):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>glcpp: Rework lexer to use a SKIP state rather than REJECT.</li>
 | 
					 | 
				
			||||||
  <li>glcpp: Remove trailing contexts from #if rules.</li>
 | 
					 | 
				
			||||||
  <li>i965/fs: Fix linear gl_Color interpolation on pre-gen6 hardware.</li>
 | 
					 | 
				
			||||||
  <li>glsl: Accept precision qualifiers on sampler types, but only in ES.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Marek Olšák (15):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>st/mesa: fix crash when DrawBuffer->_ColorDrawBuffers[0] is NULL</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: fail to alloc a renderbuffer if st_choose_renderbuffer_format fails</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: fix the saturate modifier when applied to TEX instructions</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: fix translating the src negate bits in pair_translate</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: Abs doesn't cancel Negate (in the conversion to native swizzles)</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: TEX instructions don't support negation on source arguments</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: do not set TEX_IGNORE_UNCOVERED on r500</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: saturate Z before the shadow comparison</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: fix equal and notequal shadow compare functions</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: remove unused variables</li>
 | 
					 | 
				
			||||||
  <li>st/mesa: fix crash when using both user and vbo buffers with the same stride</li>
 | 
					 | 
				
			||||||
  <li>r300g: fix alpha-test with no colorbuffer</li>
 | 
					 | 
				
			||||||
  <li>r300g: tell the GLSL compiler to lower the continue opcode</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: propagate SaturateMode down to the result of shadow comparison</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: apply the texture swizzle to shadow pass and fail values too</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Michel Dänzer (1):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>Use proper source row stride when getting depth/stencil texels.</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>Tom Stellard (4):
 | 
					 | 
				
			||||||
<ul>
 | 
					 | 
				
			||||||
  <li>r300/compiler: Use a 4-bit writemask in pair instructions</li>
 | 
					 | 
				
			||||||
  <li>prog_optimize: Fix reallocating registers for shaders with loops</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: Fix vertex shader MAD instructions with constant swizzles</li>
 | 
					 | 
				
			||||||
  <li>r300/compiler: Don't try to convert RGB to Alpha in full instructions</li>
 | 
					 | 
				
			||||||
</ul></p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user