Compare commits
	
		
			410 Commits
		
	
	
		
			7.11
			...
			mesa_7_0_3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					48616e71d2 | ||
| 
						 | 
					70d227ac62 | ||
| 
						 | 
					7f2c4f96f5 | ||
| 
						 | 
					667f0f60fc | ||
| 
						 | 
					7592b8cc10 | ||
| 
						 | 
					f55b831859 | ||
| 
						 | 
					217f7f7e5d | ||
| 
						 | 
					1e83d70b6d | ||
| 
						 | 
					767dfa5b9c | ||
| 
						 | 
					7ff5b38126 | ||
| 
						 | 
					e209f5300d | ||
| 
						 | 
					3c4b50c352 | ||
| 
						 | 
					4e7c2fcf18 | ||
| 
						 | 
					22534f94f5 | ||
| 
						 | 
					1a6928fdbe | ||
| 
						 | 
					325dbbac47 | ||
| 
						 | 
					39ac6b0481 | ||
| 
						 | 
					46cc4854e9 | ||
| 
						 | 
					f93882512e | ||
| 
						 | 
					0dee2a4f6f | ||
| 
						 | 
					3cebc35669 | ||
| 
						 | 
					e75a204fb9 | ||
| 
						 | 
					ac06a5c16a | ||
| 
						 | 
					ed758fee0c | ||
| 
						 | 
					a21c61ee8b | ||
| 
						 | 
					24697da20e | ||
| 
						 | 
					7120c0089d | ||
| 
						 | 
					88a436a8f7 | ||
| 
						 | 
					2fdb5a245d | ||
| 
						 | 
					8441b53538 | ||
| 
						 | 
					d336df8b73 | ||
| 
						 | 
					8aaf805b8a | ||
| 
						 | 
					8161fd2785 | ||
| 
						 | 
					2f23025dfe | ||
| 
						 | 
					1867eac230 | ||
| 
						 | 
					096e35d05f | ||
| 
						 | 
					8998f52b97 | ||
| 
						 | 
					0fd38dcc83 | ||
| 
						 | 
					ff63cf8068 | ||
| 
						 | 
					4716670de9 | ||
| 
						 | 
					33c5b38034 | ||
| 
						 | 
					5737d6c565 | ||
| 
						 | 
					08a7f56c6a | ||
| 
						 | 
					7916f2b4aa | ||
| 
						 | 
					193d303ac7 | ||
| 
						 | 
					e70609b7b8 | ||
| 
						 | 
					da476ff02d | ||
| 
						 | 
					77e3b5d28b | ||
| 
						 | 
					bf97ca448c | ||
| 
						 | 
					c5f8ff8b32 | ||
| 
						 | 
					50465766d1 | ||
| 
						 | 
					7d8df58a63 | ||
| 
						 | 
					762c074012 | ||
| 
						 | 
					51f2ee3bfb | ||
| 
						 | 
					b5cd34aa21 | ||
| 
						 | 
					ae5c6dcd42 | ||
| 
						 | 
					97196d0c8c | ||
| 
						 | 
					f6de56b88a | ||
| 
						 | 
					d64ea43b76 | ||
| 
						 | 
					2deaf93d24 | ||
| 
						 | 
					a107ec8300 | ||
| 
						 | 
					120a1f9508 | ||
| 
						 | 
					bb84007a57 | ||
| 
						 | 
					86234e55a6 | ||
| 
						 | 
					61972077cd | ||
| 
						 | 
					5a7feb8ea2 | ||
| 
						 | 
					4b4c131cd0 | ||
| 
						 | 
					0fd23f01c6 | ||
| 
						 | 
					557b0d9df7 | ||
| 
						 | 
					888f4380cf | ||
| 
						 | 
					3266c5e95a | ||
| 
						 | 
					834decdaae | ||
| 
						 | 
					18b2d83173 | ||
| 
						 | 
					30c65c3c62 | ||
| 
						 | 
					04fcc4cf1e | ||
| 
						 | 
					48ae5cf09d | ||
| 
						 | 
					45cdb6eb45 | ||
| 
						 | 
					b9f3f732aa | ||
| 
						 | 
					17006ddd6b | ||
| 
						 | 
					b77a354df3 | ||
| 
						 | 
					71d46beebf | ||
| 
						 | 
					454e296eb1 | ||
| 
						 | 
					f9b696be2b | ||
| 
						 | 
					c923edbc71 | ||
| 
						 | 
					e20c1d987f | ||
| 
						 | 
					cd354eb10f | ||
| 
						 | 
					e9ac27ee23 | ||
| 
						 | 
					3f9dc9f5b6 | ||
| 
						 | 
					ba709875ae | ||
| 
						 | 
					80f8397b35 | ||
| 
						 | 
					b45fa27fa1 | ||
| 
						 | 
					b59480645d | ||
| 
						 | 
					148cb36979 | ||
| 
						 | 
					c1eb78f7ff | ||
| 
						 | 
					8aa0fd6b20 | ||
| 
						 | 
					a1b3a908f5 | ||
| 
						 | 
					f9e70d951a | ||
| 
						 | 
					41ed6be1da | ||
| 
						 | 
					27de28fc3e | ||
| 
						 | 
					dd2f01c229 | ||
| 
						 | 
					deb5c56c77 | ||
| 
						 | 
					0107acded0 | ||
| 
						 | 
					2ac5e08d1d | ||
| 
						 | 
					1837b8c214 | ||
| 
						 | 
					03d2bc1774 | ||
| 
						 | 
					385bddbde0 | ||
| 
						 | 
					c135426267 | ||
| 
						 | 
					4be0c98120 | ||
| 
						 | 
					e760aebd5a | ||
| 
						 | 
					1f6e7d9c29 | ||
| 
						 | 
					c6d421af05 | ||
| 
						 | 
					952df5e493 | ||
| 
						 | 
					45acb8b058 | ||
| 
						 | 
					e8997c0183 | ||
| 
						 | 
					169e62f563 | ||
| 
						 | 
					1b43babfb1 | ||
| 
						 | 
					43e902f774 | ||
| 
						 | 
					b0a800e249 | ||
| 
						 | 
					73d5f232ad | ||
| 
						 | 
					f7209541e4 | ||
| 
						 | 
					397a32dca7 | ||
| 
						 | 
					e0719d7122 | ||
| 
						 | 
					3f18c0a9f2 | ||
| 
						 | 
					b14be61938 | ||
| 
						 | 
					440d620308 | ||
| 
						 | 
					8dd9df0f3e | ||
| 
						 | 
					6b9534eaf5 | ||
| 
						 | 
					c91d374ad7 | ||
| 
						 | 
					1cab4160bc | ||
| 
						 | 
					718d2dfbbd | ||
| 
						 | 
					0967e1270d | ||
| 
						 | 
					a08c02f1a8 | ||
| 
						 | 
					bdfd9afead | ||
| 
						 | 
					1c91a590d6 | ||
| 
						 | 
					65bd7968bf | ||
| 
						 | 
					6ccd23b87b | ||
| 
						 | 
					823409b7d0 | ||
| 
						 | 
					c85d31f4a0 | ||
| 
						 | 
					24af5c44da | ||
| 
						 | 
					75efacf8eb | ||
| 
						 | 
					825e810247 | ||
| 
						 | 
					e20723cfc1 | ||
| 
						 | 
					9f39a67c1d | ||
| 
						 | 
					2044f3f791 | ||
| 
						 | 
					30d4e8c422 | ||
| 
						 | 
					92d552f6a2 | ||
| 
						 | 
					5adfcbbc4f | ||
| 
						 | 
					69969b3819 | ||
| 
						 | 
					edfee04fcb | ||
| 
						 | 
					28c9930888 | ||
| 
						 | 
					e3a35a123e | ||
| 
						 | 
					412168f2e8 | ||
| 
						 | 
					fc0fa0d636 | ||
| 
						 | 
					8a40b670c3 | ||
| 
						 | 
					d9fa5cbfc9 | ||
| 
						 | 
					1c21564292 | ||
| 
						 | 
					6cc96bf156 | ||
| 
						 | 
					29afd4bbc4 | ||
| 
						 | 
					4e3db063ec | ||
| 
						 | 
					6560744c38 | ||
| 
						 | 
					572ad87881 | ||
| 
						 | 
					2ab75d6cfa | ||
| 
						 | 
					041a8eb5ec | ||
| 
						 | 
					c1c13bdcfa | ||
| 
						 | 
					403edd34dd | ||
| 
						 | 
					f279e48416 | ||
| 
						 | 
					bf854d8d27 | ||
| 
						 | 
					f334121679 | ||
| 
						 | 
					b88e2be609 | ||
| 
						 | 
					08229c8bb8 | ||
| 
						 | 
					c984017f71 | ||
| 
						 | 
					00e7dd8a13 | ||
| 
						 | 
					d11b375b16 | ||
| 
						 | 
					d1afa8146f | ||
| 
						 | 
					31d4ba8a93 | ||
| 
						 | 
					1a7640958c | ||
| 
						 | 
					2e2a5a450b | ||
| 
						 | 
					574fd63ff0 | ||
| 
						 | 
					1063d47526 | ||
| 
						 | 
					b59a892d3e | ||
| 
						 | 
					6e5d5d77df | ||
| 
						 | 
					a6319d18cf | ||
| 
						 | 
					5103e883fd | ||
| 
						 | 
					98c4ea4b24 | ||
| 
						 | 
					29b8cac7d7 | ||
| 
						 | 
					cdb02d43fe | ||
| 
						 | 
					50cecddc4a | ||
| 
						 | 
					177f6398e5 | ||
| 
						 | 
					887bd6a46f | ||
| 
						 | 
					9af5153410 | ||
| 
						 | 
					0e2103689e | ||
| 
						 | 
					2c496d8e46 | ||
| 
						 | 
					8f0ba02e44 | ||
| 
						 | 
					524c56e417 | ||
| 
						 | 
					773f3a266c | ||
| 
						 | 
					882ada0d22 | ||
| 
						 | 
					6229005f93 | ||
| 
						 | 
					6c63b35ef7 | ||
| 
						 | 
					fb85e50e09 | ||
| 
						 | 
					5e5f908d0c | ||
| 
						 | 
					c09e2143c7 | ||
| 
						 | 
					74ced1e67f | ||
| 
						 | 
					dd02c1609e | ||
| 
						 | 
					cdf4880a79 | ||
| 
						 | 
					2ec8e8547d | ||
| 
						 | 
					b7c36d1d33 | ||
| 
						 | 
					970d18a708 | ||
| 
						 | 
					9456e7f0ff | ||
| 
						 | 
					a5db24adc2 | ||
| 
						 | 
					17664e2620 | ||
| 
						 | 
					43a0eb0253 | ||
| 
						 | 
					bcdaed2c0a | ||
| 
						 | 
					78c6637db5 | ||
| 
						 | 
					44214a98fd | ||
| 
						 | 
					9cc6d2310c | ||
| 
						 | 
					1a045954be | ||
| 
						 | 
					b3fc9a1585 | ||
| 
						 | 
					2a86a449ca | ||
| 
						 | 
					44f032db61 | ||
| 
						 | 
					5a520729ee | ||
| 
						 | 
					36fbe78c60 | ||
| 
						 | 
					029bb17770 | ||
| 
						 | 
					7958bee6be | ||
| 
						 | 
					0b9bb21ce4 | ||
| 
						 | 
					cfcc5b794e | ||
| 
						 | 
					925ff408a6 | ||
| 
						 | 
					f40ca444f5 | ||
| 
						 | 
					638a5e0382 | ||
| 
						 | 
					6d777bf055 | ||
| 
						 | 
					ae6d4e8bc0 | ||
| 
						 | 
					f2728724d3 | ||
| 
						 | 
					bc95b34cce | ||
| 
						 | 
					9eb89616af | ||
| 
						 | 
					f7713a6d81 | ||
| 
						 | 
					1cec9b727a | ||
| 
						 | 
					18a4730f5b | ||
| 
						 | 
					1342aefcdd | ||
| 
						 | 
					1fd4b1e702 | ||
| 
						 | 
					32dff44c28 | ||
| 
						 | 
					e7c2ae476a | ||
| 
						 | 
					a66301f83d | ||
| 
						 | 
					a5f7d56221 | ||
| 
						 | 
					140080c1ec | ||
| 
						 | 
					ef43af6d43 | ||
| 
						 | 
					949d0532f0 | ||
| 
						 | 
					96efc76d74 | ||
| 
						 | 
					6ca0d63692 | ||
| 
						 | 
					95fc2485e2 | ||
| 
						 | 
					d6ce1e4834 | ||
| 
						 | 
					2cc2b12fc7 | ||
| 
						 | 
					2259f81cf7 | ||
| 
						 | 
					791f12880f | ||
| 
						 | 
					7aa7373a64 | ||
| 
						 | 
					2f186a190f | ||
| 
						 | 
					357893a873 | ||
| 
						 | 
					a17881da5f | ||
| 
						 | 
					4872ee83a9 | ||
| 
						 | 
					5ec222a832 | ||
| 
						 | 
					40438b3440 | ||
| 
						 | 
					e0b80660c8 | ||
| 
						 | 
					a2016301f5 | ||
| 
						 | 
					7ec6729fb6 | ||
| 
						 | 
					837a2cf72e | ||
| 
						 | 
					0adca14536 | ||
| 
						 | 
					57b0f66c6d | ||
| 
						 | 
					e47e7a9571 | ||
| 
						 | 
					68ca01560f | ||
| 
						 | 
					64f1c91fcb | ||
| 
						 | 
					7d33f94198 | ||
| 
						 | 
					d69a596193 | ||
| 
						 | 
					8aa4ae638e | ||
| 
						 | 
					3069f34841 | ||
| 
						 | 
					b3788a0e4f | ||
| 
						 | 
					582bc029ab | ||
| 
						 | 
					e9e3099433 | ||
| 
						 | 
					4fc561cc7b | ||
| 
						 | 
					ad3e3a0b99 | ||
| 
						 | 
					bfb8c849cb | ||
| 
						 | 
					09dd25b5d1 | ||
| 
						 | 
					c48efb1dbe | ||
| 
						 | 
					5408acb6b7 | ||
| 
						 | 
					15481160f9 | ||
| 
						 | 
					00ccff03a5 | ||
| 
						 | 
					21594921b1 | ||
| 
						 | 
					42c91eebc9 | ||
| 
						 | 
					88273e08b4 | ||
| 
						 | 
					08f7fb45ef | ||
| 
						 | 
					75ebda3ce6 | ||
| 
						 | 
					53ff15fcbf | ||
| 
						 | 
					72adb70ee2 | ||
| 
						 | 
					960d41fcfe | ||
| 
						 | 
					0c4e35b070 | ||
| 
						 | 
					c53f1cb813 | ||
| 
						 | 
					f6696cc15e | ||
| 
						 | 
					fef9a41fe4 | ||
| 
						 | 
					e279a0a076 | ||
| 
						 | 
					88c8aaed96 | ||
| 
						 | 
					62cbbd7226 | ||
| 
						 | 
					f7cbe7fcee | ||
| 
						 | 
					d8e4ff9079 | ||
| 
						 | 
					510ff27eda | ||
| 
						 | 
					5abf055100 | ||
| 
						 | 
					4bb5721f6b | ||
| 
						 | 
					c41ab70d3a | ||
| 
						 | 
					a05e403bf2 | ||
| 
						 | 
					2f57e0f71d | ||
| 
						 | 
					95a2eb9767 | ||
| 
						 | 
					55175daed7 | ||
| 
						 | 
					ae16a51e95 | ||
| 
						 | 
					4398d67546 | ||
| 
						 | 
					c93738687c | ||
| 
						 | 
					799492e606 | ||
| 
						 | 
					f33ff071bb | ||
| 
						 | 
					99e854743c | ||
| 
						 | 
					6f79062d91 | ||
| 
						 | 
					2f682c3995 | ||
| 
						 | 
					067370e68f | ||
| 
						 | 
					2aa439a6a4 | ||
| 
						 | 
					b477182dc3 | ||
| 
						 | 
					a8964ca89e | ||
| 
						 | 
					4f0e92d07c | ||
| 
						 | 
					577f4e8a5f | ||
| 
						 | 
					0586d9fe56 | ||
| 
						 | 
					1f0d9bf05e | ||
| 
						 | 
					8bcae2a527 | ||
| 
						 | 
					35ca9aae91 | ||
| 
						 | 
					6cdd2bf8d7 | ||
| 
						 | 
					ce7d175adb | ||
| 
						 | 
					1904fd095f | ||
| 
						 | 
					897d0ac5cc | ||
| 
						 | 
					e262d0182f | ||
| 
						 | 
					aa5b748c10 | ||
| 
						 | 
					3c182c5bc8 | ||
| 
						 | 
					1b5677847b | ||
| 
						 | 
					1be59a9dbe | ||
| 
						 | 
					55c2178ad4 | ||
| 
						 | 
					3e3d392e1c | ||
| 
						 | 
					756a7a4e4b | ||
| 
						 | 
					121b4ac220 | ||
| 
						 | 
					cdbd5db3af | ||
| 
						 | 
					b2240f6ad4 | ||
| 
						 | 
					33814a55f8 | ||
| 
						 | 
					a57c5a417b | ||
| 
						 | 
					ff1a28de17 | ||
| 
						 | 
					772f57f99b | ||
| 
						 | 
					dacee32b8b | ||
| 
						 | 
					fa1a3eb06d | ||
| 
						 | 
					bd4817ca54 | ||
| 
						 | 
					005eea249c | ||
| 
						 | 
					9747de8ec6 | ||
| 
						 | 
					849a9799d0 | ||
| 
						 | 
					e32ae4fe33 | ||
| 
						 | 
					4595389c4c | ||
| 
						 | 
					e8ccc7cc49 | ||
| 
						 | 
					673d21047a | ||
| 
						 | 
					fdefc2bbda | ||
| 
						 | 
					2079df8527 | ||
| 
						 | 
					b53659452c | ||
| 
						 | 
					46f1d6653e | ||
| 
						 | 
					c1938a60f7 | ||
| 
						 | 
					d65110f352 | ||
| 
						 | 
					9fa3bbcb5a | ||
| 
						 | 
					99d62f2922 | ||
| 
						 | 
					284743cafe | ||
| 
						 | 
					08d7307b2a | ||
| 
						 | 
					ef6a64abe6 | ||
| 
						 | 
					18bfa52ef7 | ||
| 
						 | 
					d62be2652c | ||
| 
						 | 
					ea53ff80af | ||
| 
						 | 
					feeca1bcbc | ||
| 
						 | 
					12e7278c08 | ||
| 
						 | 
					45b5c44eb9 | ||
| 
						 | 
					e3456c1028 | ||
| 
						 | 
					327fb38573 | ||
| 
						 | 
					1d25d9e15f | ||
| 
						 | 
					cc7cee3f48 | ||
| 
						 | 
					d7062710cd | ||
| 
						 | 
					9bfba734d8 | ||
| 
						 | 
					aaebf2f47e | ||
| 
						 | 
					23f8d77b38 | ||
| 
						 | 
					87d22ee0fe | ||
| 
						 | 
					52e25f63d4 | ||
| 
						 | 
					f3fb67972b | ||
| 
						 | 
					6400756364 | ||
| 
						 | 
					d59f0314bd | ||
| 
						 | 
					131baefac3 | ||
| 
						 | 
					a450078b67 | ||
| 
						 | 
					f6b041bf6c | ||
| 
						 | 
					4f340d181a | ||
| 
						 | 
					b58e38e936 | ||
| 
						 | 
					8713cb48a8 | ||
| 
						 | 
					277c5e57ed | ||
| 
						 | 
					b3d62d5af5 | ||
| 
						 | 
					9c0f0c8d81 | ||
| 
						 | 
					18a0a2a7ac | ||
| 
						 | 
					8b99d9e33c | ||
| 
						 | 
					01e7e153e3 | ||
| 
						 | 
					0ad4ca24d2 | ||
| 
						 | 
					724a155552 | ||
| 
						 | 
					d38b74a316 | ||
| 
						 | 
					54cab4b47b | ||
| 
						 | 
					c093666bc5 | ||
| 
						 | 
					04972f6761 | ||
| 
						 | 
					67f8234622 | ||
| 
						 | 
					201d6dbd9c | ||
| 
						 | 
					fbcac5aa83 | ||
| 
						 | 
					2b72ab8f8f | ||
| 
						 | 
					0ea97b9408 | ||
| 
						 | 
					28683ac7c0 | ||
| 
						 | 
					c72e3e210f | 
@@ -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)
 | 
					 | 
				
			||||||
							
								
								
									
										4
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +0,0 @@
 | 
				
			|||||||
*.dsp -crlf
 | 
					 | 
				
			||||||
*.dsw -crlf
 | 
					 | 
				
			||||||
*.sln -crlf
 | 
					 | 
				
			||||||
*.vcproj -crlf
 | 
					 | 
				
			||||||
							
								
								
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,28 +1,10 @@
 | 
				
			|||||||
*.a
 | 
					*.a
 | 
				
			||||||
*.dll
 | 
					 | 
				
			||||||
*.exe
 | 
					 | 
				
			||||||
*.ilk
 | 
					 | 
				
			||||||
*.o
 | 
					*.o
 | 
				
			||||||
*.obj
 | 
					 | 
				
			||||||
*.os
 | 
					 | 
				
			||||||
*.pc
 | 
					 | 
				
			||||||
*.pdb
 | 
					 | 
				
			||||||
*.pyc
 | 
					 | 
				
			||||||
*.pyo
 | 
					 | 
				
			||||||
*.so
 | 
					*.so
 | 
				
			||||||
*.sw[a-z]
 | 
					*.sw[a-z]
 | 
				
			||||||
 | 
					*.pc
 | 
				
			||||||
*~
 | 
					*~
 | 
				
			||||||
depend
 | 
					depend
 | 
				
			||||||
depend.bak
 | 
					depend.bak
 | 
				
			||||||
lib
 | 
					lib
 | 
				
			||||||
lib64
 | 
					lib64
 | 
				
			||||||
configure
 | 
					 | 
				
			||||||
autom4te.cache
 | 
					 | 
				
			||||||
aclocal.m4
 | 
					 | 
				
			||||||
config.log
 | 
					 | 
				
			||||||
config.status
 | 
					 | 
				
			||||||
cscope*
 | 
					 | 
				
			||||||
.scon*
 | 
					 | 
				
			||||||
config.py
 | 
					 | 
				
			||||||
build
 | 
					 | 
				
			||||||
.dir-locals.el
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										472
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										472
									
								
								Makefile
									
									
									
									
									
								
							@@ -2,46 +2,39 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
TOP = .
 | 
					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
 | 
					default: $(TOP)/configs/current
 | 
				
			||||||
	@$(TOP)/bin/extract_git_sha1
 | 
					 | 
				
			||||||
	@for dir in $(SUBDIRS) ; do \
 | 
						@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
		if [ -d $$dir ] ; then \
 | 
							if [ -d $$dir ] ; then \
 | 
				
			||||||
			(cd $$dir && $(MAKE)) || exit 1 ; \
 | 
								(cd $$dir && $(MAKE)) || exit 1 ; \
 | 
				
			||||||
		fi \
 | 
							fi \
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
all: default
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
doxygen:
 | 
					doxygen:
 | 
				
			||||||
	cd doxygen && $(MAKE)
 | 
						(cd doxygen ; make) ; \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	-@touch $(TOP)/configs/current
 | 
						@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
	-@for dir in $(SUBDIRS) ; do \
 | 
					 | 
				
			||||||
		if [ -d $$dir ] ; then \
 | 
							if [ -d $$dir ] ; then \
 | 
				
			||||||
			(cd $$dir && $(MAKE) clean) ; \
 | 
								(cd $$dir && $(MAKE) clean) ; \
 | 
				
			||||||
		fi \
 | 
							fi \
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
	-@test -s $(TOP)/configs/current || rm -f $(TOP)/configs/current
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
realclean: clean
 | 
					realclean:
 | 
				
			||||||
 | 
						touch $(TOP)/configs/current
 | 
				
			||||||
 | 
						$(MAKE) clean
 | 
				
			||||||
	-rm -rf lib*
 | 
						-rm -rf lib*
 | 
				
			||||||
	-rm -f $(TOP)/configs/current
 | 
						-rm -f $(TOP)/configs/current
 | 
				
			||||||
	-rm -f $(TOP)/configs/autoconf
 | 
						-rm -f `find . -name \*.o`
 | 
				
			||||||
	-rm -rf autom4te.cache
 | 
						-rm -f `find . -name \*.a`
 | 
				
			||||||
	-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
 | 
						-rm -f `find . -name \*.so`
 | 
				
			||||||
	  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
 | 
						-rm -f `find . -name depend`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
distclean: realclean
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
install:
 | 
					install:
 | 
				
			||||||
	@for dir in $(SUBDIRS) ; do \
 | 
						@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
@@ -51,20 +44,18 @@ install:
 | 
				
			|||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: default doxygen clean realclean distclean install
 | 
					# DirectFBGL module installation
 | 
				
			||||||
 | 
					linux-directfb-install:
 | 
				
			||||||
 | 
						cd src/mesa/drivers/directfb && $(MAKE) install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# If there's no current configuration file
 | 
					# If there's no current configuration file
 | 
				
			||||||
