Compare commits
	
		
			166 Commits
		
	
	
		
			mesa-7.11.
			...
			mesa_7_4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 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 | ||||
| *.dll | ||||
| *.exe | ||||
| *.ilk | ||||
| *.o | ||||
| *.obj | ||||
| *.os | ||||
| *.pc | ||||
| *.pdb | ||||
| *.pyc | ||||
| *.pyo | ||||
| *.so | ||||
| *.sw[a-z] | ||||
| *.pc | ||||
| *~ | ||||
| depend | ||||
| depend.bak | ||||
| @@ -22,7 +14,3 @@ aclocal.m4 | ||||
| config.log | ||||
| config.status | ||||
| cscope* | ||||
| .scon* | ||||
| config.py | ||||
| build | ||||
| .dir-locals.el | ||||
|   | ||||
							
								
								
									
										400
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										400
									
								
								Makefile
									
									
									
									
									
								
							| @@ -2,21 +2,16 @@ | ||||
|  | ||||
| TOP = . | ||||
|  | ||||
| SUBDIRS = src | ||||
| SUBDIRS = src progs | ||||
|  | ||||
|  | ||||
| # The git command below generates an empty string when we're not | ||||
| # building in a GIT tree (i.e., building from a release tarball). | ||||
| default: $(TOP)/configs/current | ||||
| 	@$(TOP)/bin/extract_git_sha1 | ||||
| 	@for dir in $(SUBDIRS) ; do \ | ||||
| 		if [ -d $$dir ] ; then \ | ||||
| 			(cd $$dir && $(MAKE)) || exit 1 ; \ | ||||
| 		fi \ | ||||
| 	done | ||||
|  | ||||
| all: default | ||||
|  | ||||
|  | ||||
| doxygen: | ||||
| 	cd doxygen && $(MAKE) | ||||
| @@ -40,8 +35,6 @@ realclean: clean | ||||
| 	  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';' | ||||
|  | ||||
|  | ||||
| distclean: realclean | ||||
|  | ||||
|  | ||||
| install: | ||||
| 	@for dir in $(SUBDIRS) ; do \ | ||||
| @@ -51,7 +44,11 @@ install: | ||||
| 	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 | ||||
| $(TOP)/configs/current: | ||||
| @@ -83,6 +80,8 @@ catamount-osmesa-pgi \ | ||||
| darwin \ | ||||
| darwin-fat-32bit \ | ||||
| darwin-fat-all \ | ||||
| darwin-static \ | ||||
| darwin-static-x86ppc \ | ||||
| freebsd \ | ||||
| freebsd-dri \ | ||||
| freebsd-dri-amd64 \ | ||||
| @@ -106,36 +105,32 @@ irix6-n32-static \ | ||||
| irix6-o32 \ | ||||
| irix6-o32-static \ | ||||
| linux \ | ||||
| linux-i965 \ | ||||
| linux-alpha \ | ||||
| linux-alpha-static \ | ||||
| linux-cell \ | ||||
| linux-cell-debug \ | ||||
| linux-debug \ | ||||
| linux-directfb \ | ||||
| linux-dri \ | ||||
| linux-dri-debug \ | ||||
| linux-dri-x86 \ | ||||
| linux-dri-x86-64 \ | ||||
| linux-dri-ppc \ | ||||
| linux-dri-xcb \ | ||||
| linux-egl \ | ||||
| linux-indirect \ | ||||
| linux-fbdev \ | ||||
| linux-glide \ | ||||
| linux-ia64-icc \ | ||||
| linux-ia64-icc-static \ | ||||
| linux-icc \ | ||||
| linux-icc-static \ | ||||
| linux-llvm \ | ||||
| linux-llvm-debug \ | ||||
| linux-opengl-es \ | ||||
| linux-osmesa \ | ||||
| linux-osmesa-static \ | ||||
| linux-osmesa16 \ | ||||
| linux-osmesa16-static \ | ||||
| linux-osmesa32 \ | ||||
| linux-ppc \ | ||||
| linux-ppc-static \ | ||||
| linux-profile \ | ||||
| linux-solo \ | ||||
| linux-solo-x86 \ | ||||
| linux-solo-ia64 \ | ||||
| linux-sparc \ | ||||
| linux-sparc5 \ | ||||
| linux-static \ | ||||
| @@ -146,9 +141,8 @@ linux-x86-debug \ | ||||
| linux-x86-32 \ | ||||
| linux-x86-64 \ | ||||
| linux-x86-64-debug \ | ||||
| linux-x86-64-profile \ | ||||
| linux-x86-64-static \ | ||||
| linux-x86-profile \ | ||||
| linux-x86-glide \ | ||||
| linux-x86-static \ | ||||
| netbsd \ | ||||
| openbsd \ | ||||
| @@ -170,42 +164,32 @@ sunos5-v9 \ | ||||
| sunos5-v9-static \ | ||||
| sunos5-v9-cc-g++ \ | ||||
| ultrix-gcc: | ||||
| 	@ if test -f configs/current -o -L configs/current; then \ | ||||
| 		if ! cmp configs/$@ configs/current > /dev/null; then \ | ||||
| 			echo "Please run 'make realclean' before changing configs" ; \ | ||||
| 			exit 1 ; \ | ||||
| 		fi ; \ | ||||
| 	else \ | ||||
| 		cd configs && rm -f current && ln -s $@ current ; \ | ||||
| 	@ if test -f configs/current || test -L configs/current ; then \ | ||||
| 		echo "Please run 'make realclean' before changing configs" ; \ | ||||
| 		exit 1 ; \ | ||||
| 	fi | ||||
| 	(cd configs && rm -f current && ln -s $@ current) | ||||
| 	$(MAKE) default | ||||
|  | ||||
|  | ||||
| # Rules for making release tarballs | ||||
|  | ||||
| VERSION=7.11.1 | ||||
| VERSION=7.4 | ||||
| DIRECTORY = Mesa-$(VERSION) | ||||
| LIB_NAME = MesaLib-$(VERSION) | ||||
| DEMO_NAME = MesaDemos-$(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 = \ | ||||
| 	$(DIRECTORY)/Makefile*						\ | ||||
| 	$(DIRECTORY)/configure						\ | ||||
| 	$(DIRECTORY)/configure.ac					\ | ||||
| 	$(DIRECTORY)/acinclude.m4					\ | ||||
| 	$(DIRECTORY)/aclocal.m4						\ | ||||
| 	$(DIRECTORY)/SConstruct						\ | ||||
| 	$(DIRECTORY)/common.py						\ | ||||
| 	$(DIRECTORY)/scons/*py						\ | ||||
| 	$(DIRECTORY)/descrip.mms					\ | ||||
| 	$(DIRECTORY)/mms-config.					\ | ||||
| 	$(DIRECTORY)/bin/config.guess					\ | ||||
| 	$(DIRECTORY)/bin/config.sub					\ | ||||
| 	$(DIRECTORY)/bin/extract_git_sha1				\ | ||||
| 	$(DIRECTORY)/bin/install-sh					\ | ||||
| 	$(DIRECTORY)/bin/mklib						\ | ||||
| 	$(DIRECTORY)/bin/minstall					\ | ||||
| @@ -216,6 +200,9 @@ MAIN_FILES = \ | ||||
| 	$(DIRECTORY)/docs/README.*					\ | ||||
| 	$(DIRECTORY)/docs/RELNOTES*					\ | ||||
| 	$(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/glext.h					\ | ||||
| 	$(DIRECTORY)/include/GL/gl_mangle.h				\ | ||||
| @@ -226,42 +213,35 @@ MAIN_FILES = \ | ||||
| 	$(DIRECTORY)/include/GL/glx_mangle.h				\ | ||||
| 	$(DIRECTORY)/include/GL/glfbdev.h				\ | ||||
| 	$(DIRECTORY)/include/GL/mesa_wgl.h				\ | ||||
| 	$(DIRECTORY)/include/GL/mglmesa.h				\ | ||||
| 	$(DIRECTORY)/include/GL/osmesa.h				\ | ||||
| 	$(DIRECTORY)/include/GL/svgamesa.h				\ | ||||
| 	$(DIRECTORY)/include/GL/vms_x_fix.h				\ | ||||
| 	$(DIRECTORY)/include/GL/wglext.h				\ | ||||
| 	$(DIRECTORY)/include/GL/wmesa.h					\ | ||||
| 	$(DIRECTORY)/include/pci_ids/*.h				\ | ||||
| 	$(DIRECTORY)/include/c99/*.h					\ | ||||
| 	$(DIRECTORY)/src/getopt/SConscript				\ | ||||
| 	$(DIRECTORY)/src/getopt/getopt*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/glsl/Makefile					\ | ||||
| 	$(DIRECTORY)/src/glsl/Makefile.template				\ | ||||
| 	$(DIRECTORY)/src/glsl/SConscript				\ | ||||
| 	$(DIRECTORY)/src/glsl/*.[ch]					\ | ||||
| 	$(DIRECTORY)/src/glsl/*.ll					\ | ||||
| 	$(DIRECTORY)/src/glsl/*.yy					\ | ||||
| 	$(DIRECTORY)/src/glsl/*.[cly]pp					\ | ||||
| 	$(DIRECTORY)/src/glsl/README					\ | ||||
| 	$(DIRECTORY)/src/glsl/glcpp/*.[chly]				\ | ||||
| 	$(DIRECTORY)/src/glsl/glcpp/README				\ | ||||
| 	$(DIRECTORY)/src/glsl/builtins					\ | ||||
| 	$(DIRECTORY)/src/Makefile					\ | ||||
| 	$(DIRECTORY)/src/SConscript					\ | ||||
| 	$(DIRECTORY)/src/descrip.mms					\ | ||||
| 	$(DIRECTORY)/src/mesa/Makefile*					\ | ||||
| 	$(DIRECTORY)/src/mesa/SConscript				\ | ||||
| 	$(DIRECTORY)/src/mesa/sources.mak				\ | ||||
| 	$(DIRECTORY)/src/mesa/sources					\ | ||||
| 	$(DIRECTORY)/src/mesa/descrip.mms				\ | ||||
| 	$(DIRECTORY)/src/mesa/gl.pc.in					\ | ||||
| 	$(DIRECTORY)/src/mesa/osmesa.pc.in				\ | ||||
| 	$(MAIN_ES_FILES)						\ | ||||
| 	$(DIRECTORY)/src/mesa/depend					\ | ||||
| 	$(DIRECTORY)/src/mesa/main/*.[chS]				\ | ||||
| 	$(DIRECTORY)/src/mesa/main/*.cpp				\ | ||||
| 	$(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/descrip.mms				\ | ||||
| 	$(DIRECTORY)/src/mesa/program/*.[chly]				\ | ||||
| 	$(DIRECTORY)/src/mesa/program/*.cpp				\ | ||||
| 	$(DIRECTORY)/src/mesa/program/descrip.mms			\ | ||||
| 	$(DIRECTORY)/src/mesa/shader/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/mesa/shader/descrip.mms			\ | ||||
| 	$(DIRECTORY)/src/mesa/shader/grammar/*.[ch]			\ | ||||
| 	$(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/descrip.mms			\ | ||||
| 	$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\ | ||||
| @@ -278,18 +258,32 @@ MAIN_FILES = \ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/beos/Makefile			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\ | ||||
| 	$(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/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.win		\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms		\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch]			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/svga/*.[ch]			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch]			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/windows/*/*.def			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/x11/Makefile			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms			\ | ||||
| 	$(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/sparc/*.[chS]				\ | ||||
| 	$(DIRECTORY)/src/mesa/x86/Makefile				\ | ||||
| @@ -297,110 +291,45 @@ MAIN_FILES = \ | ||||
| 	$(DIRECTORY)/src/mesa/x86/*.S					\ | ||||
| 	$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch]				\ | ||||
| 	$(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/ | ||||
|  | ||||
| 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/shared-glapi/SConscript			\ | ||||
| 	$(DIRECTORY)/src/mapi/shared-glapi/Makefile			\ | ||||
| 	$(DIRECTORY)/src/mapi/vgapi/Makefile				\ | ||||
| 	$(DIRECTORY)/src/mapi/vgapi/SConscript				\ | ||||
| 	$(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/wayland/wayland-drm/protocol/*.xml		\ | ||||
| 	$(DIRECTORY)/src/egl/wayland/wayland-egl/*.pc.in		\ | ||||
| 	$(DIRECTORY)/src/egl/main/SConscript				\ | ||||
| 	$(DIRECTORY)/src/egl/main/*.pc.in				\ | ||||
| 	$(DIRECTORY)/src/egl/main/*.def | ||||
|  | ||||
| GBM_FILES = \ | ||||
| 	$(DIRECTORY)/src/gbm/Makefile					\ | ||||
| 	$(DIRECTORY)/src/gbm/main/*.pc.in				\ | ||||
| 	$(DIRECTORY)/src/gbm/main/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/gbm/main/Makefile				\ | ||||
| 	$(DIRECTORY)/src/gbm/backends/Makefile				\ | ||||
| 	$(DIRECTORY)/src/gbm/backends/Makefile.template			\ | ||||
| 	$(DIRECTORY)/src/gbm/backends/*/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/gbm/backends/*/Makefile			\ | ||||
|  | ||||
| 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 | ||||
|  | ||||
| APPLE_DRI_FILES = \ | ||||
| 	$(DIRECTORY)/src/glx/apple/Makefile 				\ | ||||
| 	$(DIRECTORY)/src/glx/apple/*.[ch] | ||||
|  | ||||
| DRI_FILES = \ | ||||
| 	$(DIRECTORY)/include/GL/internal/dri_interface.h		\ | ||||
| 	$(DIRECTORY)/include/GL/internal/glcore.h			\ | ||||
| 	$(DIRECTORY)/include/GL/internal/sarea.h			\ | ||||
| 	$(DIRECTORY)/src/glx/Makefile					\ | ||||
| 	$(DIRECTORY)/src/glx/*.[ch]					\ | ||||
| 	$(APPLE_DRI_FILES)						\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/dri/Makefile*			\ | ||||
| 	$(DIRECTORY)/src/glx/x11/Makefile				\ | ||||
| 	$(DIRECTORY)/src/glx/x11/*.[ch]					\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/dri/Makefile			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template		\ | ||||
| 	$(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/*/*.[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/*/*/SConscript		\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile | ||||
| 	$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile			\ | ||||
| 	$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch] | ||||
|  | ||||
| SGI_GLU_FILES = \ | ||||
| 	$(DIRECTORY)/src/glu/Makefile					\ | ||||
| 	$(DIRECTORY)/src/glu/descrip.mms				\ | ||||
| 	$(DIRECTORY)/src/glu/glu.pc.in					\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/Makefile				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/Makefile.mgw				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/Makefile.win				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/Makefile.DJ				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/glu.def				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/dummy.cc				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/descrip.mms				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/glu.exports				\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/glu.exports.darwin			\ | ||||
| 	$(DIRECTORY)/src/glu/sgi/mesaglu.opt				\ | ||||
| @@ -416,53 +345,102 @@ SGI_GLU_FILES = \ | ||||
| 	$(DIRECTORY)/src/glu/sgi/libtess/*.[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 = \ | ||||
| 	$(DIRECTORY)/src/glw/*.[ch]			\ | ||||
| 	$(DIRECTORY)/src/glw/Makefile*			\ | ||||
| 	$(DIRECTORY)/src/glw/README			\ | ||||
| 	$(DIRECTORY)/src/glw/glw.pc.in | ||||
| 	$(DIRECTORY)/src/glw/glw.pc.in			\ | ||||
| 	$(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 = \ | ||||
| 	$(DIRECTORY)/include/GL/glut.h			\ | ||||
| 	$(DIRECTORY)/include/GL/glutf90.h		\ | ||||
| 	$(DIRECTORY)/src/glut/glx/Makefile*		\ | ||||
| 	$(DIRECTORY)/src/glut/glx/SConscript		\ | ||||
| 	$(DIRECTORY)/src/glut/glx/depend		\ | ||||
| 	$(DIRECTORY)/src/glut/glx/glut.pc.in		\ | ||||
| 	$(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/beos/*.[ch]		\ | ||||
| 	$(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 = \ | ||||
| 	$(TOP)/src/mesa/depend		\ | ||||
| 	$(TOP)/src/glx/x11/depend	\ | ||||
| 	$(TOP)/src/glw/depend		\ | ||||
| 	$(TOP)/src/glut/glx/depend	\ | ||||
| 	$(TOP)/src/glu/sgi/depend | ||||
|  | ||||
|  | ||||
| LIB_FILES = \ | ||||
| 	$(MAIN_FILES)		\ | ||||
| 	$(MAPI_FILES)		\ | ||||
| 	$(ES_FILES)		\ | ||||
| 	$(EGL_FILES)		\ | ||||
| 	$(GBM_FILES)		\ | ||||
| 	$(GALLIUM_FILES)	\ | ||||
| 	$(DRI_FILES)		\ | ||||
| 	$(SGI_GLU_FILES)	\ | ||||
| 	$(GLW_FILES) | ||||
| LIB_FILES = $(MAIN_FILES) $(DRI_FILES) $(SGI_GLU_FILES) $(GLW_FILES) | ||||
|  | ||||
|  | ||||
| parsers: configure | ||||
| 	-@touch $(TOP)/configs/current | ||||
| 	$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp | ||||
| 	$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h | ||||
| 	$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h | ||||
|  | ||||
| # Everything for new a Mesa release: | ||||
| ARCHIVES = $(LIB_NAME).tar.gz \ | ||||
| 	$(LIB_NAME).tar.bz2 \ | ||||
| 	$(LIB_NAME).zip \ | ||||
| 	$(GLUT_NAME).tar.gz \ | ||||
| 	$(GLUT_NAME).tar.bz2 \ | ||||
| 	$(GLUT_NAME).zip | ||||
| tarballs: rm_depend configure aclocal.m4 lib_gz demo_gz glut_gz \ | ||||
| 	lib_bz2 demo_bz2 glut_bz2 lib_zip demo_zip glut_zip md5 | ||||
|  | ||||
| tarballs: md5 | ||||
| 	rm -f ../$(LIB_NAME).tar | ||||
|  | ||||
| # Helper for autoconf builds | ||||
| ACLOCAL = aclocal | ||||
| @@ -474,46 +452,82 @@ aclocal.m4: configure.ac acinclude.m4 | ||||
| configure: configure.ac aclocal.m4 acinclude.m4 | ||||
| 	$(AUTOCONF) $(AC_FLAGS) | ||||
|  | ||||
| rm_config: parsers | ||||
| 	rm -f configs/current | ||||
| 	rm -f configs/autoconf | ||||
| rm_depend: | ||||
| 	@for dep in $(DEPEND_FILES) ; do \ | ||||
| 		rm -f $$dep ; \ | ||||
| 		touch $$dep ; \ | ||||
| 	done | ||||
|  | ||||
| $(LIB_NAME).tar: rm_config | ||||
| 	cd .. ; tar --dereference -cf $(DIRECTORY)/$(LIB_NAME).tar $(LIB_FILES) | ||||
| lib_gz: | ||||
| 	rm -f configs/current ; \ | ||||
| 	rm -f configs/autoconf ; \ | ||||
| 	cd .. ; \ | ||||
| 	tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \ | ||||
| 	gzip $(LIB_NAME).tar ; \ | ||||
| 	mv $(LIB_NAME).tar.gz $(DIRECTORY) | ||||
|  | ||||
| $(LIB_NAME).tar.gz: $(LIB_NAME).tar | ||||
| 	gzip --stdout --best $(LIB_NAME).tar > $(LIB_NAME).tar.gz | ||||
| demo_gz: | ||||
| 	cd .. ; \ | ||||
| 	tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \ | ||||
| 	gzip $(DEMO_NAME).tar ; \ | ||||
| 	mv $(DEMO_NAME).tar.gz $(DIRECTORY) | ||||
|  | ||||
| $(GLUT_NAME).tar: | ||||
| 	cd .. ; tar --dereference -cf $(DIRECTORY)/$(GLUT_NAME).tar $(GLUT_FILES) | ||||
| glut_gz: | ||||
| 	cd .. ; \ | ||||
| 	tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \ | ||||
| 	gzip $(GLUT_NAME).tar ; \ | ||||
| 	mv $(GLUT_NAME).tar.gz $(DIRECTORY) | ||||
|  | ||||
| $(GLUT_NAME).tar.gz: $(GLUT_NAME).tar | ||||
| 	gzip --stdout --best $(GLUT_NAME).tar > $(GLUT_NAME).tar.gz | ||||
| lib_bz2: | ||||
| 	rm -f configs/current ; \ | ||||
| 	rm -f configs/autoconf ; \ | ||||
| 	cd .. ; \ | ||||
| 	tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \ | ||||
| 	bzip2 $(LIB_NAME).tar ; \ | ||||
| 	mv $(LIB_NAME).tar.bz2 $(DIRECTORY) | ||||
|  | ||||
| $(LIB_NAME).tar.bz2: $(LIB_NAME).tar | ||||
| 	bzip2 --stdout --best $(LIB_NAME).tar > $(LIB_NAME).tar.bz2 | ||||
| demo_bz2: | ||||
| 	cd .. ; \ | ||||
| 	tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \ | ||||
| 	bzip2 $(DEMO_NAME).tar ; \ | ||||
| 	mv $(DEMO_NAME).tar.bz2 $(DIRECTORY) | ||||
|  | ||||
| $(GLUT_NAME).tar.bz2: $(GLUT_NAME).tar | ||||
| 	bzip2 --stdout --best $(GLUT_NAME).tar > $(GLUT_NAME).tar.bz2 | ||||
| glut_bz2: | ||||
| 	cd .. ; \ | ||||
| 	tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \ | ||||
| 	bzip2 $(GLUT_NAME).tar ; \ | ||||
| 	mv $(GLUT_NAME).tar.bz2 $(DIRECTORY) | ||||
|  | ||||
| $(LIB_NAME).zip: rm_config | ||||
| lib_zip: | ||||
| 	rm -f configs/current ; \ | ||||
| 	rm -f configs/autoconf ; \ | ||||
| 	rm -f $(LIB_NAME).zip ; \ | ||||
| 	cd .. ; \ | ||||
| 	zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \ | ||||
| 	mv $(LIB_NAME).zip $(DIRECTORY) | ||||
|  | ||||
| $(GLUT_NAME).zip: | ||||
| demo_zip: | ||||
| 	rm -f $(DEMO_NAME).zip ; \ | ||||
| 	cd .. ; \ | ||||
| 	zip -qr $(DEMO_NAME).zip $(DEMO_FILES) ; \ | ||||
| 	mv $(DEMO_NAME).zip $(DIRECTORY) | ||||
|  | ||||
| glut_zip: | ||||
| 	rm -f $(GLUT_NAME).zip ; \ | ||||
| 	cd .. ; \ | ||||
| 	zip -qr $(GLUT_NAME).zip $(GLUT_FILES) ; \ | ||||
| 	mv $(GLUT_NAME).zip $(DIRECTORY) | ||||
|  | ||||
| md5: $(ARCHIVES) | ||||
| md5: | ||||
| 	@-md5sum $(LIB_NAME).tar.gz | ||||
| 	@-md5sum $(LIB_NAME).tar.bz2 | ||||
| 	@-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.bz2 | ||||
| 	@-md5sum $(GLUT_NAME).zip | ||||
|  | ||||
| .PHONY: tarballs rm_config md5 | ||||
| .PHONY: tarballs rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 \ | ||||
| 	glut_bz2 lib_zip demo_zip glut_zip md5 | ||||
|   | ||||
							
								
								
									
										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) | ||||
							
								
								
									
										160
									
								
								SConstruct
									
									
									
									
									
								
							
							
						
						
									
										160
									
								
								SConstruct
									
									
									
									
									
								
							| @@ -1,160 +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, | ||||
| ) | ||||
|  | ||||
| opts.Save('config.py', env) | ||||
|  | ||||
| # 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)) | ||||
|  | ||||
| # fail early for a common error on windows | ||||
| if env['gles']: | ||||
|     try: | ||||
|         import libxml2 | ||||
|     except ImportError: | ||||
|         raise SCons.Errors.UserError, "GLES requires libxml2-python to build" | ||||
|  | ||||
| ####################################################################### | ||||
| # 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']) | ||||
|  | ||||
| # for debugging | ||||
| #print env.Dump() | ||||
|  | ||||
|  | ||||
| ####################################################################### | ||||
| # Invoke host SConscripts  | ||||
| #  | ||||
| # For things that are meant to be run on the native host build machine, instead | ||||
| # of the target machine. | ||||
| # | ||||
|  | ||||
| # Create host environent | ||||
| if env['crosscompile'] and not env['embedded']: | ||||
|     host_env = Environment( | ||||
|         options = opts, | ||||
|         # no tool used | ||||
|         tools = [], | ||||
|         toolpath = ['#scons'], | ||||
|         ENV = os.environ, | ||||
|     ) | ||||
|  | ||||
|     # Override options | ||||
|     host_env['platform'] = common.host_platform | ||||
|     host_env['machine'] = common.host_machine | ||||
|     host_env['toolchain'] = 'default' | ||||
|     host_env['llvm'] = False | ||||
|  | ||||
|     host_env.Tool('gallium') | ||||
|  | ||||
|     host_env['hostonly'] = True | ||||
|     assert host_env['crosscompile'] == False | ||||
|  | ||||
|     if host_env['msvc']: | ||||
|         host_env.Append(CPPPATH = ['#include/c99']) | ||||
|  | ||||
|     target_env = env | ||||
|     env = host_env | ||||
|     Export('env') | ||||
|  | ||||
|     SConscript( | ||||
|         'src/SConscript', | ||||
|         variant_dir = host_env['build_dir'], | ||||
|         duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html | ||||
|     ) | ||||
|  | ||||
|     env = target_env | ||||
|  | ||||
| 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 | ||||
| ) | ||||
|  | ||||
|  | ||||
| ######################################################################## | ||||
| # List all aliases | ||||
|  | ||||
| try: | ||||
|     from SCons.Node.Alias import default_ans | ||||
| except ImportError: | ||||
|     pass | ||||
| else: | ||||
|     aliases = default_ans.keys() | ||||
|     aliases.sort() | ||||
|     env.Help('\n') | ||||
|     env.Help('Recognized targets:\n') | ||||
|     for alias in aliases: | ||||
|         env.Help('    %s\n' % alias) | ||||
| @@ -11,8 +11,6 @@ if test "x$SRCDIR" != "x$ORIGDIR"; then | ||||
| 	exit 1 | ||||
| fi | ||||
|  | ||||
| MAKEFLAGS="" | ||||
|  | ||||
| autoreconf -v --install || exit 1 | ||||
|  | ||||
| "$srcdir"/configure "$@" | ||||
|   | ||||
							
								
								
									
										71
									
								
								bin/config.guess
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								bin/config.guess
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +1,10 @@ | ||||
| #! /bin/sh | ||||
| # Attempt to guess a canonical system name. | ||||
| #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | ||||
| #   Free Software Foundation, Inc. | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, | ||||
| #   Inc. | ||||
|  | ||||
| timestamp='2009-02-03' | ||||
| timestamp='2007-07-22' | ||||
|  | ||||
| # 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 | ||||
| @@ -56,8 +56,8 @@ version="\ | ||||
| GNU config.guess ($timestamp) | ||||
|  | ||||
| Originally written by Per Bothner. | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | ||||
| 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 | ||||
| Free Software Foundation, Inc. | ||||
|  | ||||
| This is free software; see the source for copying conditions.  There is NO | ||||
| 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/[^.]*//'` | ||||
| 	exit ;; | ||||
|     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) | ||||
| 	eval $set_cc_for_build | ||||
| 	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/[^.]*//'` | ||||
| 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||||
| 	exit ;; | ||||
|     sun4*:SunOS:6*:*) | ||||
| 	# According to config.sub, this is the proper way to canonicalize | ||||
| @@ -545,7 +532,7 @@ EOF | ||||
| 		echo rs6000-ibm-aix3.2 | ||||
| 	fi | ||||
| 	exit ;; | ||||
|     *:AIX:*:[456]) | ||||
|     *:AIX:*:[45]) | ||||
| 	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 | ||||
| 		IBM_ARCH=rs6000 | ||||
| @@ -809,12 +796,9 @@ EOF | ||||
| 	    x86) | ||||
| 		echo i586-pc-interix${UNAME_RELEASE} | ||||
| 		exit ;; | ||||
| 	    EM64T | authenticamd | genuineintel) | ||||
| 	    EM64T | authenticamd) | ||||
| 		echo x86_64-unknown-interix${UNAME_RELEASE} | ||||
| 		exit ;; | ||||
| 	    IA64) | ||||
| 		echo ia64-unknown-interix${UNAME_RELEASE} | ||||
| 		exit ;; | ||||
| 	esac ;; | ||||
|     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) | ||||
| 	echo i${UNAME_MACHINE}-pc-mks | ||||
| @@ -849,14 +833,7 @@ EOF | ||||
| 	echo ${UNAME_MACHINE}-pc-minix | ||||
| 	exit ;; | ||||
|     arm*:Linux:*:*) | ||||
| 	eval $set_cc_for_build | ||||
| 	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 | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     avr32*:Linux:*:*) | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| @@ -948,9 +925,6 @@ EOF | ||||
| 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} | ||||
| 	exit ;; | ||||
|     padre:Linux:*:*) | ||||
| 	echo sparc-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     parisc:Linux:*:* | hppa:Linux:*:*) | ||||
| 	# Look for CPU level | ||||
| 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in | ||||
| @@ -980,8 +954,8 @@ EOF | ||||
|     x86_64:Linux:*:*) | ||||
| 	echo x86_64-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     xtensa*:Linux:*:*) | ||||
|     	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
|     xtensa:Linux:*:*) | ||||
|     	echo xtensa-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     i*86:Linux:*:*) | ||||
| 	# The BFD linker knows what the default object file format is, so | ||||
| @@ -1001,6 +975,9 @@ EOF | ||||
| 	  a.out-i386-linux) | ||||
| 		echo "${UNAME_MACHINE}-pc-linux-gnuaout" | ||||
| 		exit ;; | ||||
| 	  coff-i386) | ||||
| 		echo "${UNAME_MACHINE}-pc-linux-gnucoff" | ||||
| 		exit ;; | ||||
| 	  "") | ||||
| 		# Either a pre-BFD a.out linker (linux-gnuoldld) or | ||||
| 		# one that does not give us useful --help. | ||||
| @@ -1154,16 +1131,6 @@ EOF | ||||
|     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) | ||||
|         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||||
|           && { 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*:*) | ||||
| 	echo m68k-unknown-lynxos${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
| @@ -1239,9 +1206,6 @@ EOF | ||||
|     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible. | ||||
| 	echo i586-pc-beos | ||||
| 	exit ;; | ||||
|     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible. | ||||
| 	echo i586-pc-haiku | ||||
| 	exit ;; | ||||
|     SX-4:SUPER-UX:*:*) | ||||
| 	echo sx4-nec-superux${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
| @@ -1350,9 +1314,6 @@ EOF | ||||
|     i*86:rdos:*:*) | ||||
| 	echo ${UNAME_MACHINE}-pc-rdos | ||||
| 	exit ;; | ||||
|     i*86:AROS:*:*) | ||||
| 	echo ${UNAME_MACHINE}-pc-aros | ||||
| 	exit ;; | ||||
| esac | ||||
|  | ||||
| #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 | ||||
| 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 | ||||
|   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 | ||||
| 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 | ||||
| # Configuration validation subroutine script. | ||||
| #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | ||||
| #   Free Software Foundation, Inc. | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, | ||||
| #   Inc. | ||||
|  | ||||
| timestamp='2009-02-03' | ||||
| timestamp='2007-06-28' | ||||
|  | ||||
| # This file is (in principle) common to ALL 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="\ | ||||
| GNU config.sub ($timestamp) | ||||
|  | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | ||||
| 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 | ||||
| Free Software Foundation, Inc. | ||||
|  | ||||
| This is free software; see the source for copying conditions.  There is NO | ||||
| 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 | ||||
|   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ | ||||
|   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ | ||||
|   kopensolaris*-gnu* | \ | ||||
|   storm-chaos* | os2-emx* | rtmk-nova*) | ||||
|     os=-$maybe_os | ||||
|     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 \ | ||||
| 	| i370 | i860 | i960 | ia64 \ | ||||
| 	| ip2k | iq2000 \ | ||||
| 	| lm32 \ | ||||
| 	| m32c | m32r | m32rle | m68000 | m68k | m88k \ | ||||
| 	| maxq | mb | microblaze | mcore | mep | metag \ | ||||
| 	| maxq | mb | microblaze | mcore | mep \ | ||||
| 	| mips | mipsbe | mipseb | mipsel | mipsle \ | ||||
| 	| mips16 \ | ||||
| 	| mips64 | mips64el \ | ||||
| 	| mips64octeon | mips64octeonel \ | ||||
| 	| mips64orion | mips64orionel \ | ||||
| 	| mips64r5900 | mips64r5900el \ | ||||
| 	| mips64vr | mips64vrel \ | ||||
| 	| mips64orion | mips64orionel \ | ||||
| 	| mips64vr4100 | mips64vr4100el \ | ||||
| 	| mips64vr4300 | mips64vr4300el \ | ||||
| 	| mips64vr5000 | mips64vr5000el \ | ||||
| @@ -281,7 +277,7 @@ case $basic_machine in | ||||
| 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | ||||
| 	| pyramid \ | ||||
| 	| 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 \ | ||||
| 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | ||||
| 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | ||||
| @@ -290,7 +286,7 @@ case $basic_machine in | ||||
| 	| v850 | v850e \ | ||||
| 	| we32k \ | ||||
| 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | ||||
| 	| z8k | z80) | ||||
| 	| z8k) | ||||
| 		basic_machine=$basic_machine-unknown | ||||
| 		;; | ||||
| 	m6811 | m68hc11 | m6812 | m68hc12) | ||||
| @@ -333,17 +329,14 @@ case $basic_machine in | ||||
| 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | ||||
| 	| i*86-* | i860-* | i960-* | ia64-* \ | ||||
| 	| ip2k-* | iq2000-* \ | ||||
| 	| lm32-* \ | ||||
| 	| m32c-* | m32r-* | m32rle-* \ | ||||
| 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | ||||
| 	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | ||||
| 	| m88110-* | m88k-* | maxq-* | mcore-* \ | ||||
| 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | ||||
| 	| mips16-* \ | ||||
| 	| mips64-* | mips64el-* \ | ||||
| 	| mips64octeon-* | mips64octeonel-* \ | ||||
| 	| mips64orion-* | mips64orionel-* \ | ||||
| 	| mips64r5900-* | mips64r5900el-* \ | ||||
| 	| mips64vr-* | mips64vrel-* \ | ||||
| 	| mips64orion-* | mips64orionel-* \ | ||||
| 	| mips64vr4100-* | mips64vr4100el-* \ | ||||
| 	| mips64vr4300-* | mips64vr4300el-* \ | ||||
| 	| mips64vr5000-* | mips64vr5000el-* \ | ||||
| @@ -365,24 +358,20 @@ case $basic_machine in | ||||
| 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | ||||
| 	| pyramid-* \ | ||||
| 	| 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-* \ | ||||
| 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | ||||
| 	| sparclite-* \ | ||||
| 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | ||||
| 	| tahoe-* | thumb-* \ | ||||
| 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | ||||
| 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | ||||
| 	| tron-* \ | ||||
| 	| v850-* | v850e-* | vax-* \ | ||||
| 	| we32k-* \ | ||||
| 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | ||||
| 	| xstormy16-* | xtensa*-* \ | ||||
| 	| xstormy16-* | xtensa-* \ | ||||
| 	| ymp-* \ | ||||
| 	| z8k-* | z80-*) | ||||
| 		;; | ||||
| 	# Recognize the basic CPU types without company name, with glob match. | ||||
| 	xtensa*) | ||||
| 		basic_machine=$basic_machine-unknown | ||||
| 	| z8k-*) | ||||
| 		;; | ||||
| 	# Recognize the various machine names and aliases which stand | ||||
| 	# for a CPU type and a company and sometimes even an OS. | ||||
| @@ -446,10 +435,6 @@ case $basic_machine in | ||||
| 		basic_machine=m68k-apollo | ||||
| 		os=-bsd | ||||
| 		;; | ||||
| 	aros) | ||||
| 		basic_machine=i386-pc | ||||
| 		os=-aros | ||||
| 		;; | ||||
| 	aux) | ||||
| 		basic_machine=m68k-apple | ||||
| 		os=-aux | ||||
| @@ -458,22 +443,10 @@ case $basic_machine in | ||||
| 		basic_machine=ns32k-sequent | ||||
| 		os=-dynix | ||||
| 		;; | ||||
| 	blackfin) | ||||
| 		basic_machine=bfin-unknown | ||||
| 		os=-linux | ||||
| 		;; | ||||
| 	blackfin-*) | ||||
| 		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		os=-linux | ||||
| 		;; | ||||
| 	c90) | ||||
| 		basic_machine=c90-cray | ||||
| 		os=-unicos | ||||
| 		;; | ||||
|         cegcc) | ||||
| 		basic_machine=arm-unknown | ||||
| 		os=-cegcc | ||||
| 		;; | ||||
| 	convex-c1) | ||||
| 		basic_machine=c1-convex | ||||
| 		os=-bsd | ||||
| @@ -541,10 +514,6 @@ case $basic_machine in | ||||
| 		basic_machine=m88k-motorola | ||||
| 		os=-sysv3 | ||||
| 		;; | ||||
| 	dicos) | ||||
| 		basic_machine=i686-pc | ||||
| 		os=-dicos | ||||
| 		;; | ||||
| 	djgpp) | ||||
| 		basic_machine=i586-pc | ||||
| 		os=-msdosdjgpp | ||||
| @@ -699,14 +668,6 @@ case $basic_machine in | ||||
| 		basic_machine=m68k-isi | ||||
| 		os=-sysv | ||||
| 		;; | ||||
| 	m68knommu) | ||||
| 		basic_machine=m68k-unknown | ||||
| 		os=-linux | ||||
| 		;; | ||||
| 	m68knommu-*) | ||||
| 		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		os=-linux | ||||
| 		;; | ||||
| 	m88k-omron*) | ||||
| 		basic_machine=m88k-omron | ||||
| 		;; | ||||
| @@ -852,14 +813,6 @@ case $basic_machine in | ||||
| 		basic_machine=i860-intel | ||||
| 		os=-osf | ||||
| 		;; | ||||
| 	parisc) | ||||
| 		basic_machine=hppa-unknown | ||||
| 		os=-linux | ||||
| 		;; | ||||
| 	parisc-*) | ||||
| 		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		os=-linux | ||||
| 		;; | ||||
| 	pbd) | ||||
| 		basic_machine=sparc-tti | ||||
| 		;; | ||||
| @@ -1068,10 +1021,6 @@ case $basic_machine in | ||||
| 		basic_machine=tic6x-unknown | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	tile*) | ||||
| 		basic_machine=tile-unknown | ||||
| 		os=-linux-gnu | ||||
| 		;; | ||||
| 	tx39) | ||||
| 		basic_machine=mipstx39-unknown | ||||
| 		;; | ||||
| @@ -1147,10 +1096,6 @@ case $basic_machine in | ||||
| 		basic_machine=z8k-unknown | ||||
| 		os=-sim | ||||
| 		;; | ||||
| 	z80-*-coff) | ||||
| 		basic_machine=z80-unknown | ||||
| 		os=-sim | ||||
| 		;; | ||||
| 	none) | ||||
| 		basic_machine=none-none | ||||
| 		os=-none | ||||
| @@ -1189,7 +1134,7 @@ case $basic_machine in | ||||
| 	we32k) | ||||
| 		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 | ||||
| 		;; | ||||
| 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) | ||||
| @@ -1261,9 +1206,8 @@ case $os in | ||||
| 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | ||||
| 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | ||||
| 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | ||||
| 	      | -kopensolaris* \ | ||||
| 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | ||||
| 	      | -aos* | -aros* \ | ||||
| 	      | -aos* \ | ||||
| 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | ||||
| 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | ||||
| 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | ||||
| @@ -1272,7 +1216,7 @@ case $os in | ||||
| 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | ||||
| 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | ||||
| 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | ||||
| 	      | -chorusos* | -chorusrdb* | -cegcc* \ | ||||
| 	      | -chorusos* | -chorusrdb* \ | ||||
| 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | ||||
| 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | ||||
| 	      | -uxpv* | -beos* | -mpeix* | -udk* \ | ||||
| @@ -1412,9 +1356,6 @@ case $os in | ||||
| 	-zvmoe) | ||||
| 		os=-zvmoe | ||||
| 		;; | ||||
| 	-dicos*) | ||||
| 		os=-dicos | ||||
| 		;; | ||||
| 	-none) | ||||
| 		;; | ||||
| 	*) | ||||
|   | ||||
| @@ -1,20 +0,0 @@ | ||||
| #!/bin/sh | ||||
| if [ ! -f src/mesa/main/git_sha1.h ]; then | ||||
| 	touch src/mesa/main/git_sha1.h | ||||
| fi | ||||
|  | ||||
| if [ ! -d .git ]; then | ||||
| 	exit | ||||
| fi | ||||
|  | ||||
| if which git > /dev/null; then | ||||
|     # Extract the 7-digit "short" SHA1 for the current HEAD, convert | ||||
|     # it to a string, and wrap it in a #define.  This is used in | ||||
|     # src/mesa/main/version.c to put the GIT SHA1 in the GL_VERSION string. | ||||
|     git log -n 1 --oneline |\ | ||||
| 	sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \ | ||||
| 	> src/mesa/main/git_sha1.h.tmp | ||||
|     if ! cmp -s src/mesa/main/git_sha1.h.tmp src/mesa/main/git_sha1.h; then | ||||
|     	mv src/mesa/main/git_sha1.h.tmp src/mesa/main/git_sha1.h | ||||
|     fi | ||||
| fi | ||||
							
								
								
									
										28
									
								
								bin/minstall
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								bin/minstall
									
									
									
									
									
								
							| @@ -31,7 +31,7 @@ if [ $# -ge 2 ] ; then | ||||
|  | ||||
| 	# Last cmd line arg is the dest dir | ||||
| 	for FILE in $@ ; do | ||||
| 		DESTDIR="$FILE" | ||||
| 		DEST="$FILE" | ||||
| 	done | ||||
|  | ||||
| 	# Loop over args, moving them to DEST directory | ||||
| @@ -42,25 +42,6 @@ if [ $# -ge 2 ] ; then | ||||
| 			exit 0 | ||||
| 		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` | ||||
|  | ||||
| 		# determine file's type | ||||
| @@ -85,11 +66,8 @@ if [ $# -ge 2 ] ; then | ||||
|  | ||||
| 		elif [ -f "$FILE" ] ; then | ||||
| 			#echo "$FILE" is a regular file | ||||
| 			# Only copy if the files differ | ||||
| 			if ! cmp -s $FILE $DEST/`basename $FILE`; then | ||||
| 				$RM "$DEST/`basename $FILE`" | ||||
| 				cp "$FILE" "$DEST" | ||||
| 			fi | ||||
| 			$RM "$DEST/`basename $FILE`" | ||||
| 			cp "$FILE" "$DEST" | ||||
| 			if [ $MODE ] ; then | ||||
| 				FILE=`basename "$FILE"` | ||||
| 				chmod $MODE "$DEST/$FILE" | ||||
|   | ||||
							
								
								
									
										366
									
								
								bin/mklib
									
									
									
									
									
								
							
							
						
						
									
										366
									
								
								bin/mklib
									
									
									
									
									
								
							| @@ -25,109 +25,6 @@ | ||||
| # 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 | ||||
| # | ||||
| @@ -155,7 +52,31 @@ while true | ||||
| do | ||||
|     case $1 in | ||||
| 	'-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 | ||||
| 	    ;; | ||||
| 	'-o') | ||||
| @@ -255,32 +176,15 @@ if [ ${ARCH} = "auto" ] ; then | ||||
| 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 | ||||
| # | ||||
| if [ "x${LIBNAME}" = "x" ] ; then | ||||
|     echo "mklib: Error: no library name specified (-h for help)" | ||||
|     echo "mklib: Error: no library name specified" | ||||
|     exit 1 | ||||
| fi | ||||
| if [ "x${OBJECTS}" = "x" ] ; then | ||||
|     echo "mklib: Error: no object files specified (-h for help)" | ||||
|     echo "mklib: Error: no object files specified" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| @@ -307,7 +211,7 @@ fi | ||||
| # | ||||
| case $ARCH in | ||||
|  | ||||
|     'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/* | 'NetBSD') | ||||
|     'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/*) | ||||
| 	# we assume gcc | ||||
|  | ||||
| 	if [ "x$LINK" = "x" ] ; then | ||||
| @@ -348,24 +252,42 @@ case $ARCH in | ||||
|             # finish up | ||||
|             FINAL_LIBS="${LIBNAME}" | ||||
|         elif [ $STATIC = 1 ] ; then | ||||
| 	    # make a static .a library | ||||
|             LIBNAME="lib${LIBNAME}.a"     # prefix with "lib", suffix with ".a" | ||||
|             echo "mklib: Making" $ARCH "static library: " ${LIBNAME} | ||||
|             LINK="ar" | ||||
|             OPTS="-ru" | ||||
|             if [ "${ALTOPTS}" ] ; then | ||||
|                 OPTS=${ALTOPTS} | ||||
|             fi | ||||
|             rm -f ${LIBNAME} | ||||
|  | ||||
| 	    # expand .a into .o files | ||||
| 	    NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS` | ||||
| 	    # expand any .a objects into constituent .o files. | ||||
| 	    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 | ||||
| 	    FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}` | ||||
|             # make lib | ||||
|             ${LINK} ${OPTS} ${LIBNAME} ${NEWOBJECTS} | ||||
|             ranlib ${LIBNAME} | ||||
|  | ||||
| 	    # remove temporary extracted .o files | ||||
| 	    rm -rf ${LIBNAME}.obj | ||||
| 	    rm -f ${DELETIA} | ||||
|  | ||||
|             # finish up | ||||
|             FINAL_LIBS=${LIBNAME} | ||||
|         else | ||||
| 	    # make dynamic library | ||||
| 	    LIBNAME="lib${LIBNAME}"     # prefix with "lib" | ||||
| 	    case $ARCH in 'Linux' | 'GNU' | GNU/*) | ||||
| 		OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}" | ||||
| @@ -426,7 +348,9 @@ case $ARCH in | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME="lib${LIBNAME}.a" | ||||
| 	    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 | ||||
| 	    if [ $NOPREFIX = 0 ] ; then | ||||
| 		LIBNAME="lib${LIBNAME}.so" | ||||
| @@ -494,16 +418,13 @@ case $ARCH in | ||||
| 		OPTS="${OPTS} -Wl,-Mmapfile.scope" | ||||
| 	    fi | ||||
|  | ||||
| 	    # Check if objects are 64-bit | ||||
| 	    # Check if objects are SPARC v9 | ||||
| 	    # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1 | ||||
| 	    set ${OBJECTS} | ||||
| 	    if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then | ||||
| 		ABI64=`file $1 | grep "ELF 64-bit"` | ||||
| 		if [ "${ABI64}" ] ; then | ||||
| 		    case `uname -p` in | ||||
| 			sparc)	    OPTS="${OPTS} -xarch=v9" ;; | ||||
| 			i386)	    OPTS="${OPTS} -xarch=amd64" ;; | ||||
| 		    esac | ||||
| 		SPARCV9=`file $1 | grep SPARCV9` | ||||
| 		if [ "${SPARCV9}" ] ; then | ||||
| 		    OPTS="${OPTS} -xarch=v9" | ||||
| 		fi | ||||
| 	    fi | ||||
|             if [ "${ALTOPTS}" ] ; then | ||||
| @@ -548,19 +469,13 @@ case $ARCH in | ||||
| 	    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} | ||||
| 	    FINAL_LIBS=${LIBNAME} | ||||
|         elif [ $STATIC = 1 ] ; then | ||||
| 	    # make a static .a library | ||||
| 	    STLIB="lib${LIBNAME}.a" | ||||
| 	    echo "mklib: Making FreeBSD static library: " ${STLIB} | ||||
|  | ||||
| 	    # expand .a into .o files | ||||
| 	    NEW_OBJECTS=`expand_archives ${STLIB}.obj $OBJECTS` | ||||
|  | ||||
| 	    FINAL_LIBS=`make_ar_static_lib cq 1 ${STLIB} ${NEW_OBJECTS}` | ||||
|  | ||||
| 	    # remove temporary extracted .o files | ||||
| 	    rm -rf ${STLIB}.obj | ||||
| 	    rm -f ${STLIB} | ||||
| 	    ar cq ${STLIB} ${OBJECTS} | ||||
| 	    ranlib ${STLIB} | ||||
| 	    FINAL_LIBS=${STLIB} | ||||
| 	else | ||||
| 	    # make dynamic library | ||||
| 	    SHLIB="lib${LIBNAME}.so.${MAJOR}" | ||||
| 	    OPTS="-shared -Wl,-soname,${SHLIB}" | ||||
|             if [ "${ALTOPTS}" ] ; then | ||||
| @@ -574,10 +489,29 @@ case $ARCH in | ||||
| 	fi | ||||
| 	;; | ||||
|  | ||||
|     'NetBSD') | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME="lib${LIBNAME}_pic.a" | ||||
| 	    echo "mklib: Making NetBSD PIC static library: " ${LIBNAME} | ||||
| 	    rm -f ${LIBNAME} | ||||
| 	    ar cq ${LIBNAME} ${OBJECTS} | ||||
| 	    ranlib ${LIBNAME} | ||||
| 	    FINAL_LIBS=${LIBNAME} | ||||
| 	else | ||||
| 	    LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}" | ||||
| 	    echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME} | ||||
| 	    rm -f ${LIBNAME} | ||||
| 	    ld -x -Bshareable -Bforcearchive -o ${LIBNAME} ${OBJECTS} | ||||
| 	    FINAL_LIBS=${LIBNAME} | ||||
| 	fi | ||||
| 	;; | ||||
|  | ||||
|     'IRIX' | 'IRIX64') | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    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 | ||||
| 	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so" | ||||
|  | ||||
| @@ -628,7 +562,9 @@ case $ARCH in | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME="lib${LIBNAME}.a" | ||||
| 	    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 | ||||
|             # HP uses a .2 for their current GL/GLU libraries | ||||
| 	    if [ ${LIBNAME} = "GL" -o ${LIBNAME} = "GLU" ] ; then | ||||
| @@ -658,7 +594,8 @@ case $ARCH in | ||||
| 	if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME="lib${LIBNAME}.a" | ||||
| 	    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 | ||||
| 	    EXPFILE="lib${LIBNAME}.exp" | ||||
| 	    LIBNAME="lib${LIBNAME}.a"  # shared objects are still stored in the .a libraries | ||||
| @@ -709,7 +646,9 @@ case $ARCH in | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME="lib${LIBNAME}.a" | ||||
| 	    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 | ||||
| 	    VERSION="${MAJOR}.${MINOR}" | ||||
| 	    LIBNAME="lib${LIBNAME}.so" | ||||
| @@ -732,20 +671,12 @@ case $ARCH in | ||||
|         if [ $STATIC = 1 ] ; then | ||||
|             LIBNAME="lib${LIBNAME}.a" | ||||
|             echo "mklib: Making Darwin static library: " ${LIBNAME} | ||||
|             LINK="ar" | ||||
|             OPTS="-ruvs" | ||||
|             if [ "${ALTOPTS}" ] ; then | ||||
|                 OPTS=${ALTOPTS} | ||||
|             fi | ||||
|  | ||||
|             # 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 | ||||
|  | ||||
|             ${LINK} ${OPTS} ${LIBNAME} ${OBJECTS} | ||||
|             FINAL_LIBS=${LIBNAME} | ||||
|         else | ||||
|             # On Darwin a .bundle is used for a library that you want to dlopen | ||||
| @@ -767,20 +698,36 @@ case $ARCH in | ||||
|                 OPTS="${OPTS} -exported_symbols_list ${EXPORTS}" | ||||
|             fi | ||||
|  | ||||
|             LINKNAME="lib${LIBNAME}.${LIBSUFFIX}" | ||||
|             LIBNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}" | ||||
|             LINKNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}" | ||||
|             LINKNAME2="lib${LIBNAME}.${LIBSUFFIX}" | ||||
|             LIBNAME="lib${LIBNAME}.${MAJOR}.${MINOR}.${LIBSUFFIX}" | ||||
|  | ||||
| 	    # examine first object to determine ABI | ||||
|     	    set ${OBJECTS} | ||||
|             ABIS=`lipo -info $1 | sed s/.*://` | ||||
|             for ABI in $ABIS; do | ||||
|                 OPTS="${OPTS} -arch ${ABI}" | ||||
|             done | ||||
|             ABI_PPC=`file $1 | grep ' ppc'` | ||||
|             ABI_I386=`file $1 | grep ' i386'` | ||||
|             ABI_PPC64=`file $1 | grep ' ppc64'` | ||||
|             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 | ||||
|                 OPTS=${ALTOPTS} | ||||
|             fi | ||||
|  | ||||
| 	    # XXX can we always add -isysroot /Developer/SDKs/MacOSX10.4u.sdk | ||||
| 	    # to OPTS here? | ||||
|  | ||||
| 	    # determine linker | ||||
| 	    if [ $CPLUSPLUS = 1 ] ; then | ||||
| 		LINK="g++" | ||||
| @@ -792,21 +739,24 @@ case $ARCH in | ||||
|  | ||||
|             ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} | ||||
|             ln -s ${LIBNAME} ${LINKNAME} | ||||
|             FINAL_LIBS="${LIBNAME} ${LINKNAME}" | ||||
|             ln -s ${LIBNAME} ${LINKNAME2} | ||||
|             FINAL_LIBS="${LIBNAME} ${LINKNAME} ${LINKNAME2}" | ||||
|         fi | ||||
|         ;; | ||||
|  | ||||
|     'LynxOS') | ||||
| 	LIBNAME="lib${LIBNAME}.a" | ||||
| 	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') | ||||
|         if [ $STATIC = 1 ] ; then | ||||
|             LIBNAME="lib${LIBNAME}.a" | ||||
|             echo "mklib: Making BeOS static library: " ${LIBNAME} | ||||
|             FINAL_LIBS=`make_ar_static_lib -cru 0 ${LIBNAME} ${OBJECTS}` | ||||
|             ar -cru "${LIBNAME}" ${OBJECTS} | ||||
|         else | ||||
| 	    LIBNAME="lib${LIBNAME}.so" | ||||
| 	    echo "mklib: Making BeOS shared library: " ${LIBNAME} | ||||
| @@ -885,7 +835,9 @@ case $ARCH in | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME="lib${LIBNAME}.a" | ||||
| 	    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 | ||||
| 	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so" | ||||
| 	    echo "mklib: Making AIX GCC shared library: " ${LIBNAME} | ||||
| @@ -906,65 +858,48 @@ case $ARCH in | ||||
| 	fi | ||||
| 	LIBNAME="lib${LIBNAME}.a" | ||||
| 	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*) | ||||
| 	# 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" | ||||
| 	LIBNAME="lib${LIBNAME}"     # prefix with "lib" | ||||
|  | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME=${LIBNAME}.a | ||||
|             echo "mklib: Making CYGWIN static library: " ${LIBNAME} | ||||
|             echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a | ||||
|             LINK="ar" | ||||
|             OPTS="-ru" | ||||
|             if [ "${ALTOPTS}" ] ; then | ||||
|                 OPTS=${ALTOPTS} | ||||
|             fi | ||||
|  | ||||
|             # expand .a into .o files | ||||
|             NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS` | ||||
|  | ||||
|             FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}` | ||||
|  | ||||
|             # remove temporary extracted .o files | ||||
|             rm -rf ${LIBNAME}.obj | ||||
|             # make lib | ||||
|             ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS} | ||||
| 	    ranlib ${LIBNAME}.a | ||||
|             # finish up | ||||
|             FINAL_LIBS=${LIBNAME}.a | ||||
|         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 | ||||
|                 OPTS=${ALTOPTS} | ||||
|             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 -f ${CYGNAME}-${MAJOR}.dll | ||||
|             rm -f ${LIBNAME}-${MAJOR}.dll.a | ||||
|             rm -f ${LIBNAME}-${MAJOR}.dll | ||||
|             rm -f ${LIBNAME}.dll.a | ||||
|             rm -f ${LIBNAME}.a | ||||
|  | ||||
|             # make lib | ||||
|             ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} || exit $? | ||||
|             ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} | ||||
|             # make usual symlinks | ||||
|             ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a | ||||
|             # finish up | ||||
| @@ -972,7 +907,6 @@ case $ARCH in | ||||
| 	    # special case for installing in bin | ||||
|             FINAL_BINS="${CYGNAME}-${MAJOR}.dll" | ||||
|         fi | ||||
|         fi | ||||
| 	;; | ||||
|  | ||||
|     'example') | ||||
| @@ -981,7 +915,9 @@ case $ARCH in | ||||
|         if [ $STATIC = 1 ] ; then | ||||
| 	    LIBNAME="lib${LIBNAME}.a" | ||||
| 	    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 | ||||
| 	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so" | ||||
| 	    echo "mklib: Making shared library for example arch: " ${LIBNAME} | ||||
| @@ -1002,11 +938,5 @@ esac | ||||
| # | ||||
| if [ ${INSTALLDIR} != "." ] ; then | ||||
|     echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR} | ||||
|     test -d ${INSTALLDIR} || mkdir -p ${INSTALLDIR} | ||||
|     mv ${FINAL_LIBS} ${INSTALLDIR}/ | ||||
|  | ||||
|     if [ "x${FINAL_BINS}" != "x" ] ; then | ||||
|         echo "mklib: Installing" ${FINAL_BINS} "in" ${INSTALLDIR} | ||||
|         mv ${FINAL_BINS} ${INSTALLDIR}/ | ||||
|     fi | ||||
| fi | ||||
|   | ||||
							
								
								
									
										95
									
								
								common.py
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								common.py
									
									
									
									
									
								
							| @@ -1,95 +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 | ||||
|  | ||||
| host_platform = _platform.system().lower() | ||||
| if host_platform.startswith('cygwin'): | ||||
|     host_platform = 'cygwin' | ||||
|  | ||||
| # 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: | ||||
|     target_platform = SCons.Script.ARGUMENTS['platform'] | ||||
| else: | ||||
|     target_platform = host_platform | ||||
|  | ||||
| _machine_map = { | ||||
| 	'x86': 'x86', | ||||
| 	'i386': 'x86', | ||||
| 	'i486': 'x86', | ||||
| 	'i586': 'x86', | ||||
| 	'i686': 'x86', | ||||
| 	'ppc' : 'ppc', | ||||
| 	'AMD64': 'x86_64', | ||||
| 	'x86_64': 'x86_64', | ||||
| } | ||||
|  | ||||
|  | ||||
| # find host_machine value | ||||
| if 'PROCESSOR_ARCHITECTURE' in os.environ: | ||||
| 	host_machine = os.environ['PROCESSOR_ARCHITECTURE'] | ||||
| else: | ||||
| 	host_machine = _platform.machine() | ||||
| host_machine = _machine_map.get(host_machine, 'generic') | ||||
|  | ||||
| default_machine = host_machine | ||||
| default_toolchain = 'default' | ||||
|  | ||||
| if target_platform == 'windows' and host_platform != 'windows': | ||||
|     default_machine = 'x86' | ||||
|     default_toolchain = 'crossmingw' | ||||
|  | ||||
|  | ||||
| # find default_llvm value | ||||
| if 'LLVM' in os.environ: | ||||
|     default_llvm = 'yes' | ||||
| else: | ||||
|     default_llvm = 'no' | ||||
|     try: | ||||
|         if target_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('verbose', 'verbose output', 'no')) | ||||
| 	opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine, | ||||
| 											 allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) | ||||
| 	opts.Add(EnumOption('platform', 'target platform', host_platform, | ||||
| 											 allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'cygwin', 'sunos', 'freebsd8'))) | ||||
| 	opts.Add(BoolOption('embedded', 'embedded build', 'no')) | ||||
| 	opts.Add('toolchain', 'compiler toolchain', default_toolchain) | ||||
| 	opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no')) | ||||
| 	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(BoolOption('quiet', 'DEPRECATED: quiet command lines', 'yes')) | ||||
| 	if host_platform == 'windows': | ||||
| 		opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0'))) | ||||
| @@ -14,39 +14,16 @@ ARCH_FLAGS = @ARCH_FLAGS@ | ||||
| ASM_FLAGS = @ASM_FLAGS@ | ||||
| PIC_FLAGS = @PIC_FLAGS@ | ||||
| DEFINES = @DEFINES@ | ||||
| API_DEFINES = @API_DEFINES@ | ||||
| SHARED_GLAPI = @SHARED_GLAPI@ | ||||
| CFLAGS_NOVISIBILITY = @CPPFLAGS@ @CFLAGS@ \ | ||||
| CFLAGS = @CPPFLAGS@ @CFLAGS@ \ | ||||
| 	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) | ||||
| CXXFLAGS_NOVISIBILITY = @CPPFLAGS@ @CXXFLAGS@ \ | ||||
| CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ \ | ||||
| 	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) | ||||
| CFLAGS = $(CFLAGS_NOVISIBILITY) @VISIBILITY_CFLAGS@ | ||||
| CXXFLAGS = $(CXXFLAGS_NOVISIBILITY) @VISIBILITY_CXXFLAGS@ | ||||
| LDFLAGS = @LDFLAGS@ | ||||
| EXTRA_LIB_PATH = @EXTRA_LIB_PATH@ | ||||
| RADEON_CFLAGS = @RADEON_CFLAGS@ | ||||
| RADEON_LDFLAGS = @RADEON_LDFLAGS@ | ||||
| NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ | ||||
| NOUVEAU_LIBS = @NOUVEAU_LIBS@ | ||||
| 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@ | ||||
| GLX_TLS = @GLX_TLS@ | ||||
| DRI_CFLAGS = @DRI_CFLAGS@ | ||||
| DRI_CXXFLAGS = @DRI_CXXFLAGS@ | ||||
|  | ||||
| # dlopen | ||||
| DLOPEN_LIBS = @DLOPEN_LIBS@ | ||||
|  | ||||
| # Source selection | ||||
| MESA_ASM_SOURCES = @MESA_ASM_SOURCES@ | ||||
| GLAPI_ASM_SOURCES = @GLAPI_ASM_SOURCES@ | ||||
| # Assembler | ||||
| ASM_SOURCES = @ASM_SOURCES@ | ||||
| ASM_API = @ASM_API@ | ||||
|  | ||||
| # Misc tools and flags | ||||
| MAKE = @MAKE@ | ||||
| @@ -54,28 +31,17 @@ SHELL = @SHELL@ | ||||
| MKLIB_OPTIONS = @MKLIB_OPTIONS@ | ||||
| MKDEP = @MKDEP@ | ||||
| MKDEP_OPTIONS = @MKDEP_OPTIONS@ | ||||
| INSTALL = @INSTALL@ | ||||
|  | ||||
| # Python and flags (generally only needed by the developers) | ||||
| PYTHON2 = @PYTHON2@ | ||||
| PYTHON2 = python | ||||
| PYTHON_FLAGS = -t -O -O | ||||
|  | ||||
| # Flex and Bison for GLSL compiler | ||||
| FLEX = @FLEX@ | ||||
| BISON = @BISON@ | ||||
|  | ||||
| # Library names (base name) | ||||
| GL_LIB = GL | ||||
| GLU_LIB = GLU | ||||
| GLUT_LIB = glut | ||||
| GLW_LIB = GLw | ||||
| OSMESA_LIB = @OSMESA_LIB@ | ||||
| GLESv1_CM_LIB = GLESv1_CM | ||||
| GLESv2_LIB = GLESv2 | ||||
| VG_LIB = OpenVG | ||||
| GLAPI_LIB = glapi | ||||
| WAYLAND_EGL_LIB = wayland-egl | ||||
| GBM_LIB = gbm | ||||
|  | ||||
| # Library names (actual file names) | ||||
| GL_LIB_NAME = @GL_LIB_NAME@ | ||||
| @@ -83,50 +49,19 @@ GLU_LIB_NAME = @GLU_LIB_NAME@ | ||||
| GLUT_LIB_NAME = @GLUT_LIB_NAME@ | ||||
| GLW_LIB_NAME = @GLW_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@ | ||||
| GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ | ||||
| WAYLAND_EGL_LIB_NAME = @WAYLAND_EGL_LIB_NAME@ | ||||
| GBM_LIB_NAME = @GBM_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@ | ||||
| GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ | ||||
| WAYLAND_EGL_LIB_GLOB = @WAYLAND_EGL_LIB_GLOB@ | ||||
| GBM_LIB_GLOB = @GBM_LIB_GLOB@ | ||||
|  | ||||
| # Directories to build | ||||
| LIB_DIR = @LIB_DIR@ | ||||
| SRC_DIRS = @SRC_DIRS@ | ||||
| GLU_DIRS = @GLU_DIRS@ | ||||
| DRIVER_DIRS = @DRIVER_DIRS@ | ||||
| EGL_DRIVERS_DIRS = @EGL_DRIVERS_DIRS@ | ||||
| GBM_BACKEND_DIRS = @GBM_BACKEND_DIRS@ | ||||
| GALLIUM_DIRS = @GALLIUM_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) | ||||
| # Which subdirs under $(TOP)/progs/ to enter: | ||||
| PROGRAM_DIRS = @PROGRAM_DIRS@ | ||||
|  | ||||
| # Driver specific build vars | ||||
| DRI_DIRS = @DRI_DIRS@ | ||||
| DRICORE_GLSL_LIBS = @DRICORE_GLSL_LIBS@ | ||||
| DRICORE_LIBS = @DRICORE_LIBS@ | ||||
| DRICORE_LIB_DEPS = @DRICORE_LIB_DEPS@ | ||||
| EGL_PLATFORMS = @EGL_PLATFORMS@ | ||||
| EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ | ||||
| WINDOW_SYSTEM = @WINDOW_SYSTEM@ | ||||
| USING_EGL = @USING_EGL@ | ||||
|  | ||||
| # Dependencies | ||||
| X11_INCLUDES = @X11_INCLUDES@ | ||||
| @@ -139,7 +74,6 @@ MOTIF_CFLAGS = @MOTIF_CFLAGS@ | ||||
| GL_LIB_DEPS = $(EXTRA_LIB_PATH) @GL_LIB_DEPS@ | ||||
| OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_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@ \ | ||||
| 	$(EXTRA_LIB_PATH) @GLU_LIB_DEPS@ | ||||
| GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLUT_MESA_DEPS@ \ | ||||
| @@ -147,20 +81,12 @@ GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLUT_MESA_DEPS@ \ | ||||
| GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \ | ||||
| 	$(EXTRA_LIB_PATH) @GLW_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@ | ||||
| GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) @GLAPI_LIB_DEPS@ | ||||
| WAYLAND_EGL_LIB_DEPS = $(EXTRA_LIB_PATH) @WAYLAND_EGL_LIB_DEPS@ | ||||
| GBM_LIB_DEPS = $(EXTRA_LIB_PATH) @GBM_LIB_DEPS@ | ||||
|  | ||||
| # DRI dependencies | ||||
| MESA_MODULES = @MESA_MODULES@ | ||||
| DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@ | ||||
| LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ | ||||
| LIBDRM_LIB = @LIBDRM_LIBS@ | ||||
| DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ | ||||
| GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ | ||||
| EXPAT_INCLUDES = @EXPAT_INCLUDES@ | ||||
|  | ||||
| # Autoconf directories | ||||
| @@ -178,13 +104,7 @@ INSTALL_INC_DIR = $(includedir) | ||||
| DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ | ||||
|  | ||||
| # Where libGL will look for DRI hardware drivers | ||||
| DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_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@ | ||||
| DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR) | ||||
|  | ||||
| # pkg-config substitutions | ||||
| GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ | ||||
| @@ -203,31 +123,3 @@ GLW_PC_LIB_PRIV = @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_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@ | ||||
| WAYLAND_EGL_PC_REQ_PRIV = @WAYLAND_EGL_PC_REQ_PRIV@ | ||||
| WAYLAND_EGL_PC_LIB_PRIV = @WAYLAND_EGL_PC_LIB_PRIV@ | ||||
| WAYLAND_EGL_PC_CFLAGS = @WAYLAND_EGL_PC_CFLAGS@ | ||||
| GBM_PC_REQ_PRIV = @GBM_PC_REQ_PRIV@ | ||||
| GBM_PC_LIB_PRIV = @GBM_PC_LIB_PRIV@ | ||||
| GBM_PC_CFLAGS = @GBM_PC_CFLAGS@ | ||||
|  | ||||
| XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ | ||||
| XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ | ||||
| LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ | ||||
| LIBUDEV_LIBS = @LIBUDEV_LIBS@ | ||||
| WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ | ||||
| WAYLAND_LIBS = @WAYLAND_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_SSE_ASM | ||||
| 	 | ||||
| 	MESA_ASM_SOURCES = $(X86_SOURCES) | ||||
| 	GLAPI_ASM_SOURCES = $(X86_API) | ||||
| 	ASM_SOURCES = $(X86_SOURCES) | ||||
| 	ASM_API = $(X86_API) | ||||
|  | ||||
| 	CC = gcc | ||||
| 	CXX = g++ | ||||
| @@ -90,9 +90,10 @@ else | ||||
| endif | ||||
|  | ||||
| # Directories | ||||
| SRC_DIRS = gallium mesa glu glut/beos | ||||
| SRC_DIRS = mesa glu glut/beos | ||||
| GLU_DIRS = sgi | ||||
| DRIVER_DIRS = beos | ||||
| PROGRAM_DIRS = beos samples redbook demos tests | ||||
|  | ||||
| # Library/program dependencies | ||||
| GL_LIB_DEPS =  | ||||
|   | ||||
| @@ -24,6 +24,7 @@ OSMESA_LIB_NAME = libOSMesa.a | ||||
| # Directories | ||||
| SRC_DIRS = mesa glu | ||||
| DRIVER_DIRS = osmesa | ||||
| PROGRAM_DIRS = osdemos | ||||
|  | ||||
|  | ||||
| # Dependencies | ||||
|   | ||||
| @@ -20,6 +20,7 @@ OSMESA_LIB_NAME = libOSMesa.a | ||||
| # Directories | ||||
| SRC_DIRS = mesa glu | ||||
| DRIVER_DIRS = osmesa | ||||
| PROGRAM_DIRS = osdemos | ||||
|  | ||||
|  | ||||
| # Dependencies | ||||
|   | ||||
| @@ -23,6 +23,7 @@ OSMESA_LIB_NAME = libOSMesa.a | ||||
| # Directories | ||||
| SRC_DIRS = mesa glu | ||||
| DRIVER_DIRS = osmesa | ||||
| PROGRAM_DIRS = osdemos | ||||
|  | ||||
|  | ||||
| # Dependencies | ||||
|   | ||||
| @@ -6,58 +6,50 @@ CONFIG_NAME = darwin | ||||
|  | ||||
| INSTALL_DIR = /usr/X11 | ||||
|  | ||||
| X11_DIR = $(INSTALL_DIR) | ||||
|  | ||||
| # Compiler and flags | ||||
| CC = gcc | ||||
| CXX = g++ | ||||
| CXX = gcc | ||||
| PIC_FLAGS = -fPIC | ||||
| DEFINES =  -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \ | ||||
| 	   -DGLX_ALIAS_UNSUPPORTED \ | ||||
| 	   -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL | ||||
| DEFINES =  -D_DARWIN_C_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L \ | ||||
| 	   -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS \ | ||||
| 	   -DGLX_ALIAS_UNSUPPORTED -DGLX_INDIRECT_RENDERING | ||||
|  | ||||
| # -DGLX_INDIRECT_RENDERING \ | ||||
|  | ||||
| # -D_GNU_SOURCE          - for src/mesa/main ... | ||||
| # -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx | ||||
| # -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx/x11 | ||||
| # -DGLX_USE_APPLEGL      - supposed to be used with GLX_DIRECT_RENDERING to use AGL rather than DRM, but doesn't compile | ||||
| # -DIN_DRI_DRIVER | ||||
|  | ||||
| ARCH_FLAGS += $(RC_CFLAGS) | ||||
|  | ||||
| CFLAGS =  -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -fvisibility=hidden \ | ||||
| 	-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) | ||||
| CXXFLAGS =  -ggdb3 -Os -Wall -fno-strict-aliasing -fvisibility=hidden \ | ||||
| 	-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) | ||||
| CFLAGS =  -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing \ | ||||
| 	-I$(INSTALL_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) | ||||
| CXXFLAGS =  -ggdb3 -Os -Wall -fno-strict-aliasing \ | ||||
| 	-I$(INSTALL_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) | ||||
|  | ||||
| # Library names (actual file names) | ||||
| GL_LIB_NAME = lib$(GL_LIB).dylib | ||||
| GLU_LIB_NAME = lib$(GLU_LIB).dylib | ||||
| GLUT_LIB_NAME = lib$(GLUT_LIB).dylib | ||||
| GLW_LIB_NAME = lib$(GLW_LIB).dylib | ||||
| OSMESA_LIB_NAME = lib$(OSMESA_LIB).dylib | ||||
| VG_LIB_NAME = lib$(VG_LIB).dylib | ||||
| GL_LIB_NAME = libGL.dylib | ||||
| GLU_LIB_NAME = libGLU.dylib | ||||
| GLUT_LIB_NAME = libglut.dylib | ||||
| GLW_LIB_NAME = libGLw.dylib | ||||
| OSMESA_LIB_NAME = libOSMesa.dylib | ||||
|  | ||||
| # globs used to install the lib and all symlinks | ||||
| GL_LIB_GLOB = lib$(GL_LIB).*dylib | ||||
| GLU_LIB_GLOB = lib$(GLU_LIB).*dylib | ||||
| GLUT_LIB_GLOB = lib$(GLUT_LIB).*dylib | ||||
| GLW_LIB_GLOB = lib$(GLW_LIB).*dylib | ||||
| OSMESA_LIB_GLOB = lib$(OSMESA_LIB).*dylib | ||||
| VG_LIB_GLOB = lib$(VG_LIB).*dylib | ||||
| GL_LIB_GLOB = libGL.*dylib | ||||
| GLU_LIB_GLOB = libGLU.*dylib | ||||
| GLUT_LIB_GLOB = libglut.*dylib | ||||
| GLW_LIB_GLOB = libGLw.*dylib | ||||
| OSMESA_LIB_GLOB = libOSMesa.*dylib | ||||
|  | ||||
| GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread | ||||
| OSMESA_LIB_DEPS = | ||||
| GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread | ||||
| OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) | ||||
| GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) | ||||
| GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB)  -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXi -lXext | ||||
| GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt | ||||
| 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 | ||||
| GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB)  -L$(INSTALL_DIR)/$(LIB_DIR) -lX11 -lXmu -lXi -lXext | ||||
| GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -lX11 -lXt | ||||
| APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm | ||||
|  | ||||
| # 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 | ||||
| DRIVER_DIRS = osmesa | ||||
| #DRIVER_DIRS = dri | ||||
| DRI_DIRS = swrast | ||||
| GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad failover | ||||
| #GALLIUM_DRIVERS_DIRS += llvmpipe | ||||
| PROGRAM_DIRS = xdemos | ||||
|   | ||||
							
								
								
									
										110
									
								
								configs/default
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								configs/default
									
									
									
									
									
								
							| @@ -9,7 +9,7 @@ CONFIG_NAME = default | ||||