$(TOP)/configs/current:
 | 
					$(TOP)/configs/current:
 | 
				
			||||||
	@echo
 | 
						@echo
 | 
				
			||||||
	@echo
 | 
						@echo
 | 
				
			||||||
	@echo "Please choose a configuration from the following list:"
 | 
						@echo "Please choose a configuration from the following list:"
 | 
				
			||||||
	@ls -1 $(TOP)/configs | grep -v "current\|default\|CVS\|autoconf.*"
 | 
						@ls -1 $(TOP)/configs | grep -v "current\|default\|CVS"
 | 
				
			||||||
	@echo
 | 
						@echo
 | 
				
			||||||
	@echo "Then type 'make <config>' (ex: 'make linux-x86')"
 | 
						@echo "Then type 'make <config>' (ex: 'make linux-x86')"
 | 
				
			||||||
	@echo
 | 
					 | 
				
			||||||
	@echo "Or, run './configure' then 'make'"
 | 
					 | 
				
			||||||
	@echo "See './configure --help' for details"
 | 
					 | 
				
			||||||
	@echo
 | 
					 | 
				
			||||||
	@echo "(ignore the following error message)"
 | 
						@echo "(ignore the following error message)"
 | 
				
			||||||
	@exit 1
 | 
						@exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -75,14 +66,15 @@ aix-64 \
 | 
				
			|||||||
aix-64-static \
 | 
					aix-64-static \
 | 
				
			||||||
aix-gcc \
 | 
					aix-gcc \
 | 
				
			||||||
aix-static \
 | 
					aix-static \
 | 
				
			||||||
autoconf \
 | 
					beos \
 | 
				
			||||||
bluegene-osmesa \
 | 
					bluegene-osmesa \
 | 
				
			||||||
bluegene-xlc-osmesa \
 | 
					bluegene-xlc-osmesa \
 | 
				
			||||||
beos \
 | 
					 | 
				
			||||||
catamount-osmesa-pgi \
 | 
					catamount-osmesa-pgi \
 | 
				
			||||||
darwin \
 | 
					darwin \
 | 
				
			||||||
darwin-fat-32bit \
 | 
					darwin-fat-32bit \
 | 
				
			||||||
darwin-fat-all \
 | 
					darwin-fat-all \
 | 
				
			||||||
 | 
					darwin-static \
 | 
				
			||||||
 | 
					darwin-static-x86ppc \
 | 
				
			||||||
freebsd \
 | 
					freebsd \
 | 
				
			||||||
freebsd-dri \
 | 
					freebsd-dri \
 | 
				
			||||||
freebsd-dri-amd64 \
 | 
					freebsd-dri-amd64 \
 | 
				
			||||||
@@ -106,36 +98,32 @@ irix6-n32-static \
 | 
				
			|||||||
irix6-o32 \
 | 
					irix6-o32 \
 | 
				
			||||||
irix6-o32-static \
 | 
					irix6-o32-static \
 | 
				
			||||||
linux \
 | 
					linux \
 | 
				
			||||||
linux-i965 \
 | 
					 | 
				
			||||||
linux-alpha \
 | 
					linux-alpha \
 | 
				
			||||||
linux-alpha-static \
 | 
					linux-alpha-static \
 | 
				
			||||||
linux-cell \
 | 
					 | 
				
			||||||
linux-cell-debug \
 | 
					 | 
				
			||||||
linux-debug \
 | 
					linux-debug \
 | 
				
			||||||
 | 
					linux-directfb \
 | 
				
			||||||
linux-dri \
 | 
					linux-dri \
 | 
				
			||||||
linux-dri-debug \
 | 
					linux-dri-debug \
 | 
				
			||||||
linux-dri-x86 \
 | 
					linux-dri-x86 \
 | 
				
			||||||
linux-dri-x86-64 \
 | 
					linux-dri-x86-64 \
 | 
				
			||||||
linux-dri-ppc \
 | 
					linux-dri-ppc \
 | 
				
			||||||
linux-dri-xcb \
 | 
					linux-dri-xcb \
 | 
				
			||||||
linux-egl \
 | 
					 | 
				
			||||||
linux-indirect \
 | 
					linux-indirect \
 | 
				
			||||||
linux-fbdev \
 | 
					linux-fbdev \
 | 
				
			||||||
 | 
					linux-glide \
 | 
				
			||||||
linux-ia64-icc \
 | 
					linux-ia64-icc \
 | 
				
			||||||
linux-ia64-icc-static \
 | 
					linux-ia64-icc-static \
 | 
				
			||||||
linux-icc \
 | 
					linux-icc \
 | 
				
			||||||
linux-icc-static \
 | 
					linux-icc-static \
 | 
				
			||||||
linux-llvm \
 | 
					 | 
				
			||||||
linux-llvm-debug \
 | 
					 | 
				
			||||||
linux-opengl-es \
 | 
					 | 
				
			||||||
linux-osmesa \
 | 
					linux-osmesa \
 | 
				
			||||||
linux-osmesa-static \
 | 
					 | 
				
			||||||
linux-osmesa16 \
 | 
					linux-osmesa16 \
 | 
				
			||||||
linux-osmesa16-static \
 | 
					linux-osmesa16-static \
 | 
				
			||||||
linux-osmesa32 \
 | 
					linux-osmesa32 \
 | 
				
			||||||
linux-ppc \
 | 
					linux-ppc \
 | 
				
			||||||
linux-ppc-static \
 | 
					linux-ppc-static \
 | 
				
			||||||
linux-profile \
 | 
					linux-solo \
 | 
				
			||||||
 | 
					linux-solo-x86 \
 | 
				
			||||||
 | 
					linux-solo-ia64 \
 | 
				
			||||||
linux-sparc \
 | 
					linux-sparc \
 | 
				
			||||||
linux-sparc5 \
 | 
					linux-sparc5 \
 | 
				
			||||||
linux-static \
 | 
					linux-static \
 | 
				
			||||||
@@ -146,9 +134,8 @@ linux-x86-debug \
 | 
				
			|||||||
linux-x86-32 \
 | 
					linux-x86-32 \
 | 
				
			||||||
linux-x86-64 \
 | 
					linux-x86-64 \
 | 
				
			||||||
linux-x86-64-debug \
 | 
					linux-x86-64-debug \
 | 
				
			||||||
linux-x86-64-profile \
 | 
					 | 
				
			||||||
linux-x86-64-static \
 | 
					linux-x86-64-static \
 | 
				
			||||||
linux-x86-profile \
 | 
					linux-x86-glide \
 | 
				
			||||||
linux-x86-static \
 | 
					linux-x86-static \
 | 
				
			||||||
netbsd \
 | 
					netbsd \
 | 
				
			||||||
openbsd \
 | 
					openbsd \
 | 
				
			||||||
@@ -170,52 +157,38 @@ sunos5-v9 \
 | 
				
			|||||||
sunos5-v9-static \
 | 
					sunos5-v9-static \
 | 
				
			||||||
sunos5-v9-cc-g++ \
 | 
					sunos5-v9-cc-g++ \
 | 
				
			||||||
ultrix-gcc:
 | 
					ultrix-gcc:
 | 
				
			||||||
	@ if test -f configs/current -o -L configs/current; then \
 | 
						@ if test -f configs/current || test -L configs/current ; then \
 | 
				
			||||||
		if ! cmp configs/$@ configs/current > /dev/null; then \
 | 
							echo "Please run 'make realclean' before changing configs" ; \
 | 
				
			||||||
			echo "Please run 'make realclean' before changing configs" ; \
 | 
							exit 1 ; \
 | 
				
			||||||
			exit 1 ; \
 | 
					 | 
				
			||||||
		fi ; \
 | 
					 | 
				
			||||||
	else \
 | 
					 | 
				
			||||||
		cd configs && rm -f current && ln -s $@ current ; \
 | 
					 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
						(cd configs && rm -f current && ln -s $@ current)
 | 
				
			||||||
	$(MAKE) default
 | 
						$(MAKE) default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Rules for making release tarballs
 | 
					# Rules for making release tarballs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VERSION=7.11.2
 | 
					DIRECTORY = Mesa-7.0.3
 | 
				
			||||||
DIRECTORY = Mesa-$(VERSION)
 | 
					LIB_NAME = MesaLib-7.0.3
 | 
				
			||||||
LIB_NAME = MesaLib-$(VERSION)
 | 
					DEMO_NAME = MesaDemos-7.0.3
 | 
				
			||||||
GLUT_NAME = MesaGLUT-$(VERSION)
 | 
					GLUT_NAME = MesaGLUT-7.0.3
 | 
				
			||||||
 | 
					 | 
				
			||||||
# This is part of MAIN_FILES
 | 
					 | 
				
			||||||