|  | ||||
| # Version info | ||||
| MESA_MAJOR=7 | ||||
| MESA_MINOR=11 | ||||
| MESA_MINOR=3 | ||||
| MESA_TINY=0 | ||||
| MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY) | ||||
|  | ||||
| @@ -19,17 +19,10 @@ DRM_SOURCE_PATH=$(TOP)/../drm | ||||
| # Compiler and flags | ||||
| CC = cc | ||||
| CXX = CC | ||||
| HOST_CC = $(CC) | ||||
| CFLAGS = -O | ||||
| CXXFLAGS = -O | ||||
| LDFLAGS = | ||||
| HOST_CFLAGS = $(CFLAGS) | ||||
| GLU_CFLAGS =  | ||||
| GLX_TLS = no | ||||
|  | ||||
| # Compiler for building demos/tests/etc | ||||
| APP_CC = $(CC) | ||||
| APP_CXX = $(CXX) | ||||
|  | ||||
| # Misc tools and flags | ||||
| SHELL = /bin/sh | ||||
| @@ -38,12 +31,7 @@ MKLIB_OPTIONS = | ||||
| MKDEP = makedepend | ||||
| MKDEP_OPTIONS = -fdepend | ||||
| MAKE = make | ||||
| FLEX = flex | ||||
| BISON = bison | ||||
|  | ||||
| # Use MINSTALL for installing libraries, INSTALL for everything else | ||||
| MINSTALL = $(SHELL) $(TOP)/bin/minstall | ||||
| INSTALL = $(MINSTALL) | ||||
| INSTALL = $(SHELL) $(TOP)/bin/minstall | ||||
|  | ||||
| # Tools for regenerating glapi (generally only needed by the developers) | ||||
| PYTHON2 = python | ||||
| @@ -57,13 +45,7 @@ GLU_LIB = GLU | ||||
| GLUT_LIB = glut | ||||
| GLW_LIB = GLw | ||||
| OSMESA_LIB = OSMesa | ||||
| EGL_LIB = EGL | ||||
| GLESv1_CM_LIB = GLESv1_CM | ||||
| GLESv2_LIB = GLESv2 | ||||
| VG_LIB = OpenVG | ||||
| GLAPI_LIB = glapi | ||||
| WAYLAND_EGL_LIB = wayland-egl | ||||
| GBM_LIB = gbm | ||||
|  | ||||
|  | ||||
| # Library names (actual file names) | ||||
| GL_LIB_NAME = lib$(GL_LIB).so | ||||
| @@ -71,13 +53,6 @@ GLU_LIB_NAME = lib$(GLU_LIB).so | ||||
| GLUT_LIB_NAME = lib$(GLUT_LIB).so | ||||
| GLW_LIB_NAME = lib$(GLW_LIB).so | ||||
| OSMESA_LIB_NAME = lib$(OSMESA_LIB).so | ||||
| 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 | ||||
| GLAPI_LIB_NAME = lib$(GLAPI_LIB).so | ||||
| WAYLAND_EGL_LIB_NAME = lib$(WAYLAND_EGL_LIB).so | ||||
| GBM_LIB_NAME = lib$(GBM_LIB).so | ||||
|  | ||||
| # globs used to install the lib and all symlinks | ||||
| GL_LIB_GLOB = $(GL_LIB_NAME)* | ||||
| @@ -85,19 +60,9 @@ GLU_LIB_GLOB = $(GLU_LIB_NAME)* | ||||
| GLUT_LIB_GLOB = $(GLUT_LIB_NAME)* | ||||
| GLW_LIB_GLOB = $(GLW_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)* | ||||
| GLAPI_LIB_GLOB = $(GLAPI_LIB_NAME)* | ||||
| WAYLAND_EGL_LIB_GLOB = $(WAYLAND_EGL_LIB_NAME)* | ||||
| GBM_LIB_GLOB = $(GBM_LIB_NAME)* | ||||
|  | ||||
| DRI_CFLAGS = $(CFLAGS) | ||||
| DRI_CXXFLAGS = $(CXXFLAGS) | ||||
|  | ||||
| # 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 | ||||
| # order to build the Motif widget too) | ||||
| @@ -107,51 +72,24 @@ MOTIF_CFLAGS = -I/usr/include/Motif1.2 | ||||
|  | ||||
| # Directories to build | ||||
| LIB_DIR = lib | ||||
| SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \ | ||||
| 	gallium egl gallium/winsys gallium/targets glu glut/glx glw | ||||
| SRC_DIRS = mesa glu glut/glx glw | ||||
| GLU_DIRS = sgi | ||||
| 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 | ||||
|  | ||||
| # gbm backends to build | ||||
| GBM_BACKEND_DIRS = dri | ||||
|  | ||||
| # Gallium directories and  | ||||
| GALLIUM_DIRS = auxiliary drivers state_trackers | ||||
| GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a | ||||
| GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop 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 | ||||
| #EXTRA_LIB_PATH ?= | ||||
| GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread | ||||
| EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -ldl -lpthread | ||||
| OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) | ||||
| GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm | ||||
| GLUT_LIB_DEPS   = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lm | ||||
| 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 | ||||
| GLAPI_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread | ||||
| WAYLAND_EGL_LIB_DEPS = $(EXTRA_LIB_PATH) -lwayland-client -ldrm | ||||
| GBM_LIB_DEPS = $(EXTRA_LIB_PATH) -ludev -ldl | ||||
| GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread | ||||
| OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) | ||||
| GLU_LIB_DEPS = -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 | ||||
| GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11 | ||||
|  | ||||
| # Program dependencies - specific GL/glut libraries added in Makefiles | ||||
| APP_LIB_DEPS = -lm | ||||
| X11_LIBS = -lX11 | ||||
|  | ||||
| DLOPEN_LIBS = -ldl | ||||
|  | ||||
| # Installation directories (for make install) | ||||
| INSTALL_DIR = /usr/local | ||||
| @@ -162,15 +100,6 @@ DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri | ||||
| # Where libGL will look for DRI hardware drivers | ||||
| DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR) | ||||
|  | ||||
| # EGL driver install directory | ||||
| EGL_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/egl | ||||
|  | ||||
| # gbm backend install directory | ||||
| GBM_BACKEND_INSTALL_DIR = $(INSTALL_LIB_DIR)/gbm | ||||
|  | ||||
| # Xorg driver install directory (for xorg state-tracker) | ||||
| XORG_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/xorg/modules/drivers | ||||
|  | ||||
| # pkg-config substitutions | ||||
| GL_PC_REQ_PRIV = | ||||
| GL_PC_LIB_PRIV = | ||||
| @@ -188,18 +117,3 @@ GLW_PC_LIB_PRIV = | ||||
| GLW_PC_CFLAGS = | ||||
| OSMESA_PC_REQ = | ||||
| 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 = | ||||
| WAYLAND_EGL_PC_REQ_PRIV = | ||||
| WAYLAND_EGL_PC_LIB_PRIV = | ||||
| WAYLAND_EGL_PC_CFLAGS = | ||||
| GBM_PC_REQ_PRIV = | ||||
| GBM_PC_LIB_PRIV = | ||||
| GBM_PC_CFLAGS = | ||||
|   | ||||
| @@ -27,14 +27,11 @@ CFLAGS += -fno-strict-aliasing | ||||
| CXXFLAGS += -fno-strict-aliasing | ||||
|  | ||||
| ASM_SOURCES =  | ||||
| MESA_ASM_SOURCES =  | ||||
|  | ||||
| # Library/program dependencies | ||||
| MESA_MODULES  = $(TOP)/src/mesa/libmesa.a | ||||
|  | ||||
| LIBDRM_CFLAGS = `pkg-config --cflags libdrm` | ||||
| LIBDRM_LIB = `pkg-config --libs libdrm` | ||||
| DRI_LIB_DEPS = $(MESA_MODULES) -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB) | ||||
| DRI_LIB_DEPS = -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB) | ||||
| GL_LIB_DEPS = -L/usr/local/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \ | ||||
| 	-lm -pthread $(LIBDRM_LIB) | ||||
|  | ||||
| @@ -43,11 +40,15 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGL -lXt -lX11 | ||||
|  | ||||
|  | ||||
| # Directories | ||||
| SRC_DIRS = glx gallium mesa glu glut/glx glw | ||||
| SRC_DIRS = glx/x11 mesa glu glut/glx glw | ||||
| DRIVER_DIRS = dri | ||||
| PROGRAM_DIRS =  | ||||
| WINDOW_SYSTEM=dri | ||||
|  | ||||
| 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 \ | ||||
| 	   unichrome savage sis | ||||
|  | ||||
|   | ||||
| @@ -6,5 +6,5 @@ include $(TOP)/configs/freebsd-dri | ||||
| CONFIG_NAME = freebsd-dri-x86-64 | ||||
|  | ||||
| ASM_FLAGS = -DUSE_X86_64_ASM | ||||
| MESA_ASM_SOURCES = $(X86-64_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86-64_API) | ||||
| ASM_SOURCES = $(X86-64_SOURCES) | ||||
| ASM_API = $(X86-64_API) | ||||
|   | ||||
| @@ -9,5 +9,5 @@ CONFIG_NAME = freebsd-dri-x86 | ||||
| PIC_FLAGS =  | ||||
|  | ||||
| ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM | ||||
| MESA_ASM_SOURCES = $(X86_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86_API) | ||||
| ASM_SOURCES = $(X86_SOURCES) | ||||
| 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 | ||||
|  | ||||
| CFLAGS = -Wall -Wmissing-prototypes -Wdeclaration-after-statement \ | ||||
| 	-Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \ | ||||
| 	$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math | ||||
| CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \ | ||||
| 	$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math  | ||||
|  | ||||
| CXXFLAGS = -Wall -Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \ | ||||
| 	$(DEFINES) $(X11_INCLUDES) | ||||
| CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ | ||||
| 	$(X11_INCLUDES)  | ||||
|  | ||||
| # Work around aliasing bugs - developers should comment this out | ||||
| 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 | ||||
|  | ||||
| OPT_FLAGS = -g | ||||
| #CFLAGS += -pedantic | ||||
| OPT_FLAGS = -g -ansi -pedantic | ||||
| 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_OPTIONS = -MF depend | ||||
|  | ||||
| OPT_FLAGS  = -O2 -g | ||||
| OPT_FLAGS  = -O -g | ||||
| PIC_FLAGS  = -fPIC | ||||
|  | ||||
| # Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support. | ||||
| @@ -38,41 +38,37 @@ GLUT_CFLAGS = -fexceptions | ||||
| CFLAGS += -fno-strict-aliasing | ||||
| CXXFLAGS += -fno-strict-aliasing | ||||
|  | ||||
| MESA_ASM_SOURCES =  | ||||
| ASM_SOURCES =  | ||||
|  | ||||
| # Library/program dependencies | ||||
| EXTRA_LIB_PATH=-L/usr/X11R6/lib | ||||
|  | ||||
| MESA_MODULES  = $(TOP)/src/mesa/libmesa.a | ||||
|  | ||||
| LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm) | ||||
| LIBDRM_LIB = $(shell pkg-config --libs libdrm) | ||||
| DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB) | ||||
| LIBDRM_CFLAGS = `pkg-config --cflags libdrm` | ||||
| LIBDRM_LIB = `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 := glx egl $(SRC_DIRS) | ||||
| # 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' | ||||
|  | ||||
| # EGL directories | ||||
| EGL_DRIVERS_DIRS = glx | ||||
| 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 | ||||
| GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel drm/i965 | ||||
| GALLIUM_TARGET_DIRS =  | ||||
| GALLIUM_STATE_TRACKERS_DIRS = egl | ||||
| WINDOW_SYSTEM=dri | ||||
|  | ||||
| DRI_DIRS = i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \ | ||||
| 	savage sis tdfx unichrome swrast | ||||
|  | ||||
| INTEL_LIBS = $(shell pkg-config --libs libdrm_intel) | ||||
| INTEL_CFLAGS = $(shell pkg-config --cflags libdrm_intel) | ||||
|  | ||||
| NOUVEAU_LIBS = $(shell pkg-config --libs libdrm_nouveau) | ||||
| NOUVEAU_CFLAGS = $(shell pkg-config --cflags libdrm_nouveau) | ||||
|  | ||||
| LIBDRM_RADEON_LIBS = $(shell pkg-config --libs libdrm_radeon) | ||||
| LIBDRM_RADEON_CFLAGS = $(shell pkg-config --cflags libdrm_radeon) | ||||
| RADEON_CFLAGS = "-DHAVE_LIBDRM_RADEON=1 $(LIBDRM_RADEON_CFLAGS)" | ||||
| RADEON_LDFLAGS = $(LIBDRM_RADEON_LIBS) | ||||
| # 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 s3v \ | ||||
| 	savage sis tdfx trident unichrome ffb | ||||
|   | ||||
| @@ -11,6 +11,6 @@ ARCH_FLAGS = -DDEBUG | ||||
| #DRI_DIRS = i915tex i915  | ||||
| #DRI_DIRS = i965 | ||||
| #DRI_DIRS = radeon r200 r300 | ||||
| #DRI_DIRS = unichrome sis | ||||
| #DRI_DIRS = unichrome sis trident | ||||
| #DRI_DIRS = i810 mga r128 tdfx | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,7 @@ OPT_FLAGS = -Os -mcpu=603 | ||||
| PIC_FLAGS = -fPIC | ||||
|  | ||||
| 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 | ||||
| # will be added, but not yet. | ||||
|   | ||||
| @@ -5,9 +5,10 @@ include $(TOP)/configs/linux-dri | ||||
|  | ||||
| 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 | ||||
| MESA_ASM_SOURCES = $(X86_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86_API) | ||||
| ASM_SOURCES = $(X86_SOURCES) | ||||
| ASM_API = $(X86_API) | ||||
|  | ||||
|   | ||||
| @@ -8,15 +8,15 @@ CONFIG_NAME = linux-dri-x86-64 | ||||
| ARCH_FLAGS = -m64 | ||||
|  | ||||
| ASM_FLAGS = -DUSE_X86_64_ASM | ||||
| MESA_ASM_SOURCES = $(X86-64_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86-64_API) | ||||
| ASM_SOURCES = $(X86-64_SOURCES) | ||||
| ASM_API = $(X86-64_API) | ||||
|  | ||||
| LIB_DIR = lib64 | ||||
|  | ||||
| # Library/program dependencies | ||||
| 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 | ||||
| # 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 \ | ||||
|         -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) \ | ||||
| 	$(DEFINES) $(ASM_FLAGS) -std=c99 -ffast-math  | ||||
| @@ -36,21 +36,38 @@ CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) | ||||
| CFLAGS += -fno-strict-aliasing | ||||
| CXXFLAGS += -fno-strict-aliasing | ||||
|  | ||||
| MESA_ASM_SOURCES =  | ||||
| ASM_SOURCES =  | ||||
|  | ||||
| # Library/program dependencies | ||||
| EXTRA_LIB_PATH=$(shell pkg-config --libs-only-L x11) | ||||
| EXTRA_LIB_PATH=`pkg-config --libs-only-L x11` | ||||
|  | ||||
| MESA_MODULES  = $(TOP)/src/mesa/libmesa.a | ||||
| LIBDRM_CFLAGS = `pkg-config --cflags libdrm` | ||||
| LIBDRM_LIB = `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) `pkg-config --libs xcb` \ | ||||
| 		`pkg-config --libs x11-xcb` `pkg-config --libs xcb-glx` | ||||
|  | ||||
| LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm) | ||||
| LIBDRM_LIB = $(shell pkg-config --libs libdrm) | ||||
| DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB) | ||||
| GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \ | ||||
|                 $(LIBDRM_LIB) $(shell pkg-config --libs xcb) $(shell pkg-config --libs x11-xcb) $(shell 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 | ||||
| DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon \ | ||||
| 	savage sis tdfx unichrome | ||||
| WINDOW_SYSTEM=dri | ||||
|  | ||||
| # 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,58 +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 | ||||
|  | ||||
| MESA_MODULES  = $(TOP)/src/mesa/libmesa.a | ||||
|  | ||||
| LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm) | ||||
| LIBDRM_LIB = $(shell pkg-config --libs libdrm) | ||||
| DRI_LIB_DEPS  = $(MESA_MODULES) $(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 | ||||
|  | ||||
| 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 | ||||
| CFLAGS += -fno-strict-aliasing | ||||
|  | ||||
| SRC_DIRS += glut/fbdev | ||||
| SRC_DIRS = mesa glu glut/fbdev | ||||
| DRIVER_DIRS = fbdev osmesa | ||||
| PROGRAM_DIRS = fbdev demos redbook samples | ||||
|  | ||||
| GL_LIB_DEPS = $(EXTRA_LIB_PATH) -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 | ||||
| APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm | ||||
|  | ||||
| MESA_ASM_SOURCES = $(X86_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86_API) | ||||
| ASM_SOURCES = $(X86_SOURCES) | ||||
| ASM_API = $(X86_API) | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -23,5 +23,5 @@ GL_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 | ||||
|  | ||||
| MESA_ASM_SOURCES = $(X86_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86_API) | ||||
| ASM_SOURCES = $(X86_SOURCES) | ||||
| ASM_API = $(X86_API) | ||||
|   | ||||
| @@ -37,16 +37,17 @@ CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) | ||||
| CFLAGS += -fno-strict-aliasing | ||||
| CXXFLAGS += -fno-strict-aliasing | ||||
|  | ||||
| MESA_ASM_SOURCES =  | ||||
| ASM_SOURCES =  | ||||
|  | ||||
| # Library/program dependencies | ||||
| EXTRA_LIB_PATH=-L/usr/X11R6/lib | ||||
|  | ||||
| MESA_MODULES  = $(TOP)/src/mesa/libmesa.a | ||||
| DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl | ||||
| DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl | ||||
| GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl | ||||
|  | ||||
|  | ||||
| # Directories | ||||
| SRC_DIRS = glx glu glut/glx glw | ||||
| SRC_DIRS = glx/x11 glu glut/glx glw | ||||
| 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 | ||||
|  | ||||
| # 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` -Wno-long-long | ||||
|   LLVM_LDFLAGS = $(shell llvm-config --ldflags) | ||||
|   LLVM_LIBS = $(shell llvm-config --libs) | ||||
|   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++ | ||||
| @@ -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 | ||||
| CC = gcc | ||||
| 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 | ||||
|  | ||||
| # Work around aliasing bugs - developers should comment this out | ||||
| @@ -17,11 +17,12 @@ CFLAGS += -fno-strict-aliasing | ||||
| CXXFLAGS += -fno-strict-aliasing | ||||
|  | ||||
| # Directories | ||||
| SRC_DIRS = mapi/glapi glsl mesa glu | ||||
| SRC_DIRS = mesa glu | ||||
| DRIVER_DIRS = osmesa | ||||
| PROGRAM_DIRS = osdemos | ||||
|  | ||||
|  | ||||
| # Dependencies | ||||
| OSMESA_LIB_DEPS = -lm -lpthread -ldl | ||||
| OSMESA_LIB_DEPS = -lm -lpthread | ||||
| GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB) | ||||
| 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 | ||||
| SRC_DIRS = mapi/glapi glsl mesa glu | ||||
| SRC_DIRS = mesa glu | ||||
| DRIVER_DIRS = osmesa | ||||
| PROGRAM_DIRS =  | ||||
|  | ||||
|  | ||||
| # Dependencies | ||||
|   | ||||
| @@ -22,8 +22,9 @@ OSMESA_LIB_NAME = libOSMesa16.a | ||||
|  | ||||
|  | ||||
| # Directories | ||||
| SRC_DIRS = gallium mesa glu | ||||
| SRC_DIRS = mesa glu | ||||
| DRIVER_DIRS = osmesa | ||||
| PROGRAM_DIRS =  | ||||
|  | ||||
|  | ||||
| # Dependencies | ||||
|   | ||||
| @@ -20,8 +20,9 @@ OSMESA_LIB_NAME = libOSMesa32.so | ||||
|  | ||||
|  | ||||
| # Directories | ||||
| SRC_DIRS = mapi/glapi glsl mesa glu | ||||
| SRC_DIRS = mesa glu | ||||
| DRIVER_DIRS = osmesa | ||||
| PROGRAM_DIRS =  | ||||
|  | ||||
|  | ||||
| # Dependencies | ||||
|   | ||||
| @@ -1,8 +1,29 @@ | ||||
| # Configuration for profiling on Linux with gprof | ||||
|  | ||||
| include $(TOP)/configs/linux-static | ||||
| include $(TOP)/configs/default | ||||
|  | ||||
| CONFIG_NAME = linux-profile | ||||
|  | ||||
| OPT_FLAGS = -pg -g -O2 | ||||
| DEFINES += -DNDEBUG | ||||
| # Compiler and flags | ||||
| 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 | ||||
|  | ||||
| #ASM_FLAGS = -DUSE_SPARC_ASM | ||||
| #MESA_ASM_SOURCES = $(SPARC_SOURCES) | ||||
| #GLAPI_ASM_SOURCES = $(SPARC_API) | ||||
| #ASM_SOURCES = $(SPARC_SOURCES) | ||||
| #ASM_API = $(SPARC_API) | ||||
|   | ||||
| @@ -22,5 +22,5 @@ GLUT_LIB_DEPS = | ||||
| GLW_LIB_DEPS =  | ||||
|  | ||||
| # Need to specify all libraries we may need | ||||
| APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) \ | ||||
| 	-l$(GL_LIB) -lm -L/usr/X11R6/lib/ -lX11 -lXext -lXmu -lXi -lpthread | ||||
| APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \ | ||||
| 	-lstdc++ -lm | ||||
|   | ||||
| @@ -4,8 +4,6 @@ include $(TOP)/configs/linux | ||||
|  | ||||
| CONFIG_NAME = linux-x86 | ||||
|  | ||||
| ARCH_FLAGS = -m32 -mmmx -msse -msse2 | ||||
|  | ||||
| ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM | ||||
| MESA_ASM_SOURCES = $(X86_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86_API) | ||||
| ASM_SOURCES = $(X86_SOURCES) | ||||
| ASM_API = $(X86_API) | ||||
|   | ||||
| @@ -6,8 +6,8 @@ CONFIG_NAME = linux-x86-64 | ||||
|  | ||||
| ARCH_FLAGS = -m64 | ||||
|  | ||||
| MESA_ASM_SOURCES = $(X86-64_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(X86-64_API) | ||||
| ASM_SOURCES = $(X86-64_SOURCES) | ||||
| ASM_API = $(X86-64_API) | ||||
| ASM_FLAGS = -DUSE_X86_64_ASM | ||||
|  | ||||
| LIB_DIR = lib64 | ||||
|   | ||||
| @@ -4,5 +4,4 @@ include $(TOP)/configs/linux-x86-64 | ||||
|  | ||||
| CONFIG_NAME = linux-x86-64-debug | ||||
|  | ||||
| OPT_FLAGS = -g | ||||
| 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 =  | ||||
| GLUT_LIB_DEPS =  | ||||
| GLW_LIB_DEPS =  | ||||
|  | ||||
| # Need to specify all libraries we may need | ||||
| 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 | ||||
| APP_LIB_DEPS = $(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 =  | ||||
| GLUT_LIB_DEPS =  | ||||
| GLW_LIB_DEPS =  | ||||
|  | ||||
| # Need to specify all libraries we may need | ||||
| 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 | ||||
| APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \ | ||||
| 	-lstdc++ -lm | ||||
|   | ||||
| @@ -16,8 +16,8 @@ ARCH_FLAGS ?= | ||||
|  | ||||
| DEFINES = -D_REENTRANT -DUSE_XSHM | ||||
|  | ||||
| MESA_ASM_SOURCES = $(SPARC_SOURCES) | ||||
| GLAPI_ASM_SOURCES = $(SPARC_API) | ||||
| ASM_SOURCES = $(SPARC_SOURCES) | ||||
| ASM_API = $(SPARC_API) | ||||
| ASM_FLAGS = -DUSE_SPARC_ASM | ||||
|  | ||||
| CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ | ||||
|   | ||||
							
								
								
									
										1292
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										1292
									
								
								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) | ||||
| @@ -1,4 +0,0 @@ | ||||
| Known issues in the ARB_color_buffer_float implementation: | ||||
| - Rendering to multiple render targets, some fixed-point, some floating-point, with FIXED_ONLY fragment clamping and polygon smooth enabled may write incorrect values to the fixed point buffers (depends on spec interpretation) | ||||
| - For fragment programs with ARB_fog_* options, colors are clamped before fog application regardless of the fragment clamping setting (this depends on spec interpretation) | ||||
|  | ||||
							
								
								
									
										119
									
								
								docs/GL3.txt
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								docs/GL3.txt
									
									
									
									
									
								
							| @@ -1,119 +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 1.30 (GL_EXT_gpu_shader4, etc.)                  started | ||||
| Conditional rendering (GL_NV_conditional_render)      DONE (swrast, softpipe, i965) | ||||
| Map buffer subranges (GL_ARB_map_buffer_range)        DONE | ||||
| Clamping controls (GL_ARB_color_buffer_float)         DONE | ||||
| Float textures, renderbuffers (GL_ARB_texture_float)  DONE (gallium r300) | ||||
| GL_EXT_packed_float                                   DONE (gallium r600) | ||||
| GL_EXT_texture_shared_exponent                        DONE (gallium, swrast) | ||||
| Float depth buffers (GL_ARB_depth_buffer_float)       not started | ||||
| Framebuffer objects (GL_EXT_framebuffer_object)       DONE | ||||
| Half-float                                            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                       DONE (swrast, gallium r600) | ||||
| 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)     core GL done (i965, gallium), GLX todo | ||||
| glClearBuffer commands                                DONE | ||||
| glGetStringi command                                  DONE | ||||
| glTexParameterI, glGetTexParameterI commands          DONE | ||||
| glVertexAttribI commands                              DONE (but converts int | ||||
|                                                             values to floats) | ||||
| Depth format cube textures                            0% done | ||||
|  | ||||
|  | ||||
|  | ||||
| GL 3.1: | ||||
|  | ||||
| GLSL 1.40                                             not started | ||||
| Instanced drawing (GL_ARB_draw_instanced)             DONE (gallium, swrast) | ||||
| 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 textures (GL_EXT_texture_snorm)     DONE (gallium) | ||||
|  | ||||
|  | ||||
| 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 | ||||
| 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                               DONE (swrast, gallium) | ||||
| GL_ARB_sampler_objects                                DONE (gallium) | ||||
| GL_ARB_texture_rgb10_a2ui                             not started | ||||
| GL_ARB_texture_swizzle                                DONE (same as EXT version) | ||||
| GL_ARB_timer_query                                    ~60% done (the EXT variant) | ||||
| GL_ARB_instanced_arrays                               DONE (gallium) | ||||
| 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                            DONE (gallium softpipe) | ||||
| 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                             DONE (i965) | ||||
| 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 | ||||
| @@ -67,7 +67,7 @@ Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors) | ||||
|     On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV | ||||
|     and freed with glXFreeMemoryNV.  Sometimes it's useful to know where a | ||||
|     block of AGP memory is located with respect to the start of the AGP | ||||
|     aperture.  The function | ||||
|     aperature.  The function | ||||
|  | ||||
|         GLuint glXGetAGPOffsetMESA( const GLvoid *pointer ) | ||||
|  | ||||
|   | ||||
| @@ -1,153 +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 | ||||
|  | ||||
|     Requires 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 | ||||
|         EGL_DRM_BUFFER_USE_CURSOR_MESA		0x0004 | ||||
|  | ||||
|     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, | ||||
|     EGL_DRM_BUFFER_USE_SHARE_MESA and EGL_DRM_BUFFER_USE_CURSOR_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.  EGL_DRM_BUFFER_USE_SHARE_MESA requests that the | ||||
|     EGLImage can be shared with other processes by passing the | ||||
|     underlying DRM buffer name.  EGL_DRM_BUFFER_USE_CURSOR_MESA | ||||
|     requests that the image must be usable as a cursor with KMS.  When | ||||
|     EGL_DRM_BUFFER_USE_CURSOR_MESA is set, width and height must both | ||||
|     be 64. | ||||
|  | ||||
|     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 referencing 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. | ||||
| @@ -1,158 +0,0 @@ | ||||
| Name | ||||
|  | ||||
|     MESA_multithread_makecurrent | ||||
|  | ||||
| Name Strings | ||||
|  | ||||
|     GLX_MESA_multithread_makecurrent | ||||
|  | ||||
| Contact | ||||
|  | ||||
|     Eric Anholt (eric@anholt.net) | ||||
|  | ||||
| Status | ||||
|  | ||||
|     Not shipping. | ||||
|  | ||||
| Version | ||||
|  | ||||
|     Last Modified Date:  21 February 2011 | ||||
|  | ||||
| Number | ||||
|  | ||||
|     TBD | ||||
|  | ||||
| Dependencies | ||||
|  | ||||
|     OpenGL 1.0 or later is required. | ||||
|     GLX 1.3 or later is required. | ||||
|  | ||||
| Overview | ||||
|  | ||||
|     The GLX context setup encourages multithreaded applications to | ||||
|     create a context per thread which each operate on their own | ||||
|     objects in parallel, and leaves synchronization for write access | ||||
|     to shared objects up to the application. | ||||
|  | ||||
|     For some applications, maintaining per-thread contexts and | ||||
|     ensuring that the glFlush happens in one thread before another | ||||
|     thread starts working on that object is difficult.  For them, | ||||
|     using the same context across multiple threads and protecting its | ||||
|     usage with a mutex is both higher performance and easier to | ||||
|     implement.  This extension gives those applications that option by | ||||
|     relaxing the context binding requirements. | ||||
|  | ||||
|     This new behavior matches the requirements of AGL, while providing | ||||
|     a feature not specified in WGL. | ||||
|  | ||||
| IP Status | ||||
|  | ||||
|     Open-source; freely implementable. | ||||
|  | ||||
| Issues | ||||
|  | ||||
|     None. | ||||
|  | ||||
| New Procedures and Functions | ||||
|  | ||||
|     None. | ||||
|  | ||||
| New Tokens | ||||
|  | ||||
|     None. | ||||
|  | ||||
| Changes to Chapter 2 of the GLX 1.3 Specification (Functions and Errors) | ||||
|  | ||||
|     Replace the following sentence from section 2.2 Rendering Contexts: | ||||
| 	In addition, a rendering context can be current for only one | ||||
| 	thread at a time. | ||||
|     with: | ||||
| 	In addition, an indirect rendering context can be current for | ||||
| 	only one thread at a time.  A direct rendering context may be | ||||
| 	current to multiple threads, with synchronization of access to | ||||
| 	the context thruogh the GL managed by the application through | ||||
| 	mutexes. | ||||
|  | ||||
| Changes to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) | ||||
|  | ||||
|     Replace the following sentence from section 3.3.7 Rendering Contexts: | ||||
| 	If ctx is current to some other thread, then | ||||
| 	glXMakeContextCurrent will generate a BadAccess error. | ||||
|     with: | ||||
| 	If ctx is an indirect context current to some other thread, | ||||
| 	then glXMakeContextCurrent will generate a BadAccess error. | ||||
|  | ||||
|     Replace the following sentence from section 3.5 Rendering Contexts: | ||||
| 	If ctx is current to some other thread, then | ||||
| 	glXMakeCurrent will generate a BadAccess error. | ||||
|     with: | ||||
| 	If ctx is an indirect context current to some other thread, | ||||
| 	then glXMakeCurrent will generate a BadAccess error. | ||||
|  | ||||
| GLX Protocol | ||||
|  | ||||
|     None.  The GLX extension only extends to direct rendering contexts. | ||||
|  | ||||
| Errors | ||||
|  | ||||
|     None. | ||||
|  | ||||
| New State | ||||
|  | ||||
|     None. | ||||
|  | ||||
| Issues | ||||
|  | ||||
|     (1) What happens if the app binds a context/drawable in multiple | ||||
| 	threads, then binds a different context/thread in one of them? | ||||
|  | ||||
|     As with binding a new context from the current thread, the old | ||||
|     context's refcount is reduced and the new context's refcount is | ||||
|     increased. | ||||
|  | ||||
|     (2) What happens if the app binds a context/drawable in multiple | ||||
| 	threads, then binds None/None in one of them? | ||||
|  | ||||
|     The GLX context is unreferenced from that thread, and the other | ||||
|     threads retain their GLX context binding. | ||||
|  | ||||
|     (3) What happens if the app binds a context/drawable in 7 threads, | ||||
| 	then destroys the context in one of them? | ||||
|  | ||||
|     As with GLX context destruction previously, the XID is destroyed | ||||
|     but the context remains usable by threads that have the context | ||||
|     current. | ||||
|  | ||||
|     (4) What happens if the app binds a new drawable/readable with | ||||
|         glXMakeCurrent() when it is already bound to another thread? | ||||
|  | ||||
|     The context becomes bound to the new drawable/readable, and | ||||
|     further rendering in either thread will use the new | ||||
|     drawable/readable. | ||||
|  | ||||
|     (5) What requirements should be placed on the user managing contexts | ||||
|         from multiple threads? | ||||
|  | ||||
|     The intention is to allow multithreaded access to the GL at the | ||||
|     minimal performance cost, so requiring that the GL do general | ||||
|     synchronization (beyond that already required by context sharing) | ||||
|     is not an option, and synchronizing of GL's access to the GL | ||||
|     context between multiple threads is left to the application to do | ||||
|     across GL calls.  However, it would be unfortunate for a library | ||||
|     doing multithread_makecurrent to require that other libraries | ||||
|     share in synchronization for binding of their own contexts, so the | ||||
|     refcounting of the contexts is required to be threadsafe. | ||||
|  | ||||
|     (6) Does this apply to indirect contexts? | ||||
|  | ||||
|     This was ignored in the initial revision of the spec.  Behavior | ||||
|     for indirect contexts is left as-is. | ||||
|  | ||||
| Revision History | ||||
|  | ||||
|     20 November 2009 Eric Anholt - initial specification | ||||
|     22 November 2009 Eric Anholt - added issues from Ian Romanick. | ||||
|     3 February 2011 Eric Anholt - updated with resolution to issues 1-3 | ||||
|     3 February 2011 Eric Anholt - added issue 4, 5 | ||||
|     21 February 2011 Eric Anholt - Include glXMakeCurrent() sentence | ||||
|     along with glXMakeContextCurrent() for removal. | ||||
| @@ -48,7 +48,7 @@ IP Status | ||||
|  | ||||
| Issues | ||||
|  | ||||
|     1. Should we also define UNPACK_INVERT_MESA for glDrawPixels, etc? | ||||
|     1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc? | ||||
|  | ||||
|     Resolved:  No, we're only concerned with pixel packing.  There are other | ||||
|     solutions for inverting images when using glDrawPixels (negative Y pixel | ||||
|   | ||||
| @@ -31,12 +31,12 @@ Overview | ||||
|  | ||||
|     Mesa's implementation of GLX is entirely implemented on the client side. | ||||
|     Therefore, Mesa cannot immediately detect when an X window or pixmap is | ||||
|     destroyed in order to free any ancillary data associated with the window | ||||
|     destroyed in order to free any ancilliary data associated with the window | ||||
|     or pixmap. | ||||
|  | ||||
|     The glxMesaReleaseBuffers() function can be used to explicitly indicate | ||||
|     when the back color buffer, depth buffer, stencil buffer, and/or accumu- | ||||
|     lation buffer associated with a drawable can be freed. | ||||
|     when the back color buffer, depth buffer, stencil buffer, and/or accum- | ||||
|     ulation buffer associated with a drawable can be freed. | ||||
|  | ||||
| IP Status | ||||
|  | ||||
| @@ -60,7 +60,7 @@ Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) | ||||
|  | ||||
| 	Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); | ||||
|  | ||||
|     causes all software ancillary buffers (back buffer, depth, stencil, | ||||
|     causes all software ancilliary buffers (back buffer, depth, stencil, | ||||
|     accum, etc) associated with the named drawable to be immediately | ||||
|     deallocated.  True is returned if <d> is a valid Mesa GLX drawable, | ||||
|     else False is returned.  After calling glXReleaseBuffersMESA, the | ||||
|   | ||||
| @@ -35,7 +35,7 @@ Overview | ||||
|  | ||||
|     Mesa's glViewport command queries the current window size and updates | ||||
|     its internal data structors accordingly.  This normally works fine | ||||
|     since most applications call glViewport in response to window size | ||||
|     since most applications call glViewport in responce to window size | ||||
|     changes. | ||||
|  | ||||
|     In some situations, however, the application may not call glViewport | ||||
| @@ -65,7 +65,7 @@ Additions to the AGL/GLX/WGL Specifications | ||||
|  | ||||
| Errors | ||||
|  | ||||
|     INVALID_OPERATION is generated if glResizeBuffersMESA is called between | ||||
|     INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen | ||||
|     Begin and End. | ||||
|  | ||||
| New State | ||||
|   | ||||
| @@ -13,7 +13,7 @@ Contact | ||||
|  | ||||
| Status | ||||
|  | ||||
|     Obsolete. | ||||
|     XXX - Not complete yet!!! | ||||
|  | ||||
| Version | ||||
|  | ||||
|   | ||||
| @@ -43,7 +43,7 @@ Issues | ||||
|  | ||||
| New Procedures and Functions | ||||
|  | ||||
|     int glXSwapIntervalMESA(unsigned int interval) | ||||
|     int glXSwapIntervalMESA(int interval) | ||||
|     int glXGetSwapIntervalMESA(void) | ||||
|  | ||||
| New Tokens | ||||
| @@ -88,8 +88,8 @@ Additions to the GLX 1.3 Specification | ||||
|     this is typically the time required to display both the even and odd  | ||||
|     fields of a frame of video data. | ||||
|  | ||||
|     If <interval> is set to a value of 0, buffer swaps are not synchro- | ||||
|     nized to a video frame.  The <interval> value is silently clamped to | ||||
|     If <interval> is set to a value of 0, buffer swaps are not synchron- | ||||
|     ized to a video frame.  The <interval> value is silently clamped to | ||||
|     the maximum implementation-dependent value supported before being | ||||
|     stored. | ||||
|  | ||||
| @@ -103,8 +103,11 @@ Additions to the GLX 1.3 Specification | ||||
|  | ||||
| Errors | ||||
|  | ||||
|     glXSwapIntervalMESA returns GLX_BAD_VALUE if parameter <interval> is | ||||
|     less than zero. | ||||
|  | ||||
|     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 | ||||
|  | ||||
|   | ||||
| @@ -328,7 +328,7 @@ Additions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization) | ||||
|  | ||||
|     -- Section 3.8.10 "Texture Completeness" | ||||
|  | ||||
|        Change the second paragraph (page 177) to say (spec changes identical | ||||
|        Change the second paragaph (page 177) to say (spec changes identical | ||||
|        to EXT_texture_array): | ||||
|  | ||||
|        "For one-, two-, or three-dimensional textures and one- or | ||||
| @@ -443,10 +443,10 @@ Additions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization) | ||||
|        Change second through fourth paragraphs (page 188) to say: | ||||
|  | ||||
|        "Let D_t be the depth texture value, in the range [0, 1].  For | ||||
|        texture lookups from one- and two-dimensional, rectangle, and | ||||
|        texture lookups from one- and two-dimesional, rectangle, and | ||||
|        one-dimensional array targets, let R be the interpolated <r> | ||||
|        texture coordinate, clamped to the range [0, 1].  For texture lookups | ||||
|        from two-dimensional array texture targets, let R be the interpolated | ||||
|        from two-dimesional array texture targets, let R be the interpolated | ||||
|        <q> texture coordinate, clamped to the range [0, 1].  Then the | ||||
|        effective texture value L_t, I_t, or A_t is computed as follows: | ||||
|  | ||||
| @@ -604,7 +604,7 @@ Additions to Chapter 5 of the OpenGL 2.0 Specification (Special Functions) | ||||
|  | ||||
|     -- Section 5.4 "Display Lists" | ||||
|  | ||||
|        Change the first paragraph on page 242 to say (spec changes | ||||
|        Change the first paragraphi on page 242 to say (spec changes | ||||
|        identical to EXT_texture_array): | ||||
|  | ||||
|        "TexImage3D, TexImage2D, TexImage1D, Histogram, and ColorTable are | ||||
|   | ||||
| @@ -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 superseded 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. Particularly 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. | ||||
| @@ -88,7 +88,7 @@ Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation) | ||||
|       WindosPos4MESA takes four values indicating x, y, z, and w. | ||||
|       WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only | ||||
|       x, y, and z with w implicitly set to 1 (or only x and y with z | ||||
|       implicitly set to 0 and w implicitly set to 1). | ||||
|       implicititly set to 0 and w implicitly set to 1). | ||||
|  | ||||
|       WindowPosMESA operates like RasterPos except that the current modelview | ||||
|       matrix, projection matrix and viewport parameters are ignored and the | ||||
| @@ -108,7 +108,7 @@ GLX Protocol | ||||
|  | ||||
| Errors | ||||
|  | ||||
|     INVALID_OPERATION is generated if WindowPosMESA is called between | ||||
|     INVALID_OPERATION is generated if WindowPosMESA is called betweeen | ||||
|     Begin and End. | ||||
|  | ||||
| New State | ||||
|   | ||||
| @@ -26,7 +26,7 @@ Number | ||||
| Dependencies | ||||
|  | ||||
|     OpenGL 1.0 or later is required | ||||
|     This extension is written against the OpenGL 1.4 Specification. | ||||
|     This extensions is written against the OpenGL 1.4 Specification. | ||||
|     NV_texture_rectangle effects the definition of this extension. | ||||
|  | ||||
| Overview | ||||
| @@ -104,7 +104,7 @@ Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) | ||||
|  | ||||
|  | ||||
|     In section 3.6.4, Rasterization of Pixel Rectangles, on page 104, | ||||
|     add the following to Table 3.12 (Packed pixel field assignments): | ||||
|     add the following to Table 3.12 (Packed pixel fiedl assignments): | ||||
|  | ||||
|                        First       Second     Third      Fourth | ||||
|     Format             Element     Element    Element    Element | ||||
|   | ||||
							
								
								
									
										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 | ||||
| 	  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 | ||||
| 	  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 | ||||
|  | ||||
| @@ -1,33 +1,133 @@ | ||||
| File: docs/README.WIN32 | ||||
|  | ||||
| Last updated: 23 April 2011 | ||||
|  | ||||
| Last updated: Apr 25, 2007 - Karl Schultz - kschultz@users.sourceforge.net | ||||
|  | ||||
| Quick Start | ||||
| ----- ----- | ||||
|  | ||||
| Windows drivers are build with SCons.  Makefiles or Visual Studio projects are | ||||
| no longer shipped or supported. | ||||
| Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same | ||||
| directory.  The libs and demos build separately, so if you do not care | ||||
| about the demos or GLUT, you only need to unzip MesaLib.  If you unzip | ||||
| more than one ZIP file, they all need to be unzipped into the same | ||||
| directory.  Don't worry, you will not overwrite anything. | ||||
|  | ||||
| Run | ||||
| The Windows build system uses Microsoft Visual Studio.  Project files | ||||
| for a specific version of Visual Studio are in their own directory in | ||||
| the top-level "windows" directory.  For example, Visual Studio 8 files | ||||
| are in windows/VC8. | ||||
|  | ||||
|   scons osmesa mesagdi | ||||
| Support has been dropped for versions of Visual Studio prior to 8. The | ||||
| main reason is because Microsoft now provides a free compiler and | ||||
| developer environment.  Visual Studio Express can be found at | ||||
|  | ||||
| to build classic mesa Windows GDI drivers; or | ||||
| http://msdn.microsoft.com/vstudio/express/visualc/default.aspx | ||||
|  | ||||
|   scons libgl-gdi | ||||
| You'll also need the Platform SDK.  Instructions for obtaining and | ||||
| using the SDK with Visual Studio Express can be found at | ||||
|  | ||||
| to build gallium based GDI driver. | ||||
| 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 | ||||
| drivers, OSMesa, and GLU are in the mesa directory.  The project files | ||||
| to build GLUT and some demo programs are in the progs directory. | ||||
|  | ||||
| Makefiles are no longer shipped or supported, but can be generated | ||||
| from the projects using Visual Studio. | ||||
|  | ||||
|  | ||||
| Windows Drivers | ||||
| ------- ------- | ||||
|  | ||||
| At this time, only the gallium GDI driver is known to work. | ||||
| At this time, only the GDI driver is known to work.  Most of the demos | ||||
| in progs/demos should work with this driver. | ||||
|  | ||||
| Source code also exists in the tree for other drivers in | ||||
| src/mesa/drivers/windows, but the status of this code is unknown. | ||||
|  | ||||
| The GDI driver operates basically by writing pixel spans into a DIB | ||||
| section and then blitting the DIB to the window.  The driver was | ||||
| recently cleaned up and rewitten and so may have bugs or may be | ||||
| missing some functionality.  The older versions of the CVS source may | ||||
| be useful in figuring out any problems, or report them to me. | ||||
|  | ||||
| To build Mesa with the GDI driver, build the mesa, gdi, and glu | ||||
| projects in the Visual Studio workspace found at | ||||
|  | ||||
| 	windows/VC8/mesa/mesa.sln | ||||
|  | ||||
| The osmesa DLL can also be built with the osmesa project. | ||||
|  | ||||
| The build system creates a lib top-level directory and copies | ||||
| resulting LIB and DLL files to this lib directory.  The files are: | ||||
|  | ||||
| 	OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB | ||||
| 	OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL | ||||
|  | ||||
| If the MesaDemos ZIP file was extracted, the DLL files are also copied | ||||
| to the demos directory.  This facilitates running the demos as described | ||||
| below. | ||||
|  | ||||
|  | ||||
| GLUT and Demos | ||||
| ---- --- ----- | ||||
|  | ||||
| A Visual Studio workspace can be found at  | ||||
|  | ||||
| 	windows/VC8/progs/progs.sln | ||||
|  | ||||
| It can be used to build GLUT and a few demos.  The GLUT lib and DLL | ||||
| are copied to the top-level lib directory, along with the Mesa libs. | ||||
|  | ||||
| The demo build system expects to find the LIB files in the top level | ||||
| lib directory, so you must build the Mesa libs first.  The demo | ||||
| executables are placed in the demos directory, because some of them | ||||
| rely on data files found there.  Also, the Mesa lib DLL's were copied | ||||
| there by the Mesa lib build process.  Therefore, you should be able to | ||||
| simply run the demo executables from the demo directory. | ||||
|  | ||||
| If you want to run the demos from the Visual Studio, you may have to | ||||
| change the startup directory and explicitly state where the executables are. | ||||
|  | ||||
| You may also build all the demo programs by using a makefile.  Go to | ||||
| the progs/demos directory and make sure you have executed VCVARS32.BAT | ||||
| or whatever setup script is appropriate for your compiler.  Then, | ||||
|  | ||||
| 	nmake -f Makefile.win | ||||
|  | ||||
| should build all the demos. | ||||
|  | ||||
|  | ||||
| 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 | ||||
| --- | ||||
|  | ||||
| No notes. | ||||
|  | ||||
|  | ||||
| General | ||||
| ------- | ||||
| @@ -47,5 +147,17 @@ the linker import files associated with the DLL files. | ||||
| The si-glu sources are used to build the GLU libs.  This was done | ||||
| mainly to get the better tessellator code. | ||||
|  | ||||
| If you have a Windows-related build problem or question, please post | ||||
| to the mesa-dev or mesa-users list. | ||||
| To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE | ||||
| to the project settings.  You will also need to edit src/mesa.def to | ||||
| change all the gl* symbols to mgl*.  Because this is easy to do with a | ||||
| global replace operation in a text editor, no additional mangled | ||||
| version of mesa.def is maintained or shipped. | ||||
|  | ||||
| If you have a Windows-related build problem or question, it is | ||||
| probably better to direct it to me (kschultz@users.sourceforge.net), | ||||
| rather than directly to the other Mesa developers.  I will help you as | ||||
| much as I can.  I also monitor the Mesa mailing lists and will answer | ||||
| questions in this area there as well. | ||||
|  | ||||
|  | ||||
| Karl Schultz | ||||
|   | ||||
							
								
								
									
										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. | ||||