MAIN_ES_FILES = \
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.xml				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.py					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.dtd
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
MAIN_FILES = \
 | 
					MAIN_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/Makefile*						\
 | 
						$(DIRECTORY)/Makefile*						\
 | 
				
			||||||
	$(DIRECTORY)/configure						\
 | 
						$(DIRECTORY)/descrip.mms					\
 | 
				
			||||||
	$(DIRECTORY)/configure.ac					\
 | 
						$(DIRECTORY)/mms-config.					\
 | 
				
			||||||
	$(DIRECTORY)/acinclude.m4					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/aclocal.m4						\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/SConstruct						\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/common.py						\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/scons/*py						\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/bin/config.guess					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/bin/config.sub					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/bin/extract_git_sha1				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/bin/install-sh					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/bin/mklib						\
 | 
						$(DIRECTORY)/bin/mklib						\
 | 
				
			||||||
	$(DIRECTORY)/bin/minstall					\
 | 
						$(DIRECTORY)/bin/minstall					\
 | 
				
			||||||
	$(DIRECTORY)/bin/version.mk					\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/configs/[a-z]*					\
 | 
						$(DIRECTORY)/configs/[a-z]*					\
 | 
				
			||||||
	$(DIRECTORY)/docs/*.html					\
 | 
						$(DIRECTORY)/docs/*.html					\
 | 
				
			||||||
	$(DIRECTORY)/docs/COPYING					\
 | 
						$(DIRECTORY)/docs/COPYING					\
 | 
				
			||||||
	$(DIRECTORY)/docs/README.*					\
 | 
						$(DIRECTORY)/docs/README.*					\
 | 
				
			||||||
	$(DIRECTORY)/docs/RELNOTES*					\
 | 
						$(DIRECTORY)/docs/RELNOTES*					\
 | 
				
			||||||
	$(DIRECTORY)/docs/*.spec					\
 | 
						$(DIRECTORY)/docs/*.spec					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/internal/glcore.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/amesa.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/dmesa.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/fxmesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/ggimesa.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/gl.h					\
 | 
						$(DIRECTORY)/include/GL/gl.h					\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glext.h					\
 | 
						$(DIRECTORY)/include/GL/glext.h					\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/gl_mangle.h				\
 | 
						$(DIRECTORY)/include/GL/gl_mangle.h				\
 | 
				
			||||||
@@ -226,69 +199,85 @@ MAIN_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/include/GL/glx_mangle.h				\
 | 
						$(DIRECTORY)/include/GL/glx_mangle.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glfbdev.h				\
 | 
						$(DIRECTORY)/include/GL/glfbdev.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/mesa_wgl.h				\
 | 
						$(DIRECTORY)/include/GL/mesa_wgl.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/mglmesa.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/osmesa.h				\
 | 
						$(DIRECTORY)/include/GL/osmesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/svgamesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/ugl*.h					\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/vms_x_fix.h				\
 | 
						$(DIRECTORY)/include/GL/vms_x_fix.h				\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/wglext.h				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/include/GL/wmesa.h					\
 | 
						$(DIRECTORY)/include/GL/wmesa.h					\
 | 
				
			||||||
	$(DIRECTORY)/include/pci_ids/*.h				\
 | 
						$(DIRECTORY)/include/GL/xmesa.h					\
 | 
				
			||||||
	$(DIRECTORY)/include/c99/*.h					\
 | 
						$(DIRECTORY)/include/GL/xmesa_x.h				\
 | 
				
			||||||
	$(DIRECTORY)/src/getopt/SConscript				\
 | 
						$(DIRECTORY)/include/GL/xmesa_xf86.h				\
 | 
				
			||||||
	$(DIRECTORY)/src/getopt/getopt*.[ch]				\
 | 
						$(DIRECTORY)/include/GLView.h					\
 | 
				
			||||||
	$(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/Makefile					\
 | 
				
			||||||
	$(DIRECTORY)/src/SConscript					\
 | 
						$(DIRECTORY)/src/descrip.mms					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/Makefile*					\
 | 
						$(DIRECTORY)/src/mesa/Makefile*					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/SConscript				\
 | 
						$(DIRECTORY)/src/mesa/sources					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/sources.mak				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/gl.pc.in					\
 | 
						$(DIRECTORY)/src/mesa/gl.pc.in					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/osmesa.pc.in				\
 | 
						$(DIRECTORY)/src/mesa/depend					\
 | 
				
			||||||
	$(MAIN_ES_FILES)						\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/main/*.[chS]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/*.cpp				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/main/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/main/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/main/sources				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/glapi/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/glapi/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/glapi/sources				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/math/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/math/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/math/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/math/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/program/*.[chly]				\
 | 
						$(DIRECTORY)/src/mesa/math/sources				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/program/*.cpp				\
 | 
						$(DIRECTORY)/src/mesa/shader/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/program/descrip.mms			\
 | 
						$(DIRECTORY)/src/mesa/shader/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/sources				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/grammar/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/grammar/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/grammar/sources			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/sources			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.gc			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.syn		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/Makefile		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/swrast/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/swrast/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/swrast/descrip.mms			\
 | 
						$(DIRECTORY)/src/mesa/swrast/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/swrast/sources				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms			\
 | 
						$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/swrast_setup/sources			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/vbo/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/vbo/*.[chS]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/vbo/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/vbo/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/tnl/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/tnl/*.[chS]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/tnl/descrip.mms				\
 | 
						$(DIRECTORY)/src/mesa/tnl/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/tnl/sources				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/tnl_dd/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/tnl_dd/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm			\
 | 
						$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/Makefile				\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/beos/*.cpp			\
 | 
						$(DIRECTORY)/src/mesa/drivers/beos/*.cpp			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/beos/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/beos/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/common/descrip.mms		\
 | 
						$(DIRECTORY)/src/mesa/drivers/common/descrip.mms		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/fbdev/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/common/sources			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/directfb/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dos/*.[chS]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c			\
 | 
						$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile			\
 | 
						$(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.win		\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms		\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def			\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/svga/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/windows/*/*.def			\
 | 
						$(DIRECTORY)/src/mesa/drivers/windows/*/*.def			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/x11/Makefile			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms			\
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/sources			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/x11/*.[ch]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/ppc/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/ppc/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/sparc/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/sparc/*.[chS]				\
 | 
				
			||||||
@@ -297,112 +286,50 @@ MAIN_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/src/mesa/x86/*.S					\
 | 
						$(DIRECTORY)/src/mesa/x86/*.S					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch]				\
 | 
						$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/x86-64/*.[chS]				\
 | 
						$(DIRECTORY)/src/mesa/x86-64/*.[chS]				\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/x86-64/Makefile
 | 
						$(DIRECTORY)/src/mesa/x86-64/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/README					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/*.[ch]					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/sampleMakefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/vms/analyze_map.com				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/vms/xlib.opt					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/vms/xlib_share.opt					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/mesa/mesa.sln				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/mesa/gdi/gdi.vcproj			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/mesa/glu/glu.vcproj			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/mesa/mesa/mesa.vcproj			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/mesa/osmesa/osmesa.vcproj		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/progs/progs.sln			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/progs/demos/gears.vcproj		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/progs/glut/glut.vcproj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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 = \
 | 
					DRI_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/include/GL/internal/dri_interface.h		\
 | 
						$(DIRECTORY)/include/GL/internal/dri_interface.h		\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/internal/sarea.h			\
 | 
						$(DIRECTORY)/include/GL/internal/sarea.h			\
 | 
				
			||||||
	$(DIRECTORY)/src/glx/Makefile					\
 | 
						$(DIRECTORY)/src/glx/Makefile					\
 | 
				
			||||||
	$(DIRECTORY)/src/glx/*.[ch]					\
 | 
						$(DIRECTORY)/src/glx/x11/Makefile				\
 | 
				
			||||||
	$(APPLE_DRI_FILES)						\
 | 
						$(DIRECTORY)/src/glx/x11/*.[ch]					\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/Makefile*			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/dri.pc.in			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.[ch]		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po		\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po		\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS]			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS]			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*.cpp			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*/*.[chS]			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*/Makefile			\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile			\
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/*/SConscript		\
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
 | 
				
			||||||
	$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
SGI_GLU_FILES = \
 | 
					SGI_GLU_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/src/glu/Makefile					\
 | 
						$(DIRECTORY)/src/glu/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/glu.pc.in					\
 | 
						$(DIRECTORY)/src/glu/glu.pc.in					\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/Makefile				\
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/Makefile.mgw				\
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.mgw				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/Makefile.win				\
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.win				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.DJ				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/glu.def				\
 | 
						$(DIRECTORY)/src/glu/sgi/glu.def				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/dummy.cc				\
 | 
						$(DIRECTORY)/src/glu/sgi/dummy.cc				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/glu.exports				\
 | 
						$(DIRECTORY)/src/glu/sgi/descrip.mms				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/glu.exports.darwin			\
 | 
					 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/mesaglu.opt				\
 | 
						$(DIRECTORY)/src/glu/sgi/mesaglu.opt				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/include/gluos.h			\
 | 
						$(DIRECTORY)/src/glu/sgi/include/gluos.h			\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h			\
 | 
						$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h			\
 | 
				
			||||||
@@ -416,104 +343,171 @@ SGI_GLU_FILES = \
 | 
				
			|||||||
	$(DIRECTORY)/src/glu/sgi/libtess/*.[ch]				\
 | 
						$(DIRECTORY)/src/glu/sgi/libtess/*.[ch]				\
 | 
				
			||||||
	$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
 | 
						$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MESA_GLU_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/README[12]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/mms_depend		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/*.def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/depend		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLW_FILES = \
 | 
					GLW_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/src/glw/*.[ch]			\
 | 
						$(DIRECTORY)/src/glw/*.[ch]			\
 | 
				
			||||||
	$(DIRECTORY)/src/glw/Makefile*			\
 | 
						$(DIRECTORY)/src/glw/Makefile*			\
 | 
				
			||||||
	$(DIRECTORY)/src/glw/README			\
 | 
						$(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/*.txt			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/Makefile.ugl		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/*.bmp			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/ggi/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC6/progs/demos/*.dsp	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC6/progs/progs.dsw	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/demos/*.vcproj	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/progs.sln
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLUT_FILES = \
 | 
					GLUT_FILES = \
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glut.h			\
 | 
						$(DIRECTORY)/include/GL/glut.h			\
 | 
				
			||||||
	$(DIRECTORY)/include/GL/glutf90.h		\
 | 
						$(DIRECTORY)/include/GL/glutf90.h		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/glx/Makefile*		\
 | 
						$(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/glut.pc.in		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/glx/*def			\
 | 
						$(DIRECTORY)/src/glut/glx/*def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/mms_depend		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/glx/*.[ch]		\
 | 
						$(DIRECTORY)/src/glut/glx/*.[ch]		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/beos/*.[ch]		\
 | 
						$(DIRECTORY)/src/glut/beos/*.[ch]		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/beos/*.cpp		\
 | 
						$(DIRECTORY)/src/glut/beos/*.cpp		\
 | 
				
			||||||
	$(DIRECTORY)/src/glut/beos/Makefile
 | 
						$(DIRECTORY)/src/glut/beos/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/Makefile.DJ		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/ggi/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/ggi/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/fbdev/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/fbdev/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/mini/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/mini/glut.pc.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/NOTES		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC6/progs/glut/glut.dsp	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/glut/glut.vcproj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEPEND_FILES = \
 | 
				
			||||||
 | 
						$(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 = \
 | 
					LIB_FILES = $(MAIN_FILES) $(DRI_FILES) $(SGI_GLU_FILES) $(GLW_FILES)
 | 
				
			||||||
	$(MAIN_FILES)		\
 | 
					 | 
				
			||||||
	$(MAPI_FILES)		\
 | 
					 | 
				
			||||||
	$(ES_FILES)		\
 | 
					 | 
				
			||||||
	$(EGL_FILES)		\
 | 
					 | 
				
			||||||
	$(GBM_FILES)		\
 | 
					 | 
				
			||||||
	$(GALLIUM_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:
 | 
					# Everything for new a Mesa release:
 | 
				
			||||||
ARCHIVES = $(LIB_NAME).tar.gz \
 | 
					tarballs: rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 glut_bz2 lib_zip demo_zip glut_zip md5
 | 
				
			||||||
	$(LIB_NAME).tar.bz2 \
 | 
					 | 
				
			||||||
	$(LIB_NAME).zip \
 | 
					 | 
				
			||||||
	$(GLUT_NAME).tar.gz \
 | 
					 | 
				
			||||||
	$(GLUT_NAME).tar.bz2 \
 | 
					 | 
				
			||||||
	$(GLUT_NAME).zip
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
tarballs: md5
 | 
					 | 
				
			||||||
	rm -f ../$(LIB_NAME).tar
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Helper for autoconf builds
 | 
					rm_depend:
 | 
				
			||||||
ACLOCAL = aclocal
 | 
						@for dep in $(DEPEND_FILES) ; do \
 | 
				
			||||||
ACLOCAL_FLAGS =
 | 
							rm -f $$dep ; \
 | 
				
			||||||
AUTOCONF = autoconf
 | 
							touch $$dep ; \
 | 
				
			||||||
AC_FLAGS =
 | 
						done
 | 
				
			||||||
aclocal.m4: configure.ac acinclude.m4
 | 
					 | 
				
			||||||
	$(ACLOCAL) $(ACLOCAL_FLAGS)
 | 
					 | 
				
			||||||
configure: configure.ac aclocal.m4 acinclude.m4
 | 
					 | 
				
			||||||
	$(AUTOCONF) $(AC_FLAGS)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
rm_config: parsers
 | 
					lib_gz:
 | 
				
			||||||
	rm -f configs/current
 | 
						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: rm_config
 | 
					demo_gz:
 | 
				
			||||||
	cd .. ; tar --dereference -cf $(DIRECTORY)/$(LIB_NAME).tar $(LIB_FILES)
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						gzip $(DEMO_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(LIB_NAME).tar.gz: $(LIB_NAME).tar
 | 
					glut_gz:
 | 
				
			||||||
	gzip --stdout --best $(LIB_NAME).tar > $(LIB_NAME).tar.gz
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
				
			||||||
 | 
						gzip $(GLUT_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(GLUT_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(GLUT_NAME).tar:
 | 
					lib_bz2:
 | 
				
			||||||
	cd .. ; tar --dereference -cf $(DIRECTORY)/$(GLUT_NAME).tar $(GLUT_FILES)
 | 
						rm -f configs/current ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
				
			||||||
 | 
						bzip2 $(LIB_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(GLUT_NAME).tar.gz: $(GLUT_NAME).tar
 | 
					demo_bz2:
 | 
				
			||||||
	gzip --stdout --best $(GLUT_NAME).tar > $(GLUT_NAME).tar.gz
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						bzip2 $(DEMO_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(LIB_NAME).tar.bz2: $(LIB_NAME).tar
 | 
					glut_bz2:
 | 
				
			||||||
	bzip2 --stdout --best $(LIB_NAME).tar > $(LIB_NAME).tar.bz2
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
				
			||||||
 | 
						bzip2 $(GLUT_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(GLUT_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(GLUT_NAME).tar.bz2: $(GLUT_NAME).tar
 | 
					lib_zip:
 | 
				
			||||||
	bzip2 --stdout --best $(GLUT_NAME).tar > $(GLUT_NAME).tar.bz2
 | 
						rm -f configs/current ; \
 | 
				
			||||||
 | 
					 | 
				
			||||||
$(LIB_NAME).zip: rm_config
 | 
					 | 
				
			||||||
	rm -f $(LIB_NAME).zip ; \
 | 
						rm -f $(LIB_NAME).zip ; \
 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
	zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
 | 
						zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
 | 
				
			||||||
	mv $(LIB_NAME).zip $(DIRECTORY)
 | 
						mv $(LIB_NAME).zip $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(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 ; \
 | 
						rm -f $(GLUT_NAME).zip ; \
 | 
				
			||||||
	cd .. ; \
 | 
						cd .. ; \
 | 
				
			||||||
	zip -qr $(GLUT_NAME).zip $(GLUT_FILES) ; \
 | 
						zip -qr $(GLUT_NAME).zip $(GLUT_FILES) ; \
 | 
				
			||||||
	mv $(GLUT_NAME).zip $(DIRECTORY)
 | 
						mv $(GLUT_NAME).zip $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
md5: $(ARCHIVES)
 | 
					md5:
 | 
				
			||||||
	@-md5sum $(LIB_NAME).tar.gz
 | 
						@-md5sum $(LIB_NAME).tar.gz
 | 
				
			||||||
	@-md5sum $(LIB_NAME).tar.bz2
 | 
						@-md5sum $(LIB_NAME).tar.bz2
 | 
				
			||||||
	@-md5sum $(LIB_NAME).zip
 | 
						@-md5sum $(LIB_NAME).zip
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).tar.gz
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).tar.bz2
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).zip
 | 
				
			||||||
	@-md5sum $(GLUT_NAME).tar.gz
 | 
						@-md5sum $(GLUT_NAME).tar.gz
 | 
				
			||||||
	@-md5sum $(GLUT_NAME).tar.bz2
 | 
						@-md5sum $(GLUT_NAME).tar.bz2
 | 
				
			||||||
	@-md5sum $(GLUT_NAME).zip
 | 
						@-md5sum $(GLUT_NAME).zip
 | 
				
			||||||
 | 
					 | 
				
			||||||
.PHONY: tarballs rm_config 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)
 | 
					 | 
				
			||||||
							
								
								
									
										119
									
								
								acinclude.m4
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								acinclude.m4
									
									
									
									
									
								
							@@ -1,119 +0,0 @@
 | 
				
			|||||||
# A few convenience macros for Mesa, mostly to keep all the platform
 | 
					 | 
				
			||||||
# specifics out of configure.ac.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# MESA_PIC_FLAGS()
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Find out whether to build PIC code using the option --enable-pic and
 | 
					 | 
				
			||||||
# the configure enable_static/enable_shared settings. If PIC is needed,
 | 
					 | 
				
			||||||
# figure out the necessary flags for the platform and compiler.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# The platform checks have been shamelessly taken from libtool and
 | 
					 | 
				
			||||||
# stripped down to just what's needed for Mesa. See _LT_COMPILER_PIC in
 | 
					 | 
				
			||||||
# /usr/share/aclocal/libtool.m4 or
 | 
					 | 
				
			||||||
# http://git.savannah.gnu.org/gitweb/?p=libtool.git;a=blob;f=libltdl/m4/libtool.m4;hb=HEAD
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
AC_DEFUN([MESA_PIC_FLAGS],
 | 
					 | 
				
			||||||
[AC_REQUIRE([AC_PROG_CC])dnl
 | 
					 | 
				
			||||||
AC_ARG_VAR([PIC_FLAGS], [compiler flags for PIC code])
 | 
					 | 
				
			||||||
AC_ARG_ENABLE([pic],
 | 
					 | 
				
			||||||
    [AS_HELP_STRING([--disable-pic],
 | 
					 | 
				
			||||||
        [compile PIC objects @<:@default=enabled for shared builds
 | 
					 | 
				
			||||||
        on supported platforms@:>@])],
 | 
					 | 
				
			||||||
    [enable_pic="$enableval"
 | 
					 | 
				
			||||||
    test "x$enable_pic" = x && enable_pic=auto],
 | 
					 | 
				
			||||||
    [enable_pic=auto])
 | 
					 | 
				
			||||||
# disable PIC by default for static builds
 | 
					 | 
				
			||||||
if test "$enable_pic" = auto && test "$enable_static" = yes; then
 | 
					 | 
				
			||||||
    enable_pic=no
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
# if PIC hasn't been explicitly disabled, try to figure out the flags
 | 
					 | 
				
			||||||
if test "$enable_pic" != no; then
 | 
					 | 
				
			||||||
    AC_MSG_CHECKING([for $CC option to produce PIC])
 | 
					 | 
				
			||||||
    # allow the user's flags to override
 | 
					 | 
				
			||||||
    if test "x$PIC_FLAGS" = x; then
 | 
					 | 
				
			||||||
        # see if we're using GCC
 | 
					 | 
				
			||||||
        if test "x$GCC" = xyes; then
 | 
					 | 
				
			||||||
            case "$host_os" in
 | 
					 | 
				
			||||||
            aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
 | 
					 | 
				
			||||||
                # PIC is the default for these OSes.
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            mingw*|os2*|pw32*)
 | 
					 | 
				
			||||||
                # This hack is so that the source file can tell whether
 | 
					 | 
				
			||||||
                # it is being built for inclusion in a dll (and should
 | 
					 | 
				
			||||||
                # export symbols for example).
 | 
					 | 
				
			||||||
                PIC_FLAGS="-DDLL_EXPORT"
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            darwin*|rhapsody*)
 | 
					 | 
				
			||||||
                # PIC is the default on this platform
 | 
					 | 
				
			||||||
                # Common symbols not allowed in MH_DYLIB files
 | 
					 | 
				
			||||||
                PIC_FLAGS="-fno-common"
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            hpux*)
 | 
					 | 
				
			||||||
                # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
 | 
					 | 
				
			||||||
                # but not for PA HP-UX.
 | 
					 | 
				
			||||||
                case $host_cpu in
 | 
					 | 
				
			||||||
                hppa*64*|ia64*)
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                *)
 | 
					 | 
				
			||||||
                    PIC_FLAGS="-fPIC"
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            *)
 | 
					 | 
				
			||||||
                # Everyone else on GCC uses -fPIC
 | 
					 | 
				
			||||||
                PIC_FLAGS="-fPIC"
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            esac
 | 
					 | 
				
			||||||
        else # !GCC
 | 
					 | 
				
			||||||
            case "$host_os" in
 | 
					 | 
				
			||||||
            hpux9*|hpux10*|hpux11*)
 | 
					 | 
				
			||||||
                # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
 | 
					 | 
				
			||||||
                # but not for PA HP-UX.
 | 
					 | 
				
			||||||
                case "$host_cpu" in
 | 
					 | 
				
			||||||
                hppa*64*|ia64*)
 | 
					 | 
				
			||||||
                    # +Z the default
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                *)
 | 
					 | 
				
			||||||
                    PIC_FLAGS="+Z"
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            linux*|k*bsd*-gnu)
 | 
					 | 
				
			||||||
                case `basename "$CC"` in
 | 
					 | 
				
			||||||
                icc*|ecc*|ifort*)
 | 
					 | 
				
			||||||
                    PIC_FLAGS="-KPIC"
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                pgcc*|pgf77*|pgf90*|pgf95*)
 | 
					 | 
				
			||||||
                    # Portland Group compilers (*not* the Pentium gcc
 | 
					 | 
				
			||||||
                    # compiler, which looks to be a dead project)
 | 
					 | 
				
			||||||
                    PIC_FLAGS="-fpic"
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                ccc*)
 | 
					 | 
				
			||||||
                    # All Alpha code is PIC.
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                xl*)
 | 
					 | 
				
			||||||
                    # IBM XL C 8.0/Fortran 10.1 on PPC
 | 
					 | 
				
			||||||
                    PIC_FLAGS="-qpic"
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                *)
 | 
					 | 
				
			||||||
                    case `$CC -V 2>&1 | sed 5q` in
 | 
					 | 
				
			||||||
                    *Sun\ C*|*Sun\ F*)
 | 
					 | 
				
			||||||
                        # Sun C 5.9 or Sun Fortran
 | 
					 | 
				
			||||||
                        PIC_FLAGS="-KPIC"
 | 
					 | 
				
			||||||
                        ;;
 | 
					 | 
				
			||||||
                    esac
 | 
					 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            solaris*)
 | 
					 | 
				
			||||||
                PIC_FLAGS="-KPIC"
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            sunos4*)
 | 
					 | 
				
			||||||
                PIC_FLAGS="-PIC"
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            esac
 | 
					 | 
				
			||||||
        fi # GCC
 | 
					 | 
				
			||||||
    fi # PIC_FLAGS
 | 
					 | 
				
			||||||
    AC_MSG_RESULT([$PIC_FLAGS])
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
AC_SUBST([PIC_FLAGS])
 | 
					 | 
				
			||||||
])# MESA_PIC_FLAGS
 | 
					 | 
				
			||||||
							
								
								
									
										18
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								autogen.sh
									
									
									
									
									
								
							@@ -1,18 +0,0 @@
 | 
				
			|||||||
#! /bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
srcdir=`dirname "$0"`
 | 
					 | 
				
			||||||
test -z "$srcdir" && srcdir=.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SRCDIR=`(cd "$srcdir" && pwd)`
 | 
					 | 
				
			||||||
ORIGDIR=`pwd`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test "x$SRCDIR" != "x$ORIGDIR"; then
 | 
					 | 
				
			||||||
	echo "Mesa cannot be built when srcdir != builddir" 1>&2
 | 
					 | 
				
			||||||
	exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MAKEFLAGS=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
autoreconf -v --install || exit 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"$srcdir"/configure "$@"
 | 
					 | 
				
			||||||
@@ -1,48 +0,0 @@
 | 
				
			|||||||
#!/bin/bash -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
usage()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	echo "Usage: $0 <target1> <target2>"
 | 
					 | 
				
			||||||
	echo "Highlight differences between Mesa configs"
 | 
					 | 
				
			||||||
	echo "Example:"
 | 
					 | 
				
			||||||
	echo "  $0 linux linux-x86"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
die()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	echo "$@" >&2
 | 
					 | 
				
			||||||
	return 1
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$1" in
 | 
					 | 
				
			||||||
-h|--help) usage; exit 0;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ $# -lt 2 ] && die 2 targets needed. See $0 --help
 | 
					 | 
				
			||||||
target1=$1
 | 
					 | 
				
			||||||
target2=$2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
topdir=$(cd "`dirname $0`"/..; pwd)
 | 
					 | 
				
			||||||
cd "$topdir"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ -f "./configs/$target1" ] || die Missing configs/$target1
 | 
					 | 
				
			||||||
[ -f "./configs/$target2" ] || die Missing configs/$target2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
trap 'rm -f "$t1" "$t2"' 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
t1=$(mktemp)
 | 
					 | 
				
			||||||
t2=$(mktemp)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
make -f- -n -p <<EOF | sed '/^# Not a target/,/^$/d' > $t1
 | 
					 | 
				
			||||||
TOP = .
 | 
					 | 
				
			||||||
include \$(TOP)/configs/$target1
 | 
					 | 
				
			||||||
default:
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
make -f- -n -p <<EOF | sed '/^# Not a target/,/^$/d' > $t2
 | 
					 | 
				
			||||||
TOP = .
 | 
					 | 
				
			||||||
include \$(TOP)/configs/$target2
 | 
					 | 
				
			||||||
default:
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
diff -pu -I'^#' $t1 $t2
 | 
					 | 
				
			||||||
							
								
								
									
										1555
									
								
								bin/config.guess
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1555
									
								
								bin/config.guess
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1685
									
								
								bin/config.sub
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1685
									
								
								bin/config.sub
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -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
 | 
					 | 
				
			||||||
@@ -1 +0,0 @@
 | 
				
			|||||||
minstall
 | 
					 | 
				
			||||||
							
								
								
									
										31
									
								
								bin/minstall
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								bin/minstall
									
									
									
									
									
								
							@@ -31,7 +31,7 @@ if [ $# -ge 2 ] ; then
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	# Last cmd line arg is the dest dir
 | 
						# Last cmd line arg is the dest dir
 | 
				
			||||||
	for FILE in $@ ; do
 | 
						for FILE in $@ ; do
 | 
				
			||||||
		DESTDIR="$FILE"
 | 
							DEST="$FILE"
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# Loop over args, moving them to DEST directory
 | 
						# Loop over args, moving them to DEST directory
 | 
				
			||||||
@@ -42,27 +42,6 @@ if [ $# -ge 2 ] ; then
 | 
				
			|||||||
			exit 0
 | 
								exit 0
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                DEST=$DESTDIR
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                # On CYGWIN, because DLLs are loaded by the native Win32 loader,
 | 
					 | 
				
			||||||
                # they are installed in the executable path.  Stub libraries used
 | 
					 | 
				
			||||||
                # only for linking are installed in the library path
 | 
					 | 
				
			||||||
                case `uname` in
 | 
					 | 
				
			||||||
                    CYGWIN*)
 | 
					 | 
				
			||||||
                        case $FILE in
 | 
					 | 
				
			||||||
                            *.dll)
 | 
					 | 
				
			||||||
                                DEST="$DEST/../bin"
 | 
					 | 
				
			||||||
                                ;;
 | 
					 | 
				
			||||||
                            *)
 | 
					 | 
				
			||||||
                                ;;
 | 
					 | 
				
			||||||
                        esac
 | 
					 | 
				
			||||||
	                ;;
 | 
					 | 
				
			||||||
                    *)
 | 
					 | 
				
			||||||
                        ;;
 | 
					 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		PWDSAVE=`pwd`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		# determine file's type
 | 
							# determine file's type
 | 
				
			||||||
		if [ -h "$FILE" ] ; then
 | 
							if [ -h "$FILE" ] ; then
 | 
				
			||||||
			#echo $FILE is a symlink
 | 
								#echo $FILE is a symlink
 | 
				
			||||||
@@ -78,6 +57,7 @@ if [ $# -ge 2 ] ; then
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			FILE=`basename "$FILE"`
 | 
								FILE=`basename "$FILE"`
 | 
				
			||||||
			# Go to $DEST and make the link
 | 
								# Go to $DEST and make the link
 | 
				
			||||||
 | 
								PWDSAVE="$PWD"
 | 
				
			||||||
			cd "$DEST"        # pushd
 | 
								cd "$DEST"        # pushd
 | 
				
			||||||
				$RM "$FILE"
 | 
									$RM "$FILE"
 | 
				
			||||||
				$SYMLINK "$TARGET" "$FILE"
 | 
									$SYMLINK "$TARGET" "$FILE"
 | 
				
			||||||
@@ -85,11 +65,8 @@ if [ $# -ge 2 ] ; then
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		elif [ -f "$FILE" ] ; then
 | 
							elif [ -f "$FILE" ] ; then
 | 
				
			||||||
			#echo "$FILE" is a regular file
 | 
								#echo "$FILE" is a regular file
 | 
				
			||||||
			# Only copy if the files differ
 | 
								$RM "$DEST/`basename $FILE`"
 | 
				
			||||||
			if ! cmp -s $FILE $DEST/`basename $FILE`; then
 | 
								cp "$FILE" "$DEST"
 | 
				
			||||||
				$RM "$DEST/`basename $FILE`"
 | 
					 | 
				
			||||||
				cp "$FILE" "$DEST"
 | 
					 | 
				
			||||||
			fi
 | 
					 | 
				
			||||||
			if [ $MODE ] ; then
 | 
								if [ $MODE ] ; then
 | 
				
			||||||
				FILE=`basename "$FILE"`
 | 
									FILE=`basename "$FILE"`
 | 
				
			||||||
				chmod $MODE "$DEST/$FILE"
 | 
									chmod $MODE "$DEST/$FILE"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										411
									
								
								bin/mklib
									
									
									
									
									
								
							
							
						
						
									
										411
									
								
								bin/mklib
									
									
									
									
									
								
							@@ -25,109 +25,6 @@
 | 
				
			|||||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
					# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Clear CDPATH as the 'cd' command will echo stuff
 | 
					 | 
				
			||||||
# to stdout if it is set
 | 
					 | 
				
			||||||
unset CDPATH
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Given a list of files, look for .a archives and unpack them.
 | 
					 | 
				
			||||||
# Return the original list of files minus the .a files plus the unpacked files.
 | 
					 | 
				
			||||||
# first param:  name of a temp directory (to be deleted when finished)
 | 
					 | 
				
			||||||
# remaining params:  list of .o and .a files
 | 
					 | 
				
			||||||
expand_archives() {
 | 
					 | 
				
			||||||
    DIR=$1
 | 
					 | 
				
			||||||
    shift
 | 
					 | 
				
			||||||
    FILES=$@
 | 
					 | 
				
			||||||
    NEWFILES=""
 | 
					 | 
				
			||||||
    ORIG_DIR=`pwd`
 | 
					 | 
				
			||||||
    mkdir -p "$DIR"
 | 
					 | 
				
			||||||
    cd "$DIR"
 | 
					 | 
				
			||||||
    for FILE in $FILES ; do
 | 
					 | 
				
			||||||
        case $FILE in
 | 
					 | 
				
			||||||
            *.a)
 | 
					 | 
				
			||||||
                # extract the .o files from this .a archive
 | 
					 | 
				
			||||||
                case $FILE in
 | 
					 | 
				
			||||||
                    /*) ;;
 | 
					 | 
				
			||||||
                    *)  FILE="$ORIG_DIR/$FILE" ;;
 | 
					 | 
				
			||||||
                esac
 | 
					 | 
				
			||||||
                MEMBERS=`ar t $FILE`
 | 
					 | 
				
			||||||
                ar x $FILE
 | 
					 | 
				
			||||||
                for MEMBER in $MEMBERS ; do
 | 
					 | 
				
			||||||
                    NEWFILES="$NEWFILES $DIR/$MEMBER"
 | 
					 | 
				
			||||||
                done
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
            *)
 | 
					 | 
				
			||||||
                # other file type, just add to list
 | 
					 | 
				
			||||||
                NEWFILES="$NEWFILES $FILE"
 | 
					 | 
				
			||||||
                ;;
 | 
					 | 
				
			||||||
        esac
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    cd "$ORIG_DIR"
 | 
					 | 
				
			||||||
    echo $NEWFILES
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make static library with 'ar'
 | 
					 | 
				
			||||||
# params:
 | 
					 | 
				
			||||||
#    options to ar
 | 
					 | 
				
			||||||
#    1 or 0 to indicate if ranlib should be run
 | 
					 | 
				
			||||||
#    libname to make
 | 
					 | 
				
			||||||
#    list of object files
 | 
					 | 
				
			||||||
# Return name of library we made
 | 
					 | 
				
			||||||
# Example: "make_ar_static_lib -ru 1 libfoo.a foo.o bar.o"
 | 
					 | 
				
			||||||
make_ar_static_lib() {
 | 
					 | 
				
			||||||
    OPTS=$1
 | 
					 | 
				
			||||||
    shift;
 | 
					 | 
				
			||||||
    RANLIB=$1
 | 
					 | 
				
			||||||
    shift;
 | 
					 | 
				
			||||||
    LIBNAME=$1
 | 
					 | 
				
			||||||
    shift;
 | 
					 | 
				
			||||||
    OBJECTS=$@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # remove existing lib, if present
 | 
					 | 
				
			||||||
    rm -f ${LIBNAME}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # make static lib
 | 
					 | 
				
			||||||
    ar ${OPTS} ${LIBNAME} ${OBJECTS}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # run ranlib
 | 
					 | 
				
			||||||
    if [ ${RANLIB} = 1 ] ; then
 | 
					 | 
				
			||||||
        ranlib ${LIBNAME}
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo ${LIBNAME}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Print usage info.
 | 
					 | 
				
			||||||
usage() {
 | 
					 | 
				
			||||||
    echo 'Usage: mklib [options] objects'
 | 
					 | 
				
			||||||
    echo 'Create a shared library from object files.'
 | 
					 | 
				
			||||||
    echo '  -o LIBRARY    specifies the name of the resulting library, without'
 | 
					 | 
				
			||||||
    echo '                the leading "lib" or any suffix.'
 | 
					 | 
				
			||||||
    echo '                (eg: "-o GL" might result in "libGL.so" being made)'
 | 
					 | 
				
			||||||
    echo '  -major N      specifies major version number (default is 1)'
 | 
					 | 
				
			||||||
    echo '  -minor N      specifies minor version number (default is 0)'
 | 
					 | 
				
			||||||
    echo '  -patch N      specifies patch version number (default is 0)'
 | 
					 | 
				
			||||||
    echo '  -lLIBRARY     specifies a dependency on LIBRARY'
 | 
					 | 
				
			||||||
    echo '  -LDIR         search in DIR for library dependencies at build time'
 | 
					 | 
				
			||||||
    echo '  -RDIR         search in DIR for library dependencies at run time'
 | 
					 | 
				
			||||||
    echo '  -linker L     explicity specify the linker program to use (eg: gcc, g++)'
 | 
					 | 
				
			||||||
    echo '                Not observed on all systems at this time.'
 | 
					 | 
				
			||||||
    echo '  -ldflags OPT  specify any additional linker flags in OPT'
 | 
					 | 
				
			||||||
    echo '  -cplusplus    link with C++ runtime'
 | 
					 | 
				
			||||||
    echo '  -static       make a static library (default is dynamic/shared)'
 | 
					 | 
				
			||||||
    echo '  -dlopen       make a shared library suitable for dynamic loading'
 | 
					 | 
				
			||||||
    echo '  -install DIR  put resulting library file(s) in DIR'
 | 
					 | 
				
			||||||
    echo '  -arch ARCH    override using `uname` to determine host system'
 | 
					 | 
				
			||||||
    echo '  -archopt OPT  specify an extra achitecture-specific option OPT'
 | 
					 | 
				
			||||||
    echo '  -altopts OPTS alternate options to override all others'
 | 
					 | 
				
			||||||
    echo "  -noprefix     don't prefix library name with 'lib' nor add any suffix"
 | 
					 | 
				
			||||||
    echo '  -exports FILE only export the symbols listed in FILE'
 | 
					 | 
				
			||||||
    echo '  -id NAME      Sets the id of the dylib (Darwin)'
 | 
					 | 
				
			||||||
    echo '  -h, --help    display this information and exit'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Option defaults
 | 
					# Option defaults
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
@@ -146,7 +43,7 @@ ARCH="auto"
 | 
				
			|||||||
ARCHOPT=""
 | 
					ARCHOPT=""
 | 
				
			||||||
NOPREFIX=0
 | 
					NOPREFIX=0
 | 
				
			||||||
EXPORTS=""
 | 
					EXPORTS=""
 | 
				
			||||||
ID=""
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Parse arguments
 | 
					# Parse arguments
 | 
				
			||||||
@@ -155,7 +52,29 @@ while true
 | 
				
			|||||||
do
 | 
					do
 | 
				
			||||||
    case $1 in
 | 
					    case $1 in
 | 
				
			||||||
	'-h' | '--help')
 | 
						'-h' | '--help')
 | 
				
			||||||
	    usage
 | 
						    echo 'Usage: mklib [options] objects'
 | 
				
			||||||
 | 
						    echo 'Create a shared library from object files.'
 | 
				
			||||||
 | 
						    echo '  -o LIBRARY    specifies the name of the resulting library, without'
 | 
				
			||||||
 | 
						    echo '                the leading "lib" or any suffix.'
 | 
				
			||||||
 | 
						    echo '                (eg: "-o GL" might result in "libGL.so" being made)'
 | 
				
			||||||
 | 
						    echo '  -major N      specifies major version number (default is 1)'
 | 
				
			||||||
 | 
						    echo '  -minor N      specifies minor version number (default is 0)'
 | 
				
			||||||
 | 
						    echo '  -patch N      specifies patch version number (default is 0)'
 | 
				
			||||||
 | 
						    echo '  -lLIBRARY     specifies a dependency on LIBRARY'
 | 
				
			||||||
 | 
						    echo '  -LDIR         search in DIR for library dependencies'
 | 
				
			||||||
 | 
						    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 '  -h, --help    display this information and exit'
 | 
				
			||||||
	    exit 1
 | 
						    exit 1
 | 
				
			||||||
	    ;;
 | 
						    ;;
 | 
				
			||||||
	'-o')
 | 
						'-o')
 | 
				
			||||||
@@ -188,12 +107,6 @@ do
 | 
				
			|||||||
	-L*)
 | 
						-L*)
 | 
				
			||||||
	    DEPS="$DEPS $1"
 | 
						    DEPS="$DEPS $1"
 | 
				
			||||||
	    ;;
 | 
						    ;;
 | 
				
			||||||
	-R*)
 | 
					 | 
				
			||||||
	    DEPS="$DEPS $1"
 | 
					 | 
				
			||||||
	    ;;
 | 
					 | 
				
			||||||
	-Wl*)
 | 
					 | 
				
			||||||
            DEPS="$DEPS $1"
 | 
					 | 
				
			||||||
            ;;
 | 
					 | 
				
			||||||
	-pthread)
 | 
						-pthread)
 | 
				
			||||||
	    # this is a special case (see bugzilla 10876)
 | 
						    # this is a special case (see bugzilla 10876)
 | 
				
			||||||
	    DEPS="$DEPS $1"
 | 
						    DEPS="$DEPS $1"
 | 
				
			||||||
@@ -233,10 +146,6 @@ do
 | 
				
			|||||||
	    shift 1;
 | 
						    shift 1;
 | 
				
			||||||
	    EXPORTS=$1
 | 
						    EXPORTS=$1
 | 
				
			||||||
	    ;;
 | 
						    ;;
 | 
				
			||||||
	'-id')
 | 
					 | 
				
			||||||
	    shift 1;
 | 
					 | 
				
			||||||
	    ID=$1
 | 
					 | 
				
			||||||
	    ;;
 | 
					 | 
				
			||||||
	-*)
 | 
						-*)
 | 
				
			||||||
	    echo "mklib: Unknown option: " $1 ;
 | 
						    echo "mklib: Unknown option: " $1 ;
 | 
				
			||||||
	    exit 1
 | 
						    exit 1
 | 
				
			||||||
@@ -255,32 +164,15 @@ if [ ${ARCH} = "auto" ] ; then
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ $STATIC = 1 ]; then
 | 
					 | 
				
			||||||
    # filter out linker options inside object list
 | 
					 | 
				
			||||||
    NEWOBJECTS=""
 | 
					 | 
				
			||||||
    for OBJ in $OBJECTS ; do
 | 
					 | 
				
			||||||
	case $OBJ in
 | 
					 | 
				
			||||||
	    -Wl,*)
 | 
					 | 
				
			||||||
		echo "mklib: warning: ignoring $OBJ for static library"
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	    *)
 | 
					 | 
				
			||||||
		NEWOBJECTS="$NEWOBJECTS $OBJ"
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	esac
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    OBJECTS=$NEWOBJECTS
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Error checking
 | 
					# Error checking
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
if [ "x${LIBNAME}" = "x" ] ; then
 | 
					if [ "x${LIBNAME}" = "x" ] ; then
 | 
				
			||||||
    echo "mklib: Error: no library name specified (-h for help)"
 | 
					    echo "mklib: Error: no library name specified"
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
if [ "x${OBJECTS}" = "x" ] ; then
 | 
					if [ "x${OBJECTS}" = "x" ] ; then
 | 
				
			||||||
    echo "mklib: Error: no object files specified (-h for help)"
 | 
					    echo "mklib: Error: no object files specified"
 | 
				
			||||||
    exit 1
 | 
					    exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -297,7 +189,6 @@ if [  ]  ; then
 | 
				
			|||||||
    echo PATCH is $PATCH
 | 
					    echo PATCH is $PATCH
 | 
				
			||||||
    echo DEPS are $DEPS
 | 
					    echo DEPS are $DEPS
 | 
				
			||||||
    echo "EXPORTS in" $EXPORTS
 | 
					    echo "EXPORTS in" $EXPORTS
 | 
				
			||||||
    echo ID is $ID
 | 
					 | 
				
			||||||
    echo "-----------------"
 | 
					    echo "-----------------"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -307,7 +198,7 @@ fi
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
case $ARCH in
 | 
					case $ARCH in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/* | 'NetBSD')
 | 
					    'Linux' | 'OpenBSD' | 'GNU' | GNU/*)
 | 
				
			||||||
	# we assume gcc
 | 
						# we assume gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ "x$LINK" = "x" ] ; then
 | 
						if [ "x$LINK" = "x" ] ; then
 | 
				
			||||||
@@ -348,24 +239,20 @@ case $ARCH in
 | 
				
			|||||||
            # finish up
 | 
					            # finish up
 | 
				
			||||||
            FINAL_LIBS="${LIBNAME}"
 | 
					            FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
        elif [ $STATIC = 1 ] ; then
 | 
					        elif [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    # make a static .a library
 | 
					 | 
				
			||||||
            LIBNAME="lib${LIBNAME}.a"     # prefix with "lib", suffix with ".a"
 | 
					            LIBNAME="lib${LIBNAME}.a"     # prefix with "lib", suffix with ".a"
 | 
				
			||||||
            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
 | 
					            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
            OPTS="-ru"
 | 
					            OPTS="-ru"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}
 | 
				
			||||||
	    # expand .a into .o files
 | 
					            # make lib
 | 
				
			||||||
	    NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
 | 
					            ${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
					            ranlib ${LIBNAME}
 | 
				
			||||||
            # make static lib
 | 
					            # finish up
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
 | 
					            FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	    # remove temporary extracted .o files
 | 
					 | 
				
			||||||
	    rm -rf ${LIBNAME}.obj
 | 
					 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
	    # make dynamic library
 | 
					 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
						    LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
				
			||||||
	    case $ARCH in 'Linux' | 'GNU' | GNU/*)
 | 
						    case $ARCH in 'Linux' | 'GNU' | GNU/*)
 | 
				
			||||||
		OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
 | 
							OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
 | 
				
			||||||
@@ -377,7 +264,7 @@ case $ARCH in
 | 
				
			|||||||
	    if [ $EXPORTS ] ; then
 | 
						    if [ $EXPORTS ] ; then
 | 
				
			||||||
		#OPTS="${OPTS} -Xlinker --retain-symbols-file ${EXPORTS}"
 | 
							#OPTS="${OPTS} -Xlinker --retain-symbols-file ${EXPORTS}"
 | 
				
			||||||
		# Make the 'exptmp' file for --version-script option
 | 
							# Make the 'exptmp' file for --version-script option
 | 
				
			||||||
		echo "{" > exptmp
 | 
							echo "VERSION_${MAJOR}.${MINOR} {" > exptmp
 | 
				
			||||||
		echo "global:" >> exptmp
 | 
							echo "global:" >> exptmp
 | 
				
			||||||
		sed 's/$/;/' ${EXPORTS} >> exptmp
 | 
							sed 's/$/;/' ${EXPORTS} >> exptmp
 | 
				
			||||||
		echo "local:" >> exptmp
 | 
							echo "local:" >> exptmp
 | 
				
			||||||
@@ -426,7 +313,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making SunOS static library: " ${LIBNAME}
 | 
						    echo "mklib: Making SunOS static library: " ${LIBNAME}
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib -ruc 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    if [ $NOPREFIX = 0 ] ; then
 | 
						    if [ $NOPREFIX = 0 ] ; then
 | 
				
			||||||
		LIBNAME="lib${LIBNAME}.so"
 | 
							LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
@@ -444,7 +333,7 @@ case $ARCH in
 | 
				
			|||||||
			# use g++
 | 
								# use g++
 | 
				
			||||||
			LINK="g++"
 | 
								LINK="g++"
 | 
				
			||||||
		    else
 | 
							    else
 | 
				
			||||||
			echo "mklib: warning: can't find C++ compiler, trying CC."
 | 
								echo "mklib: warning: can't find C++ comiler, trying CC."
 | 
				
			||||||
			LINK="CC"
 | 
								LINK="CC"
 | 
				
			||||||
		    fi
 | 
							    fi
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
@@ -470,58 +359,27 @@ case $ARCH in
 | 
				
			|||||||
		fi
 | 
							fi
 | 
				
			||||||
	    fi
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    # If using Sun C++ compiler, need to tell it not to add runpaths
 | 
						    # Check if objects are SPARC v9
 | 
				
			||||||
	    # that are specific to the build machine
 | 
					 | 
				
			||||||
	    if [ ${LINK} = "CC" ] ; then
 | 
					 | 
				
			||||||
		OPTS="${OPTS} -norunpath"
 | 
					 | 
				
			||||||
	    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    # Solaris linker requires explicitly listing the Standard C & C++
 | 
					 | 
				
			||||||
	    # libraries in the link path when building shared objects
 | 
					 | 
				
			||||||
	    if [ ${LINK} = "CC" ] ; then
 | 
					 | 
				
			||||||
		DEPS="${DEPS} -lCrun"
 | 
					 | 
				
			||||||
	    fi
 | 
					 | 
				
			||||||
	    DEPS="${DEPS} -lc"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    if [ $EXPORTS ] ; then
 | 
					 | 
				
			||||||
		# Make the 'mapfile.scope' linker mapfile
 | 
					 | 
				
			||||||
		echo "{" > mapfile.scope
 | 
					 | 
				
			||||||
		echo "global:" >> mapfile.scope
 | 
					 | 
				
			||||||
		sed 's/$/;/' ${EXPORTS} >> mapfile.scope
 | 
					 | 
				
			||||||
		echo "local:" >> mapfile.scope
 | 
					 | 
				
			||||||
		echo "    *;" >> mapfile.scope
 | 
					 | 
				
			||||||
		echo "};" >> mapfile.scope
 | 
					 | 
				
			||||||
		OPTS="${OPTS} -Wl,-Mmapfile.scope"
 | 
					 | 
				
			||||||
	    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    # Check if objects are 64-bit
 | 
					 | 
				
			||||||
	    # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1
 | 
						    # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1
 | 
				
			||||||
	    set ${OBJECTS}
 | 
						    set ${OBJECTS}
 | 
				
			||||||
	    if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then
 | 
						    SPARCV9=`file $1 | grep SPARCV9`
 | 
				
			||||||
		ABI64=`file $1 | grep "ELF 64-bit"`
 | 
						    if [ "${SPARCV9}" ] ; then
 | 
				
			||||||
		if [ "${ABI64}" ] ; then
 | 
							OPTS="${OPTS} -xarch=v9"
 | 
				
			||||||
		    case `uname -p` in
 | 
					 | 
				
			||||||
			sparc)	    OPTS="${OPTS} -xarch=v9" ;;
 | 
					 | 
				
			||||||
			i386)	    OPTS="${OPTS} -xarch=amd64" ;;
 | 
					 | 
				
			||||||
		    esac
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	    fi
 | 
						    fi
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					 | 
				
			||||||
	    # for debug:
 | 
						    # for debug:
 | 
				
			||||||
	    #echo "mklib: linker is" ${LINK} ${OPTS}
 | 
						    #echo "mklib: linker is" ${LINK} ${OPTS}
 | 
				
			||||||
	    if [ $NOPREFIX = 1 ] ; then
 | 
						    if [ $NOPREFIX = 1 ] ; then
 | 
				
			||||||
		rm -f ${LIBNAME}
 | 
							rm -f ${LIBNAME}
 | 
				
			||||||
		${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
							${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
		FINAL_LIBS="${LIBNAME}"
 | 
					 | 
				
			||||||
	    else
 | 
						    else
 | 
				
			||||||
		rm -f ${LIBNAME}.${MAJOR} ${LIBNAME}
 | 
							rm -f ${LIBNAME}.${MAJOR} ${LIBNAME}
 | 
				
			||||||
		${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME}.${MAJOR} -h ${LIBNAME}.${MAJOR} ${OBJECTS} ${DEPS}
 | 
							${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME}.${MAJOR} ${OBJECTS} ${DEPS}
 | 
				
			||||||
		ln -s ${LIBNAME}.${MAJOR} ${LIBNAME}
 | 
							ln -s ${LIBNAME}.${MAJOR} ${LIBNAME}
 | 
				
			||||||
		FINAL_LIBS="${LIBNAME}.${MAJOR} ${LIBNAME}"
 | 
					 | 
				
			||||||
	    fi
 | 
						    fi
 | 
				
			||||||
 | 
						    FINAL_LIBS="${LIBNAME}.${MAJOR} ${LIBNAME}"
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -548,19 +406,13 @@ case $ARCH in
 | 
				
			|||||||
	    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
						    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
	    FINAL_LIBS=${LIBNAME}
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
        elif [ $STATIC = 1 ] ; then
 | 
					        elif [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    # make a static .a library
 | 
					 | 
				
			||||||
	    STLIB="lib${LIBNAME}.a"
 | 
						    STLIB="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making FreeBSD static library: " ${STLIB}
 | 
						    echo "mklib: Making FreeBSD static library: " ${STLIB}
 | 
				
			||||||
 | 
						    rm -f ${STLIB}
 | 
				
			||||||
	    # expand .a into .o files
 | 
						    ar cq ${STLIB} ${OBJECTS}
 | 
				
			||||||
	    NEW_OBJECTS=`expand_archives ${STLIB}.obj $OBJECTS`
 | 
						    ranlib ${STLIB}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${STLIB}
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib cq 1 ${STLIB} ${NEW_OBJECTS}`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    # remove temporary extracted .o files
 | 
					 | 
				
			||||||
	    rm -rf ${STLIB}.obj
 | 
					 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    # make dynamic library
 | 
					 | 
				
			||||||
	    SHLIB="lib${LIBNAME}.so.${MAJOR}"
 | 
						    SHLIB="lib${LIBNAME}.so.${MAJOR}"
 | 
				
			||||||
	    OPTS="-shared -Wl,-soname,${SHLIB}"
 | 
						    OPTS="-shared -Wl,-soname,${SHLIB}"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
@@ -574,10 +426,29 @@ case $ARCH in
 | 
				
			|||||||
	fi
 | 
						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')
 | 
					    'IRIX' | 'IRIX64')
 | 
				
			||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    FINAL_LIBS=`make_ar_static_lib rc 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar rc ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -628,7 +499,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making HP-UX static library: " ${LIBNAME}
 | 
						    echo "mklib: Making HP-UX static library: " ${LIBNAME}
 | 
				
			||||||
    	    FINAL_LIBS=`make_ar_static_lib -ruv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
            # HP uses a .2 for their current GL/GLU libraries
 | 
					            # HP uses a .2 for their current GL/GLU libraries
 | 
				
			||||||
	    if [ ${LIBNAME} = "GL" -o ${LIBNAME} = "GLU" ] ; then
 | 
						    if [ ${LIBNAME} = "GL" -o ${LIBNAME} = "GLU" ] ; then
 | 
				
			||||||
@@ -658,7 +531,8 @@ case $ARCH in
 | 
				
			|||||||
	if [ $STATIC = 1 ] ; then
 | 
						if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making AIX static library: " ${LIBNAME}
 | 
						    echo "mklib: Making AIX static library: " ${LIBNAME}
 | 
				
			||||||
    	    FINAL_LIBS=`make_ar_static_lib -ruv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    ar -ruv ${X64} ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    EXPFILE="lib${LIBNAME}.exp"
 | 
						    EXPFILE="lib${LIBNAME}.exp"
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"  # shared objects are still stored in the .a libraries
 | 
						    LIBNAME="lib${LIBNAME}.a"  # shared objects are still stored in the .a libraries
 | 
				
			||||||
@@ -709,7 +583,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making OSF/1 static library: " ${LIBNAME}
 | 
						    echo "mklib: Making OSF/1 static library: " ${LIBNAME}
 | 
				
			||||||
    	    FINAL_LIBS=`make_ar_static_lib -ruv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    VERSION="${MAJOR}.${MINOR}"
 | 
						    VERSION="${MAJOR}.${MINOR}"
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"
 | 
						    LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
@@ -732,20 +608,12 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
            LIBNAME="lib${LIBNAME}.a"
 | 
					            LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
            echo "mklib: Making Darwin static library: " ${LIBNAME}
 | 
					            echo "mklib: Making Darwin static library: " ${LIBNAME}
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
            OPTS="-ruvs"
 | 
					            OPTS="-ruvs"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
            # expand .a into .o files
 | 
					 | 
				
			||||||
            NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # make static lib
 | 
					 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # remove temporary extracted .o files
 | 
					 | 
				
			||||||
            rm -rf ${LIBNAME}.obj
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            FINAL_LIBS=${LIBNAME}
 | 
					            FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            # On Darwin a .bundle is used for a library that you want to dlopen
 | 
					            # On Darwin a .bundle is used for a library that you want to dlopen
 | 
				
			||||||
@@ -753,34 +621,44 @@ case $ARCH in
 | 
				
			|||||||
                LIBSUFFIX="bundle"
 | 
					                LIBSUFFIX="bundle"
 | 
				
			||||||
                OPTS="${ARCHOPT} -bundle -multiply_defined suppress"
 | 
					                OPTS="${ARCHOPT} -bundle -multiply_defined suppress"
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                LIBSUFFIX="dylib"
 | 
							LIBSUFFIX="dylib"
 | 
				
			||||||
                if [ -z "$ID" ] ; then
 | 
					                OPTS="${ARCHOPT} -dynamiclib -multiply_defined suppress -current_version ${MAJOR}.${MINOR}.0 -compatibility_version ${MAJOR}.${MINOR}.0 -install_name lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
 | 
				
			||||||
                    ID="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
 | 
					 | 
				
			||||||
                fi
 | 
					 | 
				
			||||||
                OPTS="${ARCHOPT} -dynamiclib -multiply_defined suppress -current_version ${MAJOR}.${MINOR}.0 -compatibility_version ${MAJOR}.${MINOR}.0 -install_name ${ID}"
 | 
					 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if [ ${EXPORTS} ] ; then
 | 
					            if [ ${EXPORTS} ] ; then
 | 
				
			||||||
                if [ -f ${EXPORTS}".darwin" ] ; then
 | 
					 | 
				
			||||||
                    EXPORTS=$EXPORTS".darwin"
 | 
					 | 
				
			||||||
                fi
 | 
					 | 
				
			||||||
                OPTS="${OPTS} -exported_symbols_list ${EXPORTS}"
 | 
					                OPTS="${OPTS} -exported_symbols_list ${EXPORTS}"
 | 
				
			||||||
            fi
 | 
					            fi 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LINKNAME="lib${LIBNAME}.${LIBSUFFIX}"
 | 
					            LINKNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
 | 
				
			||||||
            LIBNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
 | 
					            LINKNAME2="lib${LIBNAME}.${LIBSUFFIX}"
 | 
				
			||||||
 | 
					            LIBNAME="lib${LIBNAME}.${MAJOR}.${MINOR}.${LIBSUFFIX}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    # examine first object to determine ABI
 | 
						    # examine first object to determine ABI
 | 
				
			||||||
    	    set ${OBJECTS}
 | 
					    	    set ${OBJECTS}
 | 
				
			||||||
            ABIS=`lipo -info $1 | sed s/.*://`
 | 
					            ABI_PPC=`file $1 | grep ' ppc'`
 | 
				
			||||||
            for ABI in $ABIS; do
 | 
					            ABI_I386=`file $1 | grep ' i386'`
 | 
				
			||||||
                OPTS="${OPTS} -arch ${ABI}"
 | 
					            ABI_PPC64=`file $1 | grep ' ppc64'`
 | 
				
			||||||
            done
 | 
					            ABI_X86_64=`file $1 | grep ' x86_64'`
 | 
				
			||||||
 | 
					            if [ "${ABI_PPC}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch ppc"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_I386}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch i386"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_PPC64}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch ppc64"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_X86_64}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch x86_64"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # XXX can we always add -isysroot /Developer/SDKs/MacOSX10.4u.sdk
 | 
				
			||||||
 | 
						    # to OPTS here?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    # determine linker
 | 
						    # determine linker
 | 
				
			||||||
	    if [ $CPLUSPLUS = 1 ] ; then
 | 
						    if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
		LINK="g++"
 | 
							LINK="g++"
 | 
				
			||||||
@@ -792,21 +670,24 @@ case $ARCH in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
            ln -s ${LIBNAME} ${LINKNAME}
 | 
					            ln -s ${LIBNAME} ${LINKNAME}
 | 
				
			||||||
            FINAL_LIBS="${LIBNAME} ${LINKNAME}"
 | 
					            ln -s ${LIBNAME} ${LINKNAME2}
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME} ${LINKNAME} ${LINKNAME2}"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'LynxOS')
 | 
					    'LynxOS')
 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	echo "mklib: Making LynxOS static library: " ${LIBNAME}
 | 
						echo "mklib: Making LynxOS static library: " ${LIBNAME}
 | 
				
			||||||
        FINAL_LIBS=`make_ar_static_lib -ru 0 ${LIBNAME} ${OBJECTS}`
 | 
						rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'BeOS')
 | 
					    'BeOS')
 | 
				
			||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
            LIBNAME="lib${LIBNAME}.a"
 | 
					            LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
            echo "mklib: Making BeOS static library: " ${LIBNAME}
 | 
					            echo "mklib: Making BeOS static library: " ${LIBNAME}
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib -cru 0 ${LIBNAME} ${OBJECTS}`
 | 
					            ar -cru "${LIBNAME}" ${OBJECTS}
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"
 | 
						    LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
	    echo "mklib: Making BeOS shared library: " ${LIBNAME}
 | 
						    echo "mklib: Making BeOS shared library: " ${LIBNAME}
 | 
				
			||||||
@@ -885,7 +766,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making AIX GCC static library: " ${LIBNAME}
 | 
						    echo "mklib: Making AIX GCC static library: " ${LIBNAME}
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib ru 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
	    echo "mklib: Making AIX GCC shared library: " ${LIBNAME}
 | 
						    echo "mklib: Making AIX GCC shared library: " ${LIBNAME}
 | 
				
			||||||
@@ -906,65 +789,48 @@ case $ARCH in
 | 
				
			|||||||
	fi
 | 
						fi
 | 
				
			||||||
	LIBNAME="lib${LIBNAME}.a"
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	echo "mklib: Making static library for Ultrix: " ${LIBNAME}
 | 
						echo "mklib: Making static library for Ultrix: " ${LIBNAME}
 | 
				
			||||||
        FINAL_LIBS=`make_ar_static_lib ru 0 ${LIBNAME} ${OBJECTS}`
 | 
						rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     CYGWIN*)
 | 
					     CYGWIN*)
 | 
				
			||||||
	# GCC-based environment
 | 
						# GCC-based environment
 | 
				
			||||||
 | 
					 | 
				
			||||||
	if [ "x$LINK" = "x" ] ; then
 | 
					 | 
				
			||||||
	    # -linker was not specified so set default link command now
 | 
					 | 
				
			||||||
            if [ $CPLUSPLUS = 1 ] ; then
 | 
					 | 
				
			||||||
                LINK=g++
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
                LINK=gcc
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if [ $NOPREFIX = 1 ] ; then
 | 
					 | 
				
			||||||
	    # No "lib" or ".so" part
 | 
					 | 
				
			||||||
	    echo "mklib: Making CYGWIN shared library: " ${LIBNAME}
 | 
					 | 
				
			||||||
	    OPTS="-shared -Wl,--enable-auto-image-base"
 | 
					 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					 | 
				
			||||||
            fi
 | 
					 | 
				
			||||||
	    rm -f ${LIBNAME}
 | 
					 | 
				
			||||||
	    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} || exit $?
 | 
					 | 
				
			||||||
	    FINAL_LIBS=${LIBNAME}
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
	CYGNAME="cyg${LIBNAME}"     # prefix with "cyg"
 | 
						CYGNAME="cyg${LIBNAME}"     # prefix with "cyg"
 | 
				
			||||||
	LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
						LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME=${LIBNAME}.a
 | 
					            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a
 | 
				
			||||||
            echo "mklib: Making CYGWIN static library: " ${LIBNAME}
 | 
					            LINK="ar"
 | 
				
			||||||
            OPTS="-ru"
 | 
					            OPTS="-ru"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
            # expand .a into .o files
 | 
					            ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS}
 | 
				
			||||||
            NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
 | 
						    ranlib ${LIBNAME}.a
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
 | 
					            FINAL_LIBS=${LIBNAME}.a
 | 
				
			||||||
 | 
					 | 
				
			||||||
            # remove temporary extracted .o files
 | 
					 | 
				
			||||||
            rm -rf ${LIBNAME}.obj
 | 
					 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
	    OPTS="-shared -Wl,--enable-auto-image-base -Wl,-export-all -Wl,--out-implib=${LIBNAME}-${MAJOR}.dll.a"
 | 
						    OPTS="-shared -Wl,-export-all -Wl,--out-implib=${LIBNAME}-${MAJOR}.dll.a"
 | 
				
			||||||
            if [ "${ALTOPTS}" ] ; then
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
                OPTS=${ALTOPTS}
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            echo "mklib: Making CYGWIN shared library: " ${CYGNAME}-${MAJOR}.dll
 | 
					            echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}-${MAJOR}.dll
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
					                LINK="g++"
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                LINK="gcc"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # rm any old libs
 | 
					            # rm any old libs
 | 
				
			||||||
            rm -f ${CYGNAME}-${MAJOR}.dll
 | 
					            rm -f ${LIBNAME}-${MAJOR}.dll
 | 
				
			||||||
            rm -f ${LIBNAME}-${MAJOR}.dll.a
 | 
					 | 
				
			||||||
            rm -f ${LIBNAME}.dll.a
 | 
					            rm -f ${LIBNAME}.dll.a
 | 
				
			||||||
            rm -f ${LIBNAME}.a
 | 
					            rm -f ${LIBNAME}.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # make lib
 | 
					            # make lib
 | 
				
			||||||
            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} || exit $?
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS}
 | 
				
			||||||
            # make usual symlinks
 | 
					            # make usual symlinks
 | 
				
			||||||
            ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
 | 
					            ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
 | 
				
			||||||
            # finish up
 | 
					            # finish up
 | 
				
			||||||
@@ -972,7 +838,6 @@ case $ARCH in
 | 
				
			|||||||
	    # special case for installing in bin
 | 
						    # special case for installing in bin
 | 
				
			||||||
            FINAL_BINS="${CYGNAME}-${MAJOR}.dll"
 | 
					            FINAL_BINS="${CYGNAME}-${MAJOR}.dll"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'example')
 | 
					    'example')
 | 
				
			||||||
@@ -981,7 +846,9 @@ case $ARCH in
 | 
				
			|||||||
        if [ $STATIC = 1 ] ; then
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.a"
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
	    echo "mklib: Making static library for example arch: " ${LIBNAME}
 | 
						    echo "mklib: Making static library for example arch: " ${LIBNAME}
 | 
				
			||||||
            FINAL_LIBS=`make_ar_static_lib rv 0 ${LIBNAME} ${OBJECTS}`
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar rv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
	    echo "mklib: Making shared library for example arch: " ${LIBNAME}
 | 
						    echo "mklib: Making shared library for example arch: " ${LIBNAME}
 | 
				
			||||||
@@ -1002,11 +869,5 @@ esac
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
if [ ${INSTALLDIR} != "." ] ; then
 | 
					if [ ${INSTALLDIR} != "." ] ; then
 | 
				
			||||||
    echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
 | 
					    echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
 | 
				
			||||||
    test -d ${INSTALLDIR} || mkdir -p ${INSTALLDIR}
 | 
					 | 
				
			||||||
    mv ${FINAL_LIBS} ${INSTALLDIR}/
 | 
					    mv ${FINAL_LIBS} ${INSTALLDIR}/
 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ "x${FINAL_BINS}" != "x" ] ; then
 | 
					 | 
				
			||||||
        echo "mklib: Installing" ${FINAL_BINS} "in" ${INSTALLDIR}
 | 
					 | 
				
			||||||
        mv ${FINAL_BINS} ${INSTALLDIR}/
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,17 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/make -sf
 | 
					 | 
				
			||||||
# Print the various Mesa version fields. This is mostly used to add the
 | 
					 | 
				
			||||||
# version to configure.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This reflects that this script is usually called from the toplevel
 | 
					 | 
				
			||||||
TOP = .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/default
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
version:
 | 
					 | 
				
			||||||
	@echo $(MESA_VERSION)
 | 
					 | 
				
			||||||
major:
 | 
					 | 
				
			||||||
	@echo $(MESA_MAJOR)
 | 
					 | 
				
			||||||
minor:
 | 
					 | 
				
			||||||
	@echo $(MESA_MINOR)
 | 
					 | 
				
			||||||
tiny:
 | 
					 | 
				
			||||||
	@echo $(MESA_TINY)
 | 
					 | 
				
			||||||
							
								
								
									
										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')))
 | 
					 | 
				
			||||||
							
								
								
									
										1
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,2 +1 @@
 | 
				
			|||||||
current
 | 
					current
 | 
				
			||||||
autoconf
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,233 +0,0 @@
 | 
				
			|||||||
# Autoconf configuration
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Pull in the defaults
 | 
					 | 
				
			||||||
include $(TOP)/configs/default
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This is generated by configure
 | 
					 | 
				
			||||||
CONFIG_NAME = autoconf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Compiler and flags
 | 
					 | 
				
			||||||
CC = @CC@
 | 
					 | 
				
			||||||
CXX = @CXX@
 | 
					 | 
				
			||||||
OPT_FLAGS = @OPT_FLAGS@
 | 
					 | 
				
			||||||
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@ \
 | 
					 | 
				
			||||||
	$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
 | 
					 | 
				
			||||||
CXXFLAGS_NOVISIBILITY = @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@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Misc tools and flags
 | 
					 | 
				
			||||||
MAKE = @MAKE@
 | 
					 | 
				
			||||||
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@
 | 
					 | 
				
			||||||
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@
 | 
					 | 
				
			||||||
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)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Dependencies
 | 
					 | 
				
			||||||
X11_INCLUDES = @X11_INCLUDES@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# GLw motif setup
 | 
					 | 
				
			||||||
GLW_SOURCES = @GLW_SOURCES@
 | 
					 | 
				
			||||||
MOTIF_CFLAGS = @MOTIF_CFLAGS@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Library/program dependencies
 | 
					 | 
				
			||||||
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@ \
 | 
					 | 
				
			||||||
	$(EXTRA_LIB_PATH) @GLUT_LIB_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
 | 
					 | 
				
			||||||
prefix = @prefix@
 | 
					 | 
				
			||||||
exec_prefix = @exec_prefix@
 | 
					 | 
				
			||||||
libdir = @libdir@
 | 
					 | 
				
			||||||
includedir = @includedir@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Installation directories (for make install)
 | 
					 | 
				
			||||||
INSTALL_DIR = $(prefix)
 | 
					 | 
				
			||||||
INSTALL_LIB_DIR = $(libdir)
 | 
					 | 
				
			||||||
INSTALL_INC_DIR = $(includedir)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# DRI installation directories
 | 
					 | 
				
			||||||
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@
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# pkg-config substitutions
 | 
					 | 
				
			||||||
GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@
 | 
					 | 
				
			||||||
GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@
 | 
					 | 
				
			||||||
GL_PC_CFLAGS = @GL_PC_CFLAGS@
 | 
					 | 
				
			||||||
DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@
 | 
					 | 
				
			||||||
GLU_PC_REQ = @GLU_PC_REQ@
 | 
					 | 
				
			||||||
GLU_PC_REQ_PRIV = @GLU_PC_REQ_PRIV@
 | 
					 | 
				
			||||||
GLU_PC_LIB_PRIV = @GLU_PC_LIB_PRIV@
 | 
					 | 
				
			||||||
GLU_PC_CFLAGS = @GLU_PC_CFLAGS@
 | 
					 | 
				
			||||||
GLUT_PC_REQ_PRIV = @GLUT_PC_REQ_PRIV@
 | 
					 | 
				
			||||||
GLUT_PC_LIB_PRIV = @GLUT_PC_LIB_PRIV@
 | 
					 | 
				
			||||||
GLUT_PC_CFLAGS = @GLUT_PC_CFLAGS@
 | 
					 | 
				
			||||||
GLW_PC_REQ_PRIV = @GLW_PC_REQ_PRIV@
 | 
					 | 
				
			||||||
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_3DNOW_ASM \
 | 
				
			||||||
		-DUSE_SSE_ASM
 | 
							-DUSE_SSE_ASM
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
						ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
	GLAPI_ASM_SOURCES = $(X86_API)
 | 
						ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CC = gcc
 | 
						CC = gcc
 | 
				
			||||||
	CXX = g++
 | 
						CXX = g++
 | 
				
			||||||
@@ -90,9 +90,10 @@ else
 | 
				
			|||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = gallium mesa glu glut/beos
 | 
					SRC_DIRS = mesa glu glut/beos
 | 
				
			||||||
GLU_DIRS = sgi
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
DRIVER_DIRS = beos
 | 
					DRIVER_DIRS = beos
 | 
				
			||||||
 | 
					PROGRAM_DIRS = beos samples redbook demos tests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
GL_LIB_DEPS = 
 | 
					GL_LIB_DEPS = 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			|||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,6 +20,7 @@ OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			|||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,6 +23,7 @@ OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			|||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,42 +0,0 @@
 | 
				
			|||||||
# MinGW config include file 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) Although more tests are needed, it can be used individually!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# The generated DLLs by MingW with STDCALL are not totally compatible 
 | 
					 | 
				
			||||||
# with the ones linked by Microsoft's compilers.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# xxx_USING_STDCALL = 1          Compiling MESA with __stdcall. This is default!
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# xxx_USING_STDCALL = 0          Compiling MESA without __stdcall. I like this:)
 | 
					 | 
				
			||||||
#  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# In fact, GL_USING_STDCALL and GLUT_USING_STDCALL can be
 | 
					 | 
				
			||||||
# different. For example:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   GL_USING_STDCALL = 0
 | 
					 | 
				
			||||||
#   GLUT_USING_STDCALL = 1
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# Suggested setting:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#     ALL_USING_STDCALL = 1
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# That's default!
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ALL_USING_STDCALL = 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(ALL_USING_STDCALL),1)
 | 
					 | 
				
			||||||
  GL_USING_STDCALL = 1
 | 
					 | 
				
			||||||
  GLUT_USING_STDCALL = 1
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  GL_USING_STDCALL = 0
 | 
					 | 
				
			||||||
  GLUT_USING_STDCALL = 0
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
@@ -4,60 +4,37 @@ include $(TOP)/configs/default
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = darwin
 | 
					CONFIG_NAME = darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSTALL_DIR = /usr/X11
 | 
					DEFINES = -D_DARWIN_C_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L \
 | 
				
			||||||
 | 
						  -D_SVID_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE \
 | 
				
			||||||
X11_DIR = $(INSTALL_DIR)
 | 
						  -DPTHREADS -DGLX_ALIAS_UNSUPPORTED -DGLX_INDIRECT_RENDERING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Compiler and flags
 | 
					# Compiler and flags
 | 
				
			||||||
CC = gcc
 | 
					CC = gcc
 | 
				
			||||||
CXX = g++
 | 
					CXX = gcc
 | 
				
			||||||
PIC_FLAGS = -fPIC
 | 
					CFLAGS = -I/usr/X11/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin $(DEFINES)
 | 
				
			||||||
DEFINES =  -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \
 | 
					CXXFLAGS = -I/usr/X11/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin $(DEFINES)
 | 
				
			||||||
	   -DGLX_ALIAS_UNSUPPORTED \
 | 
					 | 
				
			||||||
	   -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# -DGLX_INDIRECT_RENDERING \
 | 
					CFLAGS += $(RC_CFLAGS)
 | 
				
			||||||
 | 
					CXXFLAGS += $(RC_CFLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# -D_GNU_SOURCE          - for src/mesa/main ...
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
# -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
# -DGLX_USE_APPLEGL      - supposed to be used with GLX_DIRECT_RENDERING to use AGL rather than DRM, but doesn't compile
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
# -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)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library names (actual file names)
 | 
					# Library names (actual file names)
 | 
				
			||||||
GL_LIB_NAME = lib$(GL_LIB).dylib
 | 
					GL_LIB_NAME = libGL.dylib
 | 
				
			||||||
GLU_LIB_NAME = lib$(GLU_LIB).dylib
 | 
					GLU_LIB_NAME = libGLU.dylib
 | 
				
			||||||
GLUT_LIB_NAME = lib$(GLUT_LIB).dylib
 | 
					GLUT_LIB_NAME = libglut.dylib
 | 
				
			||||||
GLW_LIB_NAME = lib$(GLW_LIB).dylib
 | 
					GLW_LIB_NAME = libGLw.dylib
 | 
				
			||||||
OSMESA_LIB_NAME = lib$(OSMESA_LIB).dylib
 | 
					OSMESA_LIB_NAME = libOSMesa.dylib
 | 
				
			||||||
VG_LIB_NAME = lib$(VG_LIB).dylib
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# globs used to install the lib and all symlinks
 | 
					GL_LIB_DEPS = -L/usr/X11/lib -lX11 -lXext -lm -lpthread
 | 
				
			||||||
GL_LIB_GLOB = lib$(GL_LIB).*dylib
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
 | 
				
			||||||
GLU_LIB_GLOB = lib$(GLU_LIB).*dylib
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
 | 
				
			||||||
GLUT_LIB_GLOB = lib$(GLUT_LIB).*dylib
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
 | 
				
			||||||
GLW_LIB_GLOB = lib$(GLW_LIB).*dylib
 | 
					GLW_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXt $(TOP)/lib/GL.dylib
 | 
				
			||||||
OSMESA_LIB_GLOB = lib$(OSMESA_LIB).*dylib
 | 
					APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
VG_LIB_GLOB = lib$(VG_LIB).*dylib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread
 | 
					 | 
				
			||||||
OSMESA_LIB_DEPS =
 | 
					 | 
				
			||||||
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
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# omit glw lib for now:
 | 
					# omit glw lib for now:
 | 
				
			||||||
SRC_DIRS = glsl mapi/glapi mapi/vgapi glx/apple mesa gallium glu glut/glx
 | 
					SRC_DIRS = glx/x11 glu glut/glx mesa
 | 
				
			||||||
GLU_DIRS = sgi
 | 
					 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
#DRIVER_DIRS = dri
 | 
					 | 
				
			||||||
DRI_DIRS = swrast
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad failover
 | 
					 | 
				
			||||||
#GALLIUM_DRIVERS_DIRS += llvmpipe
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								configs/darwin-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								configs/darwin-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					# Configuration for Darwin / MacOS X, making static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = darwin-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CFLAGS = -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
 | 
				
			||||||
 | 
					CXXFLAGS = -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL_LIB_DEPS =
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = 
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = 
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = 
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -Wl,-search_paths_first -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lstdc++ -lgcc_s.1 -lm
 | 
				
			||||||
							
								
								
									
										30
									
								
								configs/darwin-static-x86ppc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								configs/darwin-static-x86ppc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					# Configuration for Darwin / MacOS X, making static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = darwin-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CFLAGS = -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
 | 
				
			||||||
 | 
					         -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
 | 
				
			||||||
 | 
					CXXFLAGS = -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
 | 
				
			||||||
 | 
					           -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static -archopt "-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL_LIB_DEPS =
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = 
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = 
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = 
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -Wl,-search_paths_first -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lstdc++ -lgcc_s.1 -lm
 | 
				
			||||||
							
								
								
									
										144
									
								
								configs/default
									
									
									
									
									
								
							
							
						
						
									
										144
									
								
								configs/default
									
									
									
									
									
								
							@@ -9,9 +9,8 @@ CONFIG_NAME = default
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Version info
 | 
					# Version info
 | 
				
			||||||
MESA_MAJOR=7
 | 
					MESA_MAJOR=7
 | 
				
			||||||
MESA_MINOR=11
 | 
					MESA_MINOR=0
 | 
				
			||||||
MESA_TINY=0
 | 
					MESA_TINY=3
 | 
				
			||||||
MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# external projects.  This should be useless now that we use libdrm.
 | 
					# external projects.  This should be useless now that we use libdrm.
 | 
				
			||||||
DRM_SOURCE_PATH=$(TOP)/../drm
 | 
					DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			||||||
@@ -19,31 +18,17 @@ DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			|||||||
# Compiler and flags
 | 
					# Compiler and flags
 | 
				
			||||||
CC = cc
 | 
					CC = cc
 | 
				
			||||||
CXX = CC
 | 
					CXX = CC
 | 
				
			||||||
HOST_CC = $(CC)
 | 
					 | 
				
			||||||
CFLAGS = -O
 | 
					CFLAGS = -O
 | 
				
			||||||
CXXFLAGS = -O
 | 
					CXXFLAGS = -O
 | 
				
			||||||
LDFLAGS =
 | 
					LDFLAGS =
 | 
				
			||||||
HOST_CFLAGS = $(CFLAGS)
 | 
					 | 
				
			||||||
GLU_CFLAGS = 
 | 
					GLU_CFLAGS = 
 | 
				
			||||||
GLX_TLS = no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Compiler for building demos/tests/etc
 | 
					 | 
				
			||||||
APP_CC = $(CC)
 | 
					 | 
				
			||||||
APP_CXX = $(CXX)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Misc tools and flags
 | 
					# Misc tools and flags
 | 
				
			||||||
SHELL = /bin/sh
 | 
					 | 
				
			||||||
MKLIB = $(SHELL) $(TOP)/bin/mklib
 | 
					 | 
				
			||||||
MKLIB_OPTIONS = 
 | 
					MKLIB_OPTIONS = 
 | 
				
			||||||
MKDEP = makedepend
 | 
					MKDEP = makedepend
 | 
				
			||||||
MKDEP_OPTIONS = -fdepend
 | 
					MKDEP_OPTIONS = -fdepend
 | 
				
			||||||
MAKE = make
 | 
					MAKE = make
 | 
				
			||||||
FLEX = flex
 | 
					INSTALL = $(TOP)/bin/minstall
 | 
				
			||||||
BISON = bison
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Use MINSTALL for installing libraries, INSTALL for everything else
 | 
					 | 
				
			||||||
MINSTALL = $(SHELL) $(TOP)/bin/minstall
 | 
					 | 
				
			||||||
INSTALL = $(MINSTALL)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Tools for regenerating glapi (generally only needed by the developers)
 | 
					# Tools for regenerating glapi (generally only needed by the developers)
 | 
				
			||||||
PYTHON2 = python
 | 
					PYTHON2 = python
 | 
				
			||||||
@@ -57,13 +42,7 @@ GLU_LIB = GLU
 | 
				
			|||||||
GLUT_LIB = glut
 | 
					GLUT_LIB = glut
 | 
				
			||||||
GLW_LIB = GLw
 | 
					GLW_LIB = GLw
 | 
				
			||||||
OSMESA_LIB = OSMesa
 | 
					OSMESA_LIB = OSMesa
 | 
				
			||||||
EGL_LIB = EGL
 | 
					
 | 
				
			||||||
GLESv1_CM_LIB = GLESv1_CM
 | 
					 | 
				
			||||||
GLESv2_LIB = GLESv2
 | 
					 | 
				
			||||||
VG_LIB = OpenVG
 | 
					 | 
				
			||||||
GLAPI_LIB = glapi
 | 
					 | 
				
			||||||
WAYLAND_EGL_LIB = wayland-egl
 | 
					 | 
				
			||||||
GBM_LIB = gbm
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library names (actual file names)
 | 
					# Library names (actual file names)
 | 
				
			||||||
GL_LIB_NAME = lib$(GL_LIB).so
 | 
					GL_LIB_NAME = lib$(GL_LIB).so
 | 
				
			||||||
@@ -71,135 +50,42 @@ GLU_LIB_NAME = lib$(GLU_LIB).so
 | 
				
			|||||||
GLUT_LIB_NAME = lib$(GLUT_LIB).so
 | 
					GLUT_LIB_NAME = lib$(GLUT_LIB).so
 | 
				
			||||||
GLW_LIB_NAME = lib$(GLW_LIB).so
 | 
					GLW_LIB_NAME = lib$(GLW_LIB).so
 | 
				
			||||||
OSMESA_LIB_NAME = lib$(OSMESA_LIB).so
 | 
					OSMESA_LIB_NAME = lib$(OSMESA_LIB).so
 | 
				
			||||||
EGL_LIB_NAME = lib$(EGL_LIB).so
 | 
					 | 
				
			||||||
GLESv1_CM_LIB_NAME = lib$(GLESv1_CM_LIB).so
 | 
					 | 
				
			||||||
GLESv2_LIB_NAME = lib$(GLESv2_LIB).so
 | 
					 | 
				
			||||||
VG_LIB_NAME = lib$(VG_LIB).so
 | 
					 | 
				
			||||||
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)*
 | 
					 | 
				
			||||||
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
 | 
					# Optional assembly language optimization files for libGL
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in
 | 
					# GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in
 | 
				
			||||||
# order to build the Motif widget too)
 | 
					# order to build the Motif widget too)
 | 
				
			||||||
GLW_SOURCES = GLwDrawA.c
 | 
					GLW_SOURCES = GLwDrawA.c
 | 
				
			||||||
MOTIF_CFLAGS = -I/usr/include/Motif1.2
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories to build
 | 
					# Directories to build
 | 
				
			||||||
LIB_DIR = lib
 | 
					LIB_DIR = lib
 | 
				
			||||||
SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
 | 
					SRC_DIRS = mesa glu glut/glx glw
 | 
				
			||||||
	gallium egl gallium/winsys gallium/targets glu glut/glx glw
 | 
					 | 
				
			||||||
GLU_DIRS = sgi
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
DRIVER_DIRS = x11 osmesa
 | 
					DRIVER_DIRS = x11 osmesa
 | 
				
			||||||
 | 
					# Which subdirs under $(TOP)/progs/ to enter:
 | 
				
			||||||
 | 
					PROGRAM_DIRS = demos redbook samples glsl xdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# EGL drivers to build
 | 
					 | 
				
			||||||
EGL_DRIVERS_DIRS = glx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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
 | 
					# Library dependencies
 | 
				
			||||||
#EXTRA_LIB_PATH ?=
 | 
					#EXTRA_LIB_PATH ?=
 | 
				
			||||||
GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
 | 
					GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
 | 
				
			||||||
EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -ldl -lpthread
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
				
			||||||
GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
GLUT_LIB_DEPS   = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lm
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
 | 
				
			||||||
GLW_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -lX11
 | 
					 | 
				
			||||||
APP_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
					 | 
				
			||||||
GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
 | 
					 | 
				
			||||||
GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) -lpthread
 | 
					 | 
				
			||||||
VG_LIB_DEPS    = $(EXTRA_LIB_PATH) -lpthread
 | 
					 | 
				
			||||||
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
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Program dependencies - specific GL/glut libraries added in Makefiles
 | 
					# Program dependencies - specific GL/glut libraries added in Makefiles
 | 
				
			||||||
APP_LIB_DEPS = -lm
 | 
					APP_LIB_DEPS = -lm
 | 
				
			||||||
X11_LIBS = -lX11
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
DLOPEN_LIBS = -ldl
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Installation directories (for make install)
 | 
					# Installation directories (for make install)
 | 
				
			||||||
INSTALL_DIR = /usr/local
 | 
					INSTALL_DIR = /usr/local
 | 
				
			||||||
INSTALL_LIB_DIR = $(INSTALL_DIR)/$(LIB_DIR)
 | 
					DRI_DRIVER_INSTALL_DIR = /usr/X11R6/lib/modules/dri
 | 
				
			||||||
INSTALL_INC_DIR = $(INSTALL_DIR)/include
 | 
					 | 
				
			||||||
DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Where libGL will look for DRI hardware drivers
 | 
					# Where libGL will look for DRI hardware drivers
 | 
				
			||||||
DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 | 
					DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# EGL driver install directory
 | 
					 | 
				
			||||||
EGL_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/egl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 =
 | 
					 | 
				
			||||||
GL_PC_CFLAGS =
 | 
					 | 
				
			||||||
DRI_PC_REQ_PRIV =
 | 
					 | 
				
			||||||
GLU_PC_REQ = gl
 | 
					 | 
				
			||||||
GLU_PC_REQ_PRIV =
 | 
					 | 
				
			||||||
GLU_PC_LIB_PRIV =
 | 
					 | 
				
			||||||
GLU_PC_CFLAGS =
 | 
					 | 
				
			||||||
GLUT_PC_REQ_PRIV =
 | 
					 | 
				
			||||||
GLUT_PC_LIB_PRIV =
 | 
					 | 
				
			||||||
GLUT_PC_CFLAGS =
 | 
					 | 
				
			||||||
GLW_PC_REQ_PRIV =
 | 
					 | 
				
			||||||
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 =
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@ PIC_FLAGS  = -fPIC
 | 
				
			|||||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DUSE_XSHM \
 | 
					DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DUSE_XSHM \
 | 
				
			||||||
	-DHZ=100
 | 
						-DHZ=100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
X11_INCLUDES = -I/usr/local/include
 | 
					X11_INCLUDES = -I/usr/X11R6/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS += $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) $(X11_INCLUDES) -ffast-math -pedantic
 | 
					CFLAGS += $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) $(X11_INCLUDES) -ffast-math -pedantic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,5 +27,5 @@ GLUT_CFLAGS = -fexceptions
 | 
				
			|||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXTRA_LIB_PATH = -L/usr/local/lib
 | 
					EXTRA_LIB_PATH = -L/usr/X11R6/lib
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) $(EXTRA_LIB_PATH) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) $(EXTRA_LIB_PATH) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,10 +9,10 @@ CONFIG_NAME = freebsd-dri
 | 
				
			|||||||
CC = gcc
 | 
					CC = gcc
 | 
				
			||||||
CXX = g++
 | 
					CXX = g++
 | 
				
			||||||
WARN_FLAGS = -Wall
 | 
					WARN_FLAGS = -Wall
 | 
				
			||||||
OPT_FLAGS = -O -g
 | 
					OPT_FLAGS = -O
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXPAT_INCLUDES = -I/usr/local/include
 | 
					EXPAT_INCLUDES = -I/usr/local/include
 | 
				
			||||||
X11_INCLUDES = -I/usr/local/include
 | 
					X11_INCLUDES = -I/usr/X11R6/include
 | 
				
			||||||
DEFINES = -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
 | 
					DEFINES = -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
 | 
				
			||||||
	-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
						-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
				
			||||||
	-DHAVE_ALIAS
 | 
						-DHAVE_ALIAS
 | 
				
			||||||
@@ -27,27 +27,28 @@ CFLAGS += -fno-strict-aliasing
 | 
				
			|||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
					LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
				
			||||||
LIBDRM_LIB = `pkg-config --libs 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 \
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
				
			||||||
	-lm -pthread $(LIBDRM_LIB)
 | 
						-lm -pthread $(LIBDRM_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGL -lXt -lX11
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lX11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = glx gallium mesa glu glut/glx glw
 | 
					SRC_DIRS = glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
DRIVER_DIRS = dri
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRM_SOURCE_PATH=$(TOP)/../drm
 | 
					DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ffb and gamma are missing because they have not been converted to use the new
 | 
				
			||||||
 | 
					# interface.
 | 
				
			||||||
DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
 | 
					DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
 | 
				
			||||||
	   unichrome savage sis
 | 
						   unichrome savage sis
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,5 +6,5 @@ include $(TOP)/configs/freebsd-dri
 | 
				
			|||||||
CONFIG_NAME = freebsd-dri-x86-64
 | 
					CONFIG_NAME = freebsd-dri-x86-64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_64_ASM
 | 
					ASM_FLAGS = -DUSE_X86_64_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86-64_SOURCES)
 | 
					ASM_SOURCES = $(X86-64_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86-64_API)
 | 
					ASM_API = $(X86-64_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,5 +9,5 @@ CONFIG_NAME = freebsd-dri-x86
 | 
				
			|||||||
PIC_FLAGS = 
 | 
					PIC_FLAGS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,12 +22,11 @@ DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
X11_INCLUDES = -I/usr/X11R6/include
 | 
					X11_INCLUDES = -I/usr/X11R6/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS = -Wall -Wmissing-prototypes -Wdeclaration-after-statement \
 | 
					CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
				
			||||||
	-Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
						$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math 
 | 
				
			||||||
	$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
CXXFLAGS = -Wall -Wpointer-arith $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
					CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
				
			||||||
	$(DEFINES) $(X11_INCLUDES)
 | 
						$(X11_INCLUDES) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Work around aliasing bugs - developers should comment this out
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,72 +0,0 @@
 | 
				
			|||||||
# linux-cell  (non-debug build)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-cell
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Omiting other gallium drivers:
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS = cell softpipe trace rbug identity
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Compiler and flags
 | 
					 | 
				
			||||||
CC = ppu32-gcc
 | 
					 | 
				
			||||||
CXX = ppu32-g++
 | 
					 | 
				
			||||||
HOST_CC = gcc
 | 
					 | 
				
			||||||
APP_CC = gcc
 | 
					 | 
				
			||||||
APP_CXX = g++
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -O3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Cell SDK location
 | 
					 | 
				
			||||||
## For SDK 2.1: (plus, remove -DSPU_MAIN_PARAM_LONG_LONG below)
 | 
					 | 
				
			||||||
#SDK = /opt/ibm/cell-sdk/prototype/sysroot/usr
 | 
					 | 
				
			||||||
## For SDK 3.0:
 | 
					 | 
				
			||||||
SDK = /opt/cell/sdk/usr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COMMON_C_CPP_FLAGS = $(OPT_FLAGS) -Wall -Winline \
 | 
					 | 
				
			||||||
	-fPIC -m32 -mabi=altivec -maltivec \
 | 
					 | 
				
			||||||
	-I. -I$(SDK)/include \
 | 
					 | 
				
			||||||
	-DGALLIUM_CELL $(DEFINES)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CFLAGS = $(COMMON_C_CPP_FLAGS) -Wmissing-prototypes -std=c99
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CXXFLAGS = $(COMMON_C_CPP_FLAGS)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Omitting glw here:
 | 
					 | 
				
			||||||
SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
 | 
					 | 
				
			||||||
	gallium gallium/winsys gallium/targets glu glut/glx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Build no traditional Mesa drivers:
 | 
					 | 
				
			||||||
DRIVER_DIRS =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MKDEP_OPTIONS = -fdepend -Y
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread \
 | 
					 | 
				
			||||||
	-L$(SDK)/lib -m32 -Wl,-m,elf32ppc -R$(SDK)/lib -lspe2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CELL_SPU_LIB = $(TOP)/src/gallium/drivers/cell/spu/g3d_spu.a
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### SPU stuff
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_CC = spu-gcc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_CFLAGS = $(OPT_FLAGS) -W -Wall -Winline -Wmissing-prototypes -Wno-main \
 | 
					 | 
				
			||||||
	-I. -I$(SDK)/spu/include -I$(TOP)/src/mesa/ $(INCLUDE_DIRS) \
 | 
					 | 
				
			||||||
	-DSPU_MAIN_PARAM_LONG_LONG \
 | 
					 | 
				
			||||||
	-include spu_intrinsics.h
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_LFLAGS = -L$(SDK)/spu/lib -Wl,-N -lmisc -lm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_AR = ppu-ar
 | 
					 | 
				
			||||||
SPU_AR_FLAGS = -qcs
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPU_EMBED = ppu32-embedspu
 | 
					 | 
				
			||||||
SPU_EMBED_FLAGS = -m32
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
# linux-cell-debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-cell
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# just override name and OPT_FLAGS here:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-cell-debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -g -DDEBUG
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -4,6 +4,5 @@ include $(TOP)/configs/linux
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-debug
 | 
					CONFIG_NAME = linux-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS = -g
 | 
					OPT_FLAGS = -g -ansi -pedantic
 | 
				
			||||||
#CFLAGS += -pedantic
 | 
					 | 
				
			||||||
DEFINES += -DDEBUG -DDEBUG_MATH
 | 
					DEFINES += -DDEBUG -DDEBUG_MATH
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										38
									
								
								configs/linux-directfb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								configs/linux-directfb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# Configuration for DirectFB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-directfb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC  = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS   = -Wall -O3 -ffast-math -fPIC -std=c99 -D_GNU_SOURCE -D_POSIX_SOURCE -D_SVID_SOURCE \
 | 
				
			||||||
 | 
					         -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -Wall -O3 -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HAVE_X86 = $(shell uname -m | grep 'i[3-6]86' >/dev/null && echo yes)
 | 
				
			||||||
 | 
					ifeq ($(HAVE_X86), yes)
 | 
				
			||||||
 | 
					     CFLAGS   += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					     CXXFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					     ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					     ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS     = mesa glu glut/directfb
 | 
				
			||||||
 | 
					GLU_DIRS     = sgi
 | 
				
			||||||
 | 
					DRIVER_DIRS  = directfb
 | 
				
			||||||
 | 
					PROGRAM_DIRS = demos directfb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS   = -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB)
 | 
				
			||||||
 | 
					APP_LIB_DEPS  = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB) -l$(GLUT_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -13,7 +13,7 @@ CXX = g++
 | 
				
			|||||||
#MKDEP = gcc -M
 | 
					#MKDEP = gcc -M
 | 
				
			||||||
#MKDEP_OPTIONS = -MF depend
 | 
					#MKDEP_OPTIONS = -MF depend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS  = -O2 -g
 | 
					OPT_FLAGS  = -O -g
 | 
				
			||||||
PIC_FLAGS  = -fPIC
 | 
					PIC_FLAGS  = -fPIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
 | 
					# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
 | 
				
			||||||
@@ -38,41 +38,38 @@ GLUT_CFLAGS = -fexceptions
 | 
				
			|||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
					EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
 | 
					LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
				
			||||||
 | 
					LIBDRM_LIB = `pkg-config --libs libdrm`
 | 
				
			||||||
LIBDRM_CFLAGS = $(shell pkg-config --cflags libdrm)
 | 
					DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
 | 
				
			||||||
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 \
 | 
					GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
				
			||||||
		-lm -lpthread -ldl $(LIBDRM_LIB)
 | 
							-lm -lpthread -ldl \
 | 
				
			||||||
 | 
					                $(LIBDRM_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS := glx egl $(SRC_DIRS)
 | 
					ifeq ($(USING_EGL), 1)
 | 
				
			||||||
 | 
					SRC_DIRS = egl glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
# EGL directories
 | 
					PROGRAM_DIRS = egl xdemos
 | 
				
			||||||
EGL_DRIVERS_DIRS = glx
 | 
					else
 | 
				
			||||||
 | 
					SRC_DIRS = glx/x11 mesa glu glut/glx glw
 | 
				
			||||||
 | 
					PROGRAM_DIRS = xdemos
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRIVER_DIRS = dri
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel drm/i965
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
GALLIUM_TARGET_DIRS = 
 | 
					 | 
				
			||||||
GALLIUM_STATE_TRACKERS_DIRS = egl
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
DRI_DIRS = i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
 | 
					# gamma are missing because they have not been converted to use the new
 | 
				
			||||||
	savage sis tdfx unichrome swrast
 | 
					# interface.
 | 
				
			||||||
 | 
					DRI_DIRS = i810 i915tex i915 i965 mach64 mga r128 r200 r300 radeon s3v \
 | 
				
			||||||
INTEL_LIBS = $(shell pkg-config --libs libdrm_intel)
 | 
						savage sis tdfx trident unichrome ffb
 | 
				
			||||||
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)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,6 @@ ARCH_FLAGS = -DDEBUG
 | 
				
			|||||||
#DRI_DIRS = i915tex i915 
 | 
					#DRI_DIRS = i915tex i915 
 | 
				
			||||||
#DRI_DIRS = i965
 | 
					#DRI_DIRS = i965
 | 
				
			||||||
#DRI_DIRS = radeon r200 r300
 | 
					#DRI_DIRS = radeon r200 r300
 | 
				
			||||||
#DRI_DIRS = unichrome sis
 | 
					#DRI_DIRS = unichrome sis trident
 | 
				
			||||||
#DRI_DIRS = i810 mga r128 tdfx
 | 
					#DRI_DIRS = i810 mga r128 tdfx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ OPT_FLAGS = -Os -mcpu=603
 | 
				
			|||||||
PIC_FLAGS = -fPIC
 | 
					PIC_FLAGS = -fPIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_PPC_ASM -DUSE_VMX_ASM
 | 
					ASM_FLAGS = -DUSE_PPC_ASM -DUSE_VMX_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(PPC_SOURCES)
 | 
					ASM_SOURCES = $(PPC_SOURCES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Build only the drivers for cards that exist on PowerPC.  At some point MGA
 | 
					# Build only the drivers for cards that exist on PowerPC.  At some point MGA
 | 
				
			||||||
# will be added, but not yet.
 | 
					# will be added, but not yet.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,9 +5,10 @@ include $(TOP)/configs/linux-dri
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-dri-x86
 | 
					CONFIG_NAME = linux-dri-x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARCH_FLAGS = -m32 -mmmx -msse -msse2
 | 
					# Add -m32 to CFLAGS:
 | 
				
			||||||
 | 
					ARCH_FLAGS = -m32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,17 +8,17 @@ CONFIG_NAME = linux-dri-x86-64
 | 
				
			|||||||
ARCH_FLAGS = -m64
 | 
					ARCH_FLAGS = -m64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_64_ASM
 | 
					ASM_FLAGS = -DUSE_X86_64_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86-64_SOURCES)
 | 
					ASM_SOURCES = $(X86-64_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86-64_API)
 | 
					ASM_API = $(X86-64_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIB_DIR = lib64
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib64
 | 
					EXTRA_LIB_PATH=-L/usr/X11R6/lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# sis is missing because it has not been converted to use
 | 
					# ffb, gamma, and sis are missing because they have not be converted to use
 | 
				
			||||||
# the new interface.  i810 are missing because there is no x86-64
 | 
					# the new interface.  i810 are missing because there is no x86-64
 | 
				
			||||||
# system where they could *ever* be used.
 | 
					# system where they could *ever* be used.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
DRI_DIRS = i915 i965 mach64 mga r128 r200 r300 radeon savage tdfx unichrome
 | 
					DRI_DIRS = i915tex i915 i965 mach64 mga r128 r200 radeon tdfx unichrome savage r300
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
 | 
				
			|||||||
	-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
						-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
				
			||||||
        -DHAVE_ALIAS -DUSE_XCB -DHAVE_POSIX_MEMALIGN
 | 
					        -DHAVE_ALIAS -DUSE_XCB -DHAVE_POSIX_MEMALIGN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
X11_INCLUDES = $(shell pkg-config --cflags-only-I x11) $(shell pkg-config --cflags-only-I xcb) $(shell pkg-config --cflags-only-I x11-xcb) $(shell pkg-config --cflags-only-I xcb-glx)
 | 
					X11_INCLUDES = `pkg-config --cflags-only-I x11` `pkg-config --cflags-only-I xcb` `pkg-config --cflags-only-I x11-xcb` `pkg-config --cflags-only-I xcb-glx`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
					CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
				
			||||||
	$(DEFINES) $(ASM_FLAGS) -std=c99 -ffast-math 
 | 
						$(DEFINES) $(ASM_FLAGS) -std=c99 -ffast-math 
 | 
				
			||||||
@@ -36,21 +36,38 @@ CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			|||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=$(shell pkg-config --libs-only-L x11)
 | 
					EXTRA_LIB_PATH=`pkg-config --libs-only-L x11`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon \
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
	savage sis tdfx unichrome
 | 
					
 | 
				
			||||||
 | 
					# gamma are missing because they have not been converted to use the new
 | 
				
			||||||
 | 
					# interface.
 | 
				
			||||||
 | 
					DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon s3v \
 | 
				
			||||||
 | 
						savage sis tdfx trident unichrome ffb nouveau
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
					CONFIG_NAME = linux-fbdev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS += -DUSE_GLFBDEV_DRIVER
 | 
					CFLAGS = -O3 -ffast-math -ansi -pedantic -fPIC -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS -DUSE_GLFBDEV_DRIVER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Work around aliasing bugs - developers should comment this out
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SRC_DIRS += glut/fbdev
 | 
					SRC_DIRS = mesa glu glut/fbdev
 | 
				
			||||||
DRIVER_DIRS = fbdev osmesa
 | 
					DRIVER_DIRS = fbdev osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = fbdev demos redbook samples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread
 | 
					GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread
 | 
				
			||||||
OSMESA_LIB_DEPS = -lm -lpthread
 | 
					OSMESA_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										23
									
								
								configs/linux-glide
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								configs/linux-glide
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# Configuration for generic Linux with 3Dfx Glide driver
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-glide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DFX -I/usr/include/glide -I/usr/local/glide/include
 | 
				
			||||||
 | 
					CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
 | 
				
			||||||
@@ -1,9 +0,0 @@
 | 
				
			|||||||
# Configuration for standalone mode i965 debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-debug
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-i965
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM_DRIVER_DIRS = i965
 | 
					 | 
				
			||||||
GALLIUM_WINSYS_DIRS = drm/i965/xlib
 | 
					 | 
				
			||||||
GALLIUM_TARGET_DIRS =
 | 
					 | 
				
			||||||
@@ -16,7 +16,7 @@ GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
 | 
				
			|||||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,5 +23,5 @@ GL_LIB_DEPS =
 | 
				
			|||||||
GLUT_LIB_DEPS =
 | 
					GLUT_LIB_DEPS =
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -lpthread -lcxa -lunwind
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -lpthread -lcxa -lunwind
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,16 +37,17 @@ CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			|||||||
CFLAGS += -fno-strict-aliasing
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = 
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Library/program dependencies
 | 
					# Library/program dependencies
 | 
				
			||||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
					EXTRA_LIB_PATH=-L/usr/X11R6/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_MODULES  = $(TOP)/src/mesa/libmesa.a
 | 
					DRI_LIB_DEPS  = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl
 | 
				
			||||||
DRI_LIB_DEPS  = $(MESA_MODULES) $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl
 | 
					 | 
				
			||||||
GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
 | 
					GL_LIB_DEPS   = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = glx glu glut/glx glw
 | 
					SRC_DIRS = glx/x11 glu glut/glx glw
 | 
				
			||||||
DRIVER_DIRS =
 | 
					DRIVER_DIRS =
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,44 +0,0 @@
 | 
				
			|||||||
# -*-makefile-*-
 | 
					 | 
				
			||||||
# Configuration for Linux and LLVM with optimizations
 | 
					 | 
				
			||||||
# Builds the llvmpipe gallium driver
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-llvm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add llvmpipe driver
 | 
					 | 
				
			||||||
GALLIUM_DRIVERS_DIRS += llvmpipe
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -O3 -ansi -pedantic
 | 
					 | 
				
			||||||
ARCH_FLAGS = -mmmx -msse -msse2 -mstackrealign
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEFINES += -DNDEBUG -DGALLIUM_LLVMPIPE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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
 | 
					# Compiler and flags
 | 
				
			||||||
CC = gcc
 | 
					CC = gcc
 | 
				
			||||||
CXX = g++
 | 
					CXX = g++
 | 
				
			||||||
CFLAGS = -g -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -DPTHREADS
 | 
					CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS
 | 
				
			||||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
					CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Work around aliasing bugs - developers should comment this out
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
@@ -17,11 +17,12 @@ CFLAGS += -fno-strict-aliasing
 | 
				
			|||||||
CXXFLAGS += -fno-strict-aliasing
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mapi/glapi glsl mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
OSMESA_LIB_DEPS = -lm -lpthread -ldl
 | 
					OSMESA_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
				
			||||||
APP_LIB_DEPS = -lm -lpthread
 | 
					APP_LIB_DEPS = -lOSMesa -lGLU
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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,11 +20,12 @@ OSMESA_LIB_NAME = libOSMesa16.so
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mapi/glapi glsl mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
OSMESA_LIB_DEPS = -lm -lpthread
 | 
					OSMESA_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
				
			||||||
APP_LIB_DEPS = -lm -lpthread
 | 
					APP_LIB_DEPS = -lOSMesa16
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,10 +22,11 @@ OSMESA_LIB_NAME = libOSMesa16.a
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = gallium mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
OSMESA_LIB_DEPS = -lm -lpthread
 | 
					OSMESA_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
APP_LIB_DEPS = -lm -lpthread
 | 
					APP_LIB_DEPS = -lOSMesa16
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,11 +20,12 @@ OSMESA_LIB_NAME = libOSMesa32.so
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Directories
 | 
					# Directories
 | 
				
			||||||
SRC_DIRS = mapi/glapi glsl mesa glu
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
DRIVER_DIRS = osmesa
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
OSMESA_LIB_DEPS = -lm -lpthread
 | 
					OSMESA_LIB_DEPS = -lm -lpthread
 | 
				
			||||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
				
			||||||
APP_LIB_DEPS = -lm -lpthread
 | 
					APP_LIB_DEPS = -lOSMesa32
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,29 @@
 | 
				
			|||||||
# Configuration for profiling on Linux with gprof
 | 
					# Configuration for profiling on Linux with gprof
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include $(TOP)/configs/linux-static
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-profile
 | 
					CONFIG_NAME = linux-profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS = -pg -g -O2
 | 
					# Compiler and flags
 | 
				
			||||||
DEFINES += -DNDEBUG
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -pg -O -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -pg -O -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Need to have -L/usr/X11R6/lib in these:
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Need to make static libs for profiling:
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					GL_LIB_NAME = lib$(GL_LIB).a
 | 
				
			||||||
 | 
					GLU_LIB_NAME = lib$(GLU_LIB).a
 | 
				
			||||||
 | 
					GLUT_LIB_NAME = lib$(GLUT_LIB).a
 | 
				
			||||||
 | 
					GLW_LIB_NAME = lib$(GLW_LIB).a
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = lib$(OSMesa).a
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										53
									
								
								configs/linux-solo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								configs/linux-solo
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					# 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 -DDRM_USE_MALLOC -DIN_DRI_DRIVER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
				
			||||||
 | 
						$(ASM_FLAGS) -std=c99 -ffast-math 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(TOP)/$(LIB_DIR) $(PCIACCESS_LIB)
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -lm -lpthread -ldl
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS = glx/mini mesa glu glut/mini
 | 
				
			||||||
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
 | 
					PROGRAM_DIRS = miniglx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#DRI_DIRS = ffb gamma sis savage tdfx unichrome fb
 | 
				
			||||||
 | 
					DRI_DIRS = i810 i915tex i915 mach64 mga r128 r200 radeon
 | 
				
			||||||
							
								
								
									
										7
									
								
								configs/linux-solo-ia64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								configs/linux-solo-ia64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					# Configuration for linux-solo-ia64: Linux DRI hardware drivers for fbdev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/linux-solo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-solo-ia64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DRI_DIRS = fb mach64 mga r128 r200 radeon sis tdfx unichrome
 | 
				
			||||||
							
								
								
									
										10
									
								
								configs/linux-solo-x86
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								configs/linux-solo-x86
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					# -*-makefile-*-
 | 
				
			||||||
 | 
					# Configuration for linux-solo-x86: Linux hardware drivers for fbdev for x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/linux-solo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-solo-x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
@@ -5,5 +5,5 @@ include $(TOP)/configs/linux
 | 
				
			|||||||
CONFIG_NAME = linux-sparc
 | 
					CONFIG_NAME = linux-sparc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ASM_FLAGS = -DUSE_SPARC_ASM
 | 
					#ASM_FLAGS = -DUSE_SPARC_ASM
 | 
				
			||||||
#MESA_ASM_SOURCES = $(SPARC_SOURCES)
 | 
					#ASM_SOURCES = $(SPARC_SOURCES)
 | 
				
			||||||
#GLAPI_ASM_SOURCES = $(SPARC_API)
 | 
					#ASM_API = $(SPARC_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,5 +22,5 @@ GLUT_LIB_DEPS =
 | 
				
			|||||||
GLW_LIB_DEPS = 
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Need to specify all libraries we may need
 | 
					# Need to specify all libraries we may need
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) \
 | 
					APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \
 | 
				
			||||||
	-l$(GL_LIB) -lm -L/usr/X11R6/lib/ -lX11 -lXext -lXmu -lXi -lpthread
 | 
						-lstdc++ -lm
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,8 +4,6 @@ include $(TOP)/configs/linux
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-x86
 | 
					CONFIG_NAME = linux-x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARCH_FLAGS = -m32 -mmmx -msse -msse2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86_API)
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,8 @@ CONFIG_NAME = linux-x86-64
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ARCH_FLAGS = -m64
 | 
					ARCH_FLAGS = -m64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(X86-64_SOURCES)
 | 
					ASM_SOURCES = $(X86-64_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(X86-64_API)
 | 
					ASM_API = $(X86-64_API)
 | 
				
			||||||
ASM_FLAGS = -DUSE_X86_64_ASM
 | 
					ASM_FLAGS = -DUSE_X86_64_ASM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIB_DIR = lib64
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,5 +4,4 @@ include $(TOP)/configs/linux-x86-64
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
CONFIG_NAME = linux-x86-64-debug
 | 
					CONFIG_NAME = linux-x86-64-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OPT_FLAGS = -g
 | 
					 | 
				
			||||||
DEFINES += -DDEBUG -DDEBUG_MATH
 | 
					DEFINES += -DDEBUG -DDEBUG_MATH
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +0,0 @@
 | 
				
			|||||||
# Configuration for profiling on Linux for 64-bit X86 (Opteron) with gprof
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-x86-64-static
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-x86-64-profile
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -pg -g -O2
 | 
					 | 
				
			||||||
DEFINES += -DNDEBUG
 | 
					 | 
				
			||||||
@@ -20,8 +20,5 @@ OSMESA_LIB_DEPS =
 | 
				
			|||||||
GLU_LIB_DEPS = 
 | 
					GLU_LIB_DEPS = 
 | 
				
			||||||
GLUT_LIB_DEPS = 
 | 
					GLUT_LIB_DEPS = 
 | 
				
			||||||
GLW_LIB_DEPS = 
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \
 | 
				
			||||||
# Need to specify all libraries we may need
 | 
						-lstdc++ -lm
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -Wl,--start-group \
 | 
					 | 
				
			||||||
               -l$(GL_LIB) $(TOP)/src/mesa/pipe/softpipe/libsoftpipe.a -Wl,--end-group \
 | 
					 | 
				
			||||||
               $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread -lstdc++ -lm
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								configs/linux-x86-glide
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								configs/linux-x86-glide
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					# Configuration for Linux with 3Dfx Glide driver and x86 optimizations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-x86-glide
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include -DFX -I/usr/include/glide -I/usr/local/glide/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					ASM_API = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
 | 
				
			||||||
@@ -1,8 +0,0 @@
 | 
				
			|||||||
# Configuration for profiling on Linux with x86 optimizations with gprof
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include $(TOP)/configs/linux-x86-static
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG_NAME = linux-x86-profile
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OPT_FLAGS = -pg -g -O2
 | 
					 | 
				
			||||||
DEFINES += -DNDEBUG
 | 
					 | 
				
			||||||
@@ -20,7 +20,5 @@ OSMESA_LIB_DEPS =
 | 
				
			|||||||
GLU_LIB_DEPS = 
 | 
					GLU_LIB_DEPS = 
 | 
				
			||||||
GLUT_LIB_DEPS = 
 | 
					GLUT_LIB_DEPS = 
 | 
				
			||||||
GLW_LIB_DEPS = 
 | 
					GLW_LIB_DEPS = 
 | 
				
			||||||
 | 
					APP_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread \
 | 
				
			||||||
# Need to specify all libraries we may need
 | 
						-lstdc++ -lm
 | 
				
			||||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) \
 | 
					 | 
				
			||||||
	-l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXt -lXi -lpthread -lstdc++ -lm
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,8 +16,8 @@ ARCH_FLAGS ?=
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
DEFINES = -D_REENTRANT -DUSE_XSHM
 | 
					DEFINES = -D_REENTRANT -DUSE_XSHM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MESA_ASM_SOURCES = $(SPARC_SOURCES)
 | 
					ASM_SOURCES = $(SPARC_SOURCES)
 | 
				
			||||||
GLAPI_ASM_SOURCES = $(SPARC_API)
 | 
					ASM_API = $(SPARC_API)
 | 
				
			||||||
ASM_FLAGS = -DUSE_SPARC_ASM
 | 
					ASM_FLAGS = -DUSE_SPARC_ASM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
					CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1955
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										1955
									
								
								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
 | 
					    On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
 | 
				
			||||||
    and freed with glXFreeMemoryNV.  Sometimes it's useful to know where a
 | 
					    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
 | 
					    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 )
 | 
					        GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Last Modified Date:  12 January 2009
 | 
					    Last Modified Date:  8 June 2000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -69,12 +69,6 @@ Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
 | 
				
			|||||||
    <width> and <height> indicate the size in pixels.  Coordinate (0,0)
 | 
					    <width> and <height> indicate the size in pixels.  Coordinate (0,0)
 | 
				
			||||||
    corresponds to the lower-left pixel of the window, like glReadPixels.
 | 
					    corresponds to the lower-left pixel of the window, like glReadPixels.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    If dpy and drawable are the display and drawable for the calling
 | 
					 | 
				
			||||||
    thread's current context, glXCopySubBufferMESA performs an
 | 
					 | 
				
			||||||
    implicit glFlush before it returns.  Subsequent OpenGL commands
 | 
					 | 
				
			||||||
    may be issued immediately after calling glXCopySubBufferMESA, but
 | 
					 | 
				
			||||||
    are not executed until the copy is completed. 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					GLX Protocol
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    None at this time.  The extension is implemented in terms of ordinary
 | 
					    None at this time.  The extension is implemented in terms of ordinary
 | 
				
			||||||
@@ -90,7 +84,5 @@ New State
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Revision History
 | 
					Revision History
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    12 January 2009 Ian Romanick - Added language about implicit flush
 | 
					    8 June 2000 - initial specification
 | 
				
			||||||
                                   and command completion.
 | 
					 | 
				
			||||||
    8 June 2000     Brian Paul   - initial specification
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
					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
 | 
					    Resolved:  No, we're only concerned with pixel packing.  There are other
 | 
				
			||||||
    solutions for inverting images when using glDrawPixels (negative Y pixel
 | 
					    solutions for inverting images when using glDrawPixels (negative Y pixel
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,7 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $Id: MESA_packed_depth_stencil.spec,v 1.2 2003/09/19 14:58:21 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -18,6 +18,7 @@ Version
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    Last Modified Date: July 20, 2003
 | 
					    Last Modified Date: July 20, 2003
 | 
				
			||||||
    Author Revision: 1.0
 | 
					    Author Revision: 1.0
 | 
				
			||||||
 | 
					    $Date: 2004/03/25 01:42:41 $ $Revision: 1.4 $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -31,12 +31,12 @@ Overview
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    Mesa's implementation of GLX is entirely implemented on the client side.
 | 
					    Mesa's implementation of GLX is entirely implemented on the client side.
 | 
				
			||||||
    Therefore, Mesa cannot immediately detect when an X window or pixmap is
 | 
					    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.
 | 
					    or pixmap.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    The glxMesaReleaseBuffers() function can be used to explicitly indicate
 | 
					    The glxMesaReleaseBuffers() function can be used to explicitly indicate
 | 
				
			||||||
    when the back color buffer, depth buffer, stencil buffer, and/or accumu-
 | 
					    when the back color buffer, depth buffer, stencil buffer, and/or accum-
 | 
				
			||||||
    lation buffer associated with a drawable can be freed.
 | 
					    ulation buffer associated with a drawable can be freed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IP Status
 | 
					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 );
 | 
						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
 | 
					    accum, etc) associated with the named drawable to be immediately
 | 
				
			||||||
    deallocated.  True is returned if <d> is a valid Mesa GLX drawable,
 | 
					    deallocated.  True is returned if <d> is a valid Mesa GLX drawable,
 | 
				
			||||||
    else False is returned.  After calling glXReleaseBuffersMESA, the
 | 
					    else False is returned.  After calling glXReleaseBuffersMESA, the
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,7 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $Id: MESA_resize_buffers.spec,v 1.3 2004/03/25 01:42:42 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -35,7 +36,7 @@ Overview
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    Mesa's glViewport command queries the current window size and updates
 | 
					    Mesa's glViewport command queries the current window size and updates
 | 
				
			||||||
    its internal data structors accordingly.  This normally works fine
 | 
					    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.
 | 
					    changes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    In some situations, however, the application may not call glViewport
 | 
					    In some situations, however, the application may not call glViewport
 | 
				
			||||||
@@ -65,7 +66,7 @@ Additions to the AGL/GLX/WGL Specifications
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Errors
 | 
					Errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    INVALID_OPERATION is generated if glResizeBuffersMESA is called between
 | 
					    INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen
 | 
				
			||||||
    Begin and End.
 | 
					    Begin and End.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
New State
 | 
					New State
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,12 +13,13 @@ Contact
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Status
 | 
					Status
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Obsolete.
 | 
					    XXX - Not complete yet!!!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Last Modified Date: July 30, 2006
 | 
					    Last Modified Date: July 30, 2006
 | 
				
			||||||
    Author Revision: 0.2
 | 
					    Author Revision: 0.2
 | 
				
			||||||
 | 
					    $Date: 2006/07/30 14:28:38 $ $Revision: 1.2 $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,7 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $Id: MESA_sprite_point.spec,v 1.2 2003/09/19 14:58:21 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -43,7 +43,7 @@ Issues
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
New Procedures and Functions
 | 
					New Procedures and Functions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int glXSwapIntervalMESA(unsigned int interval)
 | 
					    int glXSwapIntervalMESA(int interval)
 | 
				
			||||||
    int glXGetSwapIntervalMESA(void)
 | 
					    int glXGetSwapIntervalMESA(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
New Tokens
 | 
					New Tokens
 | 
				
			||||||
@@ -88,8 +88,8 @@ Additions to the GLX 1.3 Specification
 | 
				
			|||||||
    this is typically the time required to display both the even and odd 
 | 
					    this is typically the time required to display both the even and odd 
 | 
				
			||||||
    fields of a frame of video data.
 | 
					    fields of a frame of video data.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    If <interval> is set to a value of 0, buffer swaps are not synchro-
 | 
					    If <interval> is set to a value of 0, buffer swaps are not synchron-
 | 
				
			||||||
    nized to a video frame.  The <interval> value is silently clamped to
 | 
					    ized to a video frame.  The <interval> value is silently clamped to
 | 
				
			||||||
    the maximum implementation-dependent value supported before being
 | 
					    the maximum implementation-dependent value supported before being
 | 
				
			||||||
    stored.
 | 
					    stored.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -103,8 +103,11 @@ Additions to the GLX 1.3 Specification
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Errors
 | 
					Errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    glXSwapIntervalMESA returns GLX_BAD_VALUE if parameter <interval> is
 | 
				
			||||||
 | 
					    less than zero.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
 | 
					    glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
 | 
				
			||||||
    GLXContext or if the current context is not a direct rendering context.
 | 
					    GLXContext.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GLX Protocol
 | 
					GLX Protocol
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,804 +0,0 @@
 | 
				
			|||||||
Name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MESA_texture_array
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Name Strings
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    GL_MESA_texture_array
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contact
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Ian Romanick, IBM (idr 'at' us.ibm.com)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
IP Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    No known IP issues.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Shipping in Mesa 7.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Number
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    TBD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    OpenGL 1.2 or GL_EXT_texture3D is required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Support for ARB_fragment_program is assumed, but not required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Support for ARB_fragment_program_shadow is assumed, but not required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Support for EXT_framebuffer_object is assumed, but not required.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Written based on the wording of the OpenGL 2.0 specification and
 | 
					 | 
				
			||||||
    ARB_fragment_program_shadow but not dependent on them.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Overview
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    There are a number of circumstances where an application may wish to
 | 
					 | 
				
			||||||
    blend two textures out of a larger set of textures.  Moreover, in some
 | 
					 | 
				
			||||||
    cases the selected textures may vary on a per-fragment basis within
 | 
					 | 
				
			||||||
    a polygon.  Several examples include:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       1. High dynamic range textures.  The application stores several
 | 
					 | 
				
			||||||
       different "exposures" of an image as different textures.  On a
 | 
					 | 
				
			||||||
       per-fragment basis, the application selects which exposures are
 | 
					 | 
				
			||||||
       used.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       2. A terrain engine where the altitude of a point determines the
 | 
					 | 
				
			||||||
       texture applied to it.  If the transition is from beach sand to
 | 
					 | 
				
			||||||
       grass to rocks to snow, the application will store each texture
 | 
					 | 
				
			||||||
       in a different texture map, and dynamically select which two
 | 
					 | 
				
			||||||
       textures to blend at run-time.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       3. Storing short video clips in textures.  Each depth slice is a
 | 
					 | 
				
			||||||
       single frame of video.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Several solutions to this problem have been proposed, but they either
 | 
					 | 
				
			||||||
    involve using a separate texture unit for each texture map or using 3D
 | 
					 | 
				
			||||||
    textures without mipmaps.  Both of these options have major drawbacks.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension provides a third alternative that eliminates the major
 | 
					 | 
				
			||||||
    drawbacks of both previous methods.  A new texture target,
 | 
					 | 
				
			||||||
    TEXTURE_2D_ARRAY, is added that functions identically to TEXTURE_3D in
 | 
					 | 
				
			||||||
    all aspects except the sizes of the non-base level images.  In
 | 
					 | 
				
			||||||
    traditional 3D texturing, the size of the N+1 LOD is half the size
 | 
					 | 
				
			||||||
    of the N LOD in all three dimensions.  For the TEXTURE_2D_ARRAY target,
 | 
					 | 
				
			||||||
    the height and width of the N+1 LOD is halved, but the depth is the
 | 
					 | 
				
			||||||
    same for all levels of detail. The texture then becomes an array of
 | 
					 | 
				
			||||||
    2D textures.  The per-fragment texel is selected by the R texture
 | 
					 | 
				
			||||||
    coordinate.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    References:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011557
 | 
					 | 
				
			||||||
        http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=000516
 | 
					 | 
				
			||||||
        http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011903
 | 
					 | 
				
			||||||
        http://www.delphi3d.net/articles/viewarticle.php?article=terraintex.htm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Procedures and Functions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    All functions come directly from EXT_texture_array.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void FramebufferTextureLayerEXT(enum target, enum attachment,
 | 
					 | 
				
			||||||
                                    uint texture, int level, int layer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Tokens
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    All token names and values come directly from EXT_texture_array.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by
 | 
					 | 
				
			||||||
    the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and
 | 
					 | 
				
			||||||
    GetDoublev, and by the <target> parameter of TexImage3D, GetTexImage,
 | 
					 | 
				
			||||||
    GetTexLevelParameteriv, GetTexLevelParameterfv, GetTexParameteriv, and
 | 
					 | 
				
			||||||
    GetTexParameterfv:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        TEXTURE_1D_ARRAY_EXT                            0x8C18
 | 
					 | 
				
			||||||
        TEXTURE_2D_ARRAY_EXT                            0x8C1A
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <target> parameter of TexImage2D, TexSubImage2D,
 | 
					 | 
				
			||||||
    CopyTexImage2D, CopyTexSubImage2D, CompressedTexImage2D,
 | 
					 | 
				
			||||||
    CompressedTexSubImage2D, GetTexLevelParameteriv, and 
 | 
					 | 
				
			||||||
    GetTexLevelParameterfv:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        TEXTURE_1D_ARRAY_EXT
 | 
					 | 
				
			||||||
        PROXY_TEXTURE_1D_ARRAY_EXT                      0x8C19
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <target> parameter of TexImage3D, TexSubImage3D,
 | 
					 | 
				
			||||||
    CopyTexSubImage3D, CompressedTexImage3D, CompressedTexSubImage3D,
 | 
					 | 
				
			||||||
    GetTexLevelParameteriv, and GetTexLevelParameterfv:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        TEXTURE_2D_ARRAY_EXT
 | 
					 | 
				
			||||||
        PROXY_TEXTURE_2D_ARRAY_EXT                      0x8C1B
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
 | 
					 | 
				
			||||||
    GetFloatv, and GetDoublev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        TEXTURE_BINDING_1D_ARRAY_EXT                    0x8C1C
 | 
					 | 
				
			||||||
        TEXTURE_BINDING_2D_ARRAY_EXT                    0x8C1D
 | 
					 | 
				
			||||||
        MAX_ARRAY_TEXTURE_LAYERS_EXT                    0x88FF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <param> parameter of TexParameterf, TexParameteri,
 | 
					 | 
				
			||||||
    TexParameterfv, and TexParameteriv when the <pname> parameter is
 | 
					 | 
				
			||||||
    TEXTURE_COMPARE_MODE_ARB:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        COMPARE_REF_DEPTH_TO_TEXTURE_EXT                0x884E
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (Note:  COMPARE_REF_DEPTH_TO_TEXTURE_EXT is simply an alias for the
 | 
					 | 
				
			||||||
    existing COMPARE_R_TO_TEXTURE token in OpenGL 2.0; the alternate name
 | 
					 | 
				
			||||||
    reflects the fact that the R coordinate is not always used.)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <internalformat> parameter of TexImage3D and
 | 
					 | 
				
			||||||
    CompressedTexImage3D, and by the <format> parameter of
 | 
					 | 
				
			||||||
    CompressedTexSubImage3D:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        COMPRESSED_RGB_S3TC_DXT1_EXT
 | 
					 | 
				
			||||||
        COMPRESSED_RGBA_S3TC_DXT1_EXT
 | 
					 | 
				
			||||||
        COMPRESSED_RGBA_S3TC_DXT3_EXT
 | 
					 | 
				
			||||||
        COMPRESSED_RGBA_S3TC_DXT5_EXT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Accepted by the <pname> parameter of
 | 
					 | 
				
			||||||
    GetFramebufferAttachmentParameterivEXT:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT          0x8CD4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (Note:  FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER is simply an alias for the
 | 
					 | 
				
			||||||
    FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT token provided in
 | 
					 | 
				
			||||||
    EXT_framebuffer_object.  This extension generalizes the notion of
 | 
					 | 
				
			||||||
    "<zoffset>" to include layers of an array texture.)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 2 of the OpenGL 2.0 Specification (OpenGL Operation)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.1 "Texture Image Specification"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the first paragraph (page 150) to say (spec changes identical to
 | 
					 | 
				
			||||||
       EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void TexImage3D(enum target, int level, int internalformat,
 | 
					 | 
				
			||||||
                         sizei width, sizei height, sizei depth, int border,
 | 
					 | 
				
			||||||
                         enum format, enum type, void *data);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       is used to specify a three-dimensional texture image. target must be one
 | 
					 | 
				
			||||||
       one of TEXTURE_3D for a three-dimensional texture or
 | 
					 | 
				
			||||||
       TEXTURE_2D_ARRAY_EXT for an two-dimensional array texture.
 | 
					 | 
				
			||||||
       Additionally, target may be either PROXY_TEXTURE_3D for a
 | 
					 | 
				
			||||||
       three-dimensional proxy texture, or PROXY_TEXTURE_2D_ARRAY_EXT for a
 | 
					 | 
				
			||||||
       two-dimensional proxy array texture."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the fourth paragraph on page 151 to say (spec changes identical
 | 
					 | 
				
			||||||
       to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "Textures with a base internal format of DEPTH_COMPONENT are supported
 | 
					 | 
				
			||||||
       by texture image specification commands only if target is TEXTURE_1D,
 | 
					 | 
				
			||||||
       TEXTURE_2D, TEXTURE_1D_ARRAY_EXT, TEXTURE_2D_ARRAY_EXT,
 | 
					 | 
				
			||||||
       PROXY_TEXTURE_1D, PROXY_TEXTURE_2D, PROXY_TEXTURE_1D_ARRAY_EXT, or
 | 
					 | 
				
			||||||
       PROXY_TEXTURE_2D_ARRAY_EXT. Using this format in conjunction with any
 | 
					 | 
				
			||||||
       other target will result in an INVALID_OPERATION error."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the fourth paragraph on page 156 to say (spec changes identical
 | 
					 | 
				
			||||||
       to EXT_texture_array):
 | 
					 | 
				
			||||||
       
 | 
					 | 
				
			||||||
       "The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void TexImage2D(enum target, int level,
 | 
					 | 
				
			||||||
                         int internalformat, sizei width, sizei height,
 | 
					 | 
				
			||||||
                         int border, enum format, enum type, void *data);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       is used to specify a two-dimensional texture image. target must be one
 | 
					 | 
				
			||||||
       of TEXTURE_2D for a two-dimensional texture, TEXTURE_1D_ARRAY_EXT for a
 | 
					 | 
				
			||||||
       one-dimensional array texture, or one of TEXTURE_CUBE_MAP_POSITIVE_X,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_NEGATIVE_X, TEXTURE_CUBE_MAP_POSITIVE_Y,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_NEGATIVE_Y, TEXTURE_CUBE_MAP_POSITIVE_Z, or
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_NEGATIVE_Z for a cube map texture. Additionally,
 | 
					 | 
				
			||||||
       target may be either PROXY_TEXTURE_2D for a two-dimensional proxy
 | 
					 | 
				
			||||||
       texture, PROXY_TEXTURE_1D_ARRAY_EXT for a one-dimensional proxy array
 | 
					 | 
				
			||||||
       texture, or PROXY TEXTURE_CUBE_MAP for a cube map proxy texture in the
 | 
					 | 
				
			||||||
       special case discussed in section 3.8.11.  The other parameters match
 | 
					 | 
				
			||||||
       the corresponding parameters of TexImage3D.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       For the purposes of decoding the texture image, TexImage2D is
 | 
					 | 
				
			||||||
       equivalent to calling TexImage3D with corresponding arguments and depth
 | 
					 | 
				
			||||||
       of 1, except that
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         * The border depth, d_b, is zero, and the depth of the image is
 | 
					 | 
				
			||||||
           always 1 regardless of the value of border. 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         * The border height, h_b, is zero if <target> is
 | 
					 | 
				
			||||||
           TEXTURE_1D_ARRAY_EXT, and <border> otherwise.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         * Convolution will be performed on the image (possibly changing its
 | 
					 | 
				
			||||||
           width and height) if SEPARABLE 2D or CONVOLUTION 2D is enabled.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         * UNPACK SKIP IMAGES is ignored."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.2 "Alternate Texture Image Specification Commands"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the second paragraph (page 159) (spec changes identical
 | 
					 | 
				
			||||||
       to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void CopyTexImage2D(enum target, int level,
 | 
					 | 
				
			||||||
                             enum internalformat, int x, int y, sizei width,
 | 
					 | 
				
			||||||
                             sizei height, int border);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       defines a two-dimensional texture image in exactly the manner of
 | 
					 | 
				
			||||||
       TexImage2D, except that the image data are taken from the framebuffer
 | 
					 | 
				
			||||||
       rather than from client memory. Currently, target must be one of
 | 
					 | 
				
			||||||
       TEXTURE_2D, TEXTURE_1D_ARRAY_EXT, TEXTURE_CUBE_MAP_POSITIVE_X,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_NEGATIVE_X, TEXTURE_CUBE MAP_POSITIVE_Y,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_NEGATIVE_Y, TEXTURE_CUBE_MAP_POSITIVE_Z, or
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_NEGATIVE_Z.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the last paragraph on page 160 to say (spec changes identical
 | 
					 | 
				
			||||||
       to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "Currently the target arguments of TexSubImage1D and CopyTexSubImage1D
 | 
					 | 
				
			||||||
       must be TEXTURE_1D, the target arguments of TexSubImage2D and
 | 
					 | 
				
			||||||
       CopyTexSubImage2D must be one of TEXTURE_2D, TEXTURE_1D_ARRAY_EXT,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_POSITIVE_X, TEXTURE_CUBE_MAP_NEGATIVE_X,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_POSITIVE_Y, TEXTURE_CUBE_MAP_NEGATIVE_Y,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_POSITIVE_Z, or TEXTURE_CUBE_MAP_NEGATIVE_Z, and the
 | 
					 | 
				
			||||||
       target arguments of TexSubImage3D and CopyTexSubImage3D must be
 | 
					 | 
				
			||||||
       TEXTURE_3D or TEXTURE_2D_ARRAY_EXT. ..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.4 "Texture Parameters"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the first paragraph (page 166) to say:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "Various parameters control how the texel array is treated when
 | 
					 | 
				
			||||||
       specified or changed, and when applied to a fragment. Each parameter is
 | 
					 | 
				
			||||||
       set by calling
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void TexParameter{if}(enum target, enum pname, T param); 
 | 
					 | 
				
			||||||
         void TexParameter{if}v(enum target, enum pname, T params);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       target is the target, either TEXTURE_1D, TEXTURE_2D, TEXTURE_3D,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP, TEXTURE_1D_ARRAY_EXT, or TEXTURE_2D_ARRAY_EXT."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.8 "Texture Minification" in the section "Scale Factor and Level of Detail"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the first paragraph (page 172) to say:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "Let s(x,y) be the function that associates an s texture coordinate
 | 
					 | 
				
			||||||
       with each set of window coordinates (x,y) that lie within a primitive;
 | 
					 | 
				
			||||||
       define t(x,y) and r(x,y) analogously.  Let u(x,y) = w_t * s(x,y),
 | 
					 | 
				
			||||||
       v(x,y) = h_t * t(x,y), and w(x,y) = d_t * r(x,y), where w_t, h_t,
 | 
					 | 
				
			||||||
       and d_t are as defined by equations 3.15, 3.16, and 3.17 with
 | 
					 | 
				
			||||||
       w_s, h_s, and d_s equal to the width, height, and depth of the
 | 
					 | 
				
			||||||
       image array whose level is level_base.  For a one-dimensional
 | 
					 | 
				
			||||||
       texture or a one-dimensional array texture, define v(x,y) = 0 and
 | 
					 | 
				
			||||||
       w(x,y) = 0; for a two-dimensional texture or a two-dimensional array
 | 
					 | 
				
			||||||
       texture, define w(x,y) = 0..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.8 "Texture Minification" in the section "Mipmapping"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the third paragraph (page 174) to say:
 | 
					 | 
				
			||||||
       
 | 
					 | 
				
			||||||
       "For a two-dimensional texture, two-dimensional array texture, or
 | 
					 | 
				
			||||||
       cube map texture,"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the fourth paragraph (page 174) to say:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "And for a one-dimensional texture or a one-dimensional array texture,"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       After the first paragraph (page 175) add:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "For one-dimensional array textures, h_b and d_b are treated as 1,
 | 
					 | 
				
			||||||
       regardless of the actual values, when performing mipmap calculations.
 | 
					 | 
				
			||||||
       For two-dimensional array textures, d_b is always treated as one,
 | 
					 | 
				
			||||||
       regardless of the actual value, when performing mipmap calculations."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.8 "Automatic Mipmap Generation" in the section "Mipmapping"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the third paragraph (page 176) to say (spec changes identical
 | 
					 | 
				
			||||||
       to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "The contents of the derived arrays are computed by repeated, filtered
 | 
					 | 
				
			||||||
       reduction of the level_base array.  For one- and two-dimensional array
 | 
					 | 
				
			||||||
       textures, each layer is filtered independently.  ..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.8 "Manual Mipmap Generation" in the section "Mipmapping"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change first paragraph to say (spec changes identical to
 | 
					 | 
				
			||||||
       EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "Mipmaps can be generated manually with the command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void GenerateMipmapEXT(enum target);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       where <target> is one of TEXTURE_1D, TEXTURE_2D, TEXTURE_CUBE_MAP,
 | 
					 | 
				
			||||||
       TEXTURE_3D, TEXTURE_1D_ARRAY, or TEXTURE_2D_ARRAY.  Mipmap generation
 | 
					 | 
				
			||||||
       affects the texture image attached to <target>.  ..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.10 "Texture Completeness"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the second paragraph (page 177) to say (spec changes identical
 | 
					 | 
				
			||||||
       to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "For one-, two-, or three-dimensional textures and one- or
 | 
					 | 
				
			||||||
       two-dimensional array textures, a texture is complete if the following
 | 
					 | 
				
			||||||
       conditions all hold true:"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.11 "Texture State and Proxy State"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the second and third paragraphs (page 179) to say (spec changes
 | 
					 | 
				
			||||||
       identical to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "In addition to image arrays for one-, two-, and three-dimensional
 | 
					 | 
				
			||||||
       textures, one- and two-dimensional array textures, and the six image
 | 
					 | 
				
			||||||
       arrays for the cube map texture, partially instantiated image arrays
 | 
					 | 
				
			||||||
       are maintained for one-, two-, and three-dimensional textures and one-
 | 
					 | 
				
			||||||
       and two-dimensional array textures.  Additionally, a single proxy image
 | 
					 | 
				
			||||||
       array is maintained for the cube map texture.  Each proxy image array
 | 
					 | 
				
			||||||
       includes width, height, depth, border width, and internal format state
 | 
					 | 
				
			||||||
       values, as well as state for the red, green, blue, alpha, luminance,
 | 
					 | 
				
			||||||
       and intensity component resolutions. Proxy image arrays do not include
 | 
					 | 
				
			||||||
       image data, nor do they include texture properties. When TexImage3D is
 | 
					 | 
				
			||||||
       executed with target specified as PROXY_TEXTURE_3D, the
 | 
					 | 
				
			||||||
       three-dimensional proxy state values of the specified level-of-detail
 | 
					 | 
				
			||||||
       are recomputed and updated. If the image array would not be supported
 | 
					 | 
				
			||||||
       by TexImage3D called with target set to TEXTURE 3D, no error is
 | 
					 | 
				
			||||||
       generated, but the proxy width, height, depth, border width, and
 | 
					 | 
				
			||||||
       component resolutions are set to zero. If the image array would be
 | 
					 | 
				
			||||||
       supported by such a call to TexImage3D, the proxy state values are set
 | 
					 | 
				
			||||||
       exactly as though the actual image array were being specified. No pixel
 | 
					 | 
				
			||||||
       data are transferred or processed in either case.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Proxy arrays for one- and two-dimensional textures and one- and
 | 
					 | 
				
			||||||
       two-dimensional array textures are operated on in the same way when
 | 
					 | 
				
			||||||
       TexImage1D is executed with target specified as PROXY_TEXTURE_1D,
 | 
					 | 
				
			||||||
       TexImage2D is executed with target specified as PROXY_TEXTURE_2D or
 | 
					 | 
				
			||||||
       PROXY_TEXTURE_1D_ARRAY_EXT, or TexImage3D is executed with target
 | 
					 | 
				
			||||||
       specified as PROXY_TETXURE_2D_ARRAY_EXT."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.12 "Texture Objects"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change section (page 180) to say (spec changes identical to 
 | 
					 | 
				
			||||||
       EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "In addition to the default textures TEXTURE_1D, TEXTURE_2D,
 | 
					 | 
				
			||||||
       TEXTURE_3D, TEXTURE_CUBE_MAP, TEXTURE_1D_ARRAY_EXT, and TEXTURE_2D_EXT,
 | 
					 | 
				
			||||||
       named one-, two-, and three-dimensional, cube map, and one- and
 | 
					 | 
				
			||||||
       two-dimensional array texture objects can be created and operated upon.
 | 
					 | 
				
			||||||
       The name space for texture objects is the unsigned integers, with zero
 | 
					 | 
				
			||||||
       reserved by the GL.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       A texture object is created by binding an unused name to TEXTURE_1D,
 | 
					 | 
				
			||||||
       TEXTURE_2D, TEXTURE_3D, TEXTURE_CUBE_MAP, TEXTURE_1D_ARRAY_EXT, or
 | 
					 | 
				
			||||||
       TEXTURE_2D_ARRAY_EXT. The binding is effected by calling
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void BindTexture(enum target, uint texture);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       with <target> set to the desired texture target and <texture> set to
 | 
					 | 
				
			||||||
       the unused name.  The resulting texture object is a new state vector,
 | 
					 | 
				
			||||||
       comprising all the state values listed in section 3.8.11, set to the
 | 
					 | 
				
			||||||
       same initial values. If the new texture object is bound to TEXTURE_1D,
 | 
					 | 
				
			||||||
       TEXTURE_2D, TEXTURE_3D, TEXTURE_CUBE_MAP, TEXTURE_1D_ARRAY_EXT, or
 | 
					 | 
				
			||||||
       TEXTURE_2D_ARRAY_EXT, it is and remains a one-, two-,
 | 
					 | 
				
			||||||
       three-dimensional, cube map, one- or two-dimensional array texture
 | 
					 | 
				
			||||||
       respectively until it is deleted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       BindTexture may also be used to bind an existing texture object to
 | 
					 | 
				
			||||||
       either TEXTURE_1D, TEXTURE_2D, TEXTURE_3D, TEXTURE_CUBE_MAP,
 | 
					 | 
				
			||||||
       TEXTURE_1D_ARRAY_EXT, or TEXTURE_2D_ARRAY_EXT. The error
 | 
					 | 
				
			||||||
       INVALID_OPERATION is generated if an attempt is made to bind a texture
 | 
					 | 
				
			||||||
       object of different dimensionality than the specified target. If the
 | 
					 | 
				
			||||||
       bind is successful no change is made to the state of the bound texture
 | 
					 | 
				
			||||||
       object, and any previous binding to target is broken.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       While a texture object is bound, GL operations on the target to which
 | 
					 | 
				
			||||||
       it is bound affect the bound object, and queries of the target to which
 | 
					 | 
				
			||||||
       it is bound return state from the bound object. If texture mapping of
 | 
					 | 
				
			||||||
       the dimensionality of the target to which a texture object is bound is
 | 
					 | 
				
			||||||
       enabled, the state of the bound texture object directs the texturing
 | 
					 | 
				
			||||||
       operation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       In the initial state, TEXTURE_1D, TEXTURE_2D, TEXTURE_3D,
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP, TEXTURE_1D_ARRAY_EXT, and TEXTURE_2D_ARRAY_EXT have
 | 
					 | 
				
			||||||
       one-, two-, three-dimensional, cube map, and one- and two-dimensional
 | 
					 | 
				
			||||||
       array texture state vectors respectively associated with them. In order
 | 
					 | 
				
			||||||
       that access to these initial textures not be lost, they are treated as
 | 
					 | 
				
			||||||
       texture objects all of whose names are 0. The initial one-, two-,
 | 
					 | 
				
			||||||
       three-dimensional, cube map, one- and two-dimensional array textures
 | 
					 | 
				
			||||||
       are therefore operated upon, queried, and applied as TEXTURE_1D,
 | 
					 | 
				
			||||||
       TEXTURE_2D, TEXTURE_3D, TEXTURE_CUBE_MAP, TEXTURE_1D_ARRAY_EXT, and
 | 
					 | 
				
			||||||
       TEXTURE_2D_ARRAY_EXT respectively while 0 is bound to the corresponding
 | 
					 | 
				
			||||||
       targets.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change second paragraph on page 181 to say (spec changes identical to 
 | 
					 | 
				
			||||||
       EXT_texture_array):
 | 
					 | 
				
			||||||
       
 | 
					 | 
				
			||||||
       "...  If a texture that is currently bound to one of the targets
 | 
					 | 
				
			||||||
       TEXTURE_1D, TEXTURE_2D, TEXTURE_3D, TEXTURE_CUBE_MAP,
 | 
					 | 
				
			||||||
       TEXTURE_1D_ARRAY_EXT, or TEXTURE_2D_ARRAY_EXT is deleted, it is as
 | 
					 | 
				
			||||||
       though BindTexture had been executed with the same target and texture
 | 
					 | 
				
			||||||
       zero. ..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change second paragraph on page 182 to say (spec changes identical to 
 | 
					 | 
				
			||||||
       EXT_texture_array):
 | 
					 | 
				
			||||||
       
 | 
					 | 
				
			||||||
       "The texture object name space, including the initial one-, two-, and
 | 
					 | 
				
			||||||
       three dimensional, cube map, and one- and two-dimensional array texture
 | 
					 | 
				
			||||||
       objects, is shared among all texture units. ..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.14 "Depth Texture Comparison Modes" in "Texture Comparison Modes"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       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
 | 
					 | 
				
			||||||
       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
 | 
					 | 
				
			||||||
       <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:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       If the value of TEXTURE_COMPARE_MODE is NONE, then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          r = Dt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       If the value of TEXTURE_COMPARE_MODE is
 | 
					 | 
				
			||||||
       COMPARE_REF_DEPTH_TO_TEXTURE_EXT), then r depends on the texture
 | 
					 | 
				
			||||||
       comparison function as shown in table 3.27."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.8.15 "Texture Application"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Change the first paragraph (page 189) to say:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "Texturing is enabled or disabled using the generic Enable and Disable
 | 
					 | 
				
			||||||
       commands, respectively, with the symbolic constants TEXTURE_1D,
 | 
					 | 
				
			||||||
       TEXTURE_2D, TEXTURE_3D, TEXTURE_CUBE_MAP, TEXTURE_1D_ARRAY_EXT, or
 | 
					 | 
				
			||||||
       TEXTURE_2D_ARRAY_EXT to enable one-, two-, three-dimensional, cube
 | 
					 | 
				
			||||||
       map, one-dimensional array, or two-dimensional array texture,
 | 
					 | 
				
			||||||
       respectively.  If both two- and one-dimensional textures are enabled,
 | 
					 | 
				
			||||||
       the two-dimensional texture is used.  If the three-dimensional and
 | 
					 | 
				
			||||||
       either of the two- or one-dimensional textures is enabled, the
 | 
					 | 
				
			||||||
       three-dimensional texture is used.  If the cube map texture and any of
 | 
					 | 
				
			||||||
       the three-, two-, or one-dimensional textures is enabled, then cube map
 | 
					 | 
				
			||||||
       texturing is used.  If one-dimensional array texture is enabled and any
 | 
					 | 
				
			||||||
       of cube map, three-, two-, or one-dimensional textures is enabled, 
 | 
					 | 
				
			||||||
       one-dimensional array texturing is used.  If two-dimensional array
 | 
					 | 
				
			||||||
       texture is enabled and any of cube map, three-, two-, one-dimensional
 | 
					 | 
				
			||||||
       textures or one-dimensional array texture is enabled, two-dimensional
 | 
					 | 
				
			||||||
       array texturing is used..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.11.2 of ARB_fragment_program (Fragment Program Grammar and Restrictions):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       (mostly add to existing grammar rules)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       <optionName>           ::= "MESA_texture_array"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       <texTarget>            ::= "1D"
 | 
					 | 
				
			||||||
                               | "2D"
 | 
					 | 
				
			||||||
                               | "3D"
 | 
					 | 
				
			||||||
                               | "CUBE"
 | 
					 | 
				
			||||||
                               | "RECT"
 | 
					 | 
				
			||||||
                               | <arrayTarget> (if program option is present)
 | 
					 | 
				
			||||||
                               | <shadowTarget> (if program option is present)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       <arrayTarget>          ::= "ARRAY1D"
 | 
					 | 
				
			||||||
                               | "ARRAY2D"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       <shadowTarget>         ::= "SHADOW1D"
 | 
					 | 
				
			||||||
                               | "SHADOW2D"
 | 
					 | 
				
			||||||
                               | "SHADOWRECT"
 | 
					 | 
				
			||||||
                               | <shadowArrayTarget> (if program option is present)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       <shadowArrayTarget>    ::= "SHADOWARRAY1D"
 | 
					 | 
				
			||||||
                               | "SHADOWARRAY2D"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Add Section 3.11.4.5.4 "Texture Stack Option"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "If a fragment program specifies the "MESA_texture_array" program
 | 
					 | 
				
			||||||
       option, the <texTarget> rule is modified to add the texture targets
 | 
					 | 
				
			||||||
       ARRAY1D and ARRAY2D (See Section 3.11.2)."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.11.6 "Fragment Program Texture Instruction Set"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       (replace 1st and 2nd paragraphs with the following paragraphs)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "The first three texture instructions described below specify the
 | 
					 | 
				
			||||||
       mapping of 4-tuple input vectors to 4-tuple output vectors.
 | 
					 | 
				
			||||||
       The sampling of the texture works as described in section 3.8,
 | 
					 | 
				
			||||||
       except that texture environments and texture functions are not
 | 
					 | 
				
			||||||
       applicable, and the texture enables hierarchy is replaced by explicit
 | 
					 | 
				
			||||||
       references to the desired texture target (i.e., 1D, 2D, 3D, cube map,
 | 
					 | 
				
			||||||
       rectangle, ARRAY1D, ARRAY2D).  These texture instructions specify
 | 
					 | 
				
			||||||
       how the 4-tuple is mapped into the coordinates used for sampling.  The
 | 
					 | 
				
			||||||
       following function is used to describe the texture sampling in the
 | 
					 | 
				
			||||||
       descriptions below: 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         vec4 TextureSample(vec4 coord, float lodBias, int texImageUnit,
 | 
					 | 
				
			||||||
                            enum texTarget);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Note that not all four components of the texture coordinates <coord>
 | 
					 | 
				
			||||||
       are used by all texture targets.  Component usage for each <texTarget>
 | 
					 | 
				
			||||||
       is defined in table X.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                                        coordinates used
 | 
					 | 
				
			||||||
         texTarget          Texture Type               s t r  layer  shadow
 | 
					 | 
				
			||||||
         ----------------   ---------------------      -----  -----  ------
 | 
					 | 
				
			||||||
         1D                 TEXTURE_1D                 x - -    -      -
 | 
					 | 
				
			||||||
         2D                 TEXTURE_2D                 x y -    -      -
 | 
					 | 
				
			||||||
         3D                 TEXTURE_3D                 x y z    -      -
 | 
					 | 
				
			||||||
         CUBE               TEXTURE_CUBE_MAP           x y z    -      -
 | 
					 | 
				
			||||||
         RECT               TEXTURE_RECTANGLE_ARB      x y -    -      -
 | 
					 | 
				
			||||||
         ARRAY1D            TEXTURE_1D_ARRAY_EXT       x - -    y      -
 | 
					 | 
				
			||||||
         ARRAY2D            TEXTURE_2D_ARRAY_EXT       x y -    z      -
 | 
					 | 
				
			||||||
         SHADOW1D           TEXTURE_1D                 x - -    -      z
 | 
					 | 
				
			||||||
         SHADOW2D           TEXTURE_2D                 x y -    -      z
 | 
					 | 
				
			||||||
         SHADOWRECT         TEXTURE_RECTANGLE_ARB      x y -    -      z
 | 
					 | 
				
			||||||
         SHADOWARRAY1D      TEXTURE_1D_ARRAY_EXT       x - -    y      z
 | 
					 | 
				
			||||||
         SHADOWARRAY2D      TEXTURE_2D_ARRAY_EXT       x y -    z      w
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         Table X:  Texture types accessed for each of the <texTarget>, and
 | 
					 | 
				
			||||||
         coordinate mappings.  The "coordinates used" column indicate the
 | 
					 | 
				
			||||||
         input values used for each coordinate of the texture lookup, the
 | 
					 | 
				
			||||||
         layer selector for array textures, and the reference value for
 | 
					 | 
				
			||||||
         texture comparisons."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 3.11.6.2 "TXP: Project coordinate and map to color"
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
       Add to the end of the section:
 | 
					 | 
				
			||||||
       
 | 
					 | 
				
			||||||
       "A program will fail to load if the TXP instruction is used in
 | 
					 | 
				
			||||||
       conjunction with the SHADOWARRAY2D target."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 4 of the OpenGL 2.0 Specification (Per-Fragment Operations)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 4.4.2.3 "Attaching Texture Images to a Framebuffer"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Add to the end of the section (spec changes identical to
 | 
					 | 
				
			||||||
       EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void FramebufferTextureLayerEXT(enum target, enum attachment,
 | 
					 | 
				
			||||||
                                         uint texture, int level, int layer);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       operates identically to FramebufferTexture3DEXT, except that it
 | 
					 | 
				
			||||||
       attaches a single layer of a three-dimensional texture or a one- or
 | 
					 | 
				
			||||||
       two-dimensional array texture.  <layer> is an integer indicating the
 | 
					 | 
				
			||||||
       layer number, and is treated identically to the <zoffset> parameter in
 | 
					 | 
				
			||||||
       FramebufferTexture3DEXT.  The error INVALID_VALUE is generated if
 | 
					 | 
				
			||||||
       <layer> is negative.  The error INVALID_OPERATION is generated if
 | 
					 | 
				
			||||||
       <texture> is non-zero and is not the name of a three dimensional
 | 
					 | 
				
			||||||
       texture or one- or two-dimensional array texture.  Unlike
 | 
					 | 
				
			||||||
       FramebufferTexture3D, no <textarget> parameter is accepted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       If <texture> is non-zero and the command does not result in an error,
 | 
					 | 
				
			||||||
       the framebuffer attachment state corresponding to <attachment> is
 | 
					 | 
				
			||||||
       updated as in the other FramebufferTexture commands, except that
 | 
					 | 
				
			||||||
       FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT is set to <layer>."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 4.4.4.1 "Framebuffer Attachment Completeness"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      Add to the end of the list of completeness rules (spec changes
 | 
					 | 
				
			||||||
      identical to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        "* If FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT is TEXTURE and
 | 
					 | 
				
			||||||
           FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT names a one- or 
 | 
					 | 
				
			||||||
           two-dimensional array texture, then
 | 
					 | 
				
			||||||
           FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT must be smaller than the
 | 
					 | 
				
			||||||
           number of layers in the texture."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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
 | 
					 | 
				
			||||||
       identical to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "TexImage3D, TexImage2D, TexImage1D, Histogram, and ColorTable are
 | 
					 | 
				
			||||||
       executed immediately when called with the corresponding proxy arguments
 | 
					 | 
				
			||||||
       PROXY_TEXTURE_3D or PROXY_TEXTURE_2D_ARRAY_EXT; PROXY_TEXTURE_2D,
 | 
					 | 
				
			||||||
       PROXY_TEXTURE_CUBE_MAP, or PROXY_TEXTURE_1D_ARRAY_EXT;
 | 
					 | 
				
			||||||
       PROXY_TEXTURE_1D; PROXY_HISTOGRAM; and PROXY_COLOR_TABLE,
 | 
					 | 
				
			||||||
       PROXY_POST_CONVOLUTION_COLOR_TABLE, or
 | 
					 | 
				
			||||||
       PROXY_POST_COLOR_MATRIX_COLOR_TABLE."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Chapter 6 of the OpenGL 2.0 Specification (State and State Requests)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 6.1.3 "Enumerated Queries"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       Add after the line beginning "If the value of
 | 
					 | 
				
			||||||
       FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT is TEXTURE" (spec changes
 | 
					 | 
				
			||||||
       identical to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "If <pname> is FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT and the
 | 
					 | 
				
			||||||
       texture object named FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT is a
 | 
					 | 
				
			||||||
       three-dimensional texture or a one- or two-dimensional array texture,
 | 
					 | 
				
			||||||
       then <params> will contain the number of texture layer attached to the
 | 
					 | 
				
			||||||
       attachment point.  Otherwise, <params> will contain the value zero."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- Section 6.1.4 "Texture Queries"
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
       Change the first three paragraphs (page 248) to say (spec changes
 | 
					 | 
				
			||||||
       identical to EXT_texture_array):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       "The command
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         void GetTexImage(enum tex, int lod, enum format,
 | 
					 | 
				
			||||||
                          enum type, void *img);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       is used to obtain texture images. It is somewhat different from the
 | 
					 | 
				
			||||||
       other get commands; tex is a symbolic value indicating which texture
 | 
					 | 
				
			||||||
       (or texture face in the case of a cube map texture target name) is to
 | 
					 | 
				
			||||||
       be obtained.  TEXTURE_1D, TEXTURE_2D, TEXTURE_3D, TEXTURE_1D_ARRAY_EXT,
 | 
					 | 
				
			||||||
       and TEXTURE_2D_ARRAY_EXT indicate a one-, two-, or three-dimensional
 | 
					 | 
				
			||||||
       texture, or one- or two-dimensional array texture, respectively.
 | 
					 | 
				
			||||||
       TEXTURE_CUBE_MAP_POSITIVE_X, ...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       GetTexImage obtains... from the first image to the last for
 | 
					 | 
				
			||||||
       three-dimensional textures.  One- and two-dimensional array textures
 | 
					 | 
				
			||||||
       are treated as two- and three-dimensional images, respectively, where
 | 
					 | 
				
			||||||
       the layers are treated as rows or images.  These groups are then...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       For three-dimensional and two-dimensional array textures, pixel storage
 | 
					 | 
				
			||||||
       operations are applied as if the image were two-dimensional, except
 | 
					 | 
				
			||||||
       that the additional pixel storage state values PACK_IMAGE_HEIGHT and
 | 
					 | 
				
			||||||
       PACK_SKIP_IMAGES are applied. ..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to Appendix A of the OpenGL 2.0 Specification (Invariance)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Additions to the AGL/GLX/WGL Specifications
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX Protocol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies on ARB_fragment_program
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If ARB_fragment_program is not supported, the changes to section 3.11
 | 
					 | 
				
			||||||
    should be ignored.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies on EXT_framebuffer_object
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    If EXT_framebuffer_object is not supported, the changes to section
 | 
					 | 
				
			||||||
    3.8.8 ("Manual Mipmap Generation"), 4.4.2.3, and 6.1.3 should be ignored.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dependencies on EXT_texture_compression_s3tc and NV_texture_compression_vtc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (Identical dependency as EXT_texture_array.)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    S3TC texture compression is supported for two-dimensional array textures.
 | 
					 | 
				
			||||||
    When <target> is TEXTURE_2D_ARRAY_EXT, each layer is stored independently
 | 
					 | 
				
			||||||
    as a compressed two-dimensional textures.  When specifying or querying
 | 
					 | 
				
			||||||
    compressed images using one of the S3TC formats, the images are provided
 | 
					 | 
				
			||||||
    and/or returned as a series of two-dimensional textures stored
 | 
					 | 
				
			||||||
    consecutively in memory, with the layer closest to zero specified first.
 | 
					 | 
				
			||||||
    For array textures, images are not arranged in 4x4x4 or 4x4x2 blocks as in
 | 
					 | 
				
			||||||
    the three-dimensional compression format provided in the
 | 
					 | 
				
			||||||
    EXT_texture_compression_vtc extension.  Pixel store parameters, including
 | 
					 | 
				
			||||||
    those specific to three-dimensional images, are ignored when compressed
 | 
					 | 
				
			||||||
    image data are provided or returned, as in the
 | 
					 | 
				
			||||||
    EXT_texture_compression_s3tc extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    S3TC compression is not supported for one-dimensional texture targets in
 | 
					 | 
				
			||||||
    EXT_texture_compression_s3tc, and is not supported for one-dimensional
 | 
					 | 
				
			||||||
    array textures in this extension.  If compressed one-dimensional arrays
 | 
					 | 
				
			||||||
    are needed, use a two-dimensional texture with a height of one.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This extension allows the use of the four S3TC internal format types in
 | 
					 | 
				
			||||||
    TexImage3D, CompressedTexImage3D, and CompressedTexSubImage3D calls.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (add to table 6.15, p. 276)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                                     Initial
 | 
					 | 
				
			||||||
    Get Value                     Type   Get Command  Value Description           Sec.    Attribute
 | 
					 | 
				
			||||||
    ----------------------------  -----  -----------  ----- --------------------  ------  ---------
 | 
					 | 
				
			||||||
    TEXTURE_BINDING_1D_ARRAY_EXT  2*xZ+  GetIntegerv    0   texture object bound  3.8.12  texture
 | 
					 | 
				
			||||||
                                                            to TEXTURE_1D_ARRAY
 | 
					 | 
				
			||||||
    TEXTURE_BINDING_2D_ARRAY_EXT  2*xZ+  GetIntegerv    0   texture object bound  3.8.12  texture
 | 
					 | 
				
			||||||
                                                            to TEXTURE_2D_ARRAY
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
New Implementation Dependent State
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (add to Table 6.32, p. 293)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                                    Minimum
 | 
					 | 
				
			||||||
    Get Value                     Type  Get Command  Value  Description         Sec.  Attribute
 | 
					 | 
				
			||||||
    ----------------------------  ----  ----------- ------- ------------------  ----- ---------
 | 
					 | 
				
			||||||
    MAX_TEXTURE_ARRAY_LAYERS_EXT   Z+   GetIntegerv   64    maximum number of   3.8.1     -
 | 
					 | 
				
			||||||
                                                            layers for texture
 | 
					 | 
				
			||||||
                                                            arrays
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Issues
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (1) Is "texture stack" a good name for this functionality?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        NO.  The name is changed to "array texture" to match the
 | 
					 | 
				
			||||||
        nomenclature used by GL_EXT_texture_array.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (2) Should the R texture coordinate be treated as normalized or
 | 
					 | 
				
			||||||
    un-normalized?  If it were un-normalized, floor(R) could be thought
 | 
					 | 
				
			||||||
    of as a direct index into the array texture.  This may be more
 | 
					 | 
				
			||||||
    convenient for applications.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RESOLVED.  All texture coordinates are normalized.  The issue of
 | 
					 | 
				
			||||||
        un-normalized texture coordinates has been discussed in the ARB
 | 
					 | 
				
			||||||
        before and should be left for a layered extension.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RE-RESOLVED.  The R coordinate is un-normalized.  Accessing an array
 | 
					 | 
				
			||||||
        using [0, layers-1] coordinates is much more natural.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (3) How does LOD selection work for stacked textures?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RESOLVED.  For 2D array textures the R coordinate is ignored, and
 | 
					 | 
				
			||||||
        the LOD selection equations for 2D textures are used.  For 1D
 | 
					 | 
				
			||||||
        array textures the T coordinate is ignored, and the LOD selection
 | 
					 | 
				
			||||||
        equations for 1D textures are used.  The expected usage is in a
 | 
					 | 
				
			||||||
        fragment program with an explicit LOD selection.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (4) What is the maximum size of a 2D array texture?  Is it the same
 | 
					 | 
				
			||||||
    as for a 3D texture, or should a new query be added?  How about for 1D
 | 
					 | 
				
			||||||
    array textures?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RESOLVED.  A new query is added.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (5) How are array textures exposed in GLSL?
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        RESOLVED.  Use GL_EXT_texture_array.
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
    (6) Should a 1D array texture also be exposed?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RESOLVED.  For orthogonality, yes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (7) How are stacked textures attached to framebuffer objects?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        RESOLVED.  Layers of both one- and two-dimensional array textures
 | 
					 | 
				
			||||||
        are attached using FreambufferTextureLayerEXT.  Once attached, the
 | 
					 | 
				
			||||||
        array texture layer behaves exactly as either a one- or
 | 
					 | 
				
			||||||
        two-dimensional texture.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (8) How is this extension related to GL_EXT_texture_array?
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        This extension adapats GL_MESAX_texture_stack to the notation,
 | 
					 | 
				
			||||||
        indexing, and FBO access of GL_EXT_texture_array.  This extension
 | 
					 | 
				
			||||||
        replaces the GLSL support of GL_EXT_texture_array with
 | 
					 | 
				
			||||||
        GL_ARB_fragment_program support.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Assembly program support is also provided by GL_NV_gpu_program4.
 | 
					 | 
				
			||||||
        GL_NV_gpu_program4 also adds support for other features that are
 | 
					 | 
				
			||||||
        specific to Nvidia hardware, while this extension adds only support
 | 
					 | 
				
			||||||
        for array textures.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Much of text of this extension that has changed since
 | 
					 | 
				
			||||||
        GL_MESAX_texture_stack comes directly from either
 | 
					 | 
				
			||||||
        GL_EXT_texture_array or GL_NV_gpu_program4.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Revision History
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ||2005/11/15||0.1||idr||Initial draft MESAX version.||
 | 
					 | 
				
			||||||
    ||2005/12/07||0.2||idr||Added framebuffer object interactions.||
 | 
					 | 
				
			||||||
    ||2005/12/12||0.3||idr||Updated fragment program interactions.||
 | 
					 | 
				
			||||||
    ||2007/05/16||0.4||idr||Converted to MESA_texture_array.  Brought in line with EXT_texture_array and NV_gpu_program4.||
 | 
					 | 
				
			||||||
@@ -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.
 | 
					 | 
				
			||||||
@@ -17,6 +17,7 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $Id: MESA_trace.spec,v 1.4 2004/03/25 01:42:42 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,6 +16,7 @@ Status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Version
 | 
					Version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $Id: MESA_window_pos.spec,v 1.4 2004/03/25 01:42:42 brianp Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Number
 | 
					Number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -88,7 +89,7 @@ Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
 | 
				
			|||||||
      WindosPos4MESA takes four values indicating x, y, z, and w.
 | 
					      WindosPos4MESA takes four values indicating x, y, z, and w.
 | 
				
			||||||
      WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only
 | 
					      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
 | 
					      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
 | 
					      WindowPosMESA operates like RasterPos except that the current modelview
 | 
				
			||||||
      matrix, projection matrix and viewport parameters are ignored and the
 | 
					      matrix, projection matrix and viewport parameters are ignored and the
 | 
				
			||||||
@@ -108,7 +109,7 @@ GLX Protocol
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Errors
 | 
					Errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    INVALID_OPERATION is generated if WindowPosMESA is called between
 | 
					    INVALID_OPERATION is generated if WindowPosMESA is called betweeen
 | 
				
			||||||
    Begin and End.
 | 
					    Begin and End.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
New State
 | 
					New State
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,7 +26,7 @@ Number
 | 
				
			|||||||
Dependencies
 | 
					Dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    OpenGL 1.0 or later is required
 | 
					    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.
 | 
					    NV_texture_rectangle effects the definition of this extension.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Overview
 | 
					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,
 | 
					    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
 | 
					                       First       Second     Third      Fourth
 | 
				
			||||||
    Format             Element     Element    Element    Element
 | 
					    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
 | 
						- The Voodoo driver supports the GL_EXT_paletted_texture. it works
 | 
				
			||||||
	  only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
 | 
						  only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
 | 
				
			||||||
	  is ignored because this is a limitation of the current Glide
 | 
						  is ignored because this is a limitation of the the current Glide
 | 
				
			||||||
	  version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
 | 
						  version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
 | 
				
			||||||
	  a demo of this extension.
 | 
						  a demo of this extension.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -134,3 +134,4 @@ as of February, 1999.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
----------------------------------------------------------------------
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
 | 
					$Id: README.BEOS,v 1.12 2004/10/13 00:35:55 phoudoin Exp $
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -205,3 +205,4 @@ http://www.linuxgames.com/quake2/
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
----------------------------------------------------------------------
 | 
					----------------------------------------------------------------------
 | 
				
			||||||
 | 
					$Id: README.QUAKE,v 1.3 1998/08/23 15:26:26 brianp Exp $
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user