|  | ||||
| @@ -1,92 +0,0 @@ | ||||
| Name | ||||
|  | ||||
|     WL_bind_wayland_display | ||||
|  | ||||
| Name Strings | ||||
|  | ||||
|     EGL_WL_bind_wayland_display | ||||
|  | ||||
| Contact | ||||
|  | ||||
|     Kristian Høgsberg <krh@bitplanet.net> | ||||
|     Benjamin Franzke <benjaminfranzke@googlemail.com> | ||||
|  | ||||
| Status | ||||
|  | ||||
|     Proposal | ||||
|  | ||||
| Version | ||||
|  | ||||
|     Version 1, March 1, 2011 | ||||
|  | ||||
| Number | ||||
|  | ||||
|     EGL Extension #not assigned | ||||
|  | ||||
| Dependencies | ||||
|  | ||||
|     Requires 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 binding and unbinding the | ||||
|     wl_display of a Wayland compositor to an EGLDisplay.  Binding a | ||||
|     wl_display means that the EGL implementation should provide one or | ||||
|     more interfaces in the Wayland protocol to allow clients to create | ||||
|     wl_buffer objects.  On the server side, this extension also | ||||
|     provides a new target for eglCreateImageKHR, to create an EGLImage | ||||
|     from a wl_buffer | ||||
|  | ||||
|     Adding an implementation specific wayland interface, allows the | ||||
|     EGL implementation to define specific wayland requests and events, | ||||
|     needed for buffer sharing in an EGL wayland platform. | ||||
|  | ||||
| IP Status | ||||
|  | ||||
|     Open-source; freely implementable. | ||||
|  | ||||
| New Procedures and Functions | ||||
|  | ||||
|     EGLBoolean eglBindWaylandDisplayWL(EGLDisplay dpy, | ||||
|                                        struct wl_display *display); | ||||
|  | ||||
|     EGLBoolean eglUnbindWaylandDisplayWL(EGLDisplay dpy, | ||||
|                                          struct wl_display *display); | ||||
|  | ||||
| New Tokens | ||||
|  | ||||
|     Accepted as <target> in eglCreateImageKHR | ||||
|  | ||||
|         EGL_WAYLAND_BUFFER_WL                   0x31D5 | ||||
|  | ||||
| Additions to the EGL 1.4 Specification: | ||||
|  | ||||
|     To bind a server side wl_display to an EGLDisplay, call | ||||
|  | ||||
|         EGLBoolean eglBindWaylandDisplayWL(EGLDisplay dpy, | ||||
|                                            struct wl_display *display); | ||||
|  | ||||
|     To unbind a server side wl_display from an EGLDisplay, call | ||||
|      | ||||
|         EGLBoolean eglUnbindWaylandDisplayWL(EGLDisplay dpy, | ||||
|                                              struct wl_display *display); | ||||
|  | ||||
|     eglBindWaylandDisplayWL returns EGL_FALSE when there is already a | ||||
|     wl_display bound to EGLDisplay otherwise EGL_TRUE. | ||||
|  | ||||
|     eglUnbindWaylandDisplayWL returns EGL_FALSE when there is no | ||||
|     wl_display bound to the EGLDisplay currently otherwise EGL_TRUE. | ||||
|  | ||||
|     Import a wl_buffer by calling eglCreateImageKHR with | ||||
|     wl_buffer as EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, | ||||
|     NULL context and an empty attribute_list. | ||||
|  | ||||
| Issues | ||||
|  | ||||
| Revision History | ||||
|  | ||||
|     Version 1, March 1, 2011 | ||||
|         Initial draft (Benjamin Franzke) | ||||
| @@ -12,18 +12,31 @@ | ||||
| The Mesa | ||||
| <a href="http://en.wikipedia.org/wiki/Cell_%28microprocessor%29" target="_parent">Cell</a> | ||||
| 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. | ||||
| 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> | ||||
|  | ||||
|  | ||||
| <H2>Source Code</H2> | ||||
|  | ||||
| <p> | ||||
| The latest Cell driver source code is on the master branch of the Mesa | ||||
| git repository. | ||||
| The latest Cell driver source code is on the <code>gallium-0.2</code> branch | ||||
| of the Mesa git repository. | ||||
| After you've cloned the repository, check out the branch with: | ||||
| </p> | ||||
| <pre> | ||||
|    git-checkout -b gallium-0.2 origin/gallium-0.2 | ||||
| </pre> | ||||
| <p> | ||||
| 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, | ||||
| @@ -37,21 +50,19 @@ special changes. | ||||
|  | ||||
| <p> | ||||
| 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> | ||||
| To use the library, make sure your current directory is the top of the | ||||
| Mesa tree, then set <code>LD_LIBRARY_PATH</code> like this: | ||||
| <pre> | ||||
|   export LD_LIBRARY_PATH=$PWD/lib/gallium:$PWD/lib/ | ||||
| </pre> | ||||
| To use the library, make sure <code>LD_LIBRARY_PATH</code> points the Mesa/lib/ | ||||
| directory that contains <code>libGL.so</code>. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Verify that the Cell driver is being used by running | ||||
| <code>progs/xdemos/glxinfo</code> and looking for: | ||||
| Verify that the Cell driver is being used by running <code>glxinfo</code> | ||||
| and looking for: | ||||
| <pre> | ||||
|   OpenGL renderer string: Gallium 0.3, Cell on Xlib | ||||
|   OpenGL renderer string: Gallium 0.2, Cell on Xlib | ||||
| </pre> | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -39,6 +39,7 @@ a:visited { | ||||
| <ul> | ||||
| <li><a href="download.html" target="MainFrame">Downloading / Unpacking</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> | ||||
| </ul> | ||||
|  | ||||
| @@ -52,25 +53,21 @@ a:visited { | ||||
|  | ||||
| <b>User Topics</b> | ||||
| <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="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="perf.html" target="MainFrame">Performance Tips</A> | ||||
| <LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A> | ||||
| <LI><A HREF="mangling.html" target="MainFrame">Function Name Mangling</A> | ||||
| <LI><A href="llvmpipe.html" target="MainFrame">Gallium llvmpipe driver</A> | ||||
| </ul> | ||||
|  | ||||
| <b>Developer Topics</b> | ||||
| <ul> | ||||
| <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="sourcetree.html" target="MainFrame">Source Code Tree</a> | ||||
| <li><a href="glu.html" target="MainFrame">SGI's GLU</a> | ||||
| <li><a href="memory.html" target="MainFrame">DRI Memory Management</a> | ||||
| <li><a href="shading.html" target="MainFrame">Shading Language</a> | ||||
| <li><a href="utilities.html" target="MainFrame">Utilities</a> | ||||
| <li><a href="helpwanted.html" target="MainFrame">Help Wanted</a> | ||||
| <li><a href="devinfo.html" target="MainFrame">Development Notes</a> | ||||
| @@ -92,6 +89,7 @@ a:visited { | ||||
| <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="utility.html" target="MainFrame">Utilities</a> | ||||
| <li><a href="demos.html" target="MainFrame">Demos / other</a> | ||||
| </ul> | ||||
|  | ||||
| <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. | ||||
| </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 | ||||
| and Keith Whitwell. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| In the past, Tungsten Graphics contracts implemented many Mesa features | ||||
| including: | ||||
| Much of the on-going work in Mesa is done through Tungsten Graphics engineering | ||||
| contracts. | ||||
| Prominent examples of this work includes: | ||||
| </p> | ||||
| <ul> | ||||
| <li>DRI drivers for Intel i965, i945, i915 and other chips | ||||
| @@ -31,13 +29,7 @@ including: | ||||
| <p> | ||||
| Other companies including | ||||
| <a href="http://www.intellinuxgraphics.org/index.html" target="_parent">Intel</a> | ||||
| and RedHat 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. | ||||
| and IBM also actively contribute to the project. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| @@ -45,5 +37,15 @@ Volunteers have made significant contributions to all parts of Mesa, including | ||||
| complete device drivers. | ||||
| </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> | ||||
| </html> | ||||
|   | ||||
| @@ -107,7 +107,7 @@ Global variables are not allowed. | ||||
| Function name examples: | ||||
| </p> | ||||
| <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 | ||||
| 	save_FooBar()    - retained mode (display list) function in dlist.c | ||||
| 	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> | ||||
| <p> | ||||
| Use git to get the latest Mesa files from the git repository, from whatever | ||||
| branch is relevant. | ||||
| Use "cvs update -dAP " to get the latest Mesa files from CVS. | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <H3>Verify and update version info</H3> | ||||
| <p> | ||||
| Create/edit the docs/relnotes-x.y.html 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>. | ||||
| Create/edit the docs/RELNOTES-X.Y file to document what's new in the release. | ||||
| Add the new RELNOTES-X.Y file to <a href="relnotes.html">relnotes.html</a>. | ||||
| Update the docs/VERSIONS file too. | ||||
| </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. | ||||
| Also update the VERSION line in the top-level Makefile. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| @@ -145,24 +144,27 @@ Make sure the values in src/mesa/main/version.h are correct. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Update docs/news.html. | ||||
| Edit the top-level Makefile and verify that DIRECTORY, LIB_NAME and | ||||
| DEMO_NAME are correct. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Check in all updates to git. | ||||
| Update the docs/news.html file and docs/download.html files. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Tag the files with the release name (in the form <b>mesa_X_Y</b>) | ||||
| with: <code>git tag -a mesa_X_Y</code> | ||||
| Then: <code>git push origin mesa_X_Y</code> | ||||
| Check in all updates to CVS. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Tag the CVS files with the release name (in the form <b>mesa_X_Y</b>). | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <H3>Make the tarballs</H3> | ||||
| <p> | ||||
| 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. | ||||
| </p> | ||||
|  | ||||
| @@ -175,7 +177,7 @@ Make the distribution files.  From inside the Mesa directory: | ||||
| <p> | ||||
| After the tarballs are created, the md5 checksums for the files will | ||||
| be computed. | ||||
| Add them to the docs/relnotes-X.Y.html file. | ||||
| Add them to the docs/news.html file. | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| @@ -189,30 +191,17 @@ Follow the directions on SourceForge for creating a new "release" and | ||||
| uploading the tarballs. | ||||
| </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> | ||||
| Update the web site by copying the docs/ directory's files to  | ||||
| /home/users/b/br/brianp/mesa-www/htdocs/ with: | ||||
| <br> | ||||
| <code> | ||||
| sftp USERNAME,mesa3d@web.sourceforge.net | ||||
| </code> | ||||
| /home/users/b/br/brianp/mesa-www/htdocs/ | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| Make an announcement on the mailing lists: | ||||
|  | ||||
| <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>-</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> | ||||
| <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>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> | ||||
| 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> | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -198,8 +198,8 @@ few preprocessor defines.</p> | ||||
| <ul> | ||||
| <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 any of <tt>PTHREADS</tt>, | ||||
| <tt>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt> | ||||
| <li>If any of <tt>PTHREADS</tt>, <tt>USE_XTHREADS</tt>, | ||||
| <tt>SOLARIS_THREADS</tt>, <tt>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt> | ||||
| is defined, method #2 is used.</li> | ||||
| <li>If none of the preceeding are defined, method #1 is used.</li> | ||||
| </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 | ||||
| <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 | ||||
| <tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the | ||||
| dispatch functions from being built.</p> | ||||
| <tt>src/mesa/main/dispatch.c</tt> to prevent the C version of the dispatch | ||||
| functions from being built.</p> | ||||
|  | ||||
| <A NAME="fixedsize"/> | ||||
| <H3>3.4. Fixed-Length Dispatch Stubs</H3> | ||||
|   | ||||
| @@ -9,64 +9,94 @@ | ||||
| <H1>Downloading</H1> | ||||
|  | ||||
| <p> | ||||
| Primary Mesa download site: | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/" | ||||
| target="_parent">freedesktop.org</a> (FTP) | ||||
| Current stable release: <b>7.4</b> | ||||
| <br> | ||||
| Last unstable/development release: <b>7.3</b> | ||||
| </p> | ||||
|  | ||||
| <p> | ||||
| When a new release is coming, release candidates (betas) may be found | ||||
| <a href="ftp://ftp.freedesktop.org/pub/mesa/beta/" target="_parent">here</a>. | ||||
| Primary download site: | ||||
| <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> | ||||
| The Mesa package is named MesaLib-x.y.z.{tar.bz2, tar.gz, zip} where x.y.z | ||||
| is the version.  There are three types of compressed archives. | ||||
| Mesa is distributed in several parts: | ||||
| </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> | ||||
| There's also the MesaGLUT-x.y.z.{tar.bz2, tar.gz, zip} packages which | ||||
| contain Mark Kilgard's GLUT library. | ||||
| 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. | ||||
| If you're not interested in running the demos, you'll only need the first | ||||
| package. | ||||
| </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> | ||||
|  | ||||
| <p> | ||||
| To unpack .tar.gz files: | ||||
| All the packages should be in the same directory prior to unpacking. | ||||
| </p> | ||||
|  | ||||
| <ul> | ||||
| <li>To unpack .tar.gz files: | ||||
| <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> | ||||
| or | ||||
| <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> | ||||
| or | ||||
| <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> | ||||
| <p> | ||||
| To unpack .tar.bz2 files: | ||||
| </p> | ||||
| <li>To unpack .tar.bz2 files: | ||||
| <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> | ||||
| <p> | ||||
| To unpack .zip files: | ||||
| </p> | ||||
| <li>To unpack .zip files: | ||||
| <pre> | ||||
| 	unzip MesaLib-x.y.z.zip | ||||
| 	unzip MesaLib-X.Y.zip | ||||
| 	unzip MesaDemos-X.Y.zip | ||||
| 	unzip MesaGLUT-X.Y.zip | ||||
| </pre> | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| <h1>Contents</h1> | ||||
| @@ -82,13 +112,22 @@ bin/		- shell scripts for making shared libraries, etc | ||||
| docs/		- documentation | ||||
| src/		- source code for libraries | ||||
| 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/glx		- sources for building libGL with full GLX and DRI support | ||||
| src/glw		- Xt/Motif/OpenGL widget code | ||||
| </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> | ||||
| src/glut	- GLUT library source code | ||||
| </pre> | ||||
|   | ||||
							
								
								
									
										320
									
								
								docs/egl.html
									
									
									
									
									
								
							
							
						
						
									
										320
									
								
								docs/egl.html
									
									
									
									
									
								
							| @@ -1,320 +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-gles1 --enable-gles2 \ | ||||
|                 --with-dri-drivers=... \ | ||||
|                 --with-gallium-drivers=... | ||||
| </pre> | ||||
|  | ||||
| <p>The main library and OpenGL is enabled by default.  The first two options | ||||
| above enables <a href="opengles.html">OpenGL ES 1.x and 2.x</a>.  The last two | ||||
| options enables the listed classic and and Gallium drivers respectively.</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>, 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>--enable-gallium-egl</code> | ||||
|  | ||||
| <p>Enable the optional <code>egl_gallium</code> driver.</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-shared-glapi</code> | ||||
|  | ||||
| <p>By default, <code>libGL</code> has its own copy of <code>libglapi</code>. | ||||
| This options makes <code>libGL</code> use the shared <code>libglapi</code>.  This | ||||
| is required if applications mix OpenGL and OpenGL ES.</p> | ||||
|  | ||||
| </li> | ||||
|  | ||||
| <li><code>--enable-openvg</code> | ||||
|  | ||||
| <p>OpenVG must be explicitly enabled by this option.</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 or the name of an EGL driver.  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> | ||||
| is disabled by default.</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. | ||||
|  | ||||
| </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: | ||||
|        0x8750-0x875F | ||||
|        0x8BB0-0x8BBF | ||||
| @@ -32,12 +30,12 @@ MESA_ycbcr_texture.spec: | ||||
| GL_MESA_pack_invert.spec | ||||
| 	GL_PACK_INVERT_MESA              0x8758 | ||||
|  | ||||
| GL_MESA_shader_debug.spec: (obsolete) | ||||
| GL_MESA_shader_debug.spec: | ||||
|         GL_DEBUG_OBJECT_MESA             0x8759 | ||||
|         GL_DEBUG_PRINT_MESA              0x875A | ||||
|         GL_DEBUG_ASSERT_MESA             0x875B | ||||
|  | ||||
| GL_MESA_program_debug.spec: (obsolete) | ||||
| GL_MESA_program_debug.spec: | ||||
| 	GL_FRAGMENT_PROGRAM_CALLBACK_MESA      0x???? | ||||
| 	GL_VERTEX_PROGRAM_CALLBACK_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_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,63 +9,26 @@ | ||||
| <H1>Environment Variables</H1> | ||||
|  | ||||
| <p> | ||||
| Normally, no environment variables need to be set.  Most of the environment | ||||
| variables used by Mesa/Gallium are for debugging purposes, but they can | ||||
| sometimes be useful for debugging end-user issues. | ||||
| Mesa supports the following environment variables: | ||||
| </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> | ||||
| <li>MESA_NO_ASM - if set, disables all assembly language optimizations | ||||
| <li>MESA_NO_MMX - if set, disables Intel MMX optimizations | ||||
| <li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations | ||||
| <li>MESA_NO_SSE - if set, disables Intel SSE optimizations | ||||
| <li>MESA_DEBUG - if set, error messages are printed to stderr.  For example, | ||||
|    if the application generates a GL_INVALID_ENUM error, a corresponding error | ||||
|    message indicating where the error occured, and possibly why, will be | ||||
|    printed to stderr.<br> | ||||
|    If the value of MESA_DEBUG is 'FP' floating point arithmetic errors will | ||||
|    generate exceptions. | ||||
| <li>MESA_DEBUG - if set, error messages are printed to stderr. | ||||
| 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_TEX_PROG - if set, implement conventional texture env modes with | ||||
| fragment programs (intended for developers only) | ||||
| <li>MESA_TNL_PROG - if set, implement conventional vertex transformation | ||||
| operations with vertex programs (intended for developers only). | ||||
| 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_EXTENSION_MAX_YEAR - The GL_EXTENSIONS string returned by Mesa is sorted | ||||
| by extension year. | ||||
| If this variable is set to year X, only extensions defined on or before year | ||||
| X will be reported. | ||||
| This is to work-around a bug in some games where the extension string is | ||||
| copied into a fixed-size buffer without truncating. | ||||
| If the extension string is too long, the buffer overrun can cause the game | ||||
| to crash. | ||||
| This is a work-around for that. | ||||
| <li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a> | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| <H2>Mesa Xlib driver environment variables</H2> | ||||
|  | ||||
| <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. | ||||
| </p> | ||||
| <ul> | ||||
| @@ -84,81 +47,5 @@ See the <A HREF="xlibdriver.html">Xlib software driver page</A> for details. | ||||
| </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> | ||||
| </HTML> | ||||
|   | ||||
| @@ -24,7 +24,6 @@ The specifications follow. | ||||
| <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_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_window_pos.spec">MESA_window_pos.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. | ||||
| </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> | ||||
|  | ||||
|   | ||||
| @@ -9,9 +9,6 @@ | ||||
| <center><h1>Mesa fbdev/DRI Drivers</h1></center> | ||||
| <br> | ||||
|  | ||||
| <h1><center>NOTE: this information is obsolete and will be removed at | ||||
| a future date</center></h1> | ||||
|  | ||||
| <h1>1. Introduction</h1> | ||||
|  | ||||
| <p> | ||||
| @@ -25,7 +22,7 @@ Contributors to this project include Jon Smirl, Keith Whitwell and Dave Airlie. | ||||
|  | ||||
| <p> | ||||
| 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 | ||||
| Xlib interfaces allowing some degree of application portability between | ||||
| 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> | ||||
|  | ||||
| <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 | ||||
| enough functionality to setup OpenGL rendering and respond to simple | ||||
| 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. | ||||
| Some of the structures are different and some macros/functions work | ||||
| differently. | ||||
| See the GL/miniglx.h header file for details. | ||||
| See the <code>GL/miniglx.h</code> header file for details. | ||||
| </p> | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -12,16 +12,15 @@ | ||||
| <ol> | ||||
| <li><a href="#unix-x11">Unix / X11</a> | ||||
|   <ul> | ||||
|   <li><a href="#prereq-general">General prerequisites for building</a> | ||||
|   <li><a href="#prereq-dri">Prerequisites for DRI and hardware acceleration</a> | ||||
|   <li><a href="#prereq">Prerequisites for DRI and hardware acceleration</a> | ||||
|   <li><a href="#autoconf">Building with autoconf</a> | ||||
|   <li><a href="#traditional">Building with traditional Makefiles</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="#pkg-config">Building OpenGL programs with pkg-config | ||||
|   </ul> | ||||
| <li><a href="#windows">Windows</a> | ||||
| <li><a href="#scons">Building with SCons</a> | ||||
| <li><a href="#other">Other</a> | ||||
| </ol> | ||||
| <br> | ||||
| @@ -31,39 +30,25 @@ | ||||
| <H2>1. Unix/X11 Compilation and Installation</H1> | ||||
|  | ||||
|  | ||||
| <a name="prereq-general"> | ||||
| <h3>1.1 General prerequisites for building</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> | ||||
| <a name="prereq"> | ||||
| <h3>1.1 Prerequisites for DRI and hardware acceleration</h3> | ||||
|  | ||||
| <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> | ||||
|  | ||||
| <ul> | ||||
| <li><a href="http://xorg.freedesktop.org/releases/individual/proto/">dri2proto</a> version 1.99.3 or later | ||||
| <li>Linux 2.6.28 | ||||
| <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 | ||||
| </ul> | ||||
| </p> | ||||
|  | ||||
|  | ||||
| <a name="autoconf"> | ||||
| <h3>1.3 Building with Autoconf</h3> | ||||
| <h3>1.2 Building with Autoconf</h3> | ||||
|  | ||||
| <p> | ||||
| 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"> | ||||
| <h3>1.4 Building with traditional Makefiles</h3> | ||||
| <h3>1.3 Building with traditional Makefiles</h3> | ||||
|  | ||||
| <p> | ||||
| 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"> | ||||
| <h3>1.5 The libraries</h3> | ||||
| <h3>1.4 The libraries</h3> | ||||
|  | ||||
| <p> | ||||
| 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 | ||||
| </pre> | ||||
|  | ||||
|  | ||||
| <a name="demos"> | ||||
| <h3>1.5 Running the demos</h3> | ||||
|  | ||||
| <p> | ||||
| If you built with Gallium support, look in lib/gallium/ for Gallium-based | ||||
| versions of libGL and device drivers. | ||||
| If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or | ||||
| obtained Mesa from CVS, the <b>progs/</b> directory will contain a | ||||
| bunch of demonstration programs. | ||||
| </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"> | ||||
| @@ -273,50 +328,13 @@ For example, compiling and linking a GLUT application can be done with: | ||||
| <H2>2. Windows Compilation and Installation</H1> | ||||
|  | ||||
| <p> | ||||
| Please see the <a href="#scons">instructions on building with SCons</a>. | ||||
| Please see the <a href="README.WIN32">README.WIN32</a> file. | ||||
| </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"> | ||||
| <H2>4. Other systems</H1> | ||||
| <H2>3. Other systems</H1> | ||||
|  | ||||
| <p> | ||||
| Documentation for other environments (some may be very out of date): | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user