Compare commits
	
		
			1272 Commits
		
	
	
		
			mesa-19.2.
			...
			mesa-7.5-r
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9032d6b40b | ||
| 
						 | 
					489ca73db1 | ||
| 
						 | 
					2c8046b1bc | ||
| 
						 | 
					18bb120fce | ||
| 
						 | 
					d2c8712fa4 | ||
| 
						 | 
					b59211a602 | ||
| 
						 | 
					adafe6d607 | ||
| 
						 | 
					c38bc21cf5 | ||
| 
						 | 
					1df36638c0 | ||
| 
						 | 
					dd89f8e3ea | ||
| 
						 | 
					2ca61d4474 | ||
| 
						 | 
					22f1c449ae | ||
| 
						 | 
					2be8cd65cb | ||
| 
						 | 
					ec4c889266 | ||
| 
						 | 
					c84a384fdf | ||
| 
						 | 
					f56634caea | ||
| 
						 | 
					d0c391b6a2 | ||
| 
						 | 
					eaed8dc609 | ||
| 
						 | 
					b5609e6444 | ||
| 
						 | 
					0b870bbb2a | ||
| 
						 | 
					1dbbc39f48 | ||
| 
						 | 
					4b8cd0b0ad | ||
| 
						 | 
					5d387a35ff | ||
| 
						 | 
					2ae6859215 | ||
| 
						 | 
					afe0ca1f3f | ||
| 
						 | 
					6b782231d0 | ||
| 
						 | 
					2b890c9818 | ||
| 
						 | 
					e0b13e15f1 | ||
| 
						 | 
					420c74b870 | ||
| 
						 | 
					a64f994a3a | ||
| 
						 | 
					c568446dc6 | ||
| 
						 | 
					acbf9c6f3c | ||
| 
						 | 
					3b842feead | ||
| 
						 | 
					6d62b8d5c1 | ||
| 
						 | 
					02659868e8 | ||
| 
						 | 
					457f4efab0 | ||
| 
						 | 
					0269eb5e3f | ||
| 
						 | 
					b7d9be69b2 | ||
| 
						 | 
					7b8b856c97 | ||
| 
						 | 
					24bffc4cc2 | ||
| 
						 | 
					586341afd9 | ||
| 
						 | 
					1e4334f623 | ||
| 
						 | 
					8861577fd1 | ||
| 
						 | 
					cf997e0d2e | ||
| 
						 | 
					f3496a3cbd | ||
| 
						 | 
					4bcb9cc14f | ||
| 
						 | 
					537f3e7a1e | ||
| 
						 | 
					2096234053 | ||
| 
						 | 
					99b4daf5e1 | ||
| 
						 | 
					506d340363 | ||
| 
						 | 
					9dbe32f5eb | ||
| 
						 | 
					9adca8814d | ||
| 
						 | 
					8125c5ce92 | ||
| 
						 | 
					ba3f8dc0aa | ||
| 
						 | 
					85cf1675d4 | ||
| 
						 | 
					3aeace2928 | ||
| 
						 | 
					0edb61afef | ||
| 
						 | 
					accffe2b73 | ||
| 
						 | 
					35f5222ae0 | ||
| 
						 | 
					1096a6c579 | ||
| 
						 | 
					1eb59f49a4 | ||
| 
						 | 
					63d1e89138 | ||
| 
						 | 
					3ed7e9bfcc | ||
| 
						 | 
					46a2aad2cf | ||
| 
						 | 
					73670d56e8 | ||
| 
						 | 
					b5eafa2d51 | ||
| 
						 | 
					ac00f6a47a | ||
| 
						 | 
					d1fcb4a263 | ||
| 
						 | 
					da709f163f | ||
| 
						 | 
					3a1bcbe579 | ||
| 
						 | 
					ec863602f2 | ||
| 
						 | 
					2ff47b80f5 | ||
| 
						 | 
					63cde0ea0e | ||
| 
						 | 
					ab885d7088 | ||
| 
						 | 
					c521d4629b | ||
| 
						 | 
					e9d5569bf3 | ||
| 
						 | 
					84ae506072 | ||
| 
						 | 
					4842cde28f | ||
| 
						 | 
					b651c02dca | ||
| 
						 | 
					ec44d955bb | ||
| 
						 | 
					914edc46fa | ||
| 
						 | 
					64cb29deca | ||
| 
						 | 
					6337525497 | ||
| 
						 | 
					7541c3806a | ||
| 
						 | 
					a1ce4efefb | ||
| 
						 | 
					656cd707db | ||
| 
						 | 
					ce7f78694d | ||
| 
						 | 
					fd95e8ee33 | ||
| 
						 | 
					d2b8c41b7a | ||
| 
						 | 
					bfd6bb31a6 | ||
| 
						 | 
					c3e7fc394f | ||
| 
						 | 
					dd56897b27 | ||
| 
						 | 
					e8807a14a6 | ||
| 
						 | 
					c38397866d | ||
| 
						 | 
					d7b9a6c9ef | ||
| 
						 | 
					4f2bc058f3 | ||
| 
						 | 
					909afc5304 | ||
| 
						 | 
					4deb679b42 | ||
| 
						 | 
					dce84002c2 | ||
| 
						 | 
					c490349825 | ||
| 
						 | 
					f62d45fd0d | ||
| 
						 | 
					b2dfc29a82 | ||
| 
						 | 
					7c1e61f41c | ||
| 
						 | 
					5654197d12 | ||
| 
						 | 
					87cb55e9c6 | ||
| 
						 | 
					e7d499f935 | ||
| 
						 | 
					51e7600d77 | ||
| 
						 | 
					69b17abd6b | ||
| 
						 | 
					a975da7aca | ||
| 
						 | 
					ecf47b5046 | ||
| 
						 | 
					fed8dc53ad | ||
| 
						 | 
					1f462e26c0 | ||
| 
						 | 
					85396d8ef4 | ||
| 
						 | 
					f11b84998d | ||
| 
						 | 
					5d4659e7c7 | ||
| 
						 | 
					c422347bee | ||
| 
						 | 
					d2f6791062 | ||
| 
						 | 
					49e0c74ddd | ||
| 
						 | 
					83e14773c5 | ||
| 
						 | 
					4605937843 | ||
| 
						 | 
					b8ef30c45c | ||
| 
						 | 
					4f17040cb1 | ||
| 
						 | 
					98c2c9ef8c | ||
| 
						 | 
					d805c82068 | ||
| 
						 | 
					3d81e934e5 | ||
| 
						 | 
					6c3bec4387 | ||
| 
						 | 
					7d3561c871 | ||
| 
						 | 
					5c47d53924 | ||
| 
						 | 
					a18216308a | ||
| 
						 | 
					14f13fbcfa | ||
| 
						 | 
					ca24095c1e | ||
| 
						 | 
					d5e0e03d43 | ||
| 
						 | 
					775ca8e3fa | ||
| 
						 | 
					39345a4928 | ||
| 
						 | 
					7be149cfd1 | ||
| 
						 | 
					8c9d7b2474 | ||
| 
						 | 
					6ef0951b17 | ||
| 
						 | 
					2b33b77337 | ||
| 
						 | 
					0590edeea0 | ||
| 
						 | 
					7511d76bd7 | ||
| 
						 | 
					99f159339e | ||
| 
						 | 
					7f30aba920 | ||
| 
						 | 
					4fa700260e | ||
| 
						 | 
					781fb79c59 | ||
| 
						 | 
					5b7e9f2f3a | ||
| 
						 | 
					d4d4b63d7f | ||
| 
						 | 
					9e9fe51acd | ||
| 
						 | 
					b65bc1b6cb | ||
| 
						 | 
					6cb796f6fc | ||
| 
						 | 
					4830fab603 | ||
| 
						 | 
					1e142bf63d | ||
| 
						 | 
					de197cf991 | ||
| 
						 | 
					bf1e6581a5 | ||
| 
						 | 
					80ec7843bc | ||
| 
						 | 
					366d6e8cd1 | ||
| 
						 | 
					63ed288396 | ||
| 
						 | 
					88ce34f400 | ||
| 
						 | 
					f535de8721 | ||
| 
						 | 
					1db913f687 | ||
| 
						 | 
					0e5d1f43af | ||
| 
						 | 
					09c587ae55 | ||
| 
						 | 
					775d8431e9 | ||
| 
						 | 
					3217ea8a1d | ||
| 
						 | 
					00aea5853d | ||
| 
						 | 
					20d34b50b5 | ||
| 
						 | 
					9cff0acb36 | ||
| 
						 | 
					791b59493f | ||
| 
						 | 
					7dff7029fa | ||
| 
						 | 
					f8fd9bc46b | ||
| 
						 | 
					53f0e141c0 | ||
| 
						 | 
					af3c568475 | ||
| 
						 | 
					7d01429512 | ||
| 
						 | 
					14a794300e | ||
| 
						 | 
					912ec292c1 | ||
| 
						 | 
					e814b5ae2f | ||
| 
						 | 
					0fea05915a | ||
| 
						 | 
					dfa44f0ff9 | ||
| 
						 | 
					8d088cd34f | ||
| 
						 | 
					094d627885 | ||
| 
						 | 
					f850ff2bcc | ||
| 
						 | 
					66f972ab55 | ||
| 
						 | 
					17db2db9dc | ||
| 
						 | 
					dba79af9bc | ||
| 
						 | 
					b009a32bf4 | ||
| 
						 | 
					7122490982 | ||
| 
						 | 
					6ada1d47d9 | ||
| 
						 | 
					55865335f4 | ||
| 
						 | 
					918e5221ef | ||
| 
						 | 
					9feb26584a | ||
| 
						 | 
					a8528a2e86 | ||
| 
						 | 
					119360cccd | ||
| 
						 | 
					ac2216542d | ||
| 
						 | 
					37e5c057f1 | ||
| 
						 | 
					4d9b8e0f93 | ||
| 
						 | 
					c1b71f46b5 | ||
| 
						 | 
					4a25ac9564 | ||
| 
						 | 
					35d965b39b | ||
| 
						 | 
					d0aab00609 | ||
| 
						 | 
					ef33d0f103 | ||
| 
						 | 
					349b819768 | ||
| 
						 | 
					50443db882 | ||
| 
						 | 
					c503cacb53 | ||
| 
						 | 
					e862b4e38f | ||
| 
						 | 
					e9dfc858fb | ||
| 
						 | 
					5efbca1e21 | ||
| 
						 | 
					d6d8663a88 | ||
| 
						 | 
					13990bd98a | ||
| 
						 | 
					def630d0a2 | ||
| 
						 | 
					ca2564f1e6 | ||
| 
						 | 
					711a57f7c7 | ||
| 
						 | 
					058cf2fff1 | ||
| 
						 | 
					715f509c5d | ||
| 
						 | 
					e704e6c6f3 | ||
| 
						 | 
					01f34e667a | ||
| 
						 | 
					4d0a7b33c5 | ||
| 
						 | 
					fb1d2ed34c | ||
| 
						 | 
					9395fedf98 | ||
| 
						 | 
					9abc0d80af | ||
| 
						 | 
					90e89c01df | ||
| 
						 | 
					790d93e362 | ||
| 
						 | 
					e9f3783169 | ||
| 
						 | 
					e41780fedc | ||
| 
						 | 
					d0edbbb3f3 | ||
| 
						 | 
					e10119c23e | ||
| 
						 | 
					208c087f39 | ||
| 
						 | 
					0c8b40b42b | ||
| 
						 | 
					5199f451bb | ||
| 
						 | 
					dd7cde5230 | ||
| 
						 | 
					ab5746e5d8 | ||
| 
						 | 
					3bd446c0ab | ||
| 
						 | 
					9b78402ee4 | ||
| 
						 | 
					cf1ef0f308 | ||
| 
						 | 
					fd1f65ba61 | ||
| 
						 | 
					967345b497 | ||
| 
						 | 
					41ad853a6a | ||
| 
						 | 
					842baa29cb | ||
| 
						 | 
					9556d870a1 | ||
| 
						 | 
					42ce790086 | ||
| 
						 | 
					b17769af42 | ||
| 
						 | 
					9030277b0d | ||
| 
						 | 
					a37a9bf769 | ||
| 
						 | 
					8afb8a8145 | ||
| 
						 | 
					801f933694 | ||
| 
						 | 
					75ecd6ebbf | ||
| 
						 | 
					1cd7317fdb | ||
| 
						 | 
					1865291701 | ||
| 
						 | 
					3edbcce7d5 | ||
| 
						 | 
					b1fb34d0ac | ||
| 
						 | 
					606099f545 | ||
| 
						 | 
					32e3142071 | ||
| 
						 | 
					66eea4e104 | ||
| 
						 | 
					e428cf3afd | ||
| 
						 | 
					842b5164d2 | ||
| 
						 | 
					a6f7e909a7 | ||
| 
						 | 
					ca87e5a7bd | ||
| 
						 | 
					45c4b4dfbd | ||
| 
						 | 
					2adaec1226 | ||
| 
						 | 
					549586c319 | ||
| 
						 | 
					463ac421a5 | ||
| 
						 | 
					6801240205 | ||
| 
						 | 
					a22088b7d5 | ||
| 
						 | 
					e89c49147f | ||
| 
						 | 
					67634240d1 | ||
| 
						 | 
					819b028a8e | ||
| 
						 | 
					a43c30ef41 | ||
| 
						 | 
					b65bfde84d | ||
| 
						 | 
					c39e6917ac | ||
| 
						 | 
					c79079895f | ||
| 
						 | 
					4480e631cd | ||
| 
						 | 
					c32661c3ce | ||
| 
						 | 
					d5c06bb812 | ||
| 
						 | 
					9d5aa36239 | ||
| 
						 | 
					e3050c1777 | ||
| 
						 | 
					06295ddbdd | ||
| 
						 | 
					e2092bb23c | ||
| 
						 | 
					528836d0ad | ||
| 
						 | 
					3511442e43 | ||
| 
						 | 
					d20c53b511 | ||
| 
						 | 
					091cc122ad | ||
| 
						 | 
					c983abbb9e | ||
| 
						 | 
					a0a81204c2 | ||
| 
						 | 
					409d4f839c | ||
| 
						 | 
					0ab36958ea | ||
| 
						 | 
					c2445f43a3 | ||
| 
						 | 
					f3d1c136b7 | ||
| 
						 | 
					dd10a8b09d | ||
| 
						 | 
					dd312366da | ||
| 
						 | 
					d2fe466ef3 | ||
| 
						 | 
					fe5328bfad | ||
| 
						 | 
					c0891dde07 | ||
| 
						 | 
					0e6d9c1a55 | ||
| 
						 | 
					5f74a66132 | ||
| 
						 | 
					46f8b62d5f | ||
| 
						 | 
					3e3e80c431 | ||
| 
						 | 
					0486d117e4 | ||
| 
						 | 
					29981c14da | ||
| 
						 | 
					98d5efb2c5 | ||
| 
						 | 
					77a44aafaf | ||
| 
						 | 
					8278c70716 | ||
| 
						 | 
					ac0955f5e2 | ||
| 
						 | 
					4130c35ca8 | ||
| 
						 | 
					d440647eb8 | ||
| 
						 | 
					7e8f2c56c0 | ||
| 
						 | 
					a0880a152f | ||
| 
						 | 
					4608a9172f | ||
| 
						 | 
					d0e38f7ec0 | ||
| 
						 | 
					a69bdbbbdd | ||
| 
						 | 
					88c97a2662 | ||
| 
						 | 
					ce9c69ddbc | ||
| 
						 | 
					e430fcb716 | ||
| 
						 | 
					11a363e632 | ||
| 
						 | 
					9a3a20b2b9 | ||
| 
						 | 
					4672811541 | ||
| 
						 | 
					3cad3d28a5 | ||
| 
						 | 
					41e63fbdb2 | ||
| 
						 | 
					b543401a5c | ||
| 
						 | 
					8c4f08fbad | ||
| 
						 | 
					f3081a34d2 | ||
| 
						 | 
					cff0971f87 | ||
| 
						 | 
					5ac4c69d83 | ||
| 
						 | 
					a314c40cc4 | ||
| 
						 | 
					959fd6b8f6 | ||
| 
						 | 
					937f0da04a | ||
| 
						 | 
					73bc5967e2 | ||
| 
						 | 
					7b1d3cf392 | ||
| 
						 | 
					25515b557e | ||
| 
						 | 
					51625ff86e | ||
| 
						 | 
					4d8f661726 | ||
| 
						 | 
					efa69a2f66 | ||
| 
						 | 
					a2dce49158 | ||
| 
						 | 
					e4b28de803 | ||
| 
						 | 
					30a6dd78d5 | ||
| 
						 | 
					9f75836308 | ||
| 
						 | 
					f5c47105db | ||
| 
						 | 
					f1939c8685 | ||
| 
						 | 
					3ac4d678ef | ||
| 
						 | 
					fcfec66865 | ||
| 
						 | 
					53426d7113 | ||
| 
						 | 
					1d4756de06 | ||
| 
						 | 
					c1abb821f9 | ||
| 
						 | 
					88083e9bab | ||
| 
						 | 
					47e54545ed | ||
| 
						 | 
					54885ff0ad | ||
| 
						 | 
					502fbe7cb3 | ||
| 
						 | 
					08fdb497fb | ||
| 
						 | 
					2a6711c0e5 | ||
| 
						 | 
					382a8f6e29 | ||
| 
						 | 
					a713ba4399 | ||
| 
						 | 
					5359febc9b | ||
| 
						 | 
					85d882983f | ||
| 
						 | 
					5387880f18 | ||
| 
						 | 
					a7a9398411 | ||
| 
						 | 
					7593023f0b | ||
| 
						 | 
					92d9a71f60 | ||
| 
						 | 
					661890211e | ||
| 
						 | 
					0206e20240 | ||
| 
						 | 
					83a4719056 | ||
| 
						 | 
					6cfe871c75 | ||
| 
						 | 
					84bb8fc695 | ||
| 
						 | 
					872cb1a0dd | ||
| 
						 | 
					ee80a3a623 | ||
| 
						 | 
					e700c5ad99 | ||
| 
						 | 
					08c0ec7a89 | ||
| 
						 | 
					35fe0e56e6 | ||
| 
						 | 
					69e5311ad3 | ||
| 
						 | 
					e884c4db2b | ||
| 
						 | 
					e681bee04e | ||
| 
						 | 
					07c1fcc604 | ||
| 
						 | 
					7959b95efa | ||
| 
						 | 
					3dd48d903f | ||
| 
						 | 
					e0ea4337fc | ||
| 
						 | 
					6290d7fd29 | ||
| 
						 | 
					84ad182ab8 | ||
| 
						 | 
					a155ead515 | ||
| 
						 | 
					5b0f652456 | ||
| 
						 | 
					1be50e1638 | ||
| 
						 | 
					4fefa29d8c | ||
| 
						 | 
					ef479d9f2a | ||
| 
						 | 
					fc04604856 | ||
| 
						 | 
					ef2bd7860f | ||
| 
						 | 
					dca8b4c964 | ||
| 
						 | 
					419353dc2f | ||
| 
						 | 
					38d3b2262b | ||
| 
						 | 
					4db2a7f36c | ||
| 
						 | 
					1145042fd2 | ||
| 
						 | 
					772131280a | ||
| 
						 | 
					ee913c0fcc | ||
| 
						 | 
					cd1804c43a | ||
| 
						 | 
					253784d45e | ||
| 
						 | 
					463d19d477 | ||
| 
						 | 
					6e4fd90ca5 | ||
| 
						 | 
					06188c0c5c | ||
| 
						 | 
					dec9097647 | ||
| 
						 | 
					e234339dba | ||
| 
						 | 
					bb09d23e92 | ||
| 
						 | 
					1ffbcddb6f | ||
| 
						 | 
					5cd892a4e4 | ||
| 
						 | 
					33cf8f5c06 | ||
| 
						 | 
					7b8d878bed | ||
| 
						 | 
					86ae34fbb4 | ||
| 
						 | 
					16f3461fd6 | ||
| 
						 | 
					0ac8886b51 | ||
| 
						 | 
					1729d37223 | ||
| 
						 | 
					81edef6f9f | ||
| 
						 | 
					e040e18c7b | ||
| 
						 | 
					14d186644b | ||
| 
						 | 
					e4535e4d5e | ||
| 
						 | 
					a008813890 | ||
| 
						 | 
					da50dc7bb3 | ||
| 
						 | 
					7f628d9cbc | ||
| 
						 | 
					f9affb3059 | ||
| 
						 | 
					fd7cc514d2 | ||
| 
						 | 
					f6a927b45f | ||
| 
						 | 
					8772e02b68 | ||
| 
						 | 
					b2ffd0be03 | ||
| 
						 | 
					912b16c689 | ||
| 
						 | 
					6d9b25e522 | ||
| 
						 | 
					31bad23f0f | ||
| 
						 | 
					29b9b25e72 | ||
| 
						 | 
					e794f496c6 | ||
| 
						 | 
					68067c66d3 | ||
| 
						 | 
					ad5474e995 | ||
| 
						 | 
					ac8771ee99 | ||
| 
						 | 
					16358bb3cc | ||
| 
						 | 
					ef160330e5 | ||
| 
						 | 
					332dcfb60b | ||
| 
						 | 
					a8dde163dc | ||
| 
						 | 
					868d0accef | ||
| 
						 | 
					64e57ed257 | ||
| 
						 | 
					e325b76444 | ||
| 
						 | 
					34eedc6a98 | ||
| 
						 | 
					8c21c2e07e | ||
| 
						 | 
					27425708f5 | ||
| 
						 | 
					fc07b6cda0 | ||
| 
						 | 
					562ed27eb5 | ||
| 
						 | 
					0a0e09078d | ||
| 
						 | 
					50bc5a75a7 | ||
| 
						 | 
					6661f53eb3 | ||
| 
						 | 
					b8782affc8 | ||
| 
						 | 
					9a9e839b9b | ||
| 
						 | 
					b04ccc9a03 | ||
| 
						 | 
					aa522e14ee | ||
| 
						 | 
					dabd09f5a9 | ||
| 
						 | 
					46ffb3c0b1 | ||
| 
						 | 
					4b9b01f0a5 | ||
| 
						 | 
					0261355a03 | ||
| 
						 | 
					beb8547c71 | ||
| 
						 | 
					4aa518a2d7 | ||
| 
						 | 
					08af66d57e | ||
| 
						 | 
					38eb154b39 | ||
| 
						 | 
					2954e4c3d7 | ||
| 
						 | 
					213803b4d4 | ||
| 
						 | 
					2380f8bd93 | ||
| 
						 | 
					e846ebc1a1 | ||
| 
						 | 
					6dedd60350 | ||
| 
						 | 
					063a487fe1 | ||
| 
						 | 
					99a35fd4e1 | ||
| 
						 | 
					cbaac82c2c | ||
| 
						 | 
					2c9e332bce | ||
| 
						 | 
					e89deed74d | ||
| 
						 | 
					5cb6f5515f | ||
| 
						 | 
					c5024d4a5c | ||
| 
						 | 
					9d72de1fb2 | ||
| 
						 | 
					62626467b4 | ||
| 
						 | 
					c55a72ef48 | ||
| 
						 | 
					8a353c4020 | ||
| 
						 | 
					8261c40bb9 | ||
| 
						 | 
					053bf7f5db | ||
| 
						 | 
					e6a5e6512f | ||
| 
						 | 
					bc32cd7fc8 | ||
| 
						 | 
					24fde3cf34 | ||
| 
						 | 
					7ceaa0916a | ||
| 
						 | 
					4c958fbfb4 | ||
| 
						 | 
					9795ef4348 | ||
| 
						 | 
					768d8e0563 | ||
| 
						 | 
					374be37dd9 | ||
| 
						 | 
					9fa552eb0f | ||
| 
						 | 
					5f8ad807be | ||
| 
						 | 
					b6e165d661 | ||
| 
						 | 
					afbb645906 | ||
| 
						 | 
					2b831e73f5 | ||
| 
						 | 
					6ec170290c | ||
| 
						 | 
					7c8ea0899a | ||
| 
						 | 
					f81070dbd5 | ||
| 
						 | 
					955c2ef48f | ||
| 
						 | 
					2ac4919d24 | ||
| 
						 | 
					3ed89025f3 | ||
| 
						 | 
					5b42bbce70 | ||
| 
						 | 
					d2e0a11aab | ||
| 
						 | 
					5033e5b36d | ||
| 
						 | 
					6a6a9c1c5a | ||
| 
						 | 
					3d6aa2e06f | ||
| 
						 | 
					03970183fc | ||
| 
						 | 
					47d046c93f | ||
| 
						 | 
					718724deeb | ||
| 
						 | 
					85c325c36c | ||
| 
						 | 
					7e6d99f5ec | ||
| 
						 | 
					6ce6dc961b | ||
| 
						 | 
					186883611e | ||
| 
						 | 
					48b3c59cb9 | ||
| 
						 | 
					04b9d5bc23 | ||
| 
						 | 
					91707e9020 | ||
| 
						 | 
					82a0e82232 | ||
| 
						 | 
					fe4264bf45 | ||
| 
						 | 
					2fa795a213 | ||
| 
						 | 
					e32aaf5da8 | ||
| 
						 | 
					03447de338 | ||
| 
						 | 
					ee5f4a4caf | ||
| 
						 | 
					c04f3933ab | ||
| 
						 | 
					8f328c45e5 | ||
| 
						 | 
					9676f0cffc | ||
| 
						 | 
					2d0ca23319 | ||
| 
						 | 
					6f4c8b5b50 | ||
| 
						 | 
					f8bd9cc30f | ||
| 
						 | 
					d9f9b1cd0b | ||
| 
						 | 
					eca283976b | ||
| 
						 | 
					2176259ca6 | ||
| 
						 | 
					8fe6fcb900 | ||
| 
						 | 
					76d6edcc38 | ||
| 
						 | 
					98d6c671f5 | ||
| 
						 | 
					f652811df4 | ||
| 
						 | 
					e279f4601d | ||
| 
						 | 
					87a30337a1 | ||
| 
						 | 
					9c2047b275 | ||
| 
						 | 
					1dcb0433a3 | ||
| 
						 | 
					5ff27e02b3 | ||
| 
						 | 
					4beee58e57 | ||
| 
						 | 
					1f9de20719 | ||
| 
						 | 
					d05a8d9750 | ||
| 
						 | 
					db5f206c00 | ||
| 
						 | 
					9dface8347 | ||
| 
						 | 
					32f4940883 | ||
| 
						 | 
					a7969a9b93 | ||
| 
						 | 
					ad88130df5 | ||
| 
						 | 
					d1e71bc08b | ||
| 
						 | 
					fa58fe247c | ||
| 
						 | 
					4b71478326 | ||
| 
						 | 
					0989471fdb | ||
| 
						 | 
					696140bd1d | ||
| 
						 | 
					380d15b7fe | ||
| 
						 | 
					41261d64b2 | ||
| 
						 | 
					ce7a9efb09 | ||
| 
						 | 
					8a38ebe328 | ||
| 
						 | 
					dcc6671b85 | ||
| 
						 | 
					b53b7581e4 | ||
| 
						 | 
					64a4a03c2a | ||
| 
						 | 
					b878c3f518 | ||
| 
						 | 
					6164163ca8 | ||
| 
						 | 
					e92a53cd92 | ||
| 
						 | 
					2467af98b1 | ||
| 
						 | 
					6f851d8875 | ||
| 
						 | 
					9b99bf89c4 | ||
| 
						 | 
					7346fca083 | ||
| 
						 | 
					7facbb69c6 | ||
| 
						 | 
					f59267d650 | ||
| 
						 | 
					71cb014195 | ||
| 
						 | 
					6c0f8db9c2 | ||
| 
						 | 
					49f1e2fc4c | ||
| 
						 | 
					2d26e19535 | ||
| 
						 | 
					5b0c6cd49a | ||
| 
						 | 
					c3ee8e46cc | ||
| 
						 | 
					46aac24261 | ||
| 
						 | 
					e1032ce718 | ||
| 
						 | 
					ce636f36f2 | ||
| 
						 | 
					93f2eec6b3 | ||
| 
						 | 
					46ef09d787 | ||
| 
						 | 
					7487ec0ff0 | ||
| 
						 | 
					a25549866f | ||
| 
						 | 
					558cc6e38f | ||
| 
						 | 
					feb1fa1e83 | ||
| 
						 | 
					f32462343d | ||
| 
						 | 
					08ef1b379a | ||
| 
						 | 
					1e79831b56 | ||
| 
						 | 
					7a29164f70 | ||
| 
						 | 
					f2533e787e | ||
| 
						 | 
					b2ccd5c1ae | ||
| 
						 | 
					6f63543dd7 | ||
| 
						 | 
					c966f1629b | ||
| 
						 | 
					709f24adbb | ||
| 
						 | 
					52fe7ea3d1 | ||
| 
						 | 
					44f6a6f9c4 | ||
| 
						 | 
					ac88b3dd16 | ||
| 
						 | 
					27b6fa5615 | ||
| 
						 | 
					68eb76dfb7 | ||
| 
						 | 
					392760ee0c | ||
| 
						 | 
					063b60a51f | ||
| 
						 | 
					7b676192e9 | ||
| 
						 | 
					138e0010eb | ||
| 
						 | 
					36bad2b478 | ||
| 
						 | 
					f6d6fc603e | ||
| 
						 | 
					5545b46571 | ||
| 
						 | 
					06b0a7acce | ||
| 
						 | 
					534f30064d | ||
| 
						 | 
					6c9e1b2337 | ||
| 
						 | 
					62c67576e0 | ||
| 
						 | 
					91d59e4cb9 | ||
| 
						 | 
					8de268bb3c | ||
| 
						 | 
					4fd7f6047c | ||
| 
						 | 
					ff3033e190 | ||
| 
						 | 
					18404076e3 | ||
| 
						 | 
					59c9c40c01 | ||
| 
						 | 
					666e0635da | ||
| 
						 | 
					f9968a0346 | ||
| 
						 | 
					39dca05d1d | ||
| 
						 | 
					f51b76b670 | ||
| 
						 | 
					40ee989db5 | ||
| 
						 | 
					ef76dfc7a0 | ||
| 
						 | 
					02ddc08353 | ||
| 
						 | 
					4b24d5261a | ||
| 
						 | 
					4b96a39c48 | ||
| 
						 | 
					48616e71d2 | ||
| 
						 | 
					70d227ac62 | ||
| 
						 | 
					7f2c4f96f5 | ||
| 
						 | 
					667f0f60fc | ||
| 
						 | 
					7592b8cc10 | ||
| 
						 | 
					f55b831859 | ||
| 
						 | 
					217f7f7e5d | ||
| 
						 | 
					2e5a63f365 | ||
| 
						 | 
					7c614b4666 | ||
| 
						 | 
					b23d908829 | ||
| 
						 | 
					5379b84e63 | ||
| 
						 | 
					32c913308e | ||
| 
						 | 
					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 | ||
| 
						 | 
					d89cf0649e | ||
| 
						 | 
					31e9d9d4f8 | ||
| 
						 | 
					ea9c6d3d9e | ||
| 
						 | 
					ff63cf8068 | ||
| 
						 | 
					eaac94c35a | ||
| 
						 | 
					9291506af0 | ||
| 
						 | 
					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 | ||
| 
						 | 
					67617c8f89 | ||
| 
						 | 
					0fd23f01c6 | ||
| 
						 | 
					557b0d9df7 | ||
| 
						 | 
					888f4380cf | ||
| 
						 | 
					3266c5e95a | ||
| 
						 | 
					834decdaae | ||
| 
						 | 
					18b2d83173 | ||
| 
						 | 
					30c65c3c62 | ||
| 
						 | 
					04fcc4cf1e | ||
| 
						 | 
					09504dde1f | ||
| 
						 | 
					c04885f072 | ||
| 
						 | 
					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 | ||
| 
						 | 
					9fd22f0e3f | ||
| 
						 | 
					942372dcdf | ||
| 
						 | 
					b7f901088b | ||
| 
						 | 
					c02990525c | ||
| 
						 | 
					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 | ||
| 
						 | 
					ae0bf74db9 | ||
| 
						 | 
					1bf7ce97c0 | ||
| 
						 | 
					4971a009e0 | ||
| 
						 | 
					e1613ab80d | ||
| 
						 | 
					28c9930888 | ||
| 
						 | 
					e3a35a123e | ||
| 
						 | 
					412168f2e8 | ||
| 
						 | 
					fc0fa0d636 | ||
| 
						 | 
					caf283329b | ||
| 
						 | 
					5cedd4a43e | ||
| 
						 | 
					0595d32d8a | ||
| 
						 | 
					e339b4e8da | ||
| 
						 | 
					11c827c588 | ||
| 
						 | 
					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 | ||
| 
						 | 
					8913402b74 | ||
| 
						 | 
					c00dfefd6f | ||
| 
						 | 
					c3de7b5ade | ||
| 
						 | 
					76556f8264 | ||
| 
						 | 
					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 | ||
| 
						 | 
					369cda3752 | ||
| 
						 | 
					846078d06f | ||
| 
						 | 
					b18500d56e | ||
| 
						 | 
					7d92c50490 | ||
| 
						 | 
					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 | ||
| 
						 | 
					34beaefe1c | ||
| 
						 | 
					10b828f193 | ||
| 
						 | 
					43e6260ed0 | ||
| 
						 | 
					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 | ||
| 
						 | 
					c6728df4a3 | ||
| 
						 | 
					3c182c5bc8 | ||
| 
						 | 
					1b5677847b | ||
| 
						 | 
					1be59a9dbe | ||
| 
						 | 
					55c2178ad4 | ||
| 
						 | 
					3e3d392e1c | ||
| 
						 | 
					593de57fa2 | ||
| 
						 | 
					04b0e43ea6 | ||
| 
						 | 
					04eee290c8 | ||
| 
						 | 
					756a7a4e4b | ||
| 
						 | 
					121b4ac220 | ||
| 
						 | 
					cdbd5db3af | ||
| 
						 | 
					b2240f6ad4 | ||
| 
						 | 
					33814a55f8 | ||
| 
						 | 
					a57c5a417b | ||
| 
						 | 
					ff1a28de17 | ||
| 
						 | 
					772f57f99b | ||
| 
						 | 
					dacee32b8b | ||
| 
						 | 
					fa1a3eb06d | ||
| 
						 | 
					bd4817ca54 | ||
| 
						 | 
					d3a160e217 | ||
| 
						 | 
					c5837f2791 | ||
| 
						 | 
					490bd43f18 | ||
| 
						 | 
					005eea249c | ||
| 
						 | 
					9747de8ec6 | ||
| 
						 | 
					849a9799d0 | ||
| 
						 | 
					e32ae4fe33 | ||
| 
						 | 
					4595389c4c | ||
| 
						 | 
					e8ccc7cc49 | ||
| 
						 | 
					673d21047a | ||
| 
						 | 
					6186261589 | ||
| 
						 | 
					45310e219c | ||
| 
						 | 
					250f6b2c88 | ||
| 
						 | 
					fdefc2bbda | ||
| 
						 | 
					2079df8527 | ||
| 
						 | 
					b53659452c | ||
| 
						 | 
					46f1d6653e | ||
| 
						 | 
					c1938a60f7 | ||
| 
						 | 
					d65110f352 | ||
| 
						 | 
					9fa3bbcb5a | ||
| 
						 | 
					19e51ecbe6 | ||
| 
						 | 
					99d62f2922 | ||
| 
						 | 
					284743cafe | ||
| 
						 | 
					08d7307b2a | ||
| 
						 | 
					ef6a64abe6 | ||
| 
						 | 
					18bfa52ef7 | ||
| 
						 | 
					d62be2652c | ||
| 
						 | 
					31f3433635 | ||
| 
						 | 
					639eaceee7 | ||
| 
						 | 
					ea53ff80af | ||
| 
						 | 
					feeca1bcbc | ||
| 
						 | 
					12e7278c08 | ||
| 
						 | 
					45b5c44eb9 | ||
| 
						 | 
					e3456c1028 | ||
| 
						 | 
					327fb38573 | ||
| 
						 | 
					1d25d9e15f | ||
| 
						 | 
					cc7cee3f48 | ||
| 
						 | 
					d7062710cd | ||
| 
						 | 
					3e21f52796 | ||
| 
						 | 
					9bfba734d8 | ||
| 
						 | 
					0511d9a9d2 | ||
| 
						 | 
					aaebf2f47e | ||
| 
						 | 
					23f8d77b38 | ||
| 
						 | 
					498b4dbba4 | ||
| 
						 | 
					ecc42e79ae | ||
| 
						 | 
					0bf8ed523d | ||
| 
						 | 
					87d22ee0fe | ||
| 
						 | 
					52e25f63d4 | ||
| 
						 | 
					f3fb67972b | ||
| 
						 | 
					6400756364 | ||
| 
						 | 
					d71d04bf6f | ||
| 
						 | 
					af90259e09 | ||
| 
						 | 
					7c9762f698 | ||
| 
						 | 
					b2e67fdb7c | ||
| 
						 | 
					d59f0314bd | ||
| 
						 | 
					131baefac3 | ||
| 
						 | 
					a450078b67 | ||
| 
						 | 
					f6b041bf6c | ||
| 
						 | 
					4f340d181a | ||
| 
						 | 
					74a11701f3 | ||
| 
						 | 
					b58e38e936 | ||
| 
						 | 
					8713cb48a8 | ||
| 
						 | 
					277c5e57ed | ||
| 
						 | 
					b3d62d5af5 | ||
| 
						 | 
					9c0f0c8d81 | ||
| 
						 | 
					18a0a2a7ac | ||
| 
						 | 
					8b99d9e33c | ||
| 
						 | 
					01e7e153e3 | ||
| 
						 | 
					0ad4ca24d2 | ||
| 
						 | 
					724a155552 | ||
| 
						 | 
					e1b0715dd6 | ||
| 
						 | 
					a5c6598966 | ||
| 
						 | 
					d38b74a316 | ||
| 
						 | 
					54cab4b47b | ||
| 
						 | 
					c093666bc5 | ||
| 
						 | 
					04972f6761 | ||
| 
						 | 
					67f8234622 | ||
| 
						 | 
					201d6dbd9c | ||
| 
						 | 
					1865ef6fd4 | ||
| 
						 | 
					fbcac5aa83 | ||
| 
						 | 
					2b72ab8f8f | ||
| 
						 | 
					0ea97b9408 | ||
| 
						 | 
					28683ac7c0 | ||
| 
						 | 
					c72e3e210f | ||
| 
						 | 
					a8c856d43c | ||
| 
						 | 
					1953cfc954 | ||
| 
						 | 
					8e7bac950e | ||
| 
						 | 
					03cdacfb6a | ||
| 
						 | 
					30f3c3dfad | ||
| 
						 | 
					dee1b0d5bb | ||
| 
						 | 
					6f2b0fe463 | ||
| 
						 | 
					0c69176498 | ||
| 
						 | 
					4e7a0385b5 | ||
| 
						 | 
					4adbd94b10 | ||
| 
						 | 
					4a2905b645 | ||
| 
						 | 
					0638c6b530 | ||
| 
						 | 
					7dd35ce013 | ||
| 
						 | 
					c8629c3178 | ||
| 
						 | 
					77ccf51cb3 | ||
| 
						 | 
					01197f0c77 | ||
| 
						 | 
					69c86ff4fd | ||
| 
						 | 
					9a42ffad81 | ||
| 
						 | 
					0d8633bf8c | ||
| 
						 | 
					d79e80a3d0 | ||
| 
						 | 
					d890ebdd25 | ||
| 
						 | 
					5ee9b3ce72 | ||
| 
						 | 
					031b539a09 | ||
| 
						 | 
					47c3c706e8 | ||
| 
						 | 
					0d830a616c | ||
| 
						 | 
					e219bf8338 | ||
| 
						 | 
					6c0fba2480 | ||
| 
						 | 
					f4cc159f53 | ||
| 
						 | 
					04c002abc2 | ||
| 
						 | 
					78fd17907e | ||
| 
						 | 
					47edc83080 | ||
| 
						 | 
					33e34f5bf4 | ||
| 
						 | 
					3832ecadae | ||
| 
						 | 
					285ed128ab | ||
| 
						 | 
					048144074b | ||
| 
						 | 
					856ae782c7 | ||
| 
						 | 
					12e3f97541 | ||
| 
						 | 
					30f6fe0710 | ||
| 
						 | 
					0aa8f1df3c | ||
| 
						 | 
					d39147a8a1 | ||
| 
						 | 
					7991f7e936 | ||
| 
						 | 
					10011efcd7 | ||
| 
						 | 
					0058815c8f | ||
| 
						 | 
					02048984b7 | ||
| 
						 | 
					544601e9f4 | ||
| 
						 | 
					2634f06c20 | ||
| 
						 | 
					7549426a16 | ||
| 
						 | 
					6dcb9a3434 | ||
| 
						 | 
					e5a31c00ec | ||
| 
						 | 
					00295242fd | ||
| 
						 | 
					21b6ed7c29 | ||
| 
						 | 
					01894cbf10 | ||
| 
						 | 
					28cad2b9d9 | ||
| 
						 | 
					71d7b7dbe7 | ||
| 
						 | 
					4563723db1 | ||
| 
						 | 
					0bce6a1899 | ||
| 
						 | 
					e71d6dbd9c | ||
| 
						 | 
					132ecd19f3 | ||
| 
						 | 
					a404143f4c | ||
| 
						 | 
					44467ca45e | ||
| 
						 | 
					f70ea0747d | ||
| 
						 | 
					c619abf18a | ||
| 
						 | 
					6da1323437 | ||
| 
						 | 
					1dd29785cf | ||
| 
						 | 
					5681987ee4 | ||
| 
						 | 
					6eeb18fc68 | ||
| 
						 | 
					01c90575b4 | ||
| 
						 | 
					32e9cb0275 | ||
| 
						 | 
					017bade93c | ||
| 
						 | 
					c9c79e7cae | ||
| 
						 | 
					777d41dd07 | ||
| 
						 | 
					6238c30913 | ||
| 
						 | 
					db164ab514 | ||
| 
						 | 
					c72ef17731 | ||
| 
						 | 
					8dbee7867f | ||
| 
						 | 
					f403108f5f | ||
| 
						 | 
					223a97f92a | ||
| 
						 | 
					bb44a8ae1f | ||
| 
						 | 
					b5a5062176 | ||
| 
						 | 
					50faa32ce3 | ||
| 
						 | 
					b6caed527c | ||
| 
						 | 
					d5ef77353b | ||
| 
						 | 
					336beba81b | ||
| 
						 | 
					5d23a7905c | ||
| 
						 | 
					143dfcc904 | ||
| 
						 | 
					e076cd42f0 | ||
| 
						 | 
					5bed38974e | ||
| 
						 | 
					35bc4b82ff | ||
| 
						 | 
					4e5d870f72 | ||
| 
						 | 
					83def94db5 | ||
| 
						 | 
					9d74c1ef2a | ||
| 
						 | 
					6023d4bdb5 | ||
| 
						 | 
					5e38f566f2 | ||
| 
						 | 
					b57341a78b | ||
| 
						 | 
					910c32c0e9 | ||
| 
						 | 
					e49456d8d8 | ||
| 
						 | 
					c46becc9b3 | ||
| 
						 | 
					b6e637106f | ||
| 
						 | 
					787cffe3d0 | ||
| 
						 | 
					9d914e6809 | ||
| 
						 | 
					4e183c66e9 | ||
| 
						 | 
					b1630fcbe8 | ||
| 
						 | 
					cd44f730cc | ||
| 
						 | 
					ce5a39559e | ||
| 
						 | 
					ccffaef603 | ||
| 
						 | 
					ae41f3a3ee | ||
| 
						 | 
					c7e576d6bf | ||
| 
						 | 
					f069b2812e | ||
| 
						 | 
					f20ff6213e | ||
| 
						 | 
					24ff74bdcb | ||
| 
						 | 
					230e79916f | ||
| 
						 | 
					9f14b4db35 | ||
| 
						 | 
					ec916398e7 | ||
| 
						 | 
					6befad112e | ||
| 
						 | 
					55ce23b8db | ||
| 
						 | 
					1292ec1ecf | ||
| 
						 | 
					65a324062f | ||
| 
						 | 
					c9db617e0b | ||
| 
						 | 
					b43137d0cc | ||
| 
						 | 
					eeca642778 | ||
| 
						 | 
					5cef6ca36a | ||
| 
						 | 
					be2b518f7b | ||
| 
						 | 
					1b0d29afbc | ||
| 
						 | 
					55cf480c0b | ||
| 
						 | 
					84db6912f0 | ||
| 
						 | 
					7495cc28a0 | ||
| 
						 | 
					87744f786b | ||
| 
						 | 
					5bcfa4c859 | ||
| 
						 | 
					8ef731bcd1 | ||
| 
						 | 
					8d02f3c68a | ||
| 
						 | 
					b1f8b49e8b | ||
| 
						 | 
					75733e4237 | ||
| 
						 | 
					6e318e2cd1 | ||
| 
						 | 
					01e6b84b14 | ||
| 
						 | 
					69705d22be | ||
| 
						 | 
					b16d1dcff5 | ||
| 
						 | 
					10c5b5d5ba | ||
| 
						 | 
					d9c5c170f6 | ||
| 
						 | 
					32c7138d86 | ||
| 
						 | 
					d29244d872 | ||
| 
						 | 
					0fca6eda1e | ||
| 
						 | 
					1ddf606332 | ||
| 
						 | 
					bc8084da74 | ||
| 
						 | 
					5eed400862 | ||
| 
						 | 
					a37a0959ac | ||
| 
						 | 
					53845c52e5 | ||
| 
						 | 
					d429f0b14f | ||
| 
						 | 
					02339187ad | ||
| 
						 | 
					827f778525 | ||
| 
						 | 
					d3fc85eea9 | ||
| 
						 | 
					9a62963129 | ||
| 
						 | 
					a0b2543ba1 | ||
| 
						 | 
					387acaac69 | ||
| 
						 | 
					952b775dbe | ||
| 
						 | 
					eadb76b3f8 | ||
| 
						 | 
					b3f7313ae4 | ||
| 
						 | 
					0c97d48027 | ||
| 
						 | 
					c4a678de9e | ||
| 
						 | 
					2c834f4d29 | ||
| 
						 | 
					b93d290c9f | ||
| 
						 | 
					32266bb21a | ||
| 
						 | 
					cab39103b7 | ||
| 
						 | 
					5c56a80ac9 | ||
| 
						 | 
					d0bac31721 | ||
| 
						 | 
					9258e54cfa | ||
| 
						 | 
					ccb68495e0 | ||
| 
						 | 
					db4236fe0b | ||
| 
						 | 
					a4e43427f8 | ||
| 
						 | 
					829190abdd | ||
| 
						 | 
					99688cd051 | ||
| 
						 | 
					1ba0a92702 | ||
| 
						 | 
					065d5a8d17 | ||
| 
						 | 
					3b53c0ac19 | ||
| 
						 | 
					ed56fe4e82 | ||
| 
						 | 
					1fbbe807ed | ||
| 
						 | 
					c3dccfa05b | ||
| 
						 | 
					7703d9293f | ||
| 
						 | 
					bcf560e4b8 | ||
| 
						 | 
					9d944b501a | ||
| 
						 | 
					cf013a5384 | ||
| 
						 | 
					2f367491c4 | ||
| 
						 | 
					e7d93b62ec | ||
| 
						 | 
					a5b309c0c9 | ||
| 
						 | 
					df46b96ab0 | ||
| 
						 | 
					bda1e332ce | ||
| 
						 | 
					53b2ad5fd0 | ||
| 
						 | 
					b44d9c657d | ||
| 
						 | 
					92ef7527d1 | ||
| 
						 | 
					c37d6b4ca8 | 
@@ -1,18 +0,0 @@
 | 
				
			|||||||
((nil . ((show-trailing-whitespace . t)))
 | 
					 | 
				
			||||||
 (prog-mode
 | 
					 | 
				
			||||||
  (indent-tabs-mode . nil)
 | 
					 | 
				
			||||||
  (tab-width . 8)
 | 
					 | 
				
			||||||
  (c-basic-offset . 3)
 | 
					 | 
				
			||||||
  (c-file-style . "stroustrup")
 | 
					 | 
				
			||||||
  (fill-column . 78)
 | 
					 | 
				
			||||||
  (eval . (progn
 | 
					 | 
				
			||||||
	    (c-set-offset 'case-label '0)
 | 
					 | 
				
			||||||
	    (c-set-offset 'innamespace '0)
 | 
					 | 
				
			||||||
	    (c-set-offset 'inline-open '0)))
 | 
					 | 
				
			||||||
  (whitespace-style face indentation)
 | 
					 | 
				
			||||||
  (whitespace-line-column . 79)
 | 
					 | 
				
			||||||
  (eval ignore-errors
 | 
					 | 
				
			||||||
        (require 'whitespace)
 | 
					 | 
				
			||||||
        (whitespace-mode 1)))
 | 
					 | 
				
			||||||
 (makefile-mode (indent-tabs-mode . t))
 | 
					 | 
				
			||||||
 )
 | 
					 | 
				
			||||||
@@ -1,40 +0,0 @@
 | 
				
			|||||||
# To use this config on you editor, follow the instructions at:
 | 
					 | 
				
			||||||
# http://editorconfig.org
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
root = true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[*]
 | 
					 | 
				
			||||||
charset = utf-8
 | 
					 | 
				
			||||||
insert_final_newline = true
 | 
					 | 
				
			||||||
tab_width = 8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[*.{c,h,cpp,hpp,cc,hh}]
 | 
					 | 
				
			||||||
indent_style = space
 | 
					 | 
				
			||||||
indent_size = 3
 | 
					 | 
				
			||||||
max_line_length = 78
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[{Makefile*,*.mk}]
 | 
					 | 
				
			||||||
indent_style = tab
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[{*.py,SCons*}]
 | 
					 | 
				
			||||||
indent_style = space
 | 
					 | 
				
			||||||
indent_size = 4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[*.pl]
 | 
					 | 
				
			||||||
indent_style = space
 | 
					 | 
				
			||||||
indent_size = 4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[*.m4]
 | 
					 | 
				
			||||||
indent_style = space
 | 
					 | 
				
			||||||
indent_size = 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[*.yml]
 | 
					 | 
				
			||||||
indent_style = space
 | 
					 | 
				
			||||||
indent_size = 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[*.patch]
 | 
					 | 
				
			||||||
trim_trailing_whitespace = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[{meson.build,meson_options.txt}]
 | 
					 | 
				
			||||||
indent_style = space
 | 
					 | 
				
			||||||
indent_size = 2
 | 
					 | 
				
			||||||
							
								
								
									
										10
									
								
								.emacs-dirvars
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.emacs-dirvars
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					;; -*- 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)
 | 
				
			||||||
							
								
								
									
										24
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,26 @@
 | 
				
			|||||||
 | 
					*.a
 | 
				
			||||||
 | 
					*.dll
 | 
				
			||||||
 | 
					*.exe
 | 
				
			||||||
 | 
					*.ilk
 | 
				
			||||||
 | 
					*.o
 | 
				
			||||||
 | 
					*.obj
 | 
				
			||||||
 | 
					*.pc
 | 
				
			||||||
 | 
					*.pdb
 | 
				
			||||||
*.pyc
 | 
					*.pyc
 | 
				
			||||||
*.pyo
 | 
					*.pyo
 | 
				
			||||||
*.out
 | 
					*.so
 | 
				
			||||||
 | 
					*.sw[a-z]
 | 
				
			||||||
 | 
					*~
 | 
				
			||||||
 | 
					depend
 | 
				
			||||||
 | 
					depend.bak
 | 
				
			||||||
 | 
					lib
 | 
				
			||||||
 | 
					lib64
 | 
				
			||||||
 | 
					configure
 | 
				
			||||||
 | 
					autom4te.cache
 | 
				
			||||||
 | 
					aclocal.m4
 | 
				
			||||||
 | 
					config.log
 | 
				
			||||||
 | 
					config.status
 | 
				
			||||||
 | 
					cscope*
 | 
				
			||||||
 | 
					.scon*
 | 
				
			||||||
 | 
					config.py
 | 
				
			||||||
build
 | 
					build
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										382
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										382
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							@@ -1,382 +0,0 @@
 | 
				
			|||||||
# This is the tag of the docker image used for the build jobs. If the
 | 
					 | 
				
			||||||
# image doesn't exist yet, the containers-build stage generates it.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# In order to generate a new image, one should generally change the tag.
 | 
					 | 
				
			||||||
# While removing the image from the registry would also work, that's not
 | 
					 | 
				
			||||||
# recommended except for ephemeral images during development: Replacing
 | 
					 | 
				
			||||||
# an image after a significant amount of time might pull in newer
 | 
					 | 
				
			||||||
# versions of gcc/clang or other packages, which might break the build
 | 
					 | 
				
			||||||
# with older commits using the same tag.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# After merging a change resulting in generating a new image to the
 | 
					 | 
				
			||||||
# main repository, it's recommended to remove the image from the source
 | 
					 | 
				
			||||||
# repository's container registry, so that the image from the main
 | 
					 | 
				
			||||||
# repository's registry will be used there as well.
 | 
					 | 
				
			||||||
variables:
 | 
					 | 
				
			||||||
  UPSTREAM_REPO: mesa/mesa
 | 
					 | 
				
			||||||
  DEBIAN_TAG: "2019-08-09"
 | 
					 | 
				
			||||||
  DEBIAN_VERSION: stretch-slim
 | 
					 | 
				
			||||||
  DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include:
 | 
					 | 
				
			||||||
  - project: 'wayland/ci-templates'
 | 
					 | 
				
			||||||
    ref: c73dae8b84697ef18e2dbbf4fed7386d9652b0cd
 | 
					 | 
				
			||||||
    file: '/templates/debian.yml'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
stages:
 | 
					 | 
				
			||||||
  - containers-build
 | 
					 | 
				
			||||||
  - build+test
 | 
					 | 
				
			||||||
  - test
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# When to automatically run the CI
 | 
					 | 
				
			||||||
.ci-run-policy: &ci-run-policy
 | 
					 | 
				
			||||||
  only:
 | 
					 | 
				
			||||||
    - branches@mesa/mesa
 | 
					 | 
				
			||||||
    - merge_requests
 | 
					 | 
				
			||||||
    - /^ci([-/].*)?$/
 | 
					 | 
				
			||||||
  retry:
 | 
					 | 
				
			||||||
    max: 2
 | 
					 | 
				
			||||||
    when:
 | 
					 | 
				
			||||||
      - runner_system_failure
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.ci-deqp-artifacts: &ci-deqp-artifacts
 | 
					 | 
				
			||||||
  artifacts:
 | 
					 | 
				
			||||||
    when: always
 | 
					 | 
				
			||||||
    untracked: false
 | 
					 | 
				
			||||||
    paths:
 | 
					 | 
				
			||||||
      # Watch out!  Artifacts are relative to the build dir.
 | 
					 | 
				
			||||||
      # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
 | 
					 | 
				
			||||||
      - artifacts
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# CONTAINERS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
debian:
 | 
					 | 
				
			||||||
  extends: .debian@container-ifnot-exists
 | 
					 | 
				
			||||||
  stage: containers-build
 | 
					 | 
				
			||||||
  <<: *ci-run-policy
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
 | 
					 | 
				
			||||||
    DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# BUILD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.build:
 | 
					 | 
				
			||||||
  <<: *ci-run-policy
 | 
					 | 
				
			||||||
  image: $DEBIAN_IMAGE
 | 
					 | 
				
			||||||
  stage: build+test
 | 
					 | 
				
			||||||
  cache:
 | 
					 | 
				
			||||||
    paths:
 | 
					 | 
				
			||||||
      - ccache
 | 
					 | 
				
			||||||
  artifacts:
 | 
					 | 
				
			||||||
    when: always
 | 
					 | 
				
			||||||
    paths:
 | 
					 | 
				
			||||||
      - _build/meson-logs/*.txt
 | 
					 | 
				
			||||||
      # scons:
 | 
					 | 
				
			||||||
      - build/*/config.log
 | 
					 | 
				
			||||||
      - shader-db
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    CCACHE_COMPILERCHECK: "content"
 | 
					 | 
				
			||||||
  # Use ccache transparently, and print stats before/after
 | 
					 | 
				
			||||||
  before_script:
 | 
					 | 
				
			||||||
    - export PATH="/usr/lib/ccache:$PATH"
 | 
					 | 
				
			||||||
    - export CCACHE_BASEDIR="$PWD"
 | 
					 | 
				
			||||||
    - export CCACHE_DIR="$PWD/ccache"
 | 
					 | 
				
			||||||
    - ccache --zero-stats || true
 | 
					 | 
				
			||||||
    - ccache --show-stats || true
 | 
					 | 
				
			||||||
  after_script:
 | 
					 | 
				
			||||||
    # In case the install dir is being saved as artifacts, tar it up
 | 
					 | 
				
			||||||
    # so that symlinks and hardlinks aren't each packed separately in
 | 
					 | 
				
			||||||
    # the zip file.
 | 
					 | 
				
			||||||
    - if [ -d install ]; then
 | 
					 | 
				
			||||||
        tar -cf artifacts/install.tar install;
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    - export CCACHE_DIR="$PWD/ccache"
 | 
					 | 
				
			||||||
    - ccache --show-stats
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.meson-build:
 | 
					 | 
				
			||||||
  extends: .build
 | 
					 | 
				
			||||||
  script:
 | 
					 | 
				
			||||||
    - .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.scons-build:
 | 
					 | 
				
			||||||
  extends: .build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    SCONSFLAGS: "-j4"
 | 
					 | 
				
			||||||
  script:
 | 
					 | 
				
			||||||
    - if test -n "$LLVM_VERSION"; then
 | 
					 | 
				
			||||||
        export LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    - scons $SCONS_TARGET
 | 
					 | 
				
			||||||
    - eval $SCONS_CHECK_COMMAND
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
 | 
					 | 
				
			||||||
# gallium drivers combined.
 | 
					 | 
				
			||||||
# Start this early so that it doesn't limit the total run time.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# We also stick the glvnd build here, since we want non-glvnd in
 | 
					 | 
				
			||||||
# meson-main for actual driver CI.
 | 
					 | 
				
			||||||
meson-swr-glvnd:
 | 
					 | 
				
			||||||
  extends: .meson-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    UNWIND: "true"
 | 
					 | 
				
			||||||
    DRI_LOADERS: >
 | 
					 | 
				
			||||||
      -D glvnd=true
 | 
					 | 
				
			||||||
      -D egl=true
 | 
					 | 
				
			||||||
    GALLIUM_ST: >
 | 
					 | 
				
			||||||
      -D dri3=true
 | 
					 | 
				
			||||||
      -D gallium-vdpau=false
 | 
					 | 
				
			||||||
      -D gallium-xvmc=false
 | 
					 | 
				
			||||||
      -D gallium-omx=disabled
 | 
					 | 
				
			||||||
      -D gallium-va=false
 | 
					 | 
				
			||||||
      -D gallium-xa=false
 | 
					 | 
				
			||||||
      -D gallium-nine=false
 | 
					 | 
				
			||||||
      -D gallium-opencl=disabled
 | 
					 | 
				
			||||||
    GALLIUM_DRIVERS: "swr,iris"
 | 
					 | 
				
			||||||
    LLVM_VERSION: "6.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
meson-clang:
 | 
					 | 
				
			||||||
  extends: .meson-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    UNWIND: "true"
 | 
					 | 
				
			||||||
    DRI_DRIVERS: "auto"
 | 
					 | 
				
			||||||
    GALLIUM_DRIVERS: "auto"
 | 
					 | 
				
			||||||
    VULKAN_DRIVERS: intel,amd,freedreno
 | 
					 | 
				
			||||||
    CC: "ccache clang-8"
 | 
					 | 
				
			||||||
    CXX: "ccache clang++-8"
 | 
					 | 
				
			||||||
  before_script:
 | 
					 | 
				
			||||||
    - export CCACHE_BASEDIR="$PWD" CCACHE_DIR="$PWD/ccache"
 | 
					 | 
				
			||||||
    - ccache --zero-stats --show-stats || true
 | 
					 | 
				
			||||||
     # clang++ breaks if it picks up the GCC 8 directory without libstdc++.so
 | 
					 | 
				
			||||||
    - apt-get remove -y libgcc-8-dev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
scons-swr:
 | 
					 | 
				
			||||||
  extends: .scons-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    SCONS_TARGET: "swr=1"
 | 
					 | 
				
			||||||
    SCONS_CHECK_COMMAND: "true"
 | 
					 | 
				
			||||||
    LLVM_VERSION: "6.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
scons-win64:
 | 
					 | 
				
			||||||
  extends: .scons-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    SCONS_TARGET: platform=windows machine=x86_64
 | 
					 | 
				
			||||||
    SCONS_CHECK_COMMAND: "true"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
meson-main:
 | 
					 | 
				
			||||||
  extends: .meson-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    UNWIND: "true"
 | 
					 | 
				
			||||||
    DRI_LOADERS: >
 | 
					 | 
				
			||||||
      -D glx=dri
 | 
					 | 
				
			||||||
      -D gbm=true
 | 
					 | 
				
			||||||
      -D egl=true
 | 
					 | 
				
			||||||
      -D platforms=x11,wayland,drm,surfaceless
 | 
					 | 
				
			||||||
    DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
 | 
					 | 
				
			||||||
    GALLIUM_ST: >
 | 
					 | 
				
			||||||
      -D dri3=true
 | 
					 | 
				
			||||||
      -D gallium-extra-hud=true
 | 
					 | 
				
			||||||
      -D gallium-vdpau=true
 | 
					 | 
				
			||||||
      -D gallium-xvmc=true
 | 
					 | 
				
			||||||
      -D gallium-omx=bellagio
 | 
					 | 
				
			||||||
      -D gallium-va=true
 | 
					 | 
				
			||||||
      -D gallium-xa=true
 | 
					 | 
				
			||||||
      -D gallium-nine=true
 | 
					 | 
				
			||||||
      -D gallium-opencl=disabled
 | 
					 | 
				
			||||||
    GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima"
 | 
					 | 
				
			||||||
    LLVM_VERSION: "7"
 | 
					 | 
				
			||||||
    EXTRA_OPTION: >
 | 
					 | 
				
			||||||
      -D osmesa=gallium
 | 
					 | 
				
			||||||
      -D tools=all
 | 
					 | 
				
			||||||
    MESON_SHADERDB: "true"
 | 
					 | 
				
			||||||
    BUILDTYPE: "debugoptimized"
 | 
					 | 
				
			||||||
  <<: *ci-deqp-artifacts
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
meson-clover:
 | 
					 | 
				
			||||||
  extends: .meson-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    UNWIND: "true"
 | 
					 | 
				
			||||||
    DRI_LOADERS: >
 | 
					 | 
				
			||||||
      -D glx=disabled
 | 
					 | 
				
			||||||
      -D egl=false
 | 
					 | 
				
			||||||
      -D gbm=false
 | 
					 | 
				
			||||||
    GALLIUM_ST: >
 | 
					 | 
				
			||||||
      -D dri3=false
 | 
					 | 
				
			||||||
      -D gallium-vdpau=false
 | 
					 | 
				
			||||||
      -D gallium-xvmc=false
 | 
					 | 
				
			||||||
      -D gallium-omx=disabled
 | 
					 | 
				
			||||||
      -D gallium-va=false
 | 
					 | 
				
			||||||
      -D gallium-xa=false
 | 
					 | 
				
			||||||
      -D gallium-nine=false
 | 
					 | 
				
			||||||
      -D gallium-opencl=icd
 | 
					 | 
				
			||||||
  script:
 | 
					 | 
				
			||||||
    - export GALLIUM_DRIVERS="r600,radeonsi"
 | 
					 | 
				
			||||||
    - .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
    - LLVM_VERSION=7 .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
    - export GALLIUM_DRIVERS="i915,r600"
 | 
					 | 
				
			||||||
    - LLVM_VERSION=3.9 .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
    - LLVM_VERSION=4.0 .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
    - LLVM_VERSION=5.0 .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
    - LLVM_VERSION=6.0 .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
meson-vulkan:
 | 
					 | 
				
			||||||
  extends: .meson-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    UNWIND: "false"
 | 
					 | 
				
			||||||
    DRI_LOADERS: >
 | 
					 | 
				
			||||||
      -D glx=disabled
 | 
					 | 
				
			||||||
      -D gbm=false
 | 
					 | 
				
			||||||
      -D egl=false
 | 
					 | 
				
			||||||
      -D platforms=x11,wayland,drm
 | 
					 | 
				
			||||||
      -D osmesa=none
 | 
					 | 
				
			||||||
    GALLIUM_ST: >
 | 
					 | 
				
			||||||
      -D dri3=true
 | 
					 | 
				
			||||||
      -D gallium-vdpau=false
 | 
					 | 
				
			||||||
      -D gallium-xvmc=false
 | 
					 | 
				
			||||||
      -D gallium-omx=disabled
 | 
					 | 
				
			||||||
      -D gallium-va=false
 | 
					 | 
				
			||||||
      -D gallium-xa=false
 | 
					 | 
				
			||||||
      -D gallium-nine=false
 | 
					 | 
				
			||||||
      -D gallium-opencl=disabled
 | 
					 | 
				
			||||||
    VULKAN_DRIVERS: intel,amd,freedreno
 | 
					 | 
				
			||||||
    LLVM_VERSION: "7"
 | 
					 | 
				
			||||||
    EXTRA_OPTION: >
 | 
					 | 
				
			||||||
      -D vulkan-overlay-layer=true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.meson-cross:
 | 
					 | 
				
			||||||
  extends: .meson-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    UNWIND: "false"
 | 
					 | 
				
			||||||
    DRI_LOADERS: >
 | 
					 | 
				
			||||||
      -D glx=disabled
 | 
					 | 
				
			||||||
      -D gbm=false
 | 
					 | 
				
			||||||
      -D egl=false
 | 
					 | 
				
			||||||
      -D platforms=surfaceless
 | 
					 | 
				
			||||||
      -D osmesa=none
 | 
					 | 
				
			||||||
    GALLIUM_ST: >
 | 
					 | 
				
			||||||
      -D dri3=false
 | 
					 | 
				
			||||||
      -D gallium-vdpau=false
 | 
					 | 
				
			||||||
      -D gallium-xvmc=false
 | 
					 | 
				
			||||||
      -D gallium-omx=disabled
 | 
					 | 
				
			||||||
      -D gallium-va=false
 | 
					 | 
				
			||||||
      -D gallium-xa=false
 | 
					 | 
				
			||||||
      -D gallium-nine=false
 | 
					 | 
				
			||||||
      -D llvm=false
 | 
					 | 
				
			||||||
  <<: *ci-deqp-artifacts
 | 
					 | 
				
			||||||
  script:
 | 
					 | 
				
			||||||
    - .gitlab-ci/meson-build.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
meson-armhf:
 | 
					 | 
				
			||||||
  extends: .meson-cross
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    CROSS: armhf
 | 
					 | 
				
			||||||
    VULKAN_DRIVERS: freedreno
 | 
					 | 
				
			||||||
    GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
 | 
					 | 
				
			||||||
    # Disable the tests since we're cross compiling.
 | 
					 | 
				
			||||||
    EXTRA_OPTION: >
 | 
					 | 
				
			||||||
      -D build-tests=false
 | 
					 | 
				
			||||||
      -D I-love-half-baked-turnips=true
 | 
					 | 
				
			||||||
      -D vulkan-overlay-layer=true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
meson-arm64:
 | 
					 | 
				
			||||||
  extends: .meson-cross
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    CROSS: arm64
 | 
					 | 
				
			||||||
    VULKAN_DRIVERS: freedreno
 | 
					 | 
				
			||||||
    GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
 | 
					 | 
				
			||||||
    # Disable the tests since we're cross compiling.
 | 
					 | 
				
			||||||
    EXTRA_OPTION: >
 | 
					 | 
				
			||||||
      -D build-tests=false
 | 
					 | 
				
			||||||
      -D I-love-half-baked-turnips=true
 | 
					 | 
				
			||||||
      -D vulkan-overlay-layer=true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# While the main point of this build is testing the i386 cross build,
 | 
					 | 
				
			||||||
# we also use this one to test some other options that are exclusive
 | 
					 | 
				
			||||||
# with meson-main's choices (classic swrast and osmesa)
 | 
					 | 
				
			||||||
meson-i386:
 | 
					 | 
				
			||||||
  extends: .meson-cross
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    CROSS: i386
 | 
					 | 
				
			||||||
    VULKAN_DRIVERS: intel
 | 
					 | 
				
			||||||
    DRI_DRIVERS: "swrast"
 | 
					 | 
				
			||||||
    GALLIUM_DRIVERS: "iris"
 | 
					 | 
				
			||||||
    # Disable i386 tests, because u_format_tests gets precision
 | 
					 | 
				
			||||||
    # failures in dxtn unpacking
 | 
					 | 
				
			||||||
    EXTRA_OPTION: >
 | 
					 | 
				
			||||||
      -D build-tests=false
 | 
					 | 
				
			||||||
      -D vulkan-overlay-layer=true
 | 
					 | 
				
			||||||
      -D llvm=false
 | 
					 | 
				
			||||||
      -D osmesa=classic
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
scons-nollvm:
 | 
					 | 
				
			||||||
  extends: .scons-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    SCONS_TARGET: "llvm=0"
 | 
					 | 
				
			||||||
    SCONS_CHECK_COMMAND: "scons llvm=0 check"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
scons-llvm:
 | 
					 | 
				
			||||||
  extends: .scons-build
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    SCONS_TARGET: "llvm=1"
 | 
					 | 
				
			||||||
    SCONS_CHECK_COMMAND: "scons llvm=1 check"
 | 
					 | 
				
			||||||
    LLVM_VERSION: "3.4"
 | 
					 | 
				
			||||||
    # LLVM 3.4 packages were built with an old libstdc++ ABI
 | 
					 | 
				
			||||||
    CXX: "g++ -D_GLIBCXX_USE_CXX11_ABI=0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.deqp-test:
 | 
					 | 
				
			||||||
  <<: *ci-run-policy
 | 
					 | 
				
			||||||
  stage: test
 | 
					 | 
				
			||||||
  image: $DEBIAN_IMAGE
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    GIT_STRATEGY: none # testing doesn't build anything from source
 | 
					 | 
				
			||||||
    DEQP_SKIPS: deqp-default-skips.txt
 | 
					 | 
				
			||||||
  script:
 | 
					 | 
				
			||||||
    # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
 | 
					 | 
				
			||||||
    - rm -rf install
 | 
					 | 
				
			||||||
    - tar -xf artifacts/install.tar
 | 
					 | 
				
			||||||
    - ./artifacts/deqp-runner.sh
 | 
					 | 
				
			||||||
  artifacts:
 | 
					 | 
				
			||||||
    when: on_failure
 | 
					 | 
				
			||||||
    name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
 | 
					 | 
				
			||||||
    paths:
 | 
					 | 
				
			||||||
      - results/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
test-llvmpipe-gles2:
 | 
					 | 
				
			||||||
  parallel: 4
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    DEQP_VER: gles2
 | 
					 | 
				
			||||||
    DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
 | 
					 | 
				
			||||||
    LIBGL_ALWAYS_SOFTWARE: "true"
 | 
					 | 
				
			||||||
    DEQP_RENDERER_MATCH: "llvmpipe"
 | 
					 | 
				
			||||||
  extends: .deqp-test
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    - meson-main
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
test-softpipe-gles2:
 | 
					 | 
				
			||||||
  parallel: 4
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    DEQP_VER: gles2
 | 
					 | 
				
			||||||
    DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
 | 
					 | 
				
			||||||
    LIBGL_ALWAYS_SOFTWARE: "true"
 | 
					 | 
				
			||||||
    DEQP_RENDERER_MATCH: "softpipe"
 | 
					 | 
				
			||||||
    GALLIUM_DRIVER: "softpipe"
 | 
					 | 
				
			||||||
  extends: .deqp-test
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    - meson-main
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# The GLES2 CTS run takes about 8 minutes of CPU time, while GLES3 is
 | 
					 | 
				
			||||||
# 25 minutes.  Until we can get its runtime down, just do a partial
 | 
					 | 
				
			||||||
# (every 10 tests) run.
 | 
					 | 
				
			||||||
test-softpipe-gles3-limited:
 | 
					 | 
				
			||||||
  variables:
 | 
					 | 
				
			||||||
    DEQP_VER: gles3
 | 
					 | 
				
			||||||
    DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
 | 
					 | 
				
			||||||
    LIBGL_ALWAYS_SOFTWARE: "true"
 | 
					 | 
				
			||||||
    DEQP_RENDERER_MATCH: "softpipe"
 | 
					 | 
				
			||||||
    GALLIUM_DRIVER: "softpipe"
 | 
					 | 
				
			||||||
    CI_NODE_INDEX: 1
 | 
					 | 
				
			||||||
    CI_NODE_TOTAL: 10
 | 
					 | 
				
			||||||
  extends: .deqp-test
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    - meson-main
 | 
					 | 
				
			||||||
@@ -1,285 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
set -o xtrace
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export DEBIAN_FRONTEND=noninteractive
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CROSS_ARCHITECTURES="armhf arm64 i386"
 | 
					 | 
				
			||||||
for arch in $CROSS_ARCHITECTURES; do
 | 
					 | 
				
			||||||
    dpkg --add-architecture $arch
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apt-get install -y \
 | 
					 | 
				
			||||||
      apt-transport-https \
 | 
					 | 
				
			||||||
      ca-certificates \
 | 
					 | 
				
			||||||
      curl \
 | 
					 | 
				
			||||||
      wget \
 | 
					 | 
				
			||||||
      unzip \
 | 
					 | 
				
			||||||
      gnupg
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
 | 
					 | 
				
			||||||
echo "deb [trusted=yes] https://apt.llvm.org/stretch/ llvm-toolchain-stretch-7 main" >/etc/apt/sources.list.d/llvm7.list
 | 
					 | 
				
			||||||
echo "deb [trusted=yes] https://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main" >/etc/apt/sources.list.d/llvm8.list
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
 | 
					 | 
				
			||||||
echo 'deb https://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list
 | 
					 | 
				
			||||||
echo 'deb https://deb.debian.org/debian jessie main' >/etc/apt/sources.list.d/jessie.list
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apt-get update
 | 
					 | 
				
			||||||
apt-get install -y -t stretch-backports \
 | 
					 | 
				
			||||||
      llvm-3.4-dev \
 | 
					 | 
				
			||||||
      llvm-3.9-dev \
 | 
					 | 
				
			||||||
      libclang-3.9-dev \
 | 
					 | 
				
			||||||
      llvm-4.0-dev \
 | 
					 | 
				
			||||||
      libclang-4.0-dev \
 | 
					 | 
				
			||||||
      llvm-5.0-dev \
 | 
					 | 
				
			||||||
      libclang-5.0-dev \
 | 
					 | 
				
			||||||
      llvm-6.0-dev \
 | 
					 | 
				
			||||||
      libclang-6.0-dev \
 | 
					 | 
				
			||||||
      llvm-7-dev \
 | 
					 | 
				
			||||||
      libclang-7-dev \
 | 
					 | 
				
			||||||
      llvm-8-dev \
 | 
					 | 
				
			||||||
      libclang-8-dev \
 | 
					 | 
				
			||||||
      g++ \
 | 
					 | 
				
			||||||
      clang-8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install remaining packages from Debian buster to get newer versions
 | 
					 | 
				
			||||||
echo "deb https://deb.debian.org/debian/ buster main" >/etc/apt/sources.list.d/buster.list
 | 
					 | 
				
			||||||
echo "deb https://deb.debian.org/debian/ buster-updates main" >/etc/apt/sources.list.d/buster-updates.list
 | 
					 | 
				
			||||||
apt-get update
 | 
					 | 
				
			||||||
apt-get install -y \
 | 
					 | 
				
			||||||
      git \
 | 
					 | 
				
			||||||
      bzip2 \
 | 
					 | 
				
			||||||
      zlib1g-dev \
 | 
					 | 
				
			||||||
      pkg-config \
 | 
					 | 
				
			||||||
      libxrender-dev \
 | 
					 | 
				
			||||||
      libxdamage-dev \
 | 
					 | 
				
			||||||
      libxxf86vm-dev \
 | 
					 | 
				
			||||||
      gcc \
 | 
					 | 
				
			||||||
      git \
 | 
					 | 
				
			||||||
      libepoxy-dev \
 | 
					 | 
				
			||||||
      libegl1-mesa-dev \
 | 
					 | 
				
			||||||
      libgbm-dev \
 | 
					 | 
				
			||||||
      libclc-dev \
 | 
					 | 
				
			||||||
      libxvmc-dev \
 | 
					 | 
				
			||||||
      libomxil-bellagio-dev \
 | 
					 | 
				
			||||||
      xz-utils \
 | 
					 | 
				
			||||||
      libexpat1-dev \
 | 
					 | 
				
			||||||
      libx11-xcb-dev \
 | 
					 | 
				
			||||||
      libelf-dev \
 | 
					 | 
				
			||||||
      libunwind-dev \
 | 
					 | 
				
			||||||
      libglvnd-dev \
 | 
					 | 
				
			||||||
      libgtk-3-dev \
 | 
					 | 
				
			||||||
      libpng-dev \
 | 
					 | 
				
			||||||
      libgbm-dev \
 | 
					 | 
				
			||||||
      libgles2-mesa-dev \
 | 
					 | 
				
			||||||
      python-mako \
 | 
					 | 
				
			||||||
      python3-mako \
 | 
					 | 
				
			||||||
      bison \
 | 
					 | 
				
			||||||
      flex \
 | 
					 | 
				
			||||||
      gettext \
 | 
					 | 
				
			||||||
      cmake \
 | 
					 | 
				
			||||||
      meson \
 | 
					 | 
				
			||||||
      scons
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Cross-build Mesa deps
 | 
					 | 
				
			||||||
for arch in $CROSS_ARCHITECTURES; do
 | 
					 | 
				
			||||||
    apt-get install -y \
 | 
					 | 
				
			||||||
            libdrm-dev:${arch} \
 | 
					 | 
				
			||||||
            libexpat1-dev:${arch} \
 | 
					 | 
				
			||||||
            libelf-dev:${arch}
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
apt-get install -y \
 | 
					 | 
				
			||||||
        dpkg-dev \
 | 
					 | 
				
			||||||
        gcc-aarch64-linux-gnu \
 | 
					 | 
				
			||||||
        g++-aarch64-linux-gnu \
 | 
					 | 
				
			||||||
        gcc-arm-linux-gnueabihf \
 | 
					 | 
				
			||||||
        g++-arm-linux-gnueabihf \
 | 
					 | 
				
			||||||
        gcc-i686-linux-gnu \
 | 
					 | 
				
			||||||
        g++-i686-linux-gnu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# for 64bit windows cross-builds
 | 
					 | 
				
			||||||
apt-get install -y mingw-w64
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# for the vulkan overlay layer
 | 
					 | 
				
			||||||
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
 | 
					 | 
				
			||||||
unzip glslang-master-linux-Release.zip bin/glslangValidator
 | 
					 | 
				
			||||||
install -m755 bin/glslangValidator /usr/local/bin/
 | 
					 | 
				
			||||||
rm bin/glslangValidator glslang-master-linux-Release.zip
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# dependencies where we want a specific version
 | 
					 | 
				
			||||||
export              XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
 | 
					 | 
				
			||||||
export               XCB_RELEASES=https://xcb.freedesktop.org/dist
 | 
					 | 
				
			||||||
export           WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export         XORGMACROS_VERSION=util-macros-1.19.0
 | 
					 | 
				
			||||||
export            GLPROTO_VERSION=glproto-1.4.17
 | 
					 | 
				
			||||||
export          DRI2PROTO_VERSION=dri2proto-2.8
 | 
					 | 
				
			||||||
export       LIBPCIACCESS_VERSION=libpciaccess-0.13.4
 | 
					 | 
				
			||||||
export             LIBDRM_VERSION=libdrm-2.4.99
 | 
					 | 
				
			||||||
export           XCBPROTO_VERSION=xcb-proto-1.13
 | 
					 | 
				
			||||||
export         RANDRPROTO_VERSION=randrproto-1.5.0
 | 
					 | 
				
			||||||
export          LIBXRANDR_VERSION=libXrandr-1.5.0
 | 
					 | 
				
			||||||
export             LIBXCB_VERSION=libxcb-1.13
 | 
					 | 
				
			||||||
export       LIBXSHMFENCE_VERSION=libxshmfence-1.3
 | 
					 | 
				
			||||||
export           LIBVDPAU_VERSION=libvdpau-1.1
 | 
					 | 
				
			||||||
export              LIBVA_VERSION=libva-1.7.0
 | 
					 | 
				
			||||||
export         LIBWAYLAND_VERSION=wayland-1.15.0
 | 
					 | 
				
			||||||
export  WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $XORGMACROS_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $XORGMACROS_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $GLPROTO_VERSION.tar.bz2 && rm $GLPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $GLPROTO_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $GLPROTO_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $DRI2PROTO_VERSION.tar.bz2 && rm $DRI2PROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $DRI2PROTO_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $DRI2PROTO_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $XCBPROTO_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $XCBPROTO_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $LIBXCB_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBXCB_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $LIBPCIACCESS_VERSION.tar.bz2 && rm $LIBPCIACCESS_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $LIBPCIACCESS_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBPCIACCESS_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $LIBDRM_VERSION; ./configure --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBDRM_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $RANDRPROTO_VERSION.tar.bz2 && rm $RANDRPROTO_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $RANDRPROTO_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $RANDRPROTO_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $LIBXRANDR_VERSION.tar.bz2 && rm $LIBXRANDR_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $LIBXRANDR_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBXRANDR_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $LIBXSHMFENCE_VERSION.tar.bz2 && rm $LIBXSHMFENCE_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $LIBXSHMFENCE_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBXSHMFENCE_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $LIBVDPAU_VERSION.tar.bz2 && rm $LIBVDPAU_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $LIBVDPAU_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBVDPAU_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
 | 
					 | 
				
			||||||
tar -xvf $LIBVA_VERSION.tar.bz2 && rm $LIBVA_VERSION.tar.bz2
 | 
					 | 
				
			||||||
cd $LIBVA_VERSION; ./configure --disable-wayland --disable-dummy-driver; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBVA_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
 | 
					 | 
				
			||||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
 | 
					 | 
				
			||||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $LIBWAYLAND_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
 | 
					 | 
				
			||||||
tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
 | 
					 | 
				
			||||||
cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
 | 
					 | 
				
			||||||
rm -rf $WAYLAND_PROTOCOLS_VERSION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pushd /usr/local
 | 
					 | 
				
			||||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
 | 
					 | 
				
			||||||
rm -rf shader-db/.git
 | 
					 | 
				
			||||||
cd shader-db
 | 
					 | 
				
			||||||
make
 | 
					 | 
				
			||||||
popd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Use ccache to speed up builds
 | 
					 | 
				
			||||||
apt-get install -y ccache
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# We need xmllint to validate the XML files in Mesa
 | 
					 | 
				
			||||||
apt-get install -y libxml2-utils
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Generate cross build files for Meson
 | 
					 | 
				
			||||||
for arch in $CROSS_ARCHITECTURES; do
 | 
					 | 
				
			||||||
  cross_file="/cross_file-$arch.txt"
 | 
					 | 
				
			||||||
  /usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
 | 
					 | 
				
			||||||
  # Work around a bug in debcrossgen that should be fixed in the next release
 | 
					 | 
				
			||||||
  if [ "$arch" = "i386" ]; then
 | 
					 | 
				
			||||||
    sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
############### Build dEQP
 | 
					 | 
				
			||||||
git config --global user.email "mesa@example.com"
 | 
					 | 
				
			||||||
git config --global user.name "Mesa CI"
 | 
					 | 
				
			||||||
# XXX: Use --depth 1 once we can drop the cherry-picks.
 | 
					 | 
				
			||||||
git clone \
 | 
					 | 
				
			||||||
    https://github.com/KhronosGroup/VK-GL-CTS.git \
 | 
					 | 
				
			||||||
    -b opengl-es-cts-3.2.5.1 \
 | 
					 | 
				
			||||||
    /VK-GL-CTS
 | 
					 | 
				
			||||||
cd /VK-GL-CTS
 | 
					 | 
				
			||||||
# Fix surfaceless build
 | 
					 | 
				
			||||||
git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
 | 
					 | 
				
			||||||
git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# surfaceless links against libkms and such despite not using it.
 | 
					 | 
				
			||||||
sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
 | 
					 | 
				
			||||||
sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
 | 
					 | 
				
			||||||
sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
python3 external/fetch_sources.py
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mkdir -p /deqp
 | 
					 | 
				
			||||||
cd /deqp
 | 
					 | 
				
			||||||
cmake -G Ninja \
 | 
					 | 
				
			||||||
      -DDEQP_TARGET=surfaceless               \
 | 
					 | 
				
			||||||
      -DCMAKE_BUILD_TYPE=Release              \
 | 
					 | 
				
			||||||
      /VK-GL-CTS
 | 
					 | 
				
			||||||
ninja
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy out the mustpass lists we want from a bunch of other junk.
 | 
					 | 
				
			||||||
mkdir /deqp/mustpass
 | 
					 | 
				
			||||||
for gles in gles2 gles3 gles31; do
 | 
					 | 
				
			||||||
    cp \
 | 
					 | 
				
			||||||
        /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
 | 
					 | 
				
			||||||
        /deqp/mustpass/$gles-master.txt
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Remove the rest of the build products that we don't need.
 | 
					 | 
				
			||||||
rm -rf /deqp/external
 | 
					 | 
				
			||||||
rm -rf /deqp/modules/internal
 | 
					 | 
				
			||||||
rm -rf /deqp/executor
 | 
					 | 
				
			||||||
rm -rf /deqp/execserver
 | 
					 | 
				
			||||||
rm -rf /deqp/modules/egl
 | 
					 | 
				
			||||||
rm -rf /deqp/framework
 | 
					 | 
				
			||||||
du -sh *
 | 
					 | 
				
			||||||
rm -rf /VK-GL-CTS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
############### Uninstall the build software
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apt-get purge -y \
 | 
					 | 
				
			||||||
      git \
 | 
					 | 
				
			||||||
      curl \
 | 
					 | 
				
			||||||
      unzip \
 | 
					 | 
				
			||||||
      gnupg \
 | 
					 | 
				
			||||||
      cmake \
 | 
					 | 
				
			||||||
      git \
 | 
					 | 
				
			||||||
      libgles2-mesa-dev \
 | 
					 | 
				
			||||||
      libgbm-dev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apt-get autoremove -y --purge
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
# Note: skips lists for CI are just a list of lines that, when
 | 
					 | 
				
			||||||
# non-zero-length and not starting with '#', will regex match to
 | 
					 | 
				
			||||||
# delete lines from the test list.  Be careful.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Skip the perf/stress tests to keep runtime manageable
 | 
					 | 
				
			||||||
dEQP-GLES[0-9]*.performance
 | 
					 | 
				
			||||||
dEQP-GLES[0-9]*.stress
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# These are really slow on tiling architectures (including llvmpipe).
 | 
					 | 
				
			||||||
dEQP-GLES[0-9]*.functional.flush_finish
 | 
					 | 
				
			||||||
@@ -1,124 +0,0 @@
 | 
				
			|||||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.point.wide_point_clip
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.depth.rbo_rgba4_depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.no_rebind_rbo_rgba4_depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgba4_depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.no_rebind_rbo_rgba4_stencil_index8
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgba4_stencil_index8
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.polygon_offset.default_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.limits.points
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec3_bias
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_repeat_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_repeat_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_l8
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgb888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba4444
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_clamp_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_clamp_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_etc1
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_l8
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgb888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba4444
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba8888
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat_non_square
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp_non_square
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror_non_square
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat_non_square
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_clamp
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_repeat
 | 
					 | 
				
			||||||
@@ -1,112 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -ex
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEQP_OPTIONS=(--deqp-surface-width=256 --deqp-surface-height=256)
 | 
					 | 
				
			||||||
DEQP_OPTIONS+=(--deqp-surface-type=pbuffer)
 | 
					 | 
				
			||||||
DEQP_OPTIONS+=(--deqp-gl-config-name=rgba8888d24s8ms0)
 | 
					 | 
				
			||||||
DEQP_OPTIONS+=(--deqp-visibility=hidden)
 | 
					 | 
				
			||||||
DEQP_OPTIONS+=(--deqp-log-images=disable)
 | 
					 | 
				
			||||||
DEQP_OPTIONS+=(--deqp-watchdog=enable)
 | 
					 | 
				
			||||||
DEQP_OPTIONS+=(--deqp-crashhandler=enable)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$DEQP_VER" ]; then
 | 
					 | 
				
			||||||
   echo 'DEQP_VER must be set to something like "gles2" or "gles31" for the test run'
 | 
					 | 
				
			||||||
   exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$DEQP_SKIPS" ]; then
 | 
					 | 
				
			||||||
   echo 'DEQP_SKIPS must be set to something like "deqp-default-skips.txt"'
 | 
					 | 
				
			||||||
   exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Prep the expected failure list
 | 
					 | 
				
			||||||
if [ -n "$DEQP_EXPECTED_FAILS" ]; then
 | 
					 | 
				
			||||||
   export DEQP_EXPECTED_FAILS=`pwd`/artifacts/$DEQP_EXPECTED_FAILS
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
   export DEQP_EXPECTED_FAILS=/tmp/expect-no-failures.txt
 | 
					 | 
				
			||||||
   touch $DEQP_EXPECTED_FAILS
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
sort < $DEQP_EXPECTED_FAILS > /tmp/expected-fails.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Fix relative paths on inputs.
 | 
					 | 
				
			||||||
export DEQP_SKIPS=`pwd`/artifacts/$DEQP_SKIPS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Be a good citizen on the shared runners.
 | 
					 | 
				
			||||||
export LP_NUM_THREADS=4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set up the driver environment.
 | 
					 | 
				
			||||||
export LD_LIBRARY_PATH=`pwd`/install/lib/
 | 
					 | 
				
			||||||
export EGL_PLATFORM=surfaceless
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# the runner was failing to look for libkms in /usr/local/lib for some reason
 | 
					 | 
				
			||||||
# I never figured out.
 | 
					 | 
				
			||||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RESULTS=`pwd`/results
 | 
					 | 
				
			||||||
mkdir -p $RESULTS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd /deqp/modules/$DEQP_VER
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Generate test case list file
 | 
					 | 
				
			||||||
cp /deqp/mustpass/$DEQP_VER-master.txt /tmp/case-list.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Note: not using sorted input and comm, becuase I want to run the tests in
 | 
					 | 
				
			||||||
# the same order that dEQP would.
 | 
					 | 
				
			||||||
while read -r line; do
 | 
					 | 
				
			||||||
   if echo "$line" | grep -q '^[^#]'; then
 | 
					 | 
				
			||||||
       sed -i "/$line/d" /tmp/case-list.txt
 | 
					 | 
				
			||||||
   fi
 | 
					 | 
				
			||||||
done < $DEQP_SKIPS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# If the job is parallel, take the corresponding fraction of the caselist.
 | 
					 | 
				
			||||||
# Note: N~M is a gnu sed extension to match every nth line (first line is #1).
 | 
					 | 
				
			||||||
if [ -n "$CI_NODE_INDEX" ]; then
 | 
					 | 
				
			||||||
   sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ ! -s /tmp/case-list.txt ]; then
 | 
					 | 
				
			||||||
    echo "Caselist generation failed"
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Cannot use tee because dash doesn't have pipefail
 | 
					 | 
				
			||||||
touch /tmp/result.txt
 | 
					 | 
				
			||||||
tail -f /tmp/result.txt &
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
./deqp-$DEQP_VER "${DEQP_OPTIONS[@]}" --deqp-log-filename=$RESULTS/results.qpa --deqp-caselist-file=/tmp/case-list.txt >> /tmp/result.txt
 | 
					 | 
				
			||||||
DEQP_EXITCODE=$?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sed -ne \
 | 
					 | 
				
			||||||
    '/StatusCode="Fail"/{x;p}; s/#beginTestCaseResult //; T; h' \
 | 
					 | 
				
			||||||
    $RESULTS/results.qpa \
 | 
					 | 
				
			||||||
    > /tmp/unsorted-fails.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Scrape out the renderer that the test run used, so we can validate that the
 | 
					 | 
				
			||||||
# right driver was used.
 | 
					 | 
				
			||||||
if grep -q "dEQP-.*.info.renderer" /tmp/case-list.txt; then
 | 
					 | 
				
			||||||
    # This is an ugly dependency on the .qpa format: Print 3 lines after the
 | 
					 | 
				
			||||||
    # match, which happens to contain the result.
 | 
					 | 
				
			||||||
    RENDERER=`sed -n '/#beginTestCaseResult dEQP-.*.info.renderer/{n;n;n;p}' $RESULTS/results.qpa | sed -n -E "s|<Text>(.*)</Text>|\1|p"`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo "GL_RENDERER for this test run: $RENDERER"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ -n "$DEQP_RENDERER_MATCH" ]; then
 | 
					 | 
				
			||||||
        echo $RENDERER | grep -q $DEQP_RENDERER_MATCH > /dev/null
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ $DEQP_EXITCODE -ne 0 ]; then
 | 
					 | 
				
			||||||
   exit $DEQP_EXITCODE
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sort < /tmp/unsorted-fails.txt > $RESULTS/fails.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
comm -23 $RESULTS/fails.txt /tmp/expected-fails.txt > /tmp/new-fails.txt
 | 
					 | 
				
			||||||
if [ -s /tmp/new-fails.txt ]; then
 | 
					 | 
				
			||||||
    echo "Unexpected failures:"
 | 
					 | 
				
			||||||
    cat /tmp/new-fails.txt
 | 
					 | 
				
			||||||
    exit 1
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    echo "No new failures"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,445 +0,0 @@
 | 
				
			|||||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.point.wide_point_clip
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.polygon_offset.default_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.limits.points
 | 
					 | 
				
			||||||
dEQP-GLES2.functional.rasterization.primitives.points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_center
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.clipping.point.wide_point_clip
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.draw.random.124
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth24_stencil8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component24
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_color
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth_stencil
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth_stencil
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth24_stencil8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth32f_stencil8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component24
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component32f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.r11f_g11f_b10f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.r16f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.r8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rg16f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rg8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb10_a2
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb565
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb5_a1
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgba4
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgba8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.srgb8_alpha8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth24_stencil8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth32f_stencil8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component16
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component24
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component32f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.r11f_g11f_b10f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.r16f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.r8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rg16f
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rg8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb10_a2
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb565
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb5_a1
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgba4
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgba8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.srgb8_alpha8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.fbo.msaa.4_samples.stencil_index8
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_alpha_to_coverage
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage_inverted
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.multisample.fbo_max_samples.sample_coverage_invert
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.negative_api.buffer.blit_framebuffer_multisample
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.negative_api.buffer.read_pixels_fbo_format_mismatch
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.polygon_offset.default_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.polygon_offset.fixed16_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.polygon_offset.fixed24_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.polygon_offset.float32_displacement_with_units
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterization.primitives.points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterizer_discard.basic.write_depth_points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterizer_discard.basic.write_stencil_points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterizer_discard.fbo.write_depth_points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterizer_discard.fbo.write_stencil_points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterizer_discard.scissor.write_depth_points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.rasterizer_discard.scissor.write_stencil_points
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_highp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_mediump
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.state_query.integers.max_samples_getfloat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.state_query.integers.max_samples_getinteger64
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_linear
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_nearest
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_nearest_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_mipmap_linear_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_mipmap_nearest_linear_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_clamp
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_mirror
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_repeat
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_divisible
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_not_divisible
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_divisible
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_not_divisible
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads1
 | 
					 | 
				
			||||||
dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads256
 | 
					 | 
				
			||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
set -o xtrace
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# We need to control the version of llvm-config we're using, so we'll
 | 
					 | 
				
			||||||
# generate a native file to do so. This requires meson >=0.49
 | 
					 | 
				
			||||||
if test -n "$LLVM_VERSION"; then
 | 
					 | 
				
			||||||
    LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
 | 
					 | 
				
			||||||
    echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
 | 
					 | 
				
			||||||
    $LLVM_CONFIG --version
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    rm -f native.file
 | 
					 | 
				
			||||||
    touch native.file
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rm -rf _build
 | 
					 | 
				
			||||||
meson _build --native-file=native.file \
 | 
					 | 
				
			||||||
      ${CROSS+--cross /cross_file-$CROSS.txt} \
 | 
					 | 
				
			||||||
      -D prefix=`pwd`/install \
 | 
					 | 
				
			||||||
      -D libdir=lib \
 | 
					 | 
				
			||||||
      -D buildtype=${BUILDTYPE:-debug} \
 | 
					 | 
				
			||||||
      -D build-tests=true \
 | 
					 | 
				
			||||||
      -D libunwind=${UNWIND} \
 | 
					 | 
				
			||||||
      ${DRI_LOADERS} \
 | 
					 | 
				
			||||||
      -D dri-drivers=${DRI_DRIVERS:-[]} \
 | 
					 | 
				
			||||||
      ${GALLIUM_ST} \
 | 
					 | 
				
			||||||
      -D gallium-drivers=${GALLIUM_DRIVERS:-[]} \
 | 
					 | 
				
			||||||
      -D vulkan-drivers=${VULKAN_DRIVERS:-[]} \
 | 
					 | 
				
			||||||
      -D I-love-half-baked-turnips=true \
 | 
					 | 
				
			||||||
      ${EXTRA_OPTION}
 | 
					 | 
				
			||||||
cd _build
 | 
					 | 
				
			||||||
meson configure
 | 
					 | 
				
			||||||
ninja -j4
 | 
					 | 
				
			||||||
LC_ALL=C.UTF-8 ninja test
 | 
					 | 
				
			||||||
ninja install
 | 
					 | 
				
			||||||
cd ..
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if test -n "$MESON_SHADERDB"; then
 | 
					 | 
				
			||||||
    ./.gitlab-ci/run-shader-db.sh;
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Delete 2MB of includes from artifacts.
 | 
					 | 
				
			||||||
rm -rf install/include
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Strip the drivers in the artifacts to cut 80% of the artifacts size.
 | 
					 | 
				
			||||||
if [ -n "$CROSS" ]; then
 | 
					 | 
				
			||||||
    STRIP=`sed -n -E "s/strip\s*=\s*'(.*)'/\1/p" /cross_file-$CROSS.txt`
 | 
					 | 
				
			||||||
    if [ -z "$STRIP" ]; then
 | 
					 | 
				
			||||||
        echo "Failed to find strip command in cross file"
 | 
					 | 
				
			||||||
        exit 1
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    STRIP="strip"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
find install -name \*.so -exec $STRIP {} \;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Test runs don't pull down the git tree, so put the dEQP helper
 | 
					 | 
				
			||||||
# script and associated bits there.
 | 
					 | 
				
			||||||
mkdir -p artifacts/
 | 
					 | 
				
			||||||
cp -Rp .gitlab-ci/deqp* artifacts/
 | 
					 | 
				
			||||||
# cp -Rp src/freedreno/ci/expected* artifacts/
 | 
					 | 
				
			||||||
@@ -1,17 +0,0 @@
 | 
				
			|||||||
set -e
 | 
					 | 
				
			||||||
set -v
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARTIFACTSDIR=`pwd`/shader-db
 | 
					 | 
				
			||||||
mkdir -p $ARTIFACTSDIR
 | 
					 | 
				
			||||||
export DRM_SHIM_DEBUG=true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LIBDIR=`pwd`/install/lib
 | 
					 | 
				
			||||||
export LD_LIBRARY_PATH=$LIBDIR
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd /usr/local/shader-db
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
for driver in freedreno v3d; do
 | 
					 | 
				
			||||||
    env LD_PRELOAD=$LIBDIR/lib${driver}_noop_drm_shim.so \
 | 
					 | 
				
			||||||
        ./run -j 4 ./shaders \
 | 
					 | 
				
			||||||
            > $ARTIFACTSDIR/${driver}-shader-db.txt
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
							
								
								
									
										474
									
								
								.mailmap
									
									
									
									
									
								
							
							
						
						
									
										474
									
								
								.mailmap
									
									
									
									
									
								
							@@ -1,474 +0,0 @@
 | 
				
			|||||||
Aapo Tahkola <aet@rasterburn.org> <aapo@aapo-desktop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Adam Jackson <ajax@redhat.com> <ajax@benzedrine.nwnk.net>
 | 
					 | 
				
			||||||
Adam Jackson <ajax@redhat.com> <ajax@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Adrian Negreanu <adrian.m.negreanu@intel.com>
 | 
					 | 
				
			||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Negreanu Marius Adrian <adrian.m.negreanu@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airliedfreedesktop.org>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> airlied <airlied@unused-12-215.bne.redhat.com>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@dhcp-1-203.bne.redhat.com>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@gmail.com>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@itt42.(none)>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@linux.ie>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@nx6125b.(none)>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@panoply-rh.(none)>
 | 
					 | 
				
			||||||
Dave Airlie <airlied@redhat.com> <airlied@ppcg5.localdomain>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alan Coopersmith <alan.coopersmith@oracle.com> <alan.coopersmith@sun.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alan Hourihane <alanh@vmware.com> <alanh@tungstengraphics.com>
 | 
					 | 
				
			||||||
Alan Hourihane <alanh@vmware.com> <alanh@fairlite.demon.co.uk>
 | 
					 | 
				
			||||||
Alan Hourihane <alanh@vmware.com> <alanh@jetpack.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alexander Monakov <amonakov@gmail.com> <amonakov@ispras.ru>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alexander von Gluck IV <kallisti5@unixzen.com> Alexander von Gluck <kallisti5@unixzen.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.prom.eng.vmware.com>
 | 
					 | 
				
			||||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.vmware.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alexander.deucher@amd.com>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <agd5f@yahoo.com>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.com>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
 | 
					 | 
				
			||||||
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andreas Hartmetz <ahartmetz@gmail.com> <andreas.hartmetz@kdab.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andre Heider <a.heider@gmail.com>
 | 
					 | 
				
			||||||
Andreas Heider <andreas@heider.io>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andreas Pokorny <andreas.pokorny@canonical.com> <andreas.pokorny@elektrobit.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik_a@yahoo.com>
 | 
					 | 
				
			||||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik@mail.ru>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@beleth.(none)>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@iinet.net.au>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@nisroch.keine.ath.cx>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb-at-gmail.com>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@gmail.com>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@localhost.localdomain>
 | 
					 | 
				
			||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@nisroch.keine.ath.cx>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Boris Peterbarg <reist@users.sourceforge.net> reist <reist>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian.paul@tungstengraphics.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> <brian.paul@tungstengraphics.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> <brian.e.paul@gmail.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> <brianp@kemper.freedesktop.org>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> brian <brian@cvp965.(none)>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@i915.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@nostromo.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@poulsbo.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@ps3.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brianp@vmware.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> Brian <brian@yutani.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <brian.paul@tungstengraphics.com>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <root@i915.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <root@nostromo.localnet.net>
 | 
					 | 
				
			||||||
Brian Paul <brianp@vmware.com> root <root@i965.localnet.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mail.zih.tu-dresden.de>
 | 
					 | 
				
			||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <carli@carli-laptop.(none)>
 | 
					 | 
				
			||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <Carl-Philip.Haensch@mailbox.tu-dresden.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad@kiwitree.net>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
 | 
					 | 
				
			||||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Chia-I Wu <olvaffe@gmail.com> <olv@lunarg.com>
 | 
					 | 
				
			||||||
Chia-I Wu <olvaffe@gmail.com> Chia-Wu <olvaffe@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Chih-Wei Huang <cwhuang@linux.org.tw> Chih-Wei Huang <cwhuang@android-x86.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christian König <christian.koenig@amd.com> Christian Koenig <christian.koenig@amd.com>
 | 
					 | 
				
			||||||
Christian König <christian.koenig@amd.com> Christian König <christian.koenig at amd.com>
 | 
					 | 
				
			||||||
Christian König <christian.koenig@amd.com> Christian König <deathsimple@vodafone.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christoph Brill <egore911@egore911.de> Christoph Bill <egore@gmx.de>
 | 
					 | 
				
			||||||
Christoph Brill <egore911@egore911.de> <egore@gmx.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christoph Bumiller <christoph.bumiller@speed.at> <e0425955@student.tuwien.ac.at>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christopher James Halse Rogers <raof@ubuntu.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sf.net>
 | 
					 | 
				
			||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com>
 | 
					 | 
				
			||||||
Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com>
 | 
					 | 
				
			||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Courtney Goeltzenleuchter <courtney@lunarg.com> <courtney@LunarG.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Daniel Skinner <sio@users.sourceforge.net> sio <sio>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Daniel Stone <daniels@collabora.com> <daniel@fooishbar.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
 | 
					 | 
				
			||||||
David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net>
 | 
					 | 
				
			||||||
David Miller <davem@davemloft.net> davem69 <davem69>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
David Heidelberger <david.heidelberger@ixit.cz> David Heidelberg <david@ixit.cz>
 | 
					 | 
				
			||||||
David Heidelberger <david.heidelberger@ixit.cz> <d.okias@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
David Reveman <reveman@chromium.org> <c99drn@cs.umu.se>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dieter Nützel <Dieter@nuetzel-hh.de> Dieter Nützel <dieter@nuetzel-hh.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
 | 
					 | 
				
			||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliko@collabora.com>
 | 
					 | 
				
			||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.co.uk>
 | 
					 | 
				
			||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliikov@collabora.com>
 | 
					 | 
				
			||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@gmail.com>
 | 
					 | 
				
			||||||
Emil Velikov <emil.l.velikov@gmail.com> <emmil.velikov@collabora.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Eric Engestrom <eric@engestrom.ch> <eric.engestrom@imgtec.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Fabian Bieler <der.fabe@gmx.net> <fabianbieler@fastmail.fm>
 | 
					 | 
				
			||||||
Fabian Bieler <der.fabe@gmx.net> <<der.fabe@gmx.net>>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Feng, Haitao <haitao.feng@intel.com> Haitao Feng <haitao.feng@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Gwenole Beauchesne <gwenole.beauchesne@intel.com> <gb.devel@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Hamish Marson <hmarson@users.sourceforge.net> hmarson <hmarson>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Hans de Goede <hdegoede@redhat.com> Hans de Goede <j.w..r..degoede@hhs.nl>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Homer Hsing <dongsheng.xing@intel.com> <homer.hsing@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@freedesktop.org>
 | 
					 | 
				
			||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@vmware.com>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.(none)>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.walkyrie.se>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@tungstengraphics.com>
 | 
					 | 
				
			||||||
Jakob Bornecrantz <wallbraker@gmail.com> <wallbraker 'at' gmail 'dot' com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jakub Bogusz <qboosh@pld-linux.org> <gboosh@pld-linux.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
James Legg <jlegg@feralinteractive.com> <lankyleggy@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@tifa.local>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@vincent.local>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@yuffie.local>
 | 
					 | 
				
			||||||
Jeremy Huddleston <jeremyhu@apple.com> Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jeremy Kolb <jkolb@freedesktop.org> <jkolb@brandeis.edu>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> <glisse@freedesktop.org>
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> <glisse@kemper.freedesktop.org>
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@barney.(none)>
 | 
					 | 
				
			||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@localhost.localdomain>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.lan>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.(none)>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-desktop.localdomain>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-t61.(none)>
 | 
					 | 
				
			||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@virtuousgeek.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Joakim Sindholt <bacn@zhasha.com> <opensource@zhasha.com>
 | 
					 | 
				
			||||||
Joakim Sindholt <bacn@zhasha.com> <zhasha@gallium-dev.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jochen Gerlach <jtg@users.sourceforge.net> jtg <jtg>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Joel Bosveld <joel.bosveld@gmail.com> <Joel.Bosveld@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jonathan Adamczewski <jadamcze@utas.edu.au> <jadamcze@utas.edu.a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jon Turney <jon.turney@dronecode.org.uk> Jon TURNEY <jon.turney@dronecode.org.uk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jfonseca@vmware.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jrfonseca@tungstengraphics.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@pegasus.(none)>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@titan.(none)>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jose.r.fonseca@gmail.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <jrfonseca@tungstengraphics.com>
 | 
					 | 
				
			||||||
José Fonseca <jfonseca@vmware.com> <j_r_fonseca@yahoo.co.uk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <jouk@hrem.nano.tudelft.nl>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <joukj@hrem.stm.tudelft.nl>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> joukj <joukj@tarantella.(none)>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.nano.tudelft.nl>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.(none)>
 | 
					 | 
				
			||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> J.Jansen <joukj@tarantella.nano.tudelft.nl>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Juan Zhao <juan.j.zhao@intel.com> <juan.j.zhao@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Julien Cristau <jcristau@debian.org> <julien.cristau@logilab.fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Julien Isorce <j.isorce@samsung.com> <julien.isorce@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Kalyan Kondapally <kalyan.kondapally@intel.com> <kondapallykalyancontribute@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> Karl Schultze <k.w.schultz@comcast.net>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> unknown <kwschult@.na.qualcomm.com>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com>
 | 
					 | 
				
			||||||
Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Keith Harrison <sio2@users.sourceforge.net> sio2 <sio2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Keith Packard <keithp@keithp.com> <keithp@koto.keithp.com>
 | 
					 | 
				
			||||||
Keith Packard <keithp@keithp.com> <keithp@neko.keithp.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Keith Whitwell <keithw@vmware.com> <keith@tungstengraphics.com>
 | 
					 | 
				
			||||||
Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@temari.boston.redhat.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <kristian.h.kristensen@intel.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@chromium.org>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@google.com>
 | 
					 | 
				
			||||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Krzesimir Nowak <qdlacz@gmail.com> <krzesimir@kinvolk.io>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Li Peng <peng.li@intel.com> <peng.li@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <dev@mblankhorst.nl>
 | 
					 | 
				
			||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <m.b.lankhorst@gmail.com>
 | 
					 | 
				
			||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <maarten.lankhorst@canonical.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maciej Cencora <m.cencora@gmail.com> <maciej@osiris.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marc-André Lureau <marcandre.lureau@gmail.com> Marc-Andre Lureau <marcandre.lureau@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marc Dietrich <marvin24@gmx.de> Marc <marvin24@gmx.de>
 | 
					 | 
				
			||||||
Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marcin Ślusarz <marcin.slusarz@gmail.com> Marcin Slusarz <marcin.slusarz@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marek Olšák <maraeo@gmail.com> <marek.olsak@amd.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mario Kleiner <mario.kleiner.de@gmail.com> kleinerm <mario.kleiner@tuebingen.mpg.de>
 | 
					 | 
				
			||||||
Mario Kleiner <mario.kleiner.de@gmail.com> <mario.kleiner@tuebingen.mpg.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mark Mueller <markkmueller@gmail.com> <MarkKMueller@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Marta Lofstedt <marta.lofstedt@intel.com> <marta.lofstedt@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Martin Peres <martin.peres@linux.intel.com> <martin.peres@labri.fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <frohlich8@users.sourceforge.net>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@gmx.net>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@web.de>
 | 
					 | 
				
			||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> M.Froehlich@science-computing.de <M.Froehlich@science-computing.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Matthew W. S. Bell <matthew@bells23.org.uk> Matthew Bell <matthew@bells23.org.uk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maxence Le Doré <maxence.ledore@gmail.com> Maxence Le Dore <maxence.ledore@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Micah Fedke <micah.fedke@collabora.co.uk> <M.Fedke@Astronautics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> <michal@tungstengraphics.com>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> Michal Krol <michal@ubuntu-vbox.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> Michal Krol <mjkrol@gmail.org>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@capacitor.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@michal-laptop.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@quad.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@transistor.(none)>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> Michal <michal@tungstengraphics.com>
 | 
					 | 
				
			||||||
Michal Krol <michal@vmware.com> michal <michal@wmvare.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> <michel.daenzer@amd.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> <daenzer@vmware.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> <michel@tungstengraphics.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <michel.daenzer@amd.com>
 | 
					 | 
				
			||||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <daenzer@localhost.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> Mike Kaplinksiy <mike.kaplinskiy@gmail.com>
 | 
					 | 
				
			||||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> <mike.kaplinskiy@gmai.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mike Stroyan <mike@lunarg.com> <mike@LunarG.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nian Wu <nian.wu@intel.com> <nian@graphics.(none)>
 | 
					 | 
				
			||||||
Nian Wu <nian.wu@intel.com> <nian@tinderbox.sh.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nick Bowler <nbowler@draconx.ca>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nick Sarnie <commendsarnex@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <nhaehnle@gmail.com>
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <nhaehnle@gmail.com>
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect_@gmx.net>
 | 
					 | 
				
			||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect@upb.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Nigel Stewart <nigels@users.sourceforge.net> <nigels@sourceforge.net>
 | 
					 | 
				
			||||||
Nigel Stewart <nigels@users.sourceforge.net> <nstewart@nvidia.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nobled <nobled@dreamwidth.org> <nobled2@nobled2-karmic.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Oliver McFadden <oliver.mcfadden@linux.intel.com> <z3ro.geek@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Owain Ainsworth <zerooa@googlemail.com> Owain G. Ainsworth <oga@openbsd.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Owen W. Taylor <otaylor@fishsoup.net> Owen Taylor <otaylor@snell.localdomain>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Patrice Mandin <patmandin@gmail.com> <patrice@manoir.racoon.city>
 | 
					 | 
				
			||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@caramail.com>
 | 
					 | 
				
			||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pauli Nieminen <pauli.nieminen@linux.intel.com> <suokkos@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Paulo Zanoni <paulo.r.zanoni@intel.com> Paulo Zanoni <pzanoni@mandriva.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Paul Seidler <sepek@exherbo.org> Paul Seidler <pl.seidler@googlemail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <ppaalanen@gmail.com>
 | 
					 | 
				
			||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <pq@iki.fi>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Peter Hutterer <peter.hutterer@who-t.net> <peter@cs.unisa.edu.au>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> pepp <pelloux@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Pierre Willenbrock <pierre@pirsoft.de> Pierre Willenbrok <pierre@pirsoft.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Quentin Glidic <sardemff7+git@sardemff7.net> <sardemff7@sardemff7.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RALOVICH, Kristóf <tade60@freemail.hu> <kristof.ralovich@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> <RichardZ.Li@amd.com>
 | 
					 | 
				
			||||||
# The next ones are not 100% sure
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop3.(none)>
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop.(none)>
 | 
					 | 
				
			||||||
Richard Li <richardradeon@gmail.com> root <root@richard-desktop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Richard Sandiford <rsandifo@linux.vnet.ibm.com> <r.sandiford@uk.ibm.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Rob Clark <robclark@freedesktop.org> <Rob Clark robdclark@freedesktop.org>
 | 
					 | 
				
			||||||
Rob Clark <robclark@freedesktop.org> <robdclark@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Robert Bragg <robert@sixbynine.org> <robert@linux.intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Robert Ellison <papillo@vmware.com> <papillo@i965-laptop.(none)>
 | 
					 | 
				
			||||||
Robert Ellison <papillo@vmware.com> <papillo@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch>
 | 
					 | 
				
			||||||
Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Roy Spliet <rspliet@eclipso.eu> <r.spliet@student.tudelft.nl>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sean D'Epagnier <sean@depagnier.com> <geckosenator@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Serge Martin <edb+mesa@sigluy.net> Serge Martin (EdB) <edb+mesa@sigluy.net>
 | 
					 | 
				
			||||||
Serge Martin <edb+mesa@sigluy.net> EdB <edb+mesa@sigluy.net>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sinclair Yeh <syeh@vmware.com> <sinclair.yeh@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Stefan Brüns <stefan.bruens@rwth-aachen.de> <Stefan.Bruens@rwth-aachen.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <marchesin@icps.u-strasbg.fr>
 | 
					 | 
				
			||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <stephane.marchesin@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Sven M. Hallberg <pesco@users.sourceforge.net> pesco <pesco>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tapani Pälli <tapani.palli@intel.com> <tapani.palli@gmail.com>
 | 
					 | 
				
			||||||
Tapani Pälli <tapani.palli@intel.com> Tapani <tapani.palli@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thierry Reding <treding@nvidia.com> <thierry@gilfi.de>
 | 
					 | 
				
			||||||
Thierry Reding <treding@nvidia.com> <thierry.reding@avionic-design.de>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thierry Vignaud <thierry.vignaud@gmail.com> <tvignaud@mandriva.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thomas Balling Sørensen <tball@io.dk> <tball@tball-laptop.(none)>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas <thellstrom@vmware.com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thellstrom-at-vmware-dot-com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas@tungstengraphics.com>
 | 
					 | 
				
			||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellström <thomas@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thomas Tanner <tanner@gmx.net> tanner <tanner>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tilman Sauerbeck <tilman@code-monkey.de> <tilman@freedesktop.org>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Timothy Arceri <timothy.arceri@collabora.com> <t_arceri@yahoo.com.au>
 | 
					 | 
				
			||||||
Timothy Arceri <timothy.arceri@collabora.com> Timothy <t_arceri@yahoo.com.au>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tom Fogal <tfogal@alumni.unh.edu> <tfogal@sci.utah.edu>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tom Stellard <thomas.stellard@amd.com> <tstellar@gmail.com>
 | 
					 | 
				
			||||||
Tom Stellard <thomas.stellard@amd.com> Thomas Stellard <tom.stellard@amd.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Tormod Volden <debian.tormod@gmail.com> <lists.tormod@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Török Edwin <edwin+mesa@etorok.net> Török Edvin <edwintorok@gmail.com>
 | 
					 | 
				
			||||||
Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org>
 | 
					 | 
				
			||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@sci.fi>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Vincent Lejeune <vljn@ovi.com> <peluche.canard@gmail.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Vinson Lee <vlee@freedesktop.org> <vlee@vmware.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Zhenyu Wang <zhenyuw@linux.intel.com> Wang Zhenyu <zhenyu.z.wang@intel.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Zack Rusin <zackr@vmware.com> <zack@kde.org>
 | 
					 | 
				
			||||||
Zack Rusin <zackr@vmware.com> <zack@pixel.(none)>
 | 
					 | 
				
			||||||
Zack Rusin <zackr@vmware.com> <zack@tungstengraphics.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Zhang <zxpmyth@yahoo.com.cn> zhang <zxpmyth@yahoo.com.cn>
 | 
					 | 
				
			||||||
							
								
								
									
										62
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								.travis.yml
									
									
									
									
									
								
							@@ -1,62 +0,0 @@
 | 
				
			|||||||
language: c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
os: osx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cache:
 | 
					 | 
				
			||||||
  ccache: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
env:
 | 
					 | 
				
			||||||
  global:
 | 
					 | 
				
			||||||
    - PKG_CONFIG_PATH=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
matrix:
 | 
					 | 
				
			||||||
  include:
 | 
					 | 
				
			||||||
    - env:
 | 
					 | 
				
			||||||
      - BUILD=meson
 | 
					 | 
				
			||||||
    - env:
 | 
					 | 
				
			||||||
      - BUILD=scons
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
before_install:
 | 
					 | 
				
			||||||
  - HOMEBREW_NO_AUTO_UPDATE=1 brew install expat gettext
 | 
					 | 
				
			||||||
  - if test "x$BUILD" = xmeson; then
 | 
					 | 
				
			||||||
      HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  - if test "x$BUILD" = xscons; then
 | 
					 | 
				
			||||||
      HOMEBREW_NO_AUTO_UPDATE=1 brew install python2 scons;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Set PATH for homebrew pip3 installs
 | 
					 | 
				
			||||||
  - PATH="$HOME/Library/Python/3.6/bin:${PATH}"
 | 
					 | 
				
			||||||
  # Set PKG_CONFIG_PATH for keg-only expat
 | 
					 | 
				
			||||||
  - PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
 | 
					 | 
				
			||||||
  # Set PATH for keg-only gettext
 | 
					 | 
				
			||||||
  - PATH="/usr/local/opt/gettext/bin:${PATH}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Install xquartz for prereqs ...
 | 
					 | 
				
			||||||
  - XQUARTZ_VERSION="2.7.11"
 | 
					 | 
				
			||||||
  - wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg
 | 
					 | 
				
			||||||
  - hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg
 | 
					 | 
				
			||||||
  - sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target /
 | 
					 | 
				
			||||||
  - hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
 | 
					 | 
				
			||||||
  # ... and set paths
 | 
					 | 
				
			||||||
  - PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install:
 | 
					 | 
				
			||||||
  - if test "x$BUILD" = xmeson; then
 | 
					 | 
				
			||||||
      pip3 install --user meson;
 | 
					 | 
				
			||||||
      pip3 install --user mako;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  - if test "x$BUILD" = xscons; then
 | 
					 | 
				
			||||||
      pip2 install --user mako;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
  - if test "x$BUILD" = xmeson; then
 | 
					 | 
				
			||||||
      meson _build -Dbuild-tests=true;
 | 
					 | 
				
			||||||
      ninja -C _build || travis_terminate 1;
 | 
					 | 
				
			||||||
      ninja -C _build test || travis_terminate 1;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  - if test "x$BUILD" = xscons; then
 | 
					 | 
				
			||||||
      scons || travis_terminate 1;
 | 
					 | 
				
			||||||
      scons check || travis_terminate 1;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
@@ -1,135 +0,0 @@
 | 
				
			|||||||
# Mesa 3-D graphics library
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 LunarG Inc.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
# THE AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(LOCAL_IS_HOST_MODULE),true)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += -D_GNU_SOURCE
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LOCAL_C_INCLUDES += \
 | 
					 | 
				
			||||||
	$(MESA_TOP)/src \
 | 
					 | 
				
			||||||
	$(MESA_TOP)/include
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += \
 | 
					 | 
				
			||||||
	-Wno-error \
 | 
					 | 
				
			||||||
	-Werror=incompatible-pointer-types \
 | 
					 | 
				
			||||||
	-Wno-unused-parameter \
 | 
					 | 
				
			||||||
	-Wno-pointer-arith \
 | 
					 | 
				
			||||||
	-Wno-missing-field-initializers \
 | 
					 | 
				
			||||||
	-Wno-initializer-overrides \
 | 
					 | 
				
			||||||
	-Wno-mismatched-tags \
 | 
					 | 
				
			||||||
	-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
 | 
					 | 
				
			||||||
	-DPACKAGE_BUGREPORT=\"https://gitlab.freedesktop.org/mesa/mesa/issues\"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# XXX: The following __STDC_*_MACROS defines should not be needed.
 | 
					 | 
				
			||||||
# It's likely due to a bug elsewhere, but let's temporarily add them
 | 
					 | 
				
			||||||
# here to fix the radeonsi build.
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += \
 | 
					 | 
				
			||||||
	-DANDROID_API_LEVEL=$(PLATFORM_SDK_VERSION) \
 | 
					 | 
				
			||||||
	-DENABLE_SHADER_CACHE \
 | 
					 | 
				
			||||||
	-D__STDC_CONSTANT_MACROS \
 | 
					 | 
				
			||||||
	-D__STDC_LIMIT_MACROS \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_EXPECT \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_FFS \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_FFSLL \
 | 
					 | 
				
			||||||
	-DHAVE_DLFCN_H \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_FLATTEN \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_UNUSED \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_FORMAT \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_PACKED \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_ALIAS \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_NORETURN \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL \
 | 
					 | 
				
			||||||
	-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_CTZ \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_POPCOUNT \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_POPCOUNTLL \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_CLZ \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_CLZLL \
 | 
					 | 
				
			||||||
	-DHAVE___BUILTIN_UNREACHABLE \
 | 
					 | 
				
			||||||
	-DHAVE_PTHREAD=1 \
 | 
					 | 
				
			||||||
	-DHAVE_DLADDR \
 | 
					 | 
				
			||||||
	-DHAVE_DL_ITERATE_PHDR \
 | 
					 | 
				
			||||||
	-DHAVE_LINUX_FUTEX_H \
 | 
					 | 
				
			||||||
	-DHAVE_ENDIAN_H \
 | 
					 | 
				
			||||||
	-DHAVE_ZLIB \
 | 
					 | 
				
			||||||
	-DMAJOR_IN_SYSMACROS \
 | 
					 | 
				
			||||||
	-DVK_USE_PLATFORM_ANDROID_KHR \
 | 
					 | 
				
			||||||
	-fvisibility=hidden \
 | 
					 | 
				
			||||||
	-fno-math-errno \
 | 
					 | 
				
			||||||
	-fno-trapping-math \
 | 
					 | 
				
			||||||
	-Wno-sign-compare
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LOCAL_CPPFLAGS += \
 | 
					 | 
				
			||||||
	-D__STDC_CONSTANT_MACROS \
 | 
					 | 
				
			||||||
	-D__STDC_FORMAT_MACROS \
 | 
					 | 
				
			||||||
	-D__STDC_LIMIT_MACROS \
 | 
					 | 
				
			||||||
	-Wno-error=non-virtual-dtor \
 | 
					 | 
				
			||||||
	-Wno-non-virtual-dtor
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# mesa requires at least c99 compiler
 | 
					 | 
				
			||||||
LOCAL_CONLYFLAGS += \
 | 
					 | 
				
			||||||
	-std=c99
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# c11 timespec_get is part of bionic as well
 | 
					 | 
				
			||||||
# https://android-review.googlesource.com/c/718518
 | 
					 | 
				
			||||||
# This means releases from P and earlier won't need this
 | 
					 | 
				
			||||||
ifeq ($(filter 5 6 7 8 9, $(MESA_ANDROID_MAJOR_VERSION)),)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Android's libc began supporting shm in Oreo
 | 
					 | 
				
			||||||
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
 | 
					 | 
				
			||||||
ifeq ($(TARGET_ARCH),x86)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += \
 | 
					 | 
				
			||||||
	-DUSE_X86_ASM
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
LOCAL_CFLAGS_arm64 += -DUSE_AARCH64_ASM
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifneq ($(LOCAL_IS_HOST_MODULE),true)
 | 
					 | 
				
			||||||
LOCAL_CFLAGS += -DHAVE_LIBDRM
 | 
					 | 
				
			||||||
LOCAL_SHARED_LIBRARIES += libdrm
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib/$(MESA_DRI_MODULE_REL_PATH)\"
 | 
					 | 
				
			||||||
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
 | 
					 | 
				
			||||||
LOCAL_PROPRIETARY_MODULE := true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# uncomment to keep the debug symbols
 | 
					 | 
				
			||||||
#LOCAL_STRIP_MODULE := false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
 | 
					 | 
				
			||||||
LOCAL_MODULE_TAGS := optional
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Quiet down the build system and remove any .h files from the sources
 | 
					 | 
				
			||||||
LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))
 | 
					 | 
				
			||||||
							
								
								
									
										130
									
								
								Android.mk
									
									
									
									
									
								
							
							
						
						
									
										130
									
								
								Android.mk
									
									
									
									
									
								
							@@ -1,130 +0,0 @@
 | 
				
			|||||||
# Mesa 3-D graphics library
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
 | 
					 | 
				
			||||||
# Copyright (C) 2010-2011 LunarG Inc.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
# THE AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# BOARD_GPU_DRIVERS should be defined.  The valid values are
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   classic drivers: i915 i965
 | 
					 | 
				
			||||||
#   gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv iris lima
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# The main target is libGLES_mesa.  For each classic driver enabled, a DRI
 | 
					 | 
				
			||||||
# module will also be built.  DRI modules will be loaded by libGLES_mesa.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_TOP := $(call my-dir)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
 | 
					 | 
				
			||||||
ifneq ($(filter 2 4, $(MESA_ANDROID_MAJOR_VERSION)),)
 | 
					 | 
				
			||||||
$(error "Android 4.4 and earlier not supported")
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_DRI_MODULE_REL_PATH := dri
 | 
					 | 
				
			||||||
MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$(MESA_DRI_MODULE_REL_PATH)
 | 
					 | 
				
			||||||
MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(MESA_DRI_MODULE_REL_PATH)
 | 
					 | 
				
			||||||
MESA_DRI_LDFLAGS := -Wl,--build-id=sha1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
 | 
					 | 
				
			||||||
MESA_PYTHON2 := python
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Lists to convert driver names to boolean variables
 | 
					 | 
				
			||||||
# in form of <driver name>.<boolean make variable>
 | 
					 | 
				
			||||||
classic_drivers := i915.HAVE_I915_DRI i965.HAVE_I965_DRI
 | 
					 | 
				
			||||||
gallium_drivers := \
 | 
					 | 
				
			||||||
	swrast.HAVE_GALLIUM_SOFTPIPE \
 | 
					 | 
				
			||||||
	freedreno.HAVE_GALLIUM_FREEDRENO \
 | 
					 | 
				
			||||||
	i915g.HAVE_GALLIUM_I915 \
 | 
					 | 
				
			||||||
	nouveau.HAVE_GALLIUM_NOUVEAU \
 | 
					 | 
				
			||||||
	kmsro.HAVE_GALLIUM_KMSRO \
 | 
					 | 
				
			||||||
	r300g.HAVE_GALLIUM_R300 \
 | 
					 | 
				
			||||||
	r600g.HAVE_GALLIUM_R600 \
 | 
					 | 
				
			||||||
	radeonsi.HAVE_GALLIUM_RADEONSI \
 | 
					 | 
				
			||||||
	vmwgfx.HAVE_GALLIUM_VMWGFX \
 | 
					 | 
				
			||||||
	vc4.HAVE_GALLIUM_VC4 \
 | 
					 | 
				
			||||||
	virgl.HAVE_GALLIUM_VIRGL \
 | 
					 | 
				
			||||||
	etnaviv.HAVE_GALLIUM_ETNAVIV \
 | 
					 | 
				
			||||||
	iris.HAVE_GALLIUM_IRIS \
 | 
					 | 
				
			||||||
	lima.HAVE_GALLIUM_LIMA
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifeq ($(BOARD_GPU_DRIVERS),all)
 | 
					 | 
				
			||||||
MESA_BUILD_CLASSIC := $(filter HAVE_%, $(subst ., , $(classic_drivers)))
 | 
					 | 
				
			||||||
MESA_BUILD_GALLIUM := $(filter HAVE_%, $(subst ., , $(gallium_drivers)))
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
# Warn if we have any invalid driver names
 | 
					 | 
				
			||||||
$(foreach d, $(BOARD_GPU_DRIVERS), \
 | 
					 | 
				
			||||||
	$(if $(findstring $(d).,$(classic_drivers) $(gallium_drivers)), \
 | 
					 | 
				
			||||||
		, \
 | 
					 | 
				
			||||||
		$(warning invalid GPU driver: $(d)) \
 | 
					 | 
				
			||||||
	) \
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
MESA_BUILD_CLASSIC := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(classic_drivers)))))
 | 
					 | 
				
			||||||
MESA_BUILD_GALLIUM := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(gallium_drivers)))))
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
ifeq ($(filter x86%,$(TARGET_ARCH)),)
 | 
					 | 
				
			||||||
	MESA_BUILD_CLASSIC :=
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# host and target must be the same arch to generate matypes.h
 | 
					 | 
				
			||||||
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
 | 
					 | 
				
			||||||
MESA_ENABLE_ASM := true
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
MESA_ENABLE_ASM := false
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
 | 
					 | 
				
			||||||
MESA_ENABLE_LLVM := true
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
define mesa-build-with-llvm
 | 
					 | 
				
			||||||
  $(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \
 | 
					 | 
				
			||||||
    $(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \
 | 
					 | 
				
			||||||
  $(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \
 | 
					 | 
				
			||||||
    $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_STRING=\"3.7\")) \
 | 
					 | 
				
			||||||
  $(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \
 | 
					 | 
				
			||||||
    $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_STRING=\"3.8\")) \
 | 
					 | 
				
			||||||
  $(if $(filter 8,$(MESA_ANDROID_MAJOR_VERSION)), \
 | 
					 | 
				
			||||||
    $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_STRING=\"3.9\")) \
 | 
					 | 
				
			||||||
  $(if $(filter P,$(MESA_ANDROID_MAJOR_VERSION)), \
 | 
					 | 
				
			||||||
    $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_STRING=\"3.9\")) \
 | 
					 | 
				
			||||||
  $(eval LOCAL_SHARED_LIBRARIES += libLLVM)
 | 
					 | 
				
			||||||
endef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# add subdirectories
 | 
					 | 
				
			||||||
SUBDIRS := \
 | 
					 | 
				
			||||||
	src/freedreno \
 | 
					 | 
				
			||||||
	src/gbm \
 | 
					 | 
				
			||||||
	src/loader \
 | 
					 | 
				
			||||||
	src/mapi \
 | 
					 | 
				
			||||||
	src/compiler \
 | 
					 | 
				
			||||||
	src/mesa \
 | 
					 | 
				
			||||||
	src/util \
 | 
					 | 
				
			||||||
	src/egl \
 | 
					 | 
				
			||||||
	src/amd \
 | 
					 | 
				
			||||||
	src/broadcom \
 | 
					 | 
				
			||||||
	src/intel \
 | 
					 | 
				
			||||||
	src/mesa/drivers/dri \
 | 
					 | 
				
			||||||
	src/vulkan \
 | 
					 | 
				
			||||||
	src/panfrost \
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
 | 
					 | 
				
			||||||
INC_DIRS += $(call all-named-subdir-makefiles,src/gallium)
 | 
					 | 
				
			||||||
include $(INC_DIRS)
 | 
					 | 
				
			||||||
							
								
								
									
										16
									
								
								CleanSpec.mk
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								CleanSpec.mk
									
									
									
									
									
								
							@@ -1,16 +0,0 @@
 | 
				
			|||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libmesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/i9*5_dri_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libglapi_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libGLES_mesa_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/glsl_compiler_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/STATIC_LIBRARIES/libmesa_glsl_utils_intermediates)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/i9?5_dri_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libglapi_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/mesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/glsl_compiler_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
 | 
					 | 
				
			||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
 | 
					 | 
				
			||||||
							
								
								
									
										559
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										559
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,559 @@
 | 
				
			|||||||
 | 
					# Top-level Mesa makefile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TOP = .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SUBDIRS = src progs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					default: $(TOP)/configs/current
 | 
				
			||||||
 | 
						@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
 | 
							if [ -d $$dir ] ; then \
 | 
				
			||||||
 | 
								(cd $$dir && $(MAKE)) || exit 1 ; \
 | 
				
			||||||
 | 
							fi \
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					doxygen:
 | 
				
			||||||
 | 
						cd doxygen && $(MAKE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						-@touch $(TOP)/configs/current
 | 
				
			||||||
 | 
						-@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
 | 
							if [ -d $$dir ] ; then \
 | 
				
			||||||
 | 
								(cd $$dir && $(MAKE) clean) ; \
 | 
				
			||||||
 | 
							fi \
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
						-@test -s $(TOP)/configs/current || rm -f $(TOP)/configs/current
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					realclean: clean
 | 
				
			||||||
 | 
						-rm -rf lib*
 | 
				
			||||||
 | 
						-rm -f $(TOP)/configs/current
 | 
				
			||||||
 | 
						-rm -f $(TOP)/configs/autoconf
 | 
				
			||||||
 | 
						-rm -rf autom4te.cache
 | 
				
			||||||
 | 
						-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
 | 
				
			||||||
 | 
						  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean: realclean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
						@for dir in $(SUBDIRS) ; do \
 | 
				
			||||||
 | 
							if [ -d $$dir ] ; then \
 | 
				
			||||||
 | 
								(cd $$dir && $(MAKE) install) || exit 1 ; \
 | 
				
			||||||
 | 
							fi \
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: default doxygen clean realclean distclean install linux-directfb-install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If there's no current configuration file
 | 
				
			||||||
 | 
					$(TOP)/configs/current:
 | 
				
			||||||
 | 
						@echo
 | 
				
			||||||
 | 
						@echo
 | 
				
			||||||
 | 
						@echo "Please choose a configuration from the following list:"
 | 
				
			||||||
 | 
						@ls -1 $(TOP)/configs | grep -v "current\|default\|CVS\|autoconf.*"
 | 
				
			||||||
 | 
						@echo
 | 
				
			||||||
 | 
						@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)"
 | 
				
			||||||
 | 
						@exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Rules to set/install a specific build configuration
 | 
				
			||||||
 | 
					aix \
 | 
				
			||||||
 | 
					aix-64 \
 | 
				
			||||||
 | 
					aix-64-static \
 | 
				
			||||||
 | 
					aix-gcc \
 | 
				
			||||||
 | 
					aix-static \
 | 
				
			||||||
 | 
					autoconf \
 | 
				
			||||||
 | 
					bluegene-osmesa \
 | 
				
			||||||
 | 
					bluegene-xlc-osmesa \
 | 
				
			||||||
 | 
					beos \
 | 
				
			||||||
 | 
					catamount-osmesa-pgi \
 | 
				
			||||||
 | 
					darwin \
 | 
				
			||||||
 | 
					darwin-fat-32bit \
 | 
				
			||||||
 | 
					darwin-fat-all \
 | 
				
			||||||
 | 
					darwin-static \
 | 
				
			||||||
 | 
					darwin-static-x86ppc \
 | 
				
			||||||
 | 
					freebsd \
 | 
				
			||||||
 | 
					freebsd-dri \
 | 
				
			||||||
 | 
					freebsd-dri-amd64 \
 | 
				
			||||||
 | 
					freebsd-dri-x86 \
 | 
				
			||||||
 | 
					hpux10 \
 | 
				
			||||||
 | 
					hpux10-gcc \
 | 
				
			||||||
 | 
					hpux10-static \
 | 
				
			||||||
 | 
					hpux11-32 \
 | 
				
			||||||
 | 
					hpux11-32-static \
 | 
				
			||||||
 | 
					hpux11-32-static-nothreads \
 | 
				
			||||||
 | 
					hpux11-64 \
 | 
				
			||||||
 | 
					hpux11-64-static \
 | 
				
			||||||
 | 
					hpux11-ia64 \
 | 
				
			||||||
 | 
					hpux11-ia64-static \
 | 
				
			||||||
 | 
					hpux9 \
 | 
				
			||||||
 | 
					hpux9-gcc \
 | 
				
			||||||
 | 
					irix6-64 \
 | 
				
			||||||
 | 
					irix6-64-static \
 | 
				
			||||||
 | 
					irix6-n32 \
 | 
				
			||||||
 | 
					irix6-n32-static \
 | 
				
			||||||
 | 
					irix6-o32 \
 | 
				
			||||||
 | 
					irix6-o32-static \
 | 
				
			||||||
 | 
					linux \
 | 
				
			||||||
 | 
					linux-alpha \
 | 
				
			||||||
 | 
					linux-alpha-static \
 | 
				
			||||||
 | 
					linux-cell \
 | 
				
			||||||
 | 
					linux-cell-debug \
 | 
				
			||||||
 | 
					linux-debug \
 | 
				
			||||||
 | 
					linux-directfb \
 | 
				
			||||||
 | 
					linux-dri \
 | 
				
			||||||
 | 
					linux-dri-debug \
 | 
				
			||||||
 | 
					linux-dri-x86 \
 | 
				
			||||||
 | 
					linux-dri-x86-64 \
 | 
				
			||||||
 | 
					linux-dri-ppc \
 | 
				
			||||||
 | 
					linux-dri-xcb \
 | 
				
			||||||
 | 
					linux-egl \
 | 
				
			||||||
 | 
					linux-indirect \
 | 
				
			||||||
 | 
					linux-fbdev \
 | 
				
			||||||
 | 
					linux-glide \
 | 
				
			||||||
 | 
					linux-ia64-icc \
 | 
				
			||||||
 | 
					linux-ia64-icc-static \
 | 
				
			||||||
 | 
					linux-icc \
 | 
				
			||||||
 | 
					linux-icc-static \
 | 
				
			||||||
 | 
					linux-llvm \
 | 
				
			||||||
 | 
					linux-osmesa \
 | 
				
			||||||
 | 
					linux-osmesa-static \
 | 
				
			||||||
 | 
					linux-osmesa16 \
 | 
				
			||||||
 | 
					linux-osmesa16-static \
 | 
				
			||||||
 | 
					linux-osmesa32 \
 | 
				
			||||||
 | 
					linux-ppc \
 | 
				
			||||||
 | 
					linux-ppc-static \
 | 
				
			||||||
 | 
					linux-profile \
 | 
				
			||||||
 | 
					linux-solo \
 | 
				
			||||||
 | 
					linux-solo-x86 \
 | 
				
			||||||
 | 
					linux-solo-ia64 \
 | 
				
			||||||
 | 
					linux-sparc \
 | 
				
			||||||
 | 
					linux-sparc5 \
 | 
				
			||||||
 | 
					linux-static \
 | 
				
			||||||
 | 
					linux-ultrasparc \
 | 
				
			||||||
 | 
					linux-tcc \
 | 
				
			||||||
 | 
					linux-x86 \
 | 
				
			||||||
 | 
					linux-x86-debug \
 | 
				
			||||||
 | 
					linux-x86-32 \
 | 
				
			||||||
 | 
					linux-x86-64 \
 | 
				
			||||||
 | 
					linux-x86-64-debug \
 | 
				
			||||||
 | 
					linux-x86-64-profile \
 | 
				
			||||||
 | 
					linux-x86-64-static \
 | 
				
			||||||
 | 
					linux-x86-glide \
 | 
				
			||||||
 | 
					linux-x86-profile \
 | 
				
			||||||
 | 
					linux-x86-static \
 | 
				
			||||||
 | 
					netbsd \
 | 
				
			||||||
 | 
					openbsd \
 | 
				
			||||||
 | 
					osf1 \
 | 
				
			||||||
 | 
					osf1-static \
 | 
				
			||||||
 | 
					solaris-x86 \
 | 
				
			||||||
 | 
					solaris-x86-gcc \
 | 
				
			||||||
 | 
					solaris-x86-gcc-static \
 | 
				
			||||||
 | 
					sunos4 \
 | 
				
			||||||
 | 
					sunos4-gcc \
 | 
				
			||||||
 | 
					sunos4-static \
 | 
				
			||||||
 | 
					sunos5 \
 | 
				
			||||||
 | 
					sunos5-gcc \
 | 
				
			||||||
 | 
					sunos5-64-gcc \
 | 
				
			||||||
 | 
					sunos5-smp \
 | 
				
			||||||
 | 
					sunos5-v8 \
 | 
				
			||||||
 | 
					sunos5-v8-static \
 | 
				
			||||||
 | 
					sunos5-v9 \
 | 
				
			||||||
 | 
					sunos5-v9-static \
 | 
				
			||||||
 | 
					sunos5-v9-cc-g++ \
 | 
				
			||||||
 | 
					ultrix-gcc:
 | 
				
			||||||
 | 
						@ if test -f configs/current || test -L configs/current ; then \
 | 
				
			||||||
 | 
							echo "Please run 'make realclean' before changing configs" ; \
 | 
				
			||||||
 | 
							exit 1 ; \
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						(cd configs && rm -f current && ln -s $@ current)
 | 
				
			||||||
 | 
						$(MAKE) default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Rules for making release tarballs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VERSION=7.5-rc4
 | 
				
			||||||
 | 
					DIRECTORY = Mesa-$(VERSION)
 | 
				
			||||||
 | 
					LIB_NAME = MesaLib-$(VERSION)
 | 
				
			||||||
 | 
					DEMO_NAME = MesaDemos-$(VERSION)
 | 
				
			||||||
 | 
					GLUT_NAME = MesaGLUT-$(VERSION)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MAIN_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/Makefile*						\
 | 
				
			||||||
 | 
						$(DIRECTORY)/configure						\
 | 
				
			||||||
 | 
						$(DIRECTORY)/configure.ac					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/acinclude.m4					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/aclocal.m4						\
 | 
				
			||||||
 | 
						$(DIRECTORY)/bin/config.guess					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/bin/config.sub					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/bin/install-sh					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/bin/mklib						\
 | 
				
			||||||
 | 
						$(DIRECTORY)/bin/minstall					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/bin/version.mk					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/configs/[a-z]*					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/docs/*.html					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/docs/COPYING					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/docs/README.*					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/docs/RELNOTES*					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/docs/*.spec					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/internal/glcore.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/dmesa.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/ggimesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/gl.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glext.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/gl_mangle.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glu.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glu_mangle.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glx.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glxext.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glx_mangle.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glfbdev.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/mesa_wgl.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/mglmesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/osmesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/svgamesa.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/vms_x_fix.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/wglext.h				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/wmesa.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/Makefile*					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/sources.mak				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/gl.pc.in					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/osmesa.pc.in				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/depend					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/main/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/main/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/glapi/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/math/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/math/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/grammar/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.gc			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/*.syn		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/shader/slang/library/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/swrast/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/swrast/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/swrast_setup/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/vbo/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/vbo/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/tnl/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/tnl/descrip.mms				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/tnl_dd/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/beos/*.cpp			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/beos/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/common/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/common/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/directfb/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dos/*.[chS]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/fbdev/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/glide/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/display/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/svga/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/windows/*/*.def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/x11/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/glslcompiler/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/glslcompiler/glslcompiler.c	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/ppc/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/sparc/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/x86/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/x86/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/x86/*.S					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/x86-64/*.[chS]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/x86-64/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/README					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/*.[ch]					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/util/sampleMakefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC8/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EGL_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/EGL/*.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GLES/*.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GLES2/*.h					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/egl/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/egl/*/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/egl/*/*.[ch]					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/egl/*/*/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/egl/*/*/*.[ch]					\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GALLIUM_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/state_tracker/*[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/Makefile.template			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/SConscript				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/SConscript				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/Makefile.template			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/SConscript				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*.py				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*/SConscript			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*/*.py				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*/*/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/gallium/*/*/*/*/*.[ch]				\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DRI_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/internal/dri_interface.h		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/internal/glcore.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/internal/sarea.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glx/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glx/x11/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glx/x11/*.[ch]					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/dri.pc.in			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SGI_GLU_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/Makefile					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/glu.pc.in					\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.mgw				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/Makefile.win				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/glu.def				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/dummy.cc				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/glu.exports				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/glu.exports.darwin			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/mesaglu.opt				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/include/gluos.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.cc			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libtess/README				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libtess/alg-outline			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libtess/*.[ch]				\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MESA_GLU_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/README[12]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/descrip.mms		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/mms_depend		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/*.def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/depend		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glu/mesa/*.[ch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLW_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glw/*.[ch]			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glw/Makefile*			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glw/README			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glw/glw.pc.in			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glw/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/*.[chf]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/redbook/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/redbook/README		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/redbook/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/samples/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/samples/README		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/samples/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/*.frag			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/glsl/*.vert			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/Makefile.ugl		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/windml/*.bmp			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/progs/ggi/*.c			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/progs.sln
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_FILES = \
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glut.h			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/include/GL/glutf90.h		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/Makefile*		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/depend		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/glut.pc.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/*def			\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/glx/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/beos/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/beos/*.cpp		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/beos/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/ggi/*.[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/ggi/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/fbdev/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/fbdev/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/mini/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/mini/glut.pc.in		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/Makefile		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/NOTES		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/src/glut/directfb/*[ch]		\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC6/progs/glut/glut.dsp	\
 | 
				
			||||||
 | 
						$(DIRECTORY)/windows/VC7/progs/glut/glut.vcproj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEPEND_FILES = \
 | 
				
			||||||
 | 
						$(TOP)/src/mesa/depend		\
 | 
				
			||||||
 | 
						$(TOP)/src/glx/x11/depend	\
 | 
				
			||||||
 | 
						$(TOP)/src/glw/depend		\
 | 
				
			||||||
 | 
						$(TOP)/src/glut/glx/depend	\
 | 
				
			||||||
 | 
						$(TOP)/src/glu/sgi/depend
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_FILES = \
 | 
				
			||||||
 | 
						$(MAIN_FILES)		\
 | 
				
			||||||
 | 
						$(EGL_FILES)		\
 | 
				
			||||||
 | 
						$(GALLIUM_FILES)	\
 | 
				
			||||||
 | 
						$(DRI_FILES)		\
 | 
				
			||||||
 | 
						$(SGI_GLU_FILES)	\
 | 
				
			||||||
 | 
						$(GLW_FILES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Everything for new a Mesa release:
 | 
				
			||||||
 | 
					tarballs: rm_depend configure aclocal.m4 lib_gz demo_gz glut_gz \
 | 
				
			||||||
 | 
						lib_bz2 demo_bz2 glut_bz2 lib_zip demo_zip glut_zip md5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Helper for autoconf builds
 | 
				
			||||||
 | 
					ACLOCAL = aclocal
 | 
				
			||||||
 | 
					ACLOCAL_FLAGS =
 | 
				
			||||||
 | 
					AUTOCONF = autoconf
 | 
				
			||||||
 | 
					AC_FLAGS =
 | 
				
			||||||
 | 
					aclocal.m4: configure.ac acinclude.m4
 | 
				
			||||||
 | 
						$(ACLOCAL) $(ACLOCAL_FLAGS)
 | 
				
			||||||
 | 
					configure: configure.ac aclocal.m4 acinclude.m4
 | 
				
			||||||
 | 
						$(AUTOCONF) $(AC_FLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rm_depend:
 | 
				
			||||||
 | 
						@for dep in $(DEPEND_FILES) ; do \
 | 
				
			||||||
 | 
							rm -f $$dep ; \
 | 
				
			||||||
 | 
							touch $$dep ; \
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lib_gz:
 | 
				
			||||||
 | 
						rm -f configs/current ; \
 | 
				
			||||||
 | 
						rm -f configs/autoconf ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
				
			||||||
 | 
						gzip $(LIB_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(LIB_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					demo_gz:
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						gzip $(DEMO_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					glut_gz:
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
				
			||||||
 | 
						gzip $(GLUT_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(GLUT_NAME).tar.gz $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lib_bz2:
 | 
				
			||||||
 | 
						rm -f configs/current ; \
 | 
				
			||||||
 | 
						rm -f configs/autoconf ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
 | 
				
			||||||
 | 
						bzip2 $(LIB_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					demo_bz2:
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						bzip2 $(DEMO_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					glut_bz2:
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
 | 
				
			||||||
 | 
						bzip2 $(GLUT_NAME).tar ; \
 | 
				
			||||||
 | 
						mv $(GLUT_NAME).tar.bz2 $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lib_zip:
 | 
				
			||||||
 | 
						rm -f configs/current ; \
 | 
				
			||||||
 | 
						rm -f configs/autoconf ; \
 | 
				
			||||||
 | 
						rm -f $(LIB_NAME).zip ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
 | 
				
			||||||
 | 
						mv $(LIB_NAME).zip $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					demo_zip:
 | 
				
			||||||
 | 
						rm -f $(DEMO_NAME).zip ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						zip -qr $(DEMO_NAME).zip $(DEMO_FILES) ; \
 | 
				
			||||||
 | 
						mv $(DEMO_NAME).zip $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					glut_zip:
 | 
				
			||||||
 | 
						rm -f $(GLUT_NAME).zip ; \
 | 
				
			||||||
 | 
						cd .. ; \
 | 
				
			||||||
 | 
						zip -qr $(GLUT_NAME).zip $(GLUT_FILES) ; \
 | 
				
			||||||
 | 
						mv $(GLUT_NAME).zip $(DIRECTORY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					md5:
 | 
				
			||||||
 | 
						@-md5sum $(LIB_NAME).tar.gz
 | 
				
			||||||
 | 
						@-md5sum $(LIB_NAME).tar.bz2
 | 
				
			||||||
 | 
						@-md5sum $(LIB_NAME).zip
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).tar.gz
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).tar.bz2
 | 
				
			||||||
 | 
						@-md5sum $(DEMO_NAME).zip
 | 
				
			||||||
 | 
						@-md5sum $(GLUT_NAME).tar.gz
 | 
				
			||||||
 | 
						@-md5sum $(GLUT_NAME).tar.bz2
 | 
				
			||||||
 | 
						@-md5sum $(GLUT_NAME).zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: tarballs rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 \
 | 
				
			||||||
 | 
						glut_bz2 lib_zip demo_zip glut_zip md5
 | 
				
			||||||
							
								
								
									
										60
									
								
								README.rst
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								README.rst
									
									
									
									
									
								
							@@ -1,60 +0,0 @@
 | 
				
			|||||||
`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library
 | 
					 | 
				
			||||||
======================================================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Source
 | 
					 | 
				
			||||||
------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This repository lives at https://gitlab.freedesktop.org/mesa/mesa.
 | 
					 | 
				
			||||||
Other repositories are likely forks, and code found there is not supported.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Build & install
 | 
					 | 
				
			||||||
---------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You can find more information in our documentation (`docs/install.html
 | 
					 | 
				
			||||||
<https://mesa3d.org/install.html>`_), but the recommended way is to use
 | 
					 | 
				
			||||||
Meson (`docs/meson.html <https://mesa3d.org/meson.html>`_):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.. code-block:: sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  $ mkdir build
 | 
					 | 
				
			||||||
  $ cd build
 | 
					 | 
				
			||||||
  $ meson ..
 | 
					 | 
				
			||||||
  $ sudo ninja install
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Support
 | 
					 | 
				
			||||||
-------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Many Mesa devs hang on IRC; if you're not sure which channel is
 | 
					 | 
				
			||||||
appropriate, you should ask your question on `Freenode's #dri-devel
 | 
					 | 
				
			||||||
<irc://chat.freenode.net#dri-devel>`_, someone will redirect you if
 | 
					 | 
				
			||||||
necessary.
 | 
					 | 
				
			||||||
Remember that not everyone is in the same timezone as you, so it might
 | 
					 | 
				
			||||||
take a while before someone qualified sees your question.
 | 
					 | 
				
			||||||
To figure out who you're talking to, or which nick to ping for your
 | 
					 | 
				
			||||||
question, check out `Who's Who on IRC
 | 
					 | 
				
			||||||
<https://dri.freedesktop.org/wiki/WhosWho/>`_.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The next best option is to ask your question in an email to the
 | 
					 | 
				
			||||||
mailing lists: `mesa-dev\@lists.freedesktop.org
 | 
					 | 
				
			||||||
<https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Bug reports
 | 
					 | 
				
			||||||
-----------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If you think something isn't working properly, please file a bug report
 | 
					 | 
				
			||||||
(`docs/bugs.html <https://mesa3d.org/bugs.html>`_).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contributing
 | 
					 | 
				
			||||||
------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Contributions are welcome, and step-by-step instructions can be found in our
 | 
					 | 
				
			||||||
documentation (`docs/submittingpatches.html
 | 
					 | 
				
			||||||
<https://mesa3d.org/submittingpatches.html>`_).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note that Mesa uses email mailing-lists for patches submission, review and
 | 
					 | 
				
			||||||
discussions.
 | 
					 | 
				
			||||||
							
								
								
									
										137
									
								
								REVIEWERS
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								REVIEWERS
									
									
									
									
									
								
							@@ -1,137 +0,0 @@
 | 
				
			|||||||
Overview:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	This file is similar in syntax (or more precisly a subset) of what is
 | 
					 | 
				
			||||||
	used by the MAINTAINERS file in the linux kernel.  Some fields do not
 | 
					 | 
				
			||||||
	apply, for example, in all cases, send patches to:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		mesa-dev@lists.freedesktop.org
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	and in all cases the patchwork instance is:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		https://patchwork.freedesktop.org/project/mesa/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	The purpose is not exactly the same the MAINTAINERS file in the linux
 | 
					 | 
				
			||||||
	kernel, as there are not official/formal maintainers of different
 | 
					 | 
				
			||||||
	subsystems in mesa, but is meant to give an idea of who to CC for
 | 
					 | 
				
			||||||
	various patches for review, and to allow the use of
 | 
					 | 
				
			||||||
	scripts/get_reviewer.pl as git --cc-cmd.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Usage:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	When sending patches:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		git send-email --cc-cmd ./scripts/get_reviewer.pl ...
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Or to configure as default:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		git config sendemail.cccmd ./scripts/get_reviewer.pl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Descriptions of section entries:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	R: Designated reviewer: FullName <address@domain>
 | 
					 | 
				
			||||||
	   These reviewers should be CCed on patches.
 | 
					 | 
				
			||||||
	F: Files and directories with wildcard patterns.
 | 
					 | 
				
			||||||
	   A trailing slash includes all files and subdirectory files.
 | 
					 | 
				
			||||||
	   F:	drivers/net/	all files in and below drivers/net
 | 
					 | 
				
			||||||
	   F:	drivers/net/*	all files in drivers/net, but not below
 | 
					 | 
				
			||||||
	   F:	*/net/*		all files in "any top level directory"/net
 | 
					 | 
				
			||||||
	   One pattern per line.  Multiple F: lines acceptable.
 | 
					 | 
				
			||||||
	N: Files and directories with regex patterns.
 | 
					 | 
				
			||||||
	   N:	[^a-z]tegra	all files whose path contains the word tegra
 | 
					 | 
				
			||||||
	   One pattern per line.  Multiple N: lines acceptable.
 | 
					 | 
				
			||||||
	   scripts/get_maintainer.pl has different behavior for files that
 | 
					 | 
				
			||||||
	   match F: pattern and matches of N: patterns.  By default,
 | 
					 | 
				
			||||||
	   get_maintainer will not look at git log history when an F: pattern
 | 
					 | 
				
			||||||
	   match occurs.  When an N: match occurs, git log history is used
 | 
					 | 
				
			||||||
	   to also notify the people that have git commit signatures.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Maintainers List (try to look for most precise areas first)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: this is an opt-in system, I have not tried to add anyone who hasn't
 | 
					 | 
				
			||||||
either asked me or sent a patch to add themselves.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		-----------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NIR
 | 
					 | 
				
			||||||
R:	Jason Ekstrand <jason@jlekstrand.net>
 | 
					 | 
				
			||||||
F:	src/compiler/nir/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DOCUMENTATION
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
R: Eric Engestrom <eric@engestrom.ch>
 | 
					 | 
				
			||||||
F: docs/
 | 
					 | 
				
			||||||
F: doxygen/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COMPATIBILITY HEADERS
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: include/c99*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DRI LOADER
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: src/loader/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EGL
 | 
					 | 
				
			||||||
R: Eric Engestrom <eric@engestrom.ch>
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: src/egl/
 | 
					 | 
				
			||||||
F: include/EGL/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
HAIKU
 | 
					 | 
				
			||||||
R: Alexander von Gluck IV <kallisti5@unixzen.com>
 | 
					 | 
				
			||||||
F: include/HaikuGL/
 | 
					 | 
				
			||||||
F: src/egl/drivers/haiku/
 | 
					 | 
				
			||||||
F: src/gallium/state_trackers/hgl/
 | 
					 | 
				
			||||||
F: src/gallium/targets/haiku-softpipe/
 | 
					 | 
				
			||||||
F: src/gallium/winsys/sw/hgl/
 | 
					 | 
				
			||||||
F: src/hgl/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM LOADER
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: src/gallium/auxiliary/pipe-loader/
 | 
					 | 
				
			||||||
F: src/gallium/auxiliary/target-helpers/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GALLIUM TARGETS
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
F: src/gallium/targets/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SCONS BUILD
 | 
					 | 
				
			||||||
F: scons/
 | 
					 | 
				
			||||||
F: */SConscript*
 | 
					 | 
				
			||||||
F: */Makefile.sources
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ANDROID BUILD
 | 
					 | 
				
			||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
 | 
					 | 
				
			||||||
R: Rob Herring <robh@kernel.org>
 | 
					 | 
				
			||||||
F: CleanSpec.mk
 | 
					 | 
				
			||||||
F: */Android.*mk
 | 
					 | 
				
			||||||
F: */Makefile.sources
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MESON BUILD
 | 
					 | 
				
			||||||
R: Dylan Baker <dylan@pnwbakers.com>
 | 
					 | 
				
			||||||
R: Eric Engestrom <eric@engestrom.ch>
 | 
					 | 
				
			||||||
F: */meson.build
 | 
					 | 
				
			||||||
F: meson.build
 | 
					 | 
				
			||||||
F: meson_options.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ANDROID EGL SUPPORT
 | 
					 | 
				
			||||||
R: Rob Herring <robh@kernel.org>
 | 
					 | 
				
			||||||
R: Tomasz Figa <tfiga@chromium.org>
 | 
					 | 
				
			||||||
F: src/egl/drivers/dri2/platform_android.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WAYLAND EGL SUPPORT
 | 
					 | 
				
			||||||
R: Daniel Stone <daniels@collabora.com>
 | 
					 | 
				
			||||||
F: src/egl/wayland/*
 | 
					 | 
				
			||||||
F: src/egl/drivers/dri2/platform_wayland.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FREEDRENO
 | 
					 | 
				
			||||||
R:	Rob Clark <robclark@freedesktop.org>
 | 
					 | 
				
			||||||
F:	src/gallium/drivers/freedreno/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GLX
 | 
					 | 
				
			||||||
R: Adam Jackson <ajax@redhat.com>
 | 
					 | 
				
			||||||
F: src/glx/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
VULKAN
 | 
					 | 
				
			||||||
R: Eric Engestrom <eric@engestrom.ch>
 | 
					 | 
				
			||||||
F: src/vulkan/
 | 
					 | 
				
			||||||
F: include/vulkan/
 | 
					 | 
				
			||||||
							
								
								
									
										203
									
								
								SConstruct
									
									
									
									
									
								
							
							
						
						
									
										203
									
								
								SConstruct
									
									
									
									
									
								
							@@ -3,14 +3,14 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# For example, invoke scons as 
 | 
					# For example, invoke scons as 
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   scons build=debug llvm=yes machine=x86
 | 
					#   scons debug=1 dri=0 machine=x86
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# to set configuration variables. Or you can write those options to a file
 | 
					# to set configuration variables. Or you can write those options to a file
 | 
				
			||||||
# named config.py:
 | 
					# named config.py:
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   # config.py
 | 
					#   # config.py
 | 
				
			||||||
#   build='debug'
 | 
					#   debug=1
 | 
				
			||||||
#   llvm=True
 | 
					#   dri=0
 | 
				
			||||||
#   machine='x86'
 | 
					#   machine='x86'
 | 
				
			||||||
# 
 | 
					# 
 | 
				
			||||||
# Invoke
 | 
					# Invoke
 | 
				
			||||||
@@ -23,22 +23,34 @@
 | 
				
			|||||||
import os
 | 
					import os
 | 
				
			||||||
import os.path
 | 
					import os.path
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
import SCons.Util
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import common
 | 
					import common
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#######################################################################
 | 
					 | 
				
			||||||
# Minimal scons version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EnsureSConsVersion(2, 4)
 | 
					 | 
				
			||||||
EnsurePythonVersion(2, 7)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Configuration options
 | 
					# Configuration options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					default_statetrackers = 'mesa'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if common.default_platform in ('linux', 'freebsd', 'darwin'):
 | 
				
			||||||
 | 
						default_drivers = 'softpipe,failover,i915simple,trace'
 | 
				
			||||||
 | 
						default_winsys = 'xlib'
 | 
				
			||||||
 | 
					elif common.default_platform in ('winddk',):
 | 
				
			||||||
 | 
						default_drivers = 'softpipe,i915simple,trace'
 | 
				
			||||||
 | 
						default_winsys = 'all'
 | 
				
			||||||
 | 
					else:
 | 
				
			||||||
 | 
						default_drivers = 'all'
 | 
				
			||||||
 | 
						default_winsys = 'all'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
opts = Variables('config.py')
 | 
					opts = Variables('config.py')
 | 
				
			||||||
common.AddOptions(opts)
 | 
					common.AddOptions(opts)
 | 
				
			||||||
 | 
					opts.Add(ListVariable('statetrackers', 'state trackers to build', default_statetrackers,
 | 
				
			||||||
 | 
					                     ['mesa', 'python']))
 | 
				
			||||||
 | 
					opts.Add(ListVariable('drivers', 'pipe drivers to build', default_drivers,
 | 
				
			||||||
 | 
					                     ['softpipe', 'failover', 'i915simple', 'i965simple', 'cell', 'trace', 'r300']))
 | 
				
			||||||
 | 
					opts.Add(ListVariable('winsys', 'winsys drivers to build', default_winsys,
 | 
				
			||||||
 | 
					                     ['xlib', 'intel', 'gdi', 'radeon']))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					opts.Add(EnumVariable('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
env = Environment(
 | 
					env = Environment(
 | 
				
			||||||
	options = opts,
 | 
						options = opts,
 | 
				
			||||||
@@ -47,97 +59,101 @@ env = Environment(
 | 
				
			|||||||
	ENV = os.environ,
 | 
						ENV = os.environ,
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# XXX: This creates a many problems as it saves...
 | 
					 | 
				
			||||||
#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))
 | 
					Help(opts.GenerateHelpText(env))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# replicate options values in local variables
 | 
				
			||||||
 | 
					debug = env['debug']
 | 
				
			||||||
 | 
					dri = env['dri']
 | 
				
			||||||
 | 
					llvm = env['llvm']
 | 
				
			||||||
 | 
					machine = env['machine']
 | 
				
			||||||
 | 
					platform = env['platform']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# derived options
 | 
				
			||||||
 | 
					x86 = machine == 'x86'
 | 
				
			||||||
 | 
					ppc = machine == 'ppc'
 | 
				
			||||||
 | 
					gcc = platform in ('linux', 'freebsd', 'darwin')
 | 
				
			||||||
 | 
					msvc = platform in ('windows', 'winddk')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Export([
 | 
				
			||||||
 | 
						'debug', 
 | 
				
			||||||
 | 
						'x86', 
 | 
				
			||||||
 | 
						'ppc', 
 | 
				
			||||||
 | 
						'dri', 
 | 
				
			||||||
 | 
						'llvm',
 | 
				
			||||||
 | 
						'platform',
 | 
				
			||||||
 | 
						'gcc',
 | 
				
			||||||
 | 
						'msvc',
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Environment setup
 | 
					# Environment setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
with open("VERSION") as f:
 | 
					 | 
				
			||||||
  mesa_version = f.read().strip()
 | 
					 | 
				
			||||||
env.Append(CPPDEFINES = [
 | 
					 | 
				
			||||||
    ('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
 | 
					 | 
				
			||||||
    ('PACKAGE_BUGREPORT', '\\"https://gitlab.freedesktop.org/mesa/mesa/issues\\"'),
 | 
					 | 
				
			||||||
])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Includes
 | 
					# Includes
 | 
				
			||||||
env.Prepend(CPPPATH = [
 | 
					 | 
				
			||||||
	'#/include',
 | 
					 | 
				
			||||||
])
 | 
					 | 
				
			||||||
env.Append(CPPPATH = [
 | 
					env.Append(CPPPATH = [
 | 
				
			||||||
 | 
						'#/include',
 | 
				
			||||||
	'#/src/gallium/include',
 | 
						'#/src/gallium/include',
 | 
				
			||||||
	'#/src/gallium/auxiliary',
 | 
						'#/src/gallium/auxiliary',
 | 
				
			||||||
	'#/src/gallium/drivers',
 | 
						'#/src/gallium/drivers',
 | 
				
			||||||
	'#/src/gallium/winsys',
 | 
					 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Posix
 | 
				
			||||||
 | 
					if platform in ('posix', 'linux', 'freebsd', 'darwin'):
 | 
				
			||||||
 | 
						env.Append(CPPDEFINES = [
 | 
				
			||||||
 | 
							'_POSIX_SOURCE',
 | 
				
			||||||
 | 
							('_POSIX_C_SOURCE', '199309L'), 
 | 
				
			||||||
 | 
							'_SVID_SOURCE',
 | 
				
			||||||
 | 
							'_BSD_SOURCE', 
 | 
				
			||||||
 | 
							'_GNU_SOURCE',
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							'PTHREADS',
 | 
				
			||||||
 | 
							'HAVE_POSIX_MEMALIGN',
 | 
				
			||||||
 | 
						])
 | 
				
			||||||
 | 
						env.Append(CPPPATH = ['/usr/X11R6/include'])
 | 
				
			||||||
 | 
						env.Append(LIBPATH = ['/usr/X11R6/lib'])
 | 
				
			||||||
 | 
						env.Append(LIBS = [
 | 
				
			||||||
 | 
							'm',
 | 
				
			||||||
 | 
							'pthread',
 | 
				
			||||||
 | 
							'expat',
 | 
				
			||||||
 | 
							'dl',
 | 
				
			||||||
 | 
						])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DRI
 | 
				
			||||||
 | 
					if dri:
 | 
				
			||||||
 | 
						env.ParseConfig('pkg-config --cflags --libs libdrm')
 | 
				
			||||||
 | 
						env.Append(CPPDEFINES = [
 | 
				
			||||||
 | 
							('USE_EXTERNAL_DXTN_LIB', '1'), 
 | 
				
			||||||
 | 
							'IN_DRI_DRIVER',
 | 
				
			||||||
 | 
							'GLX_DIRECT_RENDERING',
 | 
				
			||||||
 | 
							'GLX_INDIRECT_RENDERING',
 | 
				
			||||||
 | 
						])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# LLVM
 | 
				
			||||||
 | 
					if llvm:
 | 
				
			||||||
 | 
						# See also http://www.scons.org/wiki/UsingPkgConfig
 | 
				
			||||||
 | 
						env.ParseConfig('llvm-config --cflags --ldflags --libs backend bitreader engine instrumentation interpreter ipo')
 | 
				
			||||||
 | 
						env.Append(CPPDEFINES = ['MESA_LLVM'])
 | 
				
			||||||
 | 
					        # Force C++ linkage
 | 
				
			||||||
 | 
						env['LINK'] = env['CXX']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# libGL
 | 
				
			||||||
 | 
					if platform in ('linux', 'freebsd', 'darwin'):
 | 
				
			||||||
 | 
						env.Append(LIBS = [
 | 
				
			||||||
 | 
							'X11',
 | 
				
			||||||
 | 
							'Xext',
 | 
				
			||||||
 | 
							'Xxf86vm',
 | 
				
			||||||
 | 
							'Xdamage',
 | 
				
			||||||
 | 
							'Xfixes',
 | 
				
			||||||
 | 
						])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# for debugging
 | 
					# for debugging
 | 
				
			||||||
#print env.Dump()
 | 
					#print env.Dump()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add a check target for running tests
 | 
					 | 
				
			||||||
check = env.Alias('check')
 | 
					 | 
				
			||||||
env.AlwaysBuild(check)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#######################################################################
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    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')
 | 
					Export('env')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Invoke SConscripts
 | 
					# Invoke SConscripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -146,21 +162,6 @@ Export('env')
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
SConscript(
 | 
					SConscript(
 | 
				
			||||||
	'src/SConscript',
 | 
						'src/SConscript',
 | 
				
			||||||
	variant_dir = env['build_dir'],
 | 
						variant_dir = env['build'],
 | 
				
			||||||
	duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
 | 
						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 = sorted(default_ans.keys())
 | 
					 | 
				
			||||||
    env.Help('\n')
 | 
					 | 
				
			||||||
    env.Help('Recognized targets:\n')
 | 
					 | 
				
			||||||
    for alias in aliases:
 | 
					 | 
				
			||||||
        env.Help('    %s\n' % alias)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,119 @@
 | 
				
			|||||||
 | 
					# 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
 | 
				
			||||||
							
								
								
									
										92
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										92
									
								
								appveyor.yml
									
									
									
									
									
								
							@@ -1,92 +0,0 @@
 | 
				
			|||||||
# http://www.appveyor.com/docs/appveyor-yml
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To setup AppVeyor for your own personal repositories do the following:
 | 
					 | 
				
			||||||
# - Sign up
 | 
					 | 
				
			||||||
# - Add a new project
 | 
					 | 
				
			||||||
# - Select Git and fill in the Git clone URL
 | 
					 | 
				
			||||||
# - Setup a Git hook as explained in
 | 
					 | 
				
			||||||
#   https://github.com/appveyor/webhooks#installing-git-hook
 | 
					 | 
				
			||||||
# - Check 'Settings > General > Skip branches without appveyor.yml'
 | 
					 | 
				
			||||||
# - Check 'Settings > General > Rolling builds'
 | 
					 | 
				
			||||||
# - Setup the global or project notifications to your liking
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note that kicking (or restarting) a build via the web UI will not work, as it
 | 
					 | 
				
			||||||
# will fail to find appveyor.yml .  The Git hook is the most practical way to
 | 
					 | 
				
			||||||
# kick a build.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# See also:
 | 
					 | 
				
			||||||
# - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file
 | 
					 | 
				
			||||||
# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
version: '{build}'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
branches:
 | 
					 | 
				
			||||||
  except:
 | 
					 | 
				
			||||||
  - /^travis.*$/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Don't download the full Mesa history to speed up cloning.  However the clone
 | 
					 | 
				
			||||||
# depth must not be too small, otherwise builds might fail when lots of patches
 | 
					 | 
				
			||||||
# are committed in succession, because the desired commit is not found on the
 | 
					 | 
				
			||||||
# truncated history.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# See also:
 | 
					 | 
				
			||||||
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
 | 
					 | 
				
			||||||
clone_depth: 100
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# https://www.appveyor.com/docs/build-cache/
 | 
					 | 
				
			||||||
cache:
 | 
					 | 
				
			||||||
- '%LOCALAPPDATA%\pip\Cache -> appveyor.yml'
 | 
					 | 
				
			||||||
- win_flex_bison-2.5.15.zip
 | 
					 | 
				
			||||||
- llvm-5.0.1-msvc2017-mtd.7z
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
os: Visual Studio 2017
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
init:
 | 
					 | 
				
			||||||
# Appveyor defaults core.autocrlf to input instead of the default (true), but
 | 
					 | 
				
			||||||
# that can hide problems processing CRLF text on Windows
 | 
					 | 
				
			||||||
- git config --global core.autocrlf true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
environment:
 | 
					 | 
				
			||||||
  WINFLEXBISON_VERSION: 2.5.15
 | 
					 | 
				
			||||||
  LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install:
 | 
					 | 
				
			||||||
# Check git config
 | 
					 | 
				
			||||||
- git config core.autocrlf
 | 
					 | 
				
			||||||
# Check pip
 | 
					 | 
				
			||||||
- python --version
 | 
					 | 
				
			||||||
- python -m pip --version
 | 
					 | 
				
			||||||
# Install Mako
 | 
					 | 
				
			||||||
- python -m pip install Mako==1.0.7
 | 
					 | 
				
			||||||
# Install pywin32 extensions, needed by SCons
 | 
					 | 
				
			||||||
- python -m pip install pypiwin32
 | 
					 | 
				
			||||||
# Install python wheels, necessary to install SCons via pip
 | 
					 | 
				
			||||||
- python -m pip install wheel
 | 
					 | 
				
			||||||
# Install SCons
 | 
					 | 
				
			||||||
- python -m pip install scons==3.0.1
 | 
					 | 
				
			||||||
- scons --version
 | 
					 | 
				
			||||||
# Install flex/bison
 | 
					 | 
				
			||||||
- set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
 | 
					 | 
				
			||||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
 | 
					 | 
				
			||||||
- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
 | 
					 | 
				
			||||||
- set Path=%CD%\winflexbison;%Path%
 | 
					 | 
				
			||||||
- win_flex --version
 | 
					 | 
				
			||||||
- win_bison --version
 | 
					 | 
				
			||||||
# Download and extract LLVM
 | 
					 | 
				
			||||||
- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
 | 
					 | 
				
			||||||
- 7z x -y "%LLVM_ARCHIVE%" > nul
 | 
					 | 
				
			||||||
- mkdir llvm\bin
 | 
					 | 
				
			||||||
- set LLVM=%CD%\llvm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
build_script:
 | 
					 | 
				
			||||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
after_build:
 | 
					 | 
				
			||||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# It's possible to setup notification here, as described in
 | 
					 | 
				
			||||||
# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
 | 
					 | 
				
			||||||
# doing so would cause the notification settings to be replicated across all
 | 
					 | 
				
			||||||
# repos, which is most likely undesired.  So it's better to rely on the
 | 
					 | 
				
			||||||
# Appveyor global/project notification settings.
 | 
					 | 
				
			||||||
							
								
								
									
										18
									
								
								autogen.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								autogen.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					#! /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,24 +0,0 @@
 | 
				
			|||||||
# warnings that are not useful
 | 
					 | 
				
			||||||
da5ebe30105f70e3520ce3ae145793b755552569
 | 
					 | 
				
			||||||
6b8cb087568699ca9a6e9e8b7bf49179e622b59f
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Jason doesn't want this applied to 19.2 (it's a revert)
 | 
					 | 
				
			||||||
d15fe8ca8262d502435c4f83985ac414f950bc5f
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This doesn't apply to 19.2
 | 
					 | 
				
			||||||
f833b4cada07b746a10ffa4d93fcd821920c3cb1
 | 
					 | 
				
			||||||
d2db43fcad6a2ea2070ff5f7884411f4b7d3925c
 | 
					 | 
				
			||||||
66f2aa6ccd0b226eebe2c1a46281160b0a54d522
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# The author requested that this not be applied to 19.2
 | 
					 | 
				
			||||||
dcc0e23438f3e5929c2ef74d57e8207be25ecb41
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This doesn't apply cleanly, and no one really cares about this file on stable
 | 
					 | 
				
			||||||
# branches anyway.
 | 
					 | 
				
			||||||
bcd9224728dcb8d8fe4bcddc4bd9b2c36fcfe9dd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# De-nominated by its author due to alternate fix not being backported
 | 
					 | 
				
			||||||
43041627445540afda1a05d11861935963660344
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This is immediately reverted, so just don't apply
 | 
					 | 
				
			||||||
19546108d3dd5541a189e36df4ea83b3f519e48f
 | 
					 | 
				
			||||||
@@ -1,2 +0,0 @@
 | 
				
			|||||||
[*.sh]
 | 
					 | 
				
			||||||
indent_style = tab
 | 
					 | 
				
			||||||
							
								
								
									
										48
									
								
								bin/confdiff.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								bin/confdiff.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					#!/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
									
									
										Executable file
									
								
							
							
						
						
									
										1555
									
								
								bin/config.guess
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1685
									
								
								bin/config.sub
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										1685
									
								
								bin/config.sub
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,264 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python3
 | 
					 | 
				
			||||||
# Copyright © 2019 Intel Corporation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"""Generates release notes for a given version of mesa."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import asyncio
 | 
					 | 
				
			||||||
import datetime
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import pathlib
 | 
					 | 
				
			||||||
import textwrap
 | 
					 | 
				
			||||||
import typing
 | 
					 | 
				
			||||||
import urllib.parse
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import aiohttp
 | 
					 | 
				
			||||||
from mako.template import Template
 | 
					 | 
				
			||||||
from mako import exceptions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CURRENT_GL_VERSION = '4.5'
 | 
					 | 
				
			||||||
CURRENT_VK_VERSION = '1.1'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TEMPLATE = Template(textwrap.dedent("""\
 | 
					 | 
				
			||||||
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 | 
					 | 
				
			||||||
    <html lang="en">
 | 
					 | 
				
			||||||
    <head>
 | 
					 | 
				
			||||||
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
 | 
					 | 
				
			||||||
    <title>Mesa Release Notes</title>
 | 
					 | 
				
			||||||
    <link rel="stylesheet" type="text/css" href="../mesa.css">
 | 
					 | 
				
			||||||
    </head>
 | 
					 | 
				
			||||||
    <body>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <div class="header">
 | 
					 | 
				
			||||||
    <h1>The Mesa 3D Graphics Library</h1>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <iframe src="../contents.html"></iframe>
 | 
					 | 
				
			||||||
    <div class="content">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <h1>Mesa ${next_version} Release Notes / ${today}</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <p>
 | 
					 | 
				
			||||||
    %if bugfix:
 | 
					 | 
				
			||||||
        Mesa ${next_version} is a new development release. People who are concerned
 | 
					 | 
				
			||||||
        with stability and reliability should stick with a previous release or
 | 
					 | 
				
			||||||
        wait for Mesa ${version[:-1]}1.
 | 
					 | 
				
			||||||
    %else:
 | 
					 | 
				
			||||||
        Mesa ${next_version} is a bug fix release which fixes bugs found since the ${version} release.
 | 
					 | 
				
			||||||
    %endif
 | 
					 | 
				
			||||||
    </p>
 | 
					 | 
				
			||||||
    <p>
 | 
					 | 
				
			||||||
    Mesa ${next_version} implements the OpenGL ${gl_version} API, but the version reported by
 | 
					 | 
				
			||||||
    glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
 | 
					 | 
				
			||||||
    glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
 | 
					 | 
				
			||||||
    Some drivers don't support all the features required in OpenGL ${gl_version}. OpenGL
 | 
					 | 
				
			||||||
    ${gl_version} is <strong>only</strong> available if requested at context creation.
 | 
					 | 
				
			||||||
    Compatibility contexts may report a lower version depending on each driver.
 | 
					 | 
				
			||||||
    </p>
 | 
					 | 
				
			||||||
    <p>
 | 
					 | 
				
			||||||
    Mesa ${next_version} implements the Vulkan ${vk_version} API, but the version reported by
 | 
					 | 
				
			||||||
    the apiVersion property of the VkPhysicalDeviceProperties struct
 | 
					 | 
				
			||||||
    depends on the particular driver being used.
 | 
					 | 
				
			||||||
    </p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <h2>SHA256 checksum</h2>
 | 
					 | 
				
			||||||
    <pre>
 | 
					 | 
				
			||||||
    TBD.
 | 
					 | 
				
			||||||
    </pre>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <h2>New features</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <ul>
 | 
					 | 
				
			||||||
    %for f in features:
 | 
					 | 
				
			||||||
        <li>${f}</li>
 | 
					 | 
				
			||||||
    %endfor
 | 
					 | 
				
			||||||
    </ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <h2>Bug fixes</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <ul>
 | 
					 | 
				
			||||||
    %for b in bugs:
 | 
					 | 
				
			||||||
        <li>${b}</li>
 | 
					 | 
				
			||||||
    %endfor
 | 
					 | 
				
			||||||
    </ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <h2>Changes</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <ul>
 | 
					 | 
				
			||||||
    %for c, author in changes:
 | 
					 | 
				
			||||||
      %if author:
 | 
					 | 
				
			||||||
        <p>${c}</p>
 | 
					 | 
				
			||||||
      %else:
 | 
					 | 
				
			||||||
        <li>${c}</li>
 | 
					 | 
				
			||||||
      %endif
 | 
					 | 
				
			||||||
    %endfor
 | 
					 | 
				
			||||||
    </ul>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    </body>
 | 
					 | 
				
			||||||
    </html>
 | 
					 | 
				
			||||||
    """))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
async def gather_commits(version: str) -> str:
 | 
					 | 
				
			||||||
    p = await asyncio.create_subprocess_exec(
 | 
					 | 
				
			||||||
        'git', 'log', f'mesa-{version}..', '--grep', r'Closes: \(https\|#\).*',
 | 
					 | 
				
			||||||
        stdout=asyncio.subprocess.PIPE)
 | 
					 | 
				
			||||||
    out, _ = await p.communicate()
 | 
					 | 
				
			||||||
    assert p.returncode == 0, f"git log didn't work: {version}"
 | 
					 | 
				
			||||||
    return out.decode().strip()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
async def gather_bugs(version: str) -> typing.List[str]:
 | 
					 | 
				
			||||||
    commits = await gather_commits(version)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    issues: typing.List[str] = []
 | 
					 | 
				
			||||||
    for commit in commits.split('\n'):
 | 
					 | 
				
			||||||
        sha, message = commit.split(maxsplit=1)
 | 
					 | 
				
			||||||
        p = await asyncio.create_subprocess_exec(
 | 
					 | 
				
			||||||
            'git', 'log', '--max-count', '1', r'--format=%b', sha,
 | 
					 | 
				
			||||||
            stdout=asyncio.subprocess.PIPE)
 | 
					 | 
				
			||||||
        _out, _ = await p.communicate()
 | 
					 | 
				
			||||||
        out = _out.decode().split('\n')
 | 
					 | 
				
			||||||
        for line in reversed(out):
 | 
					 | 
				
			||||||
            if line.startswith('Closes:'):
 | 
					 | 
				
			||||||
                bug = line.lstrip('Closes:').strip()
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            raise Exception('No closes found?')
 | 
					 | 
				
			||||||
        if bug.startswith('h'):
 | 
					 | 
				
			||||||
            # This means we have a bug in the form "Closes: https://..."
 | 
					 | 
				
			||||||
            issues.append(os.path.basename(urllib.parse.urlparse(bug).path))
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            issues.append(bug)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    loop = asyncio.get_event_loop()
 | 
					 | 
				
			||||||
    async with aiohttp.ClientSession(loop=loop) as session:
 | 
					 | 
				
			||||||
        results = await asyncio.gather(*[get_bug(session, i) for i in issues])
 | 
					 | 
				
			||||||
    typing.cast(typing.Tuple[str, ...], results)
 | 
					 | 
				
			||||||
    return list(results)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
async def get_bug(session: aiohttp.ClientSession, bug_id: str) -> str:
 | 
					 | 
				
			||||||
    """Query gitlab to get the name of the issue that was closed."""
 | 
					 | 
				
			||||||
    # Mesa's gitlab id is 176,
 | 
					 | 
				
			||||||
    url = 'https://gitlab.freedesktop.org/api/v4/projects/176/issues'
 | 
					 | 
				
			||||||
    params = {'iids[]': bug_id}
 | 
					 | 
				
			||||||
    async with session.get(url, params=params) as response:
 | 
					 | 
				
			||||||
        content = await response.json()
 | 
					 | 
				
			||||||
    return content[0]['title']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
async def get_shortlog(version: str) -> str:
 | 
					 | 
				
			||||||
    """Call git shortlog."""
 | 
					 | 
				
			||||||
    p = await asyncio.create_subprocess_exec('git', 'shortlog', f'mesa-{version}..',
 | 
					 | 
				
			||||||
                                             stdout=asyncio.subprocess.PIPE)
 | 
					 | 
				
			||||||
    out, _ = await p.communicate()
 | 
					 | 
				
			||||||
    assert p.returncode == 0, 'error getting shortlog'
 | 
					 | 
				
			||||||
    assert out is not None, 'just for mypy'
 | 
					 | 
				
			||||||
    return out.decode()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def walk_shortlog(log: str) -> typing.Generator[typing.Tuple[str, bool], None, None]:
 | 
					 | 
				
			||||||
    for l in log.split('\n'):
 | 
					 | 
				
			||||||
        if l.startswith(' '): # this means we have a patch description
 | 
					 | 
				
			||||||
            yield l, False
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            yield l, True
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def calculate_next_version(version: str, is_point: bool) -> str:
 | 
					 | 
				
			||||||
    """Calculate the version about to be released."""
 | 
					 | 
				
			||||||
    if '-' in version:
 | 
					 | 
				
			||||||
        version = version.split('-')[0]
 | 
					 | 
				
			||||||
    if is_point:
 | 
					 | 
				
			||||||
        base = version.split('.')
 | 
					 | 
				
			||||||
        base[2] = str(int(base[2]) + 1)
 | 
					 | 
				
			||||||
        return '.'.join(base)
 | 
					 | 
				
			||||||
    return version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def calculate_previous_version(version: str, is_point: bool) -> str:
 | 
					 | 
				
			||||||
    """Calculate the previous version to compare to.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In the case of -rc to final that verison is the previous .0 release,
 | 
					 | 
				
			||||||
    (19.3.0 in the case of 20.0.0, for example). for point releases that is
 | 
					 | 
				
			||||||
    the last point release. This value will be the same as the input value
 | 
					 | 
				
			||||||
    for a point release, but different for a major release.
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
    if '-' in version:
 | 
					 | 
				
			||||||
        version = version.split('-')[0]
 | 
					 | 
				
			||||||
    if is_point:
 | 
					 | 
				
			||||||
        return version
 | 
					 | 
				
			||||||
    base = version.split('.')
 | 
					 | 
				
			||||||
    if base[1] == '0':
 | 
					 | 
				
			||||||
        base[0] = str(int(base[0]) - 1)
 | 
					 | 
				
			||||||
        base[1] = '3'
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        base[1] = str(int(base[1]) - 1)
 | 
					 | 
				
			||||||
    return '.'.join(base)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def get_features() -> typing.Generator[str, None, None]:
 | 
					 | 
				
			||||||
    p = pathlib.Path(__file__).parent.parent / 'docs' / 'relnotes' / 'new_features.txt'
 | 
					 | 
				
			||||||
    if p.exists():
 | 
					 | 
				
			||||||
        with p.open('rt') as f:
 | 
					 | 
				
			||||||
            for line in f:
 | 
					 | 
				
			||||||
                yield line
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
async def main() -> None:
 | 
					 | 
				
			||||||
    v = pathlib.Path(__file__).parent.parent / 'VERSION'
 | 
					 | 
				
			||||||
    with v.open('rt') as f:
 | 
					 | 
				
			||||||
        raw_version = f.read().strip()
 | 
					 | 
				
			||||||
    is_point_release = '-rc' not in raw_version
 | 
					 | 
				
			||||||
    assert '-devel' not in raw_version, 'Do not run this script on -devel'
 | 
					 | 
				
			||||||
    version = raw_version.split('-')[0]
 | 
					 | 
				
			||||||
    previous_version = calculate_previous_version(version, is_point_release)
 | 
					 | 
				
			||||||
    next_version = calculate_next_version(version, is_point_release)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    shortlog, bugs = await asyncio.gather(
 | 
					 | 
				
			||||||
        get_shortlog(previous_version),
 | 
					 | 
				
			||||||
        gather_bugs(previous_version),
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    final = pathlib.Path(__file__).parent.parent / 'docs' / 'relnotes' / f'{next_version}.html'
 | 
					 | 
				
			||||||
    with final.open('wt') as f:
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            f.write(TEMPLATE.render(
 | 
					 | 
				
			||||||
                bugfix=is_point_release,
 | 
					 | 
				
			||||||
                bugs=bugs,
 | 
					 | 
				
			||||||
                changes=walk_shortlog(shortlog),
 | 
					 | 
				
			||||||
                features=get_features(),
 | 
					 | 
				
			||||||
                gl_version=CURRENT_GL_VERSION,
 | 
					 | 
				
			||||||
                next_version=next_version,
 | 
					 | 
				
			||||||
                today=datetime.date.today(),
 | 
					 | 
				
			||||||
                version=previous_version,
 | 
					 | 
				
			||||||
                vk_version=CURRENT_VK_VERSION,
 | 
					 | 
				
			||||||
            ))
 | 
					 | 
				
			||||||
        except:
 | 
					 | 
				
			||||||
            print(exceptions.text_error_template().render())
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == "__main__":
 | 
					 | 
				
			||||||
    loop = asyncio.get_event_loop()
 | 
					 | 
				
			||||||
    loop.run_until_complete(main())
 | 
					 | 
				
			||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
# Copyright © 2019 Intel Corporation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from unittest import mock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import pytest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from .gen_release_notes import *
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@pytest.mark.parametrize(
 | 
					 | 
				
			||||||
    'current, is_point, expected',
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
        ('19.2.0', True, '19.2.1'),
 | 
					 | 
				
			||||||
        ('19.3.6', True, '19.3.7'),
 | 
					 | 
				
			||||||
        ('20.0.0-rc4', False, '20.0.0'),
 | 
					 | 
				
			||||||
    ])
 | 
					 | 
				
			||||||
def test_next_version(current: str, is_point: bool, expected: str) -> None:
 | 
					 | 
				
			||||||
    assert calculate_next_version(current, is_point) == expected
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@pytest.mark.parametrize(
 | 
					 | 
				
			||||||
    'current, is_point, expected',
 | 
					 | 
				
			||||||
    [
 | 
					 | 
				
			||||||
        ('19.3.6', True, '19.3.6'),
 | 
					 | 
				
			||||||
        ('20.0.0-rc4', False, '19.3.0'),
 | 
					 | 
				
			||||||
    ])
 | 
					 | 
				
			||||||
def test_previous_version(current: str, is_point: bool, expected: str) -> None:
 | 
					 | 
				
			||||||
    assert calculate_previous_version(current, is_point) == expected
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@pytest.mark.asyncio
 | 
					 | 
				
			||||||
async def test_get_shortlog():
 | 
					 | 
				
			||||||
    # Certainly not perfect, but it's something
 | 
					 | 
				
			||||||
    version = '19.2.0'
 | 
					 | 
				
			||||||
    out = await get_shortlog(version)
 | 
					 | 
				
			||||||
    assert out
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@pytest.mark.asyncio
 | 
					 | 
				
			||||||
async def test_gather_commits():
 | 
					 | 
				
			||||||
    # Certainly not perfect, but it's something
 | 
					 | 
				
			||||||
    version = '19.2.0'
 | 
					 | 
				
			||||||
    out = await gather_commits(version)
 | 
					 | 
				
			||||||
    assert out
 | 
					 | 
				
			||||||
@@ -1,45 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Script for generating a list of candidates which fix commits that have been
 | 
					 | 
				
			||||||
# previously cherry-picked to a stable branch.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Usage examples:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# $ bin/get-extra-pick-list.sh
 | 
					 | 
				
			||||||
# $ bin/get-extra-pick-list.sh > picklist
 | 
					 | 
				
			||||||
# $ bin/get-extra-pick-list.sh | tee picklist
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Use the last branchpoint as our limit for the search
 | 
					 | 
				
			||||||
latest_branchpoint=`git merge-base origin/master HEAD`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grep for commits with "cherry picked from commit" in the commit message.
 | 
					 | 
				
			||||||
git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
 | 
					 | 
				
			||||||
	grep "cherry picked from commit" |\
 | 
					 | 
				
			||||||
	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//'  > already_picked
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# For each cherry-picked commit...
 | 
					 | 
				
			||||||
cat already_picked | cut -c -8 |\
 | 
					 | 
				
			||||||
while read sha
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
	# ... check if it's referenced (fixed by another) patch
 | 
					 | 
				
			||||||
	git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\
 | 
					 | 
				
			||||||
		cut -c -8 |\
 | 
					 | 
				
			||||||
	while read candidate
 | 
					 | 
				
			||||||
	do
 | 
					 | 
				
			||||||
		# And flag up if it hasn't landed in branch yet.
 | 
					 | 
				
			||||||
		if grep -q ^$candidate already_picked ; then
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
		# Or if it isn't in the ignore list.
 | 
					 | 
				
			||||||
		if [ -f bin/.cherry-ignore ] ; then
 | 
					 | 
				
			||||||
			if grep -q ^$candidate bin/.cherry-ignore ; then
 | 
					 | 
				
			||||||
				continue
 | 
					 | 
				
			||||||
			fi
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
		printf "Commit \"%s\" references %s\n" \
 | 
					 | 
				
			||||||
		       "`git log -n1 --pretty=oneline $candidate`" \
 | 
					 | 
				
			||||||
		       "$sha"
 | 
					 | 
				
			||||||
	done
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rm -f already_picked
 | 
					 | 
				
			||||||
@@ -1,150 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Script for generating a list of candidates for cherry-picking to a stable branch
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Usage examples:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# $ bin/get-pick-list.sh
 | 
					 | 
				
			||||||
# $ bin/get-pick-list.sh > picklist
 | 
					 | 
				
			||||||
# $ bin/get-pick-list.sh | tee picklist
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# The output is as follows:
 | 
					 | 
				
			||||||
# [nomination_type] commit_sha commit summary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
is_stable_nomination()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
is_typod_nomination()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
fixes=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Helper to handle various mistypos of the fixes tag.
 | 
					 | 
				
			||||||
# The tag string itself is passed as argument and normalised within.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Resulting string in the global variable "fixes" and contains entries
 | 
					 | 
				
			||||||
# in the form "fixes:$sha"
 | 
					 | 
				
			||||||
is_sha_nomination()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
 | 
					 | 
				
			||||||
		sed -e 's/'"$2"'/\nfixes:/Ig' | \
 | 
					 | 
				
			||||||
		grep -Eo 'fixes:[a-f0-9]{4,40}'`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
 | 
					 | 
				
			||||||
	if test $fixes_count -eq 0; then
 | 
					 | 
				
			||||||
		return 1
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Throw a warning for each invalid sha
 | 
					 | 
				
			||||||
	while test $fixes_count -gt 0; do
 | 
					 | 
				
			||||||
		# Treat only the current line
 | 
					 | 
				
			||||||
		id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
 | 
					 | 
				
			||||||
		fixes_count=$(($fixes_count-1))
 | 
					 | 
				
			||||||
		if ! git show $id >/dev/null 2>&1; then
 | 
					 | 
				
			||||||
			echo WARNING: Commit $1 lists invalid sha $id
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Checks if at least one of offending commits, listed in the global
 | 
					 | 
				
			||||||
# "fixes", is in branch.
 | 
					 | 
				
			||||||
sha_in_range()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
 | 
					 | 
				
			||||||
	while test $fixes_count -gt 0; do
 | 
					 | 
				
			||||||
		# Treat only the current line
 | 
					 | 
				
			||||||
		id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
 | 
					 | 
				
			||||||
		fixes_count=$(($fixes_count-1))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		# Be that cherry-picked ...
 | 
					 | 
				
			||||||
		# ... or landed before the branchpoint.
 | 
					 | 
				
			||||||
		if grep -q ^$id already_picked ||
 | 
					 | 
				
			||||||
		   grep -q ^$id already_landed ; then
 | 
					 | 
				
			||||||
			return 0
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	done
 | 
					 | 
				
			||||||
	return 1
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
is_fixes_nomination()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	is_sha_nomination "$1" "fixes:[[:space:]]*"
 | 
					 | 
				
			||||||
	if test $? -eq 0; then
 | 
					 | 
				
			||||||
		return 0
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	is_sha_nomination "$1" "fixes[[:space:]]\+"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
is_brokenby_nomination()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	is_sha_nomination "$1" "broken by"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
is_revert_nomination()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	is_sha_nomination "$1" "This reverts commit "
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Use the last branchpoint as our limit for the search
 | 
					 | 
				
			||||||
latest_branchpoint=`git merge-base upstream/master HEAD`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# List all the commits between day 1 and the branch point...
 | 
					 | 
				
			||||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# ... and the ones cherry-picked.
 | 
					 | 
				
			||||||
git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
 | 
					 | 
				
			||||||
	grep "cherry picked from commit" |\
 | 
					 | 
				
			||||||
	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grep for potential candidates
 | 
					 | 
				
			||||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..upstream/master |\
 | 
					 | 
				
			||||||
while read sha
 | 
					 | 
				
			||||||
do
 | 
					 | 
				
			||||||
	# Check to see whether the patch is on the ignore list.
 | 
					 | 
				
			||||||
	if test -f bin/.cherry-ignore; then
 | 
					 | 
				
			||||||
		if grep -q ^$sha bin/.cherry-ignore ; then
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# Check to see if it has already been picked over.
 | 
					 | 
				
			||||||
	if grep -q ^$sha already_picked ; then
 | 
					 | 
				
			||||||
		continue
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if is_fixes_nomination "$sha"; then
 | 
					 | 
				
			||||||
		tag=fixes
 | 
					 | 
				
			||||||
	elif is_brokenby_nomination "$sha"; then
 | 
					 | 
				
			||||||
		tag=brokenby
 | 
					 | 
				
			||||||
	elif is_revert_nomination "$sha"; then
 | 
					 | 
				
			||||||
		tag=revert
 | 
					 | 
				
			||||||
	elif is_stable_nomination "$sha"; then
 | 
					 | 
				
			||||||
		tag=stable
 | 
					 | 
				
			||||||
	elif is_typod_nomination "$sha"; then
 | 
					 | 
				
			||||||
		tag=typod
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		continue
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	case "$tag" in
 | 
					 | 
				
			||||||
	fixes | brokenby | revert )
 | 
					 | 
				
			||||||
		if ! sha_in_range; then
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		fi
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	* )
 | 
					 | 
				
			||||||
		;;
 | 
					 | 
				
			||||||
	esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	printf "[ %8s ] " "$tag"
 | 
					 | 
				
			||||||
	git --no-pager show --no-patch --pretty=oneline $sha
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rm -f already_picked
 | 
					 | 
				
			||||||
rm -f already_landed
 | 
					 | 
				
			||||||
@@ -1,50 +0,0 @@
 | 
				
			|||||||
"""
 | 
					 | 
				
			||||||
Generate the contents of the git_sha1.h file.
 | 
					 | 
				
			||||||
The output of this script goes to stdout.
 | 
					 | 
				
			||||||
"""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import argparse
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import os.path
 | 
					 | 
				
			||||||
import subprocess
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def get_git_sha1():
 | 
					 | 
				
			||||||
    """Try to get the git SHA1 with git rev-parse."""
 | 
					 | 
				
			||||||
    git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git')
 | 
					 | 
				
			||||||
    try:
 | 
					 | 
				
			||||||
        git_sha1 = subprocess.check_output([
 | 
					 | 
				
			||||||
            'git',
 | 
					 | 
				
			||||||
            '--git-dir=' + git_dir,
 | 
					 | 
				
			||||||
            'rev-parse',
 | 
					 | 
				
			||||||
            'HEAD',
 | 
					 | 
				
			||||||
        ], stderr=open(os.devnull, 'w')).decode("ascii")
 | 
					 | 
				
			||||||
    except:
 | 
					 | 
				
			||||||
        # don't print anything if it fails
 | 
					 | 
				
			||||||
        git_sha1 = ''
 | 
					 | 
				
			||||||
    return git_sha1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def write_if_different(contents):
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
    Avoid touching the output file if it doesn't need modifications
 | 
					 | 
				
			||||||
    Useful to avoid triggering rebuilds when nothing has changed.
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
    if os.path.isfile(args.output):
 | 
					 | 
				
			||||||
        with open(args.output, 'r') as file:
 | 
					 | 
				
			||||||
            if file.read() == contents:
 | 
					 | 
				
			||||||
                return
 | 
					 | 
				
			||||||
    with open(args.output, 'w') as file:
 | 
					 | 
				
			||||||
        file.write(contents)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
parser = argparse.ArgumentParser()
 | 
					 | 
				
			||||||
parser.add_argument('--output', help='File to write the #define in',
 | 
					 | 
				
			||||||
                    required=True)
 | 
					 | 
				
			||||||
args = parser.parse_args()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
git_sha1 = os.environ.get('MESA_GIT_SHA1_OVERRIDE', get_git_sha1())[:10]
 | 
					 | 
				
			||||||
if git_sha1:
 | 
					 | 
				
			||||||
    write_if_different('#define MESA_GIT_SHA1 " (git-' + git_sha1 + ')"')
 | 
					 | 
				
			||||||
else:
 | 
					 | 
				
			||||||
    write_if_different('#define MESA_GIT_SHA1 ""')
 | 
					 | 
				
			||||||
							
								
								
									
										1
									
								
								bin/install-sh
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								bin/install-sh
									
									
									
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					minstall
 | 
				
			||||||
@@ -1,83 +0,0 @@
 | 
				
			|||||||
# encoding=utf-8
 | 
					 | 
				
			||||||
# Copyright © 2017-2018 Intel Corporation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"""Script to install megadriver symlinks for meson."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from __future__ import print_function
 | 
					 | 
				
			||||||
import argparse
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main():
 | 
					 | 
				
			||||||
    parser = argparse.ArgumentParser()
 | 
					 | 
				
			||||||
    parser.add_argument('megadriver')
 | 
					 | 
				
			||||||
    parser.add_argument('libdir')
 | 
					 | 
				
			||||||
    parser.add_argument('drivers', nargs='+')
 | 
					 | 
				
			||||||
    args = parser.parse_args()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if os.path.isabs(args.libdir):
 | 
					 | 
				
			||||||
        destdir = os.environ.get('DESTDIR')
 | 
					 | 
				
			||||||
        if destdir:
 | 
					 | 
				
			||||||
            to = os.path.join(destdir, args.libdir[1:])
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            to = args.libdir
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    master = os.path.join(to, os.path.basename(args.megadriver))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if not os.path.exists(to):
 | 
					 | 
				
			||||||
        if os.path.lexists(to):
 | 
					 | 
				
			||||||
            os.unlink(to)
 | 
					 | 
				
			||||||
        os.makedirs(to)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for driver in args.drivers:
 | 
					 | 
				
			||||||
        abs_driver = os.path.join(to, driver)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if os.path.lexists(abs_driver):
 | 
					 | 
				
			||||||
            os.unlink(abs_driver)
 | 
					 | 
				
			||||||
        print('installing {} to {}'.format(args.megadriver, abs_driver))
 | 
					 | 
				
			||||||
        os.link(master, abs_driver)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try:
 | 
					 | 
				
			||||||
            ret = os.getcwd()
 | 
					 | 
				
			||||||
            os.chdir(to)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            name, ext = os.path.splitext(driver)
 | 
					 | 
				
			||||||
            while ext != '.so':
 | 
					 | 
				
			||||||
                if os.path.lexists(name):
 | 
					 | 
				
			||||||
                    os.unlink(name)
 | 
					 | 
				
			||||||
                os.symlink(driver, name)
 | 
					 | 
				
			||||||
                name, ext = os.path.splitext(name)
 | 
					 | 
				
			||||||
        finally:
 | 
					 | 
				
			||||||
            os.chdir(ret)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Remove meson-created master .so and symlinks
 | 
					 | 
				
			||||||
    os.unlink(master)
 | 
					 | 
				
			||||||
    name, ext = os.path.splitext(master)
 | 
					 | 
				
			||||||
    while ext != '.so':
 | 
					 | 
				
			||||||
        if os.path.lexists(name):
 | 
					 | 
				
			||||||
            os.unlink(name)
 | 
					 | 
				
			||||||
        name, ext = os.path.splitext(name)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					 | 
				
			||||||
    main()
 | 
					 | 
				
			||||||
							
								
								
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,74 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Simple shell script for installing Mesa's header and library files.
 | 
				
			||||||
 | 
					# If the copy commands below don't work on a particular system (i.e. the
 | 
				
			||||||
 | 
					# -f or -d flags), we may need to branch on `uname` to do the right thing.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TOP=.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INCLUDE_DIR="/usr/local/include"
 | 
				
			||||||
 | 
					LIB_DIR="/usr/local/lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "x$#" = "x0" ] ; then
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "***** Mesa installation - You may need root privileges to do this *****"
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "Default directory for header files is:" ${INCLUDE_DIR}
 | 
				
			||||||
 | 
					echo "Enter new directory or press <Enter> to accept this default."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read INPUT
 | 
				
			||||||
 | 
					if [ "x${INPUT}" != "x" ] ; then
 | 
				
			||||||
 | 
						INCLUDE_DIR=${INPUT}
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "Default directory for library files is:" ${LIB_DIR}
 | 
				
			||||||
 | 
					echo "Enter new directory or press <Enter> to accept this default."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read INPUT
 | 
				
			||||||
 | 
					if [ "x${INPUT}" != "x" ] ; then
 | 
				
			||||||
 | 
						LIB_DIR=${INPUT}
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "About to install Mesa header files (GL/*.h) in: " ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					echo "and Mesa library files (libGL.*, etc) in: " ${LIB_DIR}
 | 
				
			||||||
 | 
					echo "Press <Enter> to continue, or <ctrl>-C to abort."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read INPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					INCLUDE_DIR=$1/include
 | 
				
			||||||
 | 
					LIB_DIR=$1/lib
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# flags:
 | 
				
			||||||
 | 
					#  -f = force
 | 
				
			||||||
 | 
					#  -d = preserve symlinks (does not work on BSD)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ `uname` = "FreeBSD" ] ; then
 | 
				
			||||||
 | 
						CP_FLAGS="-f"
 | 
				
			||||||
 | 
					elif [ `uname` = "Darwin" ] ; then
 | 
				
			||||||
 | 
						CP_FLAGS="-f"
 | 
				
			||||||
 | 
					elif [ `uname` = "AIX" ] ; then
 | 
				
			||||||
 | 
						CP_FLAGS="-fh"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						CP_FLAGS="-fd"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -v
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p ${INCLUDE_DIR}
 | 
				
			||||||
 | 
					mkdir -p ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					# NOT YET: mkdir -p ${INCLUDE_DIR}/GLES
 | 
				
			||||||
 | 
					mkdir -p ${LIB_DIR}
 | 
				
			||||||
 | 
					cp -f ${TOP}/include/GL/*.h ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					cp -f ${TOP}/src/glw/*.h ${INCLUDE_DIR}/GL
 | 
				
			||||||
 | 
					# NOT YET: cp -f ${TOP}/include/GLES/*.h ${INCLUDE_DIR}/GLES
 | 
				
			||||||
 | 
					cp ${CP_FLAGS} ${TOP}/lib*/lib* ${LIB_DIR}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Done."
 | 
				
			||||||
@@ -1,88 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python3
 | 
					 | 
				
			||||||
# Copyright © 2019 Intel Corporation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"""This script reads a meson build directory and gives back the command line it
 | 
					 | 
				
			||||||
was configured with.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This only works for meson 0.49.0 and newer.
 | 
					 | 
				
			||||||
"""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import argparse
 | 
					 | 
				
			||||||
import ast
 | 
					 | 
				
			||||||
import configparser
 | 
					 | 
				
			||||||
import pathlib
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def parse_args() -> argparse.Namespace:
 | 
					 | 
				
			||||||
    """Parse arguments."""
 | 
					 | 
				
			||||||
    parser = argparse.ArgumentParser()
 | 
					 | 
				
			||||||
    parser.add_argument(
 | 
					 | 
				
			||||||
        'build_dir',
 | 
					 | 
				
			||||||
        help='Path the meson build directory')
 | 
					 | 
				
			||||||
    args = parser.parse_args()
 | 
					 | 
				
			||||||
    return args
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def load_config(path: pathlib.Path) -> configparser.ConfigParser:
 | 
					 | 
				
			||||||
    """Load config file."""
 | 
					 | 
				
			||||||
    conf = configparser.ConfigParser()
 | 
					 | 
				
			||||||
    with path.open() as f:
 | 
					 | 
				
			||||||
        conf.read_file(f)
 | 
					 | 
				
			||||||
    return conf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def build_cmd(conf: configparser.ConfigParser) -> str:
 | 
					 | 
				
			||||||
    """Rebuild the command line."""
 | 
					 | 
				
			||||||
    args = []
 | 
					 | 
				
			||||||
    for k, v in conf['options'].items():
 | 
					 | 
				
			||||||
        if ' ' in v:
 | 
					 | 
				
			||||||
            args.append(f'-D{k}="{v}"')
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            args.append(f'-D{k}={v}')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cf = conf['properties'].get('cross_file')
 | 
					 | 
				
			||||||
    if cf:
 | 
					 | 
				
			||||||
        args.append('--cross-file={}'.format(cf))
 | 
					 | 
				
			||||||
    nf = conf['properties'].get('native_file')
 | 
					 | 
				
			||||||
    if nf:
 | 
					 | 
				
			||||||
        # this will be in the form "['str', 'str']", so use ast.literal_eval to
 | 
					 | 
				
			||||||
        # convert it to a list of strings.
 | 
					 | 
				
			||||||
        nf = ast.literal_eval(nf)
 | 
					 | 
				
			||||||
        args.extend(['--native-file={}'.format(f) for f in nf])
 | 
					 | 
				
			||||||
    return ' '.join(args)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main():
 | 
					 | 
				
			||||||
    args = parse_args()
 | 
					 | 
				
			||||||
    path = pathlib.Path(args.build_dir, 'meson-private', 'cmd_line.txt')
 | 
					 | 
				
			||||||
    if not path.exists():
 | 
					 | 
				
			||||||
        print('Cannot find the necessary file to rebuild command line. '
 | 
					 | 
				
			||||||
              'Is your meson version >= 0.49.0?', file=sys.stderr)
 | 
					 | 
				
			||||||
        sys.exit(1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    conf = load_config(path)
 | 
					 | 
				
			||||||
    cmd = build_cmd(conf)
 | 
					 | 
				
			||||||
    print(cmd)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					 | 
				
			||||||
    main()
 | 
					 | 
				
			||||||
@@ -1,63 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from os import get_terminal_size
 | 
					 | 
				
			||||||
from textwrap import wrap
 | 
					 | 
				
			||||||
from mesonbuild import coredata
 | 
					 | 
				
			||||||
from mesonbuild import optinterpreter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(COLUMNS, _) = get_terminal_size()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def describe_option(option_name: str, option_default_value: str,
 | 
					 | 
				
			||||||
                    option_type: str, option_message: str) -> None:
 | 
					 | 
				
			||||||
    print('name:    ' + option_name)
 | 
					 | 
				
			||||||
    print('default: ' + option_default_value)
 | 
					 | 
				
			||||||
    print('type:    ' + option_type)
 | 
					 | 
				
			||||||
    for line in wrap(option_message, width=COLUMNS - 9):
 | 
					 | 
				
			||||||
        print('         ' + line)
 | 
					 | 
				
			||||||
    print('---')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
oi = optinterpreter.OptionInterpreter('')
 | 
					 | 
				
			||||||
oi.process('meson_options.txt')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
for (name, value) in oi.options.items():
 | 
					 | 
				
			||||||
    if isinstance(value, coredata.UserStringOption):
 | 
					 | 
				
			||||||
        describe_option(name,
 | 
					 | 
				
			||||||
                        value.value,
 | 
					 | 
				
			||||||
                        'string',
 | 
					 | 
				
			||||||
                        "You can type what you want, but make sure it makes sense")
 | 
					 | 
				
			||||||
    elif isinstance(value, coredata.UserBooleanOption):
 | 
					 | 
				
			||||||
        describe_option(name,
 | 
					 | 
				
			||||||
                        'true' if value.value else 'false',
 | 
					 | 
				
			||||||
                        'boolean',
 | 
					 | 
				
			||||||
                        "You can set it to 'true' or 'false'")
 | 
					 | 
				
			||||||
    elif isinstance(value, coredata.UserIntegerOption):
 | 
					 | 
				
			||||||
        describe_option(name,
 | 
					 | 
				
			||||||
                        str(value.value),
 | 
					 | 
				
			||||||
                        'integer',
 | 
					 | 
				
			||||||
                        "You can set it to any integer value between '{}' and '{}'".format(value.min_value, value.max_value))
 | 
					 | 
				
			||||||
    elif isinstance(value, coredata.UserUmaskOption):
 | 
					 | 
				
			||||||
        describe_option(name,
 | 
					 | 
				
			||||||
                        str(value.value),
 | 
					 | 
				
			||||||
                        'umask',
 | 
					 | 
				
			||||||
                        "You can set it to 'preserve' or a value between '0000' and '0777'")
 | 
					 | 
				
			||||||
    elif isinstance(value, coredata.UserComboOption):
 | 
					 | 
				
			||||||
        choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
 | 
					 | 
				
			||||||
        describe_option(name,
 | 
					 | 
				
			||||||
                        value.value,
 | 
					 | 
				
			||||||
                        'combo',
 | 
					 | 
				
			||||||
                        "You can set it to any one of those values: " + choices)
 | 
					 | 
				
			||||||
    elif isinstance(value, coredata.UserArrayOption):
 | 
					 | 
				
			||||||
        choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
 | 
					 | 
				
			||||||
        value = '[' + ', '.join(["'" + v + "'" for v in value.value]) + ']'
 | 
					 | 
				
			||||||
        describe_option(name,
 | 
					 | 
				
			||||||
                        value,
 | 
					 | 
				
			||||||
                        'array',
 | 
					 | 
				
			||||||
                        "You can set it to one or more of those values: " + choices)
 | 
					 | 
				
			||||||
    elif isinstance(value, coredata.UserFeatureOption):
 | 
					 | 
				
			||||||
        describe_option(name,
 | 
					 | 
				
			||||||
                        value.value,
 | 
					 | 
				
			||||||
                        'feature',
 | 
					 | 
				
			||||||
                        "You can set it to 'auto', 'enabled', or 'disabled'")
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        print(name + ' is an option of a type unknown to this script')
 | 
					 | 
				
			||||||
        print('---')
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
# Copyright © 2017 Eric Engestrom
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
git_sha1_gen_py = files('git_sha1_gen.py')
 | 
					 | 
				
			||||||
symbols_check = find_program('symbols-check.py')
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python
 | 
					 | 
				
			||||||
# encoding=utf-8
 | 
					 | 
				
			||||||
# Copyright © 2017 Intel Corporation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from __future__ import print_function
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main():
 | 
					 | 
				
			||||||
    filename = os.path.join(os.environ['MESON_SOURCE_ROOT'], 'VERSION')
 | 
					 | 
				
			||||||
    with open(filename) as f:
 | 
					 | 
				
			||||||
        version = f.read().strip()
 | 
					 | 
				
			||||||
    print(version, end='')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					 | 
				
			||||||
    main()
 | 
					 | 
				
			||||||
							
								
								
									
										93
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										93
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,93 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# A minimal replacement for 'install' that supports installing symbolic links.
 | 
				
			||||||
 | 
					# Only a limited number of options are supported:
 | 
				
			||||||
 | 
					# -d dir          Create a directory
 | 
				
			||||||
 | 
					# -m mode         Sets a file's mode when installing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If these commands aren't portable, we'll need some "if (arch)" type stuff
 | 
				
			||||||
 | 
					SYMLINK="ln -s"
 | 
				
			||||||
 | 
					MKDIR="mkdir -p"
 | 
				
			||||||
 | 
					RM="rm -f"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MODE=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$1" = "-d" ] ; then
 | 
				
			||||||
 | 
						# make a directory path
 | 
				
			||||||
 | 
						$MKDIR "$2"
 | 
				
			||||||
 | 
						exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$1" = "-m" ] ; then
 | 
				
			||||||
 | 
						# set file mode
 | 
				
			||||||
 | 
						MODE=$2
 | 
				
			||||||
 | 
						shift 2
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install file(s) into destination
 | 
				
			||||||
 | 
					if [ $# -ge 2 ] ; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Last cmd line arg is the dest dir
 | 
				
			||||||
 | 
						for FILE in $@ ; do
 | 
				
			||||||
 | 
							DEST="$FILE"
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Loop over args, moving them to DEST directory
 | 
				
			||||||
 | 
						I=1
 | 
				
			||||||
 | 
						for FILE in $@ ; do
 | 
				
			||||||
 | 
							if [ $I = $# ] ; then
 | 
				
			||||||
 | 
								# stop, don't want to install $DEST into $DEST
 | 
				
			||||||
 | 
								exit 0
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							PWDSAVE=`pwd`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							# determine file's type
 | 
				
			||||||
 | 
							if [ -h "$FILE" ] ; then
 | 
				
			||||||
 | 
								#echo $FILE is a symlink
 | 
				
			||||||
 | 
								# Unfortunately, cp -d isn't universal so we have to
 | 
				
			||||||
 | 
								# use a work-around.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								# Use ls -l to find the target that the link points to
 | 
				
			||||||
 | 
								LL=`ls -l "$FILE"`
 | 
				
			||||||
 | 
								for L in $LL ; do
 | 
				
			||||||
 | 
									TARGET=$L
 | 
				
			||||||
 | 
								done
 | 
				
			||||||
 | 
								#echo $FILE is a symlink pointing to $TARGET
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								FILE=`basename "$FILE"`
 | 
				
			||||||
 | 
								# Go to $DEST and make the link
 | 
				
			||||||
 | 
								cd "$DEST"        # pushd
 | 
				
			||||||
 | 
									$RM "$FILE"
 | 
				
			||||||
 | 
									$SYMLINK "$TARGET" "$FILE"
 | 
				
			||||||
 | 
								cd "$PWDSAVE"     # popd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							elif [ -f "$FILE" ] ; then
 | 
				
			||||||
 | 
								#echo "$FILE" is a regular file
 | 
				
			||||||
 | 
								# Only copy if the files differ
 | 
				
			||||||
 | 
								if ! cmp -s $FILE $DEST/`basename $FILE`; then
 | 
				
			||||||
 | 
									$RM "$DEST/`basename $FILE`"
 | 
				
			||||||
 | 
									cp "$FILE" "$DEST"
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
								if [ $MODE ] ; then
 | 
				
			||||||
 | 
									FILE=`basename "$FILE"`
 | 
				
			||||||
 | 
									chmod $MODE "$DEST/$FILE"
 | 
				
			||||||
 | 
								fi
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								echo "Unknown type of argument: " "$FILE"
 | 
				
			||||||
 | 
								exit 1
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							I=`expr $I + 1`
 | 
				
			||||||
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If we get here, we didn't find anything to do
 | 
				
			||||||
 | 
					echo "Usage:"
 | 
				
			||||||
 | 
					echo "  install -d dir                      Create named directory"
 | 
				
			||||||
 | 
					echo "  install [-m mode] file [...] dest   Install files in destination"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										975
									
								
								bin/mklib
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										975
									
								
								bin/mklib
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,975 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make a shared library.
 | 
				
			||||||
 | 
					# This script should be useful for projects other than Mesa.
 | 
				
			||||||
 | 
					# Improvements/fixes are welcome.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copyright (C) 1999-2006  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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Option defaults
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					LIBNAME=""
 | 
				
			||||||
 | 
					MAJOR=1
 | 
				
			||||||
 | 
					MINOR=0
 | 
				
			||||||
 | 
					PATCH=""
 | 
				
			||||||
 | 
					DEPS=""
 | 
				
			||||||
 | 
					LINK=""
 | 
				
			||||||
 | 
					LDFLAGS=""
 | 
				
			||||||
 | 
					CPLUSPLUS=0
 | 
				
			||||||
 | 
					STATIC=0
 | 
				
			||||||
 | 
					DLOPEN=0
 | 
				
			||||||
 | 
					INSTALLDIR="."
 | 
				
			||||||
 | 
					ARCH="auto"
 | 
				
			||||||
 | 
					ARCHOPT=""
 | 
				
			||||||
 | 
					NOPREFIX=0
 | 
				
			||||||
 | 
					EXPORTS=""
 | 
				
			||||||
 | 
					ID=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Parse arguments
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					while true
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
					    case $1 in
 | 
				
			||||||
 | 
						'-h' | '--help')
 | 
				
			||||||
 | 
						    echo 'Usage: mklib [options] objects'
 | 
				
			||||||
 | 
						    echo 'Create a shared library from object files.'
 | 
				
			||||||
 | 
						    echo '  -o LIBRARY    specifies the name of the resulting library, without'
 | 
				
			||||||
 | 
						    echo '                the leading "lib" or any suffix.'
 | 
				
			||||||
 | 
						    echo '                (eg: "-o GL" might result in "libGL.so" being made)'
 | 
				
			||||||
 | 
						    echo '  -major N      specifies major version number (default is 1)'
 | 
				
			||||||
 | 
						    echo '  -minor N      specifies minor version number (default is 0)'
 | 
				
			||||||
 | 
						    echo '  -patch N      specifies patch version number (default is 0)'
 | 
				
			||||||
 | 
						    echo '  -lLIBRARY     specifies a dependency on LIBRARY'
 | 
				
			||||||
 | 
						    echo '  -LDIR         search in DIR for library dependencies at build time'
 | 
				
			||||||
 | 
						    echo '  -RDIR         search in DIR for library dependencies at run time'
 | 
				
			||||||
 | 
						    echo '  -linker L     explicity specify the linker program to use (eg: gcc, g++)'
 | 
				
			||||||
 | 
						    echo '                Not observed on all systems at this time.'
 | 
				
			||||||
 | 
						    echo '  -ldflags OPT  specify any additional linker flags in OPT'
 | 
				
			||||||
 | 
						    echo '  -cplusplus    link with C++ runtime'
 | 
				
			||||||
 | 
						    echo '  -static       make a static library (default is dynamic/shared)'
 | 
				
			||||||
 | 
						    echo '  -dlopen       make a shared library suitable for dynamic loading'
 | 
				
			||||||
 | 
						    echo '  -install DIR  put resulting library file(s) in DIR'
 | 
				
			||||||
 | 
						    echo '  -arch ARCH    override using `uname` to determine host system'
 | 
				
			||||||
 | 
						    echo '  -archopt OPT  specify an extra achitecture-specific option OPT'
 | 
				
			||||||
 | 
						    echo '  -altopts OPTS alternate options to override all others'
 | 
				
			||||||
 | 
						    echo "  -noprefix     don't prefix library name with 'lib' nor add any suffix"
 | 
				
			||||||
 | 
						    echo '  -exports FILE only export the symbols listed in FILE'
 | 
				
			||||||
 | 
						    echo '  -id NAME      Sets the id of the dylib (Darwin)'
 | 
				
			||||||
 | 
						    echo '  -h, --help    display this information and exit'
 | 
				
			||||||
 | 
						    exit 1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-o')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    LIBNAME=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-major')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    MAJOR=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-minor')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    MINOR=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-patch')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    PATCH=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-linker')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    LINK=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-ldflags')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    LDFLAGS=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						-l*)
 | 
				
			||||||
 | 
						    DEPS="$DEPS $1"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						-L*)
 | 
				
			||||||
 | 
						    DEPS="$DEPS $1"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						-R*)
 | 
				
			||||||
 | 
						    DEPS="$DEPS $1"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						-Wl*)
 | 
				
			||||||
 | 
					            DEPS="$DEPS $1"
 | 
				
			||||||
 | 
					            ;;
 | 
				
			||||||
 | 
						-pthread)
 | 
				
			||||||
 | 
						    # this is a special case (see bugzilla 10876)
 | 
				
			||||||
 | 
						    DEPS="$DEPS $1"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-pthread')
 | 
				
			||||||
 | 
						    DEPS="$DEPS -pthread"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-cplusplus')
 | 
				
			||||||
 | 
						    CPLUSPLUS=1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-static')
 | 
				
			||||||
 | 
						    STATIC=1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-dlopen')
 | 
				
			||||||
 | 
						    DLOPEN=1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-install')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    INSTALLDIR=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-arch')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    ARCH=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-archopt')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    ARCHOPT=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-altopts')
 | 
				
			||||||
 | 
					            shift 1;
 | 
				
			||||||
 | 
					            ALTOPTS=$1
 | 
				
			||||||
 | 
					            ;;
 | 
				
			||||||
 | 
						'-noprefix')
 | 
				
			||||||
 | 
						    NOPREFIX=1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-exports')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    EXPORTS=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						'-id')
 | 
				
			||||||
 | 
						    shift 1;
 | 
				
			||||||
 | 
						    ID=$1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						-*)
 | 
				
			||||||
 | 
						    echo "mklib: Unknown option: " $1 ;
 | 
				
			||||||
 | 
						    exit 1
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						*)
 | 
				
			||||||
 | 
						    # This should be the first object file, stop parsing
 | 
				
			||||||
 | 
						    break
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					    shift 1
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					OBJECTS=$@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ${ARCH} = "auto" ] ; then
 | 
				
			||||||
 | 
					    ARCH=`uname`
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ $STATIC = 1 ]; then
 | 
				
			||||||
 | 
					    # filter out linker options inside object list
 | 
				
			||||||
 | 
					    NEWOBJECTS=""
 | 
				
			||||||
 | 
					    for OBJ in $OBJECTS ; do
 | 
				
			||||||
 | 
						case $OBJ in
 | 
				
			||||||
 | 
						    -Wl,*)
 | 
				
			||||||
 | 
							echo "mklib: warning: ignoring $OBJ for static library"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						    *)
 | 
				
			||||||
 | 
							NEWOBJECTS="$NEWOBJECTS $OBJ"
 | 
				
			||||||
 | 
							;;
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    OBJECTS=$NEWOBJECTS
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Error checking
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					if [ "x${LIBNAME}" = "x" ] ; then
 | 
				
			||||||
 | 
					    echo "mklib: Error: no library name specified"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					if [ "x${OBJECTS}" = "x" ] ; then
 | 
				
			||||||
 | 
					    echo "mklib: Error: no object files specified"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Debugging info
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					if [  ]  ; then
 | 
				
			||||||
 | 
					    echo "-----------------"
 | 
				
			||||||
 | 
					    echo ARCH is $ARCH
 | 
				
			||||||
 | 
					    echo LIBNAME is $LIBNAME
 | 
				
			||||||
 | 
					    echo MAJOR is $MAJOR
 | 
				
			||||||
 | 
					    echo MINOR is $MINOR
 | 
				
			||||||
 | 
					    echo PATCH is $PATCH
 | 
				
			||||||
 | 
					    echo DEPS are $DEPS
 | 
				
			||||||
 | 
					    echo "EXPORTS in" $EXPORTS
 | 
				
			||||||
 | 
					    echo ID is $ID
 | 
				
			||||||
 | 
					    echo "-----------------"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# OK, make the library now
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					case $ARCH in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/*)
 | 
				
			||||||
 | 
						# we assume gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						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" $ARCH "shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    case $ARCH in 'Linux' | 'GNU' | GNU/*)
 | 
				
			||||||
 | 
							OPTS="-Xlinker -Bsymbolic -shared"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						    *)
 | 
				
			||||||
 | 
							OPTS="-shared"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						    esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # Check if objects are 32-bit and we're running in 64-bit
 | 
				
			||||||
 | 
						    # environment.  If so, pass -m32 flag to linker.
 | 
				
			||||||
 | 
						    set ${OBJECTS}
 | 
				
			||||||
 | 
						    ABI32=`file $1 | grep 32-bit`
 | 
				
			||||||
 | 
						    if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then
 | 
				
			||||||
 | 
							OPTS="-m32 ${OPTS}"
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
 | 
					        elif [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
					            LIBNAME="lib${LIBNAME}.a"     # prefix with "lib", suffix with ".a"
 | 
				
			||||||
 | 
					            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
 | 
					            OPTS="-ru"
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # expand any .a objects into constituent .o files.
 | 
				
			||||||
 | 
						    NEWOBJECTS=""
 | 
				
			||||||
 | 
						    DELETIA=""
 | 
				
			||||||
 | 
						    for OBJ in $OBJECTS ; do
 | 
				
			||||||
 | 
							case $OBJ in
 | 
				
			||||||
 | 
							    *.a)
 | 
				
			||||||
 | 
								# extract the .o files from this .a archive
 | 
				
			||||||
 | 
								FILES=`ar t $OBJ`
 | 
				
			||||||
 | 
								ar x $OBJ
 | 
				
			||||||
 | 
								NEWOBJECTS="$NEWOBJECTS $FILES"
 | 
				
			||||||
 | 
								# keep track of temporary .o files and delete them below
 | 
				
			||||||
 | 
								DELETIA="$DELETIA $FILES"
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							    *)
 | 
				
			||||||
 | 
								# ordinary .o file
 | 
				
			||||||
 | 
								NEWOBJECTS="$NEWOBJECTS $OBJ"
 | 
				
			||||||
 | 
								;;
 | 
				
			||||||
 | 
							esac
 | 
				
			||||||
 | 
						    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LIBNAME} ${NEWOBJECTS}
 | 
				
			||||||
 | 
					            ranlib ${LIBNAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # remove temporary extracted .o files
 | 
				
			||||||
 | 
						    rm -f ${DELETIA}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
				
			||||||
 | 
						    case $ARCH in 'Linux' | 'GNU' | GNU/*)
 | 
				
			||||||
 | 
							OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						    *)
 | 
				
			||||||
 | 
							OPTS="-shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
 | 
				
			||||||
 | 
						    ;;
 | 
				
			||||||
 | 
						    esac
 | 
				
			||||||
 | 
						    if [ $EXPORTS ] ; then
 | 
				
			||||||
 | 
							#OPTS="${OPTS} -Xlinker --retain-symbols-file ${EXPORTS}"
 | 
				
			||||||
 | 
							# Make the 'exptmp' file for --version-script option
 | 
				
			||||||
 | 
							echo "{" > exptmp
 | 
				
			||||||
 | 
							echo "global:" >> exptmp
 | 
				
			||||||
 | 
							sed 's/$/;/' ${EXPORTS} >> exptmp
 | 
				
			||||||
 | 
							echo "local:" >> exptmp
 | 
				
			||||||
 | 
							echo "*;" >> exptmp
 | 
				
			||||||
 | 
							echo "};" >> exptmp
 | 
				
			||||||
 | 
							OPTS="${OPTS} -Xlinker --version-script=exptmp"
 | 
				
			||||||
 | 
							# exptmp is removed below
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # Check if objects are 32-bit and we're running in 64-bit
 | 
				
			||||||
 | 
						    # environment.  If so, pass -m32 flag to linker.
 | 
				
			||||||
 | 
						    set ${OBJECTS}
 | 
				
			||||||
 | 
						    ABI32=`file $1 | grep 32-bit`
 | 
				
			||||||
 | 
						    if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then
 | 
				
			||||||
 | 
							OPTS="-m32 ${OPTS}"
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    if [ x${PATCH} = "x" ] ; then
 | 
				
			||||||
 | 
							VERSION="${MAJOR}.${MINOR}"
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							VERSION="${MAJOR}.${MINOR}.${PATCH}"
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}.so.${VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # rm any old libs
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.so.${VERSION}
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.so.${MAJOR}
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.so
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
					            # make usual symlinks
 | 
				
			||||||
 | 
					            ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR}
 | 
				
			||||||
 | 
					            ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so"
 | 
				
			||||||
 | 
					#	    rm -f exptmp
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'SunOS')
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making SunOS static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    if [ $NOPREFIX = 0 ] ; then
 | 
				
			||||||
 | 
							LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
						    echo "mklib: Making SunOS shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    if [ "x$LINK" = "x" ] ; then
 | 
				
			||||||
 | 
							# -linker was not specified, choose default linker now
 | 
				
			||||||
 | 
							if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
							    # determine linker and options for C++ code
 | 
				
			||||||
 | 
							    if [ `which c++` ] ; then
 | 
				
			||||||
 | 
								# use Sun c++
 | 
				
			||||||
 | 
								LINK="c++"
 | 
				
			||||||
 | 
							    elif [ `type g++` ] ; then
 | 
				
			||||||
 | 
								# use g++
 | 
				
			||||||
 | 
								LINK="g++"
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								echo "mklib: warning: can't find C++ compiler, trying CC."
 | 
				
			||||||
 | 
								LINK="CC"
 | 
				
			||||||
 | 
							    fi
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    # use native Sun linker for C code
 | 
				
			||||||
 | 
							    LINK="ld"
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # linker options
 | 
				
			||||||
 | 
						    if [ ${LINK} = "ld" -o ${LINK} = "cc" -o ${LINK} = "CC" ] ; then
 | 
				
			||||||
 | 
							# SunOS tools, -G to make shared libs
 | 
				
			||||||
 | 
							OPTS="-G"
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							# gcc linker
 | 
				
			||||||
 | 
							# Check if objects are 32-bit and we're running in 64-bit
 | 
				
			||||||
 | 
							# environment.  If so, pass -m32 flag to linker.
 | 
				
			||||||
 | 
							set ${OBJECTS}
 | 
				
			||||||
 | 
							ABI32=`file $1 | grep 32-bit`
 | 
				
			||||||
 | 
							if [ "${ABI32}" ] ; then
 | 
				
			||||||
 | 
							    OPTS="-m32 -shared -Wl,-Bdynamic"
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    OPTS="-m64 -shared -Wl,-Bdynamic"
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # If using Sun C++ compiler, need to tell it not to add runpaths
 | 
				
			||||||
 | 
						    # 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 SPARC v9
 | 
				
			||||||
 | 
						    # file says: ELF 64-bit MSB relocatable SPARCV9 Version 1
 | 
				
			||||||
 | 
						    set ${OBJECTS}
 | 
				
			||||||
 | 
						    if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then
 | 
				
			||||||
 | 
							SPARCV9=`file $1 | grep SPARCV9`
 | 
				
			||||||
 | 
							if [ "${SPARCV9}" ] ; then
 | 
				
			||||||
 | 
							    OPTS="${OPTS} -xarch=v9"
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # for debug:
 | 
				
			||||||
 | 
						    #echo "mklib: linker is" ${LINK} ${OPTS}
 | 
				
			||||||
 | 
						    if [ $NOPREFIX = 1 ] ; then
 | 
				
			||||||
 | 
							rm -f ${LIBNAME}
 | 
				
			||||||
 | 
							${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
							FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							rm -f ${LIBNAME}.${MAJOR} ${LIBNAME}
 | 
				
			||||||
 | 
							${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME}.${MAJOR} -h ${LIBNAME}.${MAJOR} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
							ln -s ${LIBNAME}.${MAJOR} ${LIBNAME}
 | 
				
			||||||
 | 
							FINAL_LIBS="${LIBNAME}.${MAJOR} ${LIBNAME}"
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'FreeBSD')
 | 
				
			||||||
 | 
						# we assume gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						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 FreeBSD shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    OPTS="-shared"
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
					        elif [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    STLIB="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making FreeBSD static library: " ${STLIB}
 | 
				
			||||||
 | 
						    rm -f ${STLIB}
 | 
				
			||||||
 | 
						    ar cq ${STLIB} ${OBJECTS}
 | 
				
			||||||
 | 
						    ranlib ${STLIB}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${STLIB}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    SHLIB="lib${LIBNAME}.so.${MAJOR}"
 | 
				
			||||||
 | 
						    OPTS="-shared -Wl,-soname,${SHLIB}"
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
						    echo "mklib: Making FreeBSD shared library: " ${SHLIB}
 | 
				
			||||||
 | 
						    rm -f ${SHLIB}
 | 
				
			||||||
 | 
						    ${LINK} ${OPTS} ${LDFLAGS} -o ${SHLIB} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
						    ln -sf ${SHLIB} "lib${LIBNAME}.so"
 | 
				
			||||||
 | 
						    FINAL_LIBS="${SHLIB} lib${LIBNAME}.so"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'NetBSD')
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}_pic.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making NetBSD PIC static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar cq ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    ranlib ${LIBNAME}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
 | 
				
			||||||
 | 
						    echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ld -x -Bshareable -Bforcearchive -o ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'IRIX' | 'IRIX64')
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar rc ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # examine first object to determine ABI
 | 
				
			||||||
 | 
					    	    set ${OBJECTS}
 | 
				
			||||||
 | 
						    ABI_O32=`file $1 | grep 'ELF 32-bit'`
 | 
				
			||||||
 | 
						    ABI_N32=`file $1 | grep 'ELF N32'`
 | 
				
			||||||
 | 
						    ABI_N64=`file $1 | grep 'ELF 64-bit'`
 | 
				
			||||||
 | 
						    if [ "${ABI_O32}" ] ; then
 | 
				
			||||||
 | 
							OPTS="-32 -shared -all"
 | 
				
			||||||
 | 
							ABI="o32-bit"
 | 
				
			||||||
 | 
						    elif [ "${ABI_N32}" ] ; then
 | 
				
			||||||
 | 
							OPTS="-n32 -shared -all"
 | 
				
			||||||
 | 
							ABI="n32-bit"
 | 
				
			||||||
 | 
						    elif [ "${ABI_N64}" ] ; then
 | 
				
			||||||
 | 
							OPTS="-64 -shared -all"
 | 
				
			||||||
 | 
							ABI="64-bit"
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							echo "Error: Unexpected IRIX ABI!"
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
							LINK="CC"
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							LINK="ld"
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    echo "mklib: Making IRIX " ${ABI} " shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'linux-cygwin')
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						echo "mklib: Making linux-cygwin library: " ${LIBNAME}
 | 
				
			||||||
 | 
						rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						gnuwin32ar ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'HP-UX')
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making HP-UX static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
					            # HP uses a .2 for their current GL/GLU libraries
 | 
				
			||||||
 | 
						    if [ ${LIBNAME} = "GL" -o ${LIBNAME} = "GLU" ] ; then
 | 
				
			||||||
 | 
						       MAJOR=2
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
						    RUNLIB="lib${LIBNAME}.${MAJOR}"
 | 
				
			||||||
 | 
						    DEVLIB="lib${LIBNAME}.sl"
 | 
				
			||||||
 | 
						    echo "mklib: Making HP-UX shared library: " ${RUNLIB} ${DEVLIB}
 | 
				
			||||||
 | 
						    ld -b -o ${RUNLIB} +b ${RUNLIB} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
						    ln -s ${RUNLIB} ${DEVLIB}
 | 
				
			||||||
 | 
						    FINAL_LIBS="${RUNLIB} ${DEVLIB}"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'AIX' )
 | 
				
			||||||
 | 
						# examine first object to determine ABI
 | 
				
			||||||
 | 
					    	set ${OBJECTS}
 | 
				
			||||||
 | 
						ABI_64=`file $1 | grep '64-bit'`
 | 
				
			||||||
 | 
						if [ "${ABI_64}" ] ; then
 | 
				
			||||||
 | 
						    X64="-X64"
 | 
				
			||||||
 | 
						    Q64="-q64"
 | 
				
			||||||
 | 
						    OFILE=shr_64.o
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    OFILE=shr.o  #Want to be consistent with the IBM libGL.a
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making AIX static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${X64} ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    EXPFILE="lib${LIBNAME}.exp"
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"  # shared objects are still stored in the .a libraries
 | 
				
			||||||
 | 
						    OPTS="-bE:${EXPFILE} -bM:SRE -bnoentry ${Q64}"
 | 
				
			||||||
 | 
						    rm -f ${EXPFILE} ${OFILE}
 | 
				
			||||||
 | 
						    NM="/bin/nm -eC ${X64}"
 | 
				
			||||||
 | 
						    echo "#! /usr/lib/${LIBNAME}" > ${EXPFILE}
 | 
				
			||||||
 | 
						    ${NM} ${OBJECTS} | awk '{
 | 
				
			||||||
 | 
						    if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \
 | 
				
			||||||
 | 
						    && ( substr($1,1,1) != ".")) {
 | 
				
			||||||
 | 
							    if (substr ($1, 1, 7) != "__sinit" &&
 | 
				
			||||||
 | 
								    substr ($1, 1, 7) != "__sterm") {
 | 
				
			||||||
 | 
								    if (substr ($1, 1, 5) == "__tf1")
 | 
				
			||||||
 | 
									print (substr ($1, 7))
 | 
				
			||||||
 | 
								    else if (substr ($1, 1, 5) == "__tf9")
 | 
				
			||||||
 | 
									print (substr ($1, 15))
 | 
				
			||||||
 | 
								    else
 | 
				
			||||||
 | 
									print $1
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						    }' | sort -u >> ${EXPFILE}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # On AIX a shared library is linked differently when
 | 
				
			||||||
 | 
					            # you want to dlopen the file
 | 
				
			||||||
 | 
						    if [ $DLOPEN = "1" ] ; then
 | 
				
			||||||
 | 
							cc -G ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							cc ${OPTS} ${LDFLAGS} -o ${OFILE} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
							ar ${X64} -r ${LIBNAME} ${OFILE}
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'OpenSTEP')
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						echo "mklib: Making OpenSTEP static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						libtool -static -o ${LIBNAME} - ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'OSF1')
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making OSF/1 static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar -ruv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    VERSION="${MAJOR}.${MINOR}"
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
 | 
						    echo "mklib: Making OSF/1 shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    if [ "x$LINK" = "x" ] ; then
 | 
				
			||||||
 | 
							if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
							    LINK=cxx
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    LINK=cc
 | 
				
			||||||
 | 
							fi
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}.${VERSION}
 | 
				
			||||||
 | 
						    ${LINK} -o ${LIBNAME}.${VERSION} -shared -set_version ${VERSION} -soname ${LIBNAME}.${VERSION} -expect_unresolved \* -all ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
						    ln -sf ${LIBNAME}.${VERSION} ${LIBNAME}
 | 
				
			||||||
 | 
						    FINAL_LIBS="${LIBNAME} ${LIBNAME}.${VERSION}"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'Darwin')
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
					            LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
					            echo "mklib: Making Darwin static library: " ${LIBNAME}
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
 | 
					            OPTS="-ruvs"
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
					            FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            # On Darwin a .bundle is used for a library that you want to dlopen
 | 
				
			||||||
 | 
					            if [ $DLOPEN = "1" ] ; then
 | 
				
			||||||
 | 
					                LIBSUFFIX="bundle"
 | 
				
			||||||
 | 
					                OPTS="${ARCHOPT} -bundle -multiply_defined suppress"
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                LIBSUFFIX="dylib"
 | 
				
			||||||
 | 
					                if [ -z "$ID" ] ; then
 | 
				
			||||||
 | 
					                    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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ ${EXPORTS} ] ; then
 | 
				
			||||||
 | 
					                if [ -f ${EXPORTS}".darwin" ] ; then
 | 
				
			||||||
 | 
					                    EXPORTS=$EXPORTS".darwin"
 | 
				
			||||||
 | 
					                fi
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -exported_symbols_list ${EXPORTS}"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            LINKNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
 | 
				
			||||||
 | 
					            LINKNAME2="lib${LIBNAME}.${LIBSUFFIX}"
 | 
				
			||||||
 | 
					            LIBNAME="lib${LIBNAME}.${MAJOR}.${MINOR}.${LIBSUFFIX}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # examine first object to determine ABI
 | 
				
			||||||
 | 
					    	    set ${OBJECTS}
 | 
				
			||||||
 | 
					            ABI_PPC=`file $1 | grep ' ppc'`
 | 
				
			||||||
 | 
					            ABI_I386=`file $1 | grep ' i386'`
 | 
				
			||||||
 | 
					            ABI_PPC64=`file $1 | grep ' ppc64'`
 | 
				
			||||||
 | 
					            ABI_X86_64=`file $1 | grep ' x86_64'`
 | 
				
			||||||
 | 
					            if [ "${ABI_PPC}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch ppc"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_I386}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch i386"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_PPC64}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch ppc64"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ABI_X86_64}" ] ; then
 | 
				
			||||||
 | 
					                OPTS="${OPTS} -arch x86_64"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # XXX can we always add -isysroot /Developer/SDKs/MacOSX10.4u.sdk
 | 
				
			||||||
 | 
						    # to OPTS here?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    # determine linker
 | 
				
			||||||
 | 
						    if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
							LINK="g++"
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							LINK="cc"
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            echo "mklib: Making Darwin shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
					            ln -s ${LIBNAME} ${LINKNAME}
 | 
				
			||||||
 | 
					            ln -s ${LIBNAME} ${LINKNAME2}
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME} ${LINKNAME} ${LINKNAME2}"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'LynxOS')
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						echo "mklib: Making LynxOS static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'BeOS')
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
					            LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
					            echo "mklib: Making BeOS static library: " ${LIBNAME}
 | 
				
			||||||
 | 
					            ar -cru "${LIBNAME}" ${OBJECTS}
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.so"
 | 
				
			||||||
 | 
						    echo "mklib: Making BeOS shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    gcc -nostart -Xlinker "-soname=${LIBNAME}" -L/Be/develop/lib/x86 -lbe ${DEPS} ${OBJECTS} -o "${LIBNAME}"
 | 
				
			||||||
 | 
						    mimeset -f "${LIBNAME}"
 | 
				
			||||||
 | 
						    # XXX remove the Mesa3D stuff here since mklib isn't mesa-specific.
 | 
				
			||||||
 | 
						    setversion "${LIBNAME}" -app ${MAJOR} ${MINOR} ${PATCH} -short "Powered by Mesa3D!" -long "Powered by Mesa3D!"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'QNX')
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						echo "mklib: Making QNX library: " ${LIBNAME}
 | 
				
			||||||
 | 
						wlib ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'MorphOS')
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						echo "mklib: Making MorphOS library: " ${LIBNAME}
 | 
				
			||||||
 | 
						ppc-morphos-ar rc ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'icc' | 'icc-istatic')
 | 
				
			||||||
 | 
						# Intel C compiler
 | 
				
			||||||
 | 
						# This should get merged into the Linux code, above, since this isn't
 | 
				
			||||||
 | 
						# really a different architecture.
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
					            echo "mklib: Making Intel ICC static library: " ${LIBNAME}.a
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
 | 
					            OPTS="-ruv"
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS}
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME}.a"
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            if [ $ARCH = icc-istatic ] ; then
 | 
				
			||||||
 | 
					                 OPTS="-shared -i-static -cxxlib-icc"
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                 OPTS="-shared"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            VERSION="${MAJOR}.${MINOR}.${PATCH}"
 | 
				
			||||||
 | 
					            echo "mklib: Making Intel ICC shared library: " ${LIBNAME}.so.${VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
					                LINK="icpc"
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                LINK="icc"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            # rm any old libs
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.so.${VERSION}
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.so.${MAJOR}
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.so
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
					            # make usual symlinks
 | 
				
			||||||
 | 
					            ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR}
 | 
				
			||||||
 | 
					            ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'aix-gcc')
 | 
				
			||||||
 | 
						# AIX with gcc
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making AIX GCC static library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
 | 
						    echo "mklib: Making AIX GCC shared library: " ${LIBNAME}
 | 
				
			||||||
 | 
						    # remove old lib
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    # make the lib
 | 
				
			||||||
 | 
						    gcc -shared -Wl,-G ${OBJECTS} ${DEPS} -o ${LIBNAME}
 | 
				
			||||||
 | 
						    # NOTE: the application linking with this library must specify
 | 
				
			||||||
 | 
						    # the -Wl,-brtl flags to gcc
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'ultrix')
 | 
				
			||||||
 | 
						# XXX untested
 | 
				
			||||||
 | 
					        if [ $STATIC = 0 ] ; then
 | 
				
			||||||
 | 
						    echo "mklib: Warning shared libs not supported on Ultrix"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						echo "mklib: Making static library for Ultrix: " ${LIBNAME}
 | 
				
			||||||
 | 
						rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						ar ru ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     CYGWIN*)
 | 
				
			||||||
 | 
						# GCC-based environment
 | 
				
			||||||
 | 
						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}
 | 
				
			||||||
 | 
						    FINAL_LIBS=${LIBNAME}
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
						CYGNAME="cyg${LIBNAME}"     # prefix with "cyg"
 | 
				
			||||||
 | 
						LIBNAME="lib${LIBNAME}"     # prefix with "lib"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
					            echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a
 | 
				
			||||||
 | 
					            LINK="ar"
 | 
				
			||||||
 | 
					            OPTS="-ru"
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS}
 | 
				
			||||||
 | 
						    ranlib ${LIBNAME}.a
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS=${LIBNAME}.a
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
						    OPTS="-shared -Wl,--enable-auto-image-base -Wl,-export-all -Wl,--out-implib=${LIBNAME}-${MAJOR}.dll.a"
 | 
				
			||||||
 | 
					            if [ "${ALTOPTS}" ] ; then
 | 
				
			||||||
 | 
					                OPTS=${ALTOPTS}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            echo "mklib: Making" $ARCH "shared library: " ${CYGNAME}-${MAJOR}.dll
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [ $CPLUSPLUS = 1 ] ; then
 | 
				
			||||||
 | 
					                LINK="g++"
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                LINK="gcc"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # rm any old libs
 | 
				
			||||||
 | 
					            rm -f ${CYGNAME}-${MAJOR}.dll
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}-${MAJOR}.dll.a
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.dll.a
 | 
				
			||||||
 | 
					            rm -f ${LIBNAME}.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            # make lib
 | 
				
			||||||
 | 
					            ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
					            # make usual symlinks
 | 
				
			||||||
 | 
					            ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
 | 
				
			||||||
 | 
					            # finish up
 | 
				
			||||||
 | 
					            FINAL_LIBS="${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a"
 | 
				
			||||||
 | 
						    # special case for installing in bin
 | 
				
			||||||
 | 
					            FINAL_BINS="${CYGNAME}-${MAJOR}.dll"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    'example')
 | 
				
			||||||
 | 
						# If you're adding support for a new architecture, you can
 | 
				
			||||||
 | 
						# start with this:
 | 
				
			||||||
 | 
					        if [ $STATIC = 1 ] ; then
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.a"
 | 
				
			||||||
 | 
						    echo "mklib: Making static library for example arch: " ${LIBNAME}
 | 
				
			||||||
 | 
						    rm -f ${LIBNAME}
 | 
				
			||||||
 | 
						    ar rv ${LIBNAME} ${OBJECTS}
 | 
				
			||||||
 | 
						    FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    LIBNAME="lib${LIBNAME}.so"  # prefix with "lib", suffix with ".so"
 | 
				
			||||||
 | 
						    echo "mklib: Making shared library for example arch: " ${LIBNAME}
 | 
				
			||||||
 | 
						    ld -o ${LIBNAME} ${OBJECTS} ${DEPS}
 | 
				
			||||||
 | 
						    FINAL_LIBS="${LIBNAME}"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    *)
 | 
				
			||||||
 | 
						echo "mklib: ERROR: Don't know how to make a static/shared library for" ${ARCH}
 | 
				
			||||||
 | 
						echo "mklib: Please add necessary commands to mklib script."
 | 
				
			||||||
 | 
						;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Put library files into installation directory if specified.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					if [ ${INSTALLDIR} != "." ] ; then
 | 
				
			||||||
 | 
					    echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
 | 
				
			||||||
 | 
					    mv ${FINAL_LIBS} ${INSTALLDIR}/
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@@ -1,251 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Copyright 2012 VMware Inc
 | 
					 | 
				
			||||||
# Copyright 2008-2009 Jose Fonseca
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"""Perf annotate for JIT code.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Linux `perf annotate` does not work with JIT code.  This script takes the data
 | 
					 | 
				
			||||||
produced by `perf script` command, plus the diassemblies outputed by gallivm
 | 
					 | 
				
			||||||
into /tmp/perf-XXXXX.map.asm and produces output similar to `perf annotate`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
See docs/llvmpipe.html for usage instructions.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The `perf script` output parser was derived from the gprof2dot.py script.
 | 
					 | 
				
			||||||
"""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import sys
 | 
					 | 
				
			||||||
import os.path
 | 
					 | 
				
			||||||
import re
 | 
					 | 
				
			||||||
import optparse
 | 
					 | 
				
			||||||
import subprocess
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Parser:
 | 
					 | 
				
			||||||
    """Parser interface."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __init__(self):
 | 
					 | 
				
			||||||
        pass
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def parse(self):
 | 
					 | 
				
			||||||
        raise NotImplementedError
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class LineParser(Parser):
 | 
					 | 
				
			||||||
    """Base class for parsers that read line-based formats."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __init__(self, file):
 | 
					 | 
				
			||||||
        Parser.__init__(self)
 | 
					 | 
				
			||||||
        self._file = file
 | 
					 | 
				
			||||||
        self.__line = None
 | 
					 | 
				
			||||||
        self.__eof = False
 | 
					 | 
				
			||||||
        self.line_no = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def readline(self):
 | 
					 | 
				
			||||||
        line = self._file.readline()
 | 
					 | 
				
			||||||
        if not line:
 | 
					 | 
				
			||||||
            self.__line = ''
 | 
					 | 
				
			||||||
            self.__eof = True
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            self.line_no += 1
 | 
					 | 
				
			||||||
        self.__line = line.rstrip('\r\n')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def lookahead(self):
 | 
					 | 
				
			||||||
        assert self.__line is not None
 | 
					 | 
				
			||||||
        return self.__line
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def consume(self):
 | 
					 | 
				
			||||||
        assert self.__line is not None
 | 
					 | 
				
			||||||
        line = self.__line
 | 
					 | 
				
			||||||
        self.readline()
 | 
					 | 
				
			||||||
        return line
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def eof(self):
 | 
					 | 
				
			||||||
        assert self.__line is not None
 | 
					 | 
				
			||||||
        return self.__eof
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mapFile = None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def lookupMap(filename, matchSymbol):
 | 
					 | 
				
			||||||
    global mapFile
 | 
					 | 
				
			||||||
    mapFile = filename
 | 
					 | 
				
			||||||
    stream = open(filename, 'rt')
 | 
					 | 
				
			||||||
    for line in stream:
 | 
					 | 
				
			||||||
        start, length, symbol = line.split()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        start = int(start, 16)
 | 
					 | 
				
			||||||
        length = int(length,16)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if symbol == matchSymbol:
 | 
					 | 
				
			||||||
            return start
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def lookupAsm(filename, desiredFunction):
 | 
					 | 
				
			||||||
    stream = open(filename + '.asm', 'rt')
 | 
					 | 
				
			||||||
    while stream.readline() != desiredFunction + ':\n':
 | 
					 | 
				
			||||||
        pass
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    asm = []
 | 
					 | 
				
			||||||
    line = stream.readline().strip()
 | 
					 | 
				
			||||||
    while line:
 | 
					 | 
				
			||||||
        addr, instr = line.split(':', 1)
 | 
					 | 
				
			||||||
        addr = int(addr)
 | 
					 | 
				
			||||||
        asm.append((addr, instr))
 | 
					 | 
				
			||||||
        line = stream.readline().strip()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return asm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
samples = {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class PerfParser(LineParser):
 | 
					 | 
				
			||||||
    """Parser for linux perf callgraph output.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    It expects output generated with
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        perf record -g
 | 
					 | 
				
			||||||
        perf script
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __init__(self, infile, symbol):
 | 
					 | 
				
			||||||
        LineParser.__init__(self, infile)
 | 
					 | 
				
			||||||
        self.symbol = symbol
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def readline(self):
 | 
					 | 
				
			||||||
        # Override LineParser.readline to ignore comment lines
 | 
					 | 
				
			||||||
        while True:
 | 
					 | 
				
			||||||
            LineParser.readline(self)
 | 
					 | 
				
			||||||
            if self.eof() or not self.lookahead().startswith('#'):
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def parse(self):
 | 
					 | 
				
			||||||
        # read lookahead
 | 
					 | 
				
			||||||
        self.readline()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        while not self.eof():
 | 
					 | 
				
			||||||
            self.parse_event()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        asm = lookupAsm(mapFile, self.symbol)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        addresses = samples.keys()
 | 
					 | 
				
			||||||
        addresses.sort()
 | 
					 | 
				
			||||||
        total_samples = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        sys.stdout.write('%s:\n' % self.symbol)
 | 
					 | 
				
			||||||
        for address, instr in asm:
 | 
					 | 
				
			||||||
            try:
 | 
					 | 
				
			||||||
                sample = samples.pop(address)
 | 
					 | 
				
			||||||
            except KeyError:
 | 
					 | 
				
			||||||
                sys.stdout.write(6*' ')
 | 
					 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                sys.stdout.write('%6u' % (sample))
 | 
					 | 
				
			||||||
                total_samples += sample
 | 
					 | 
				
			||||||
            sys.stdout.write('%6u: %s\n' % (address, instr))
 | 
					 | 
				
			||||||
        print 'total:', total_samples
 | 
					 | 
				
			||||||
        assert len(samples) == 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        sys.exit(0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def parse_event(self):
 | 
					 | 
				
			||||||
        if self.eof():
 | 
					 | 
				
			||||||
            return
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        line = self.consume()
 | 
					 | 
				
			||||||
        assert line
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        callchain = self.parse_callchain()
 | 
					 | 
				
			||||||
        if not callchain:
 | 
					 | 
				
			||||||
            return
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def parse_callchain(self):
 | 
					 | 
				
			||||||
        callchain = []
 | 
					 | 
				
			||||||
        while self.lookahead():
 | 
					 | 
				
			||||||
            function = self.parse_call(len(callchain) == 0)
 | 
					 | 
				
			||||||
            if function is None:
 | 
					 | 
				
			||||||
                break
 | 
					 | 
				
			||||||
            callchain.append(function)
 | 
					 | 
				
			||||||
        if self.lookahead() == '':
 | 
					 | 
				
			||||||
            self.consume()
 | 
					 | 
				
			||||||
        return callchain
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    call_re = re.compile(r'^\s+(?P<address>[0-9a-fA-F]+)\s+(?P<symbol>.*)\s+\((?P<module>[^)]*)\)$')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def parse_call(self, first):
 | 
					 | 
				
			||||||
        line = self.consume()
 | 
					 | 
				
			||||||
        mo = self.call_re.match(line)
 | 
					 | 
				
			||||||
        assert mo
 | 
					 | 
				
			||||||
        if not mo:
 | 
					 | 
				
			||||||
            return None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if not first:
 | 
					 | 
				
			||||||
            return None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        function_name = mo.group('symbol')
 | 
					 | 
				
			||||||
        if not function_name:
 | 
					 | 
				
			||||||
            function_name = mo.group('address')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        module = mo.group('module')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        function_id = function_name + ':' + module
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        address = mo.group('address')
 | 
					 | 
				
			||||||
        address = int(address, 16)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if function_name != self.symbol:
 | 
					 | 
				
			||||||
            return None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        start_address = lookupMap(module, function_name)
 | 
					 | 
				
			||||||
        address -= start_address
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        #print function_name, module, address
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        samples[address] = samples.get(address, 0) + 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return True
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main():
 | 
					 | 
				
			||||||
    """Main program."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    optparser = optparse.OptionParser(
 | 
					 | 
				
			||||||
        usage="\n\t%prog [options] symbol_name")
 | 
					 | 
				
			||||||
    (options, args) = optparser.parse_args(sys.argv[1:])
 | 
					 | 
				
			||||||
    if len(args) != 1:
 | 
					 | 
				
			||||||
        optparser.error('wrong number of arguments')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    symbol = args[0]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    p = subprocess.Popen(['perf', 'script'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 | 
					 | 
				
			||||||
    parser = PerfParser(p.stdout, symbol)
 | 
					 | 
				
			||||||
    parser.parse()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					 | 
				
			||||||
    main()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vim: set sw=4 et:
 | 
					 | 
				
			||||||
@@ -1,122 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python3
 | 
					 | 
				
			||||||
# Copyright © 2019 Intel Corporation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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 THE
 | 
					 | 
				
			||||||
# AUTHORS OR COPYRIGHT HOLDERS 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"""Update the main page, release notes, and calendar."""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import calendar
 | 
					 | 
				
			||||||
import datetime
 | 
					 | 
				
			||||||
import pathlib
 | 
					 | 
				
			||||||
from lxml import (
 | 
					 | 
				
			||||||
    etree,
 | 
					 | 
				
			||||||
    html,
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def calculate_previous_version(version: str, is_point: bool) -> str:
 | 
					 | 
				
			||||||
    """Calculate the previous version to compare to.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    In the case of -rc to final that verison is the previous .0 release,
 | 
					 | 
				
			||||||
    (19.3.0 in the case of 20.0.0, for example). for point releases that is
 | 
					 | 
				
			||||||
    the last point release. This value will be the same as the input value
 | 
					 | 
				
			||||||
    for a poiont release, but different for a major release.
 | 
					 | 
				
			||||||
    """
 | 
					 | 
				
			||||||
    if '-' in version:
 | 
					 | 
				
			||||||
        version = version.split('-')[0]
 | 
					 | 
				
			||||||
    if is_point:
 | 
					 | 
				
			||||||
        return version
 | 
					 | 
				
			||||||
    base = version.split('.')
 | 
					 | 
				
			||||||
    if base[1] == '0':
 | 
					 | 
				
			||||||
        base[0] = str(int(base[0]) - 1)
 | 
					 | 
				
			||||||
        base[1] = '3'
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        base[1] = str(int(base[1]) - 1)
 | 
					 | 
				
			||||||
    return '.'.join(base)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def get_version() -> str:
 | 
					 | 
				
			||||||
    v = pathlib.Path(__file__).parent.parent / 'VERSION'
 | 
					 | 
				
			||||||
    with v.open('rt') as f:
 | 
					 | 
				
			||||||
        raw_version = f.read().strip()
 | 
					 | 
				
			||||||
    return raw_version.split('-')[0]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def is_point_release() -> bool:
 | 
					 | 
				
			||||||
    v = pathlib.Path(__file__).parent.parent / 'VERSION'
 | 
					 | 
				
			||||||
    with v.open('rt') as f:
 | 
					 | 
				
			||||||
        raw_version = f.read().strip()
 | 
					 | 
				
			||||||
    return '-rc' not in raw_version
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def update_index(is_point: bool, version: str, previous_version: str) -> None:
 | 
					 | 
				
			||||||
    p = pathlib.Path(__file__).parent.parent / 'docs' / 'index.html'
 | 
					 | 
				
			||||||
    with p.open('rt') as f:
 | 
					 | 
				
			||||||
        tree = html.parse(f)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    news = tree.xpath('.//h1')[0]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    date = datetime.date.today()
 | 
					 | 
				
			||||||
    month = calendar.month_name[date.month]
 | 
					 | 
				
			||||||
    header = etree.Element('h2')
 | 
					 | 
				
			||||||
    header.text=f"{month} {date.day}, {date.year}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    body = etree.Element('p')
 | 
					 | 
				
			||||||
    a = etree.SubElement(body, 'a', attrib={'href': f'relnotes/{previous_version}'})
 | 
					 | 
				
			||||||
    a.text = f"Mesa {previous_version}"
 | 
					 | 
				
			||||||
    if is_point:
 | 
					 | 
				
			||||||
        a.tail = " is released. This is a bug fix release."
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        a.tail = (" is released. This is a new development release. "
 | 
					 | 
				
			||||||
                  "See the release notes for mor information about this release.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    root = news.getparent()
 | 
					 | 
				
			||||||
    index = root.index(news) + 1
 | 
					 | 
				
			||||||
    root.insert(index, body)
 | 
					 | 
				
			||||||
    root.insert(index, header)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    tree.write(p.as_posix(), method='html')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def update_release_notes(previous_version: str) -> None:
 | 
					 | 
				
			||||||
    p = pathlib.Path(__file__).parent.parent / 'docs' / 'relnotes.html'
 | 
					 | 
				
			||||||
    with p.open('rt') as f:
 | 
					 | 
				
			||||||
        tree = html.parse(f)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    li = etree.Element('li')
 | 
					 | 
				
			||||||
    a = etree.SubElement(li, 'a', href=f'relnotes/{previous_version}')
 | 
					 | 
				
			||||||
    a.text = f'{previous_version} release notes'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ul = tree.xpath('.//ul')[0]
 | 
					 | 
				
			||||||
    ul.insert(0, li)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    tree.write(p.as_posix(), method='html')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main() -> None:
 | 
					 | 
				
			||||||
    is_point = is_point_release()
 | 
					 | 
				
			||||||
    version = get_version()
 | 
					 | 
				
			||||||
    previous_version = calculate_previous_version(version, is_point)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    update_index(is_point, version, previous_version)
 | 
					 | 
				
			||||||
    update_release_notes(previous_version)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == "__main__":
 | 
					 | 
				
			||||||
    main()
 | 
					 | 
				
			||||||
							
								
								
									
										366
									
								
								bin/raw2png.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										366
									
								
								bin/raw2png.py
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,366 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					##########################################################################
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
 | 
				
			||||||
 | 
					# 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, sub license, 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 (including the
 | 
				
			||||||
 | 
					# next paragraph) 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 NON-INFRINGEMENT.
 | 
				
			||||||
 | 
					# IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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.
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					##########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import os.path
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import struct
 | 
				
			||||||
 | 
					import Image # http://www.pythonware.com/products/pil/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PIPE_FORMAT_LAYOUT_RGBAZS   = 0
 | 
				
			||||||
 | 
					PIPE_FORMAT_LAYOUT_YCBCR    = 1
 | 
				
			||||||
 | 
					PIPE_FORMAT_LAYOUT_DXT      = 2
 | 
				
			||||||
 | 
					PIPE_FORMAT_LAYOUT_MIXED    = 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_R    = 0
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_G    = 1
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_B    = 2
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_A    = 3
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_0    = 4
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_1    = 5
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_Z    = 6
 | 
				
			||||||
 | 
					PIPE_FORMAT_COMP_S    = 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_UNKNOWN = 0
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_FLOAT   = 1
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_UNORM   = 2
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_SNORM   = 3
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_USCALED = 4
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_SSCALED = 5
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_SRGB    = 6
 | 
				
			||||||
 | 
					PIPE_FORMAT_TYPE_FIXED   = 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, EXP2, TYPE ):
 | 
				
			||||||
 | 
					   return ((PIPE_FORMAT_LAYOUT_RGBAZS << 0) |\
 | 
				
			||||||
 | 
					   ((SWZ) << 2) |\
 | 
				
			||||||
 | 
					   ((SIZEX) << 14) |\
 | 
				
			||||||
 | 
					   ((SIZEY) << 17) |\
 | 
				
			||||||
 | 
					   ((SIZEZ) << 20) |\
 | 
				
			||||||
 | 
					   ((SIZEW) << 23) |\
 | 
				
			||||||
 | 
					   ((EXP2) << 26) |\
 | 
				
			||||||
 | 
					   ((TYPE) << 29) )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_SWZ( SWZX, SWZY, SWZZ, SWZW ):
 | 
				
			||||||
 | 
						return (((SWZX) << 0) | ((SWZY) << 3) | ((SWZZ) << 6) | ((SWZW) << 9))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_RGBAZS_1( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
 | 
				
			||||||
 | 
						return _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 0, TYPE )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_RGBAZS_2( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
 | 
				
			||||||
 | 
					    _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 1, TYPE )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_RGBAZS_8( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
 | 
				
			||||||
 | 
						return _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 3, TYPE )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_RGBAZS_64( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, TYPE ):
 | 
				
			||||||
 | 
						return _PIPE_FORMAT_RGBAZS( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, 6, TYPE )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_MIXED( SWZ, SIZEX, SIZEY, SIZEZ, SIZEW, SIGNX, SIGNY, SIGNZ, SIGNW, NORMALIZED, SCALE8 ):
 | 
				
			||||||
 | 
					    return ((PIPE_FORMAT_LAYOUT_MIXED << 0) |\
 | 
				
			||||||
 | 
					    ((SWZ) << 2) |\
 | 
				
			||||||
 | 
					    ((SIZEX) << 14) |\
 | 
				
			||||||
 | 
					    ((SIZEY) << 17) |\
 | 
				
			||||||
 | 
					    ((SIZEZ) << 20) |\
 | 
				
			||||||
 | 
					    ((SIZEW) << 23) |\
 | 
				
			||||||
 | 
					    ((SIGNX) << 26) |\
 | 
				
			||||||
 | 
					    ((SIGNY) << 27) |\
 | 
				
			||||||
 | 
					    ((SIGNZ) << 28) |\
 | 
				
			||||||
 | 
					    ((SIGNW) << 29) |\
 | 
				
			||||||
 | 
					    ((NORMALIZED) << 30) |\
 | 
				
			||||||
 | 
					    ((SCALE8) << 31) )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_PIPE_FORMAT_R001 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_1 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_RG01 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_1 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_RGB1 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_1 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_RGBA = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_A )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_ARGB = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_A, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_ABGR = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_A, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_BGRA = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_A )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_1RGB = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_1, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_B )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_1BGR = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_1, PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_BGR1 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_B, PIPE_FORMAT_COMP_G, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_1 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_0000 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_000R = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_R )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_RRR1 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_1 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_RRRR = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_RRRG = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_R, PIPE_FORMAT_COMP_G )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_Z000 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_0Z00 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_SZ00 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_S, PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_ZS00 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_Z, PIPE_FORMAT_COMP_S, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
 | 
				
			||||||
 | 
					_PIPE_FORMAT_S000 = _PIPE_FORMAT_SWZ( PIPE_FORMAT_COMP_S, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0, PIPE_FORMAT_COMP_0 )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_YCBCR( REV ):
 | 
				
			||||||
 | 
					   return ((PIPE_FORMAT_LAYOUT_YCBCR << 0) |\
 | 
				
			||||||
 | 
					   ((REV) << 2) )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def _PIPE_FORMAT_DXT( LEVEL, RSIZE, GSIZE, BSIZE, ASIZE ):
 | 
				
			||||||
 | 
					    return ((PIPE_FORMAT_LAYOUT_DXT << 0) | \
 | 
				
			||||||
 | 
					    ((LEVEL) << 2) | \
 | 
				
			||||||
 | 
					    ((RSIZE) << 5) | \
 | 
				
			||||||
 | 
					    ((GSIZE) << 8) | \
 | 
				
			||||||
 | 
					    ((BSIZE) << 11) | \
 | 
				
			||||||
 | 
					    ((ASIZE) << 14) )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PIPE_FORMAT_NONE                  = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_0000, 0, 0, 0, 0, PIPE_FORMAT_TYPE_UNKNOWN )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A8R8G8B8_UNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_ARGB, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_X8R8G8B8_UNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_1RGB, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_B8G8R8A8_UNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_BGRA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_B8G8R8X8_UNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_BGR1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A1R5G5B5_UNORM        = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_ARGB, 1, 5, 5, 5, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A4R4G4B4_UNORM        = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_ARGB, 4, 4, 4, 4, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R5G6B5_UNORM          = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_RGB1, 5, 6, 5, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A2B10G10R10_UNORM     = _PIPE_FORMAT_RGBAZS_2 ( _PIPE_FORMAT_ABGR, 1, 5, 5, 5, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_L8_UNORM              = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRR1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A8_UNORM              = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_000R, 0, 0, 0, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_I8_UNORM              = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRRR, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A8L8_UNORM            = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRRG, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_L16_UNORM             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRR1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_YCBCR                 = _PIPE_FORMAT_YCBCR( 0 )
 | 
				
			||||||
 | 
					PIPE_FORMAT_YCBCR_REV             = _PIPE_FORMAT_YCBCR( 1 )
 | 
				
			||||||
 | 
					PIPE_FORMAT_Z16_UNORM             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 2, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_Z32_UNORM             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 4, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_Z32_FLOAT             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 4, 0, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_S8Z24_UNORM           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_SZ00, 1, 3, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_Z24S8_UNORM           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_ZS00, 3, 1, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_X8Z24_UNORM           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_0Z00, 1, 3, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_Z24X8_UNORM           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_Z000, 3, 1, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_S8_UNORM              = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_S000, 1, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R64_FLOAT             = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R64G64_FLOAT          = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R64G64B64_FLOAT       = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R64G64B64A64_FLOAT    = _PIPE_FORMAT_RGBAZS_64( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32_FLOAT             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32_FLOAT          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32_FLOAT       = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32A32_FLOAT    = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_FLOAT )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32_UNORM             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32_UNORM          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32_UNORM       = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32A32_UNORM    = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32_USCALED           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32_USCALED        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32_USCALED     = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32A32_USCALED  = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32_SNORM             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32_SNORM          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32_SNORM       = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32A32_SNORM    = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32_SSCALED           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32_SSCALED        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32_SSCALED     = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32A32_SSCALED  = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16_UNORM             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16_UNORM          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16_UNORM       = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16A16_UNORM    = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16_USCALED           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16_USCALED        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16_USCALED     = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16A16_USCALED  = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16_SNORM             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16_SNORM          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16_SNORM       = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16A16_SNORM    = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16_SSCALED           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 2, 0, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16_SSCALED        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 2, 2, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16_SSCALED     = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 2, 2, 2, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R16G16B16A16_SSCALED  = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 2, 2, 2, 2, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8_UNORM              = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8_UNORM            = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8_UNORM          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8A8_UNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8X8_UNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_UNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8_USCALED            = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8_USCALED          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8_USCALED        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8A8_USCALED      = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8X8_USCALED      = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_USCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8_SNORM              = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8_SNORM            = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8_SNORM          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8A8_SNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8X8_SNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_B6G5R5_SNORM          = _PIPE_FORMAT_RGBAZS_1 ( _PIPE_FORMAT_BGR1, 6, 5, 5, 0, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A8B8G8R8_SNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_BGRA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_X8B8G8R8_SNORM        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SNORM )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8_SSCALED            = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 1, 0, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8_SSCALED          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 1, 1, 0, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8_SSCALED        = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8A8_SSCALED      = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8X8_SSCALED      = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SSCALED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32_FIXED             = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_R001, 4, 0, 0, 0, PIPE_FORMAT_TYPE_FIXED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32_FIXED          = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RG01, 4, 4, 0, 0, PIPE_FORMAT_TYPE_FIXED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32_FIXED       = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 4, 4, 4, 0, PIPE_FORMAT_TYPE_FIXED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R32G32B32A32_FIXED    = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 4, 4, 4, 4, PIPE_FORMAT_TYPE_FIXED )
 | 
				
			||||||
 | 
					PIPE_FORMAT_L8_SRGB               = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRR1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SRGB )
 | 
				
			||||||
 | 
					PIPE_FORMAT_A8_L8_SRGB            = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RRRG, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SRGB )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8_SRGB           = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 0, PIPE_FORMAT_TYPE_SRGB )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8A8_SRGB         = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGBA, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SRGB )
 | 
				
			||||||
 | 
					PIPE_FORMAT_R8G8B8X8_SRGB         = _PIPE_FORMAT_RGBAZS_8 ( _PIPE_FORMAT_RGB1, 1, 1, 1, 1, PIPE_FORMAT_TYPE_SRGB )
 | 
				
			||||||
 | 
					PIPE_FORMAT_X8UB8UG8SR8S_NORM     = _PIPE_FORMAT_MIXED( _PIPE_FORMAT_1BGR, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1 )
 | 
				
			||||||
 | 
					PIPE_FORMAT_B6UG5SR5S_NORM        = _PIPE_FORMAT_MIXED( _PIPE_FORMAT_BGR1, 6, 5, 5, 0, 0, 1, 1, 0, 1, 0 )
 | 
				
			||||||
 | 
					PIPE_FORMAT_DXT1_RGB              = _PIPE_FORMAT_DXT( 1, 8, 8, 8, 0 )
 | 
				
			||||||
 | 
					PIPE_FORMAT_DXT1_RGBA             = _PIPE_FORMAT_DXT( 1, 8, 8, 8, 8 )
 | 
				
			||||||
 | 
					PIPE_FORMAT_DXT3_RGBA             = _PIPE_FORMAT_DXT( 3, 8, 8, 8, 8 )
 | 
				
			||||||
 | 
					PIPE_FORMAT_DXT5_RGBA             = _PIPE_FORMAT_DXT( 5, 8, 8, 8, 8 )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					formats = {}
 | 
				
			||||||
 | 
					for name, value in globals().items():
 | 
				
			||||||
 | 
					    if name.startswith("PIPE_FORMAT_") and isinstance(value, int):
 | 
				
			||||||
 | 
					        formats[value] = name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def clip(g):
 | 
				
			||||||
 | 
						return min(max(g, 0), 255)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def yuv2rgb(y, u, v):
 | 
				
			||||||
 | 
						C = y - 16
 | 
				
			||||||
 | 
						D = u - 128
 | 
				
			||||||
 | 
						E = v - 128
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						r = clip(( 298 * C           + 409 * E + 128) >> 8)
 | 
				
			||||||
 | 
						g = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)
 | 
				
			||||||
 | 
						b = clip(( 298 * C + 516 * D           + 128) >> 8)
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						return r, g, b
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					def translate_r5g6b5(data):
 | 
				
			||||||
 | 
						value, = struct.unpack_from("H", data)
 | 
				
			||||||
 | 
						r = ((value >> 11) & 0x1f)*0xff/0x1f
 | 
				
			||||||
 | 
						g = ((value >>  5) & 0x3f)*0xff/0x3f
 | 
				
			||||||
 | 
						b = ((value >>  0) & 0x1f)*0xff/0x1f
 | 
				
			||||||
 | 
						a = 255
 | 
				
			||||||
 | 
						return [[(r, g, b, a)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def translate_a8r8g8b8(data):
 | 
				
			||||||
 | 
					    b, g, r, a = struct.unpack_from("BBBB", data)
 | 
				
			||||||
 | 
					    return [[(r, g, b, a)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def translate_x8r8g8b8(data):
 | 
				
			||||||
 | 
					    b, g, r, x = struct.unpack_from("BBBB", data)
 | 
				
			||||||
 | 
					    a = 255
 | 
				
			||||||
 | 
					    return [[(r, g, b, a)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def translate_r8g8b8a8(data):
 | 
				
			||||||
 | 
						r, g, b, a = struct.unpack_from("BBBB", data)
 | 
				
			||||||
 | 
						return [[(r, g, b, a)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def translate_ycbcr(data):
 | 
				
			||||||
 | 
						y1, u, y2, v = struct.unpack_from("BBBB", data)
 | 
				
			||||||
 | 
						r1, g1, b1 = yuv2rgb(y1, u, v)
 | 
				
			||||||
 | 
						r2, g2, b2 = yuv2rgb(y1, u, v)
 | 
				
			||||||
 | 
						return [[(r1, g1, b1, 255), (r2, g2, b2, 255)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def translate_ycbcr_rev(data):
 | 
				
			||||||
 | 
					    v, y2, u, y1 = struct.unpack_from("BBBB", data)
 | 
				
			||||||
 | 
					    r1, g1, b1 = yuv2rgb(y1, u, v)
 | 
				
			||||||
 | 
					    r2, g2, b2 = yuv2rgb(y1, u, v)
 | 
				
			||||||
 | 
					    return [[(r1, g1, b1, 255), (r2, g2, b2, 255)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def translate_x8z24(data):
 | 
				
			||||||
 | 
					    value, = struct.unpack_from("I", data)
 | 
				
			||||||
 | 
					    r = g = b = (value & 0xffffff)*0xff/0xffffff
 | 
				
			||||||
 | 
					    a = 255
 | 
				
			||||||
 | 
					    return [[(r, g, b, a)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def translate_s8z24(data):
 | 
				
			||||||
 | 
					    value, = struct.unpack_from("I", data)
 | 
				
			||||||
 | 
					    r = (value & 0xffffff)*0xff/0xffffff
 | 
				
			||||||
 | 
					    g = value >> 24
 | 
				
			||||||
 | 
					    b = 0
 | 
				
			||||||
 | 
					    a = 255
 | 
				
			||||||
 | 
					    return [[(r, g, b, a)]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					translate = {
 | 
				
			||||||
 | 
						PIPE_FORMAT_A8R8G8B8_UNORM: (4, 1, 1, translate_a8r8g8b8),
 | 
				
			||||||
 | 
						PIPE_FORMAT_X8R8G8B8_UNORM: (4, 1, 1, translate_x8r8g8b8),
 | 
				
			||||||
 | 
						PIPE_FORMAT_B8G8R8A8_UNORM: (4, 1, 1, translate_r8g8b8a8),
 | 
				
			||||||
 | 
						PIPE_FORMAT_B8G8R8X8_UNORM: (4, 1, 1, translate_r8g8b8a8),
 | 
				
			||||||
 | 
						PIPE_FORMAT_A8B8G8R8_SNORM: (4, 1, 1, translate_r8g8b8a8),
 | 
				
			||||||
 | 
						PIPE_FORMAT_R5G6B5_UNORM: (2, 1, 1, translate_r5g6b5),
 | 
				
			||||||
 | 
						PIPE_FORMAT_YCBCR: (4, 2, 1, translate_ycbcr),
 | 
				
			||||||
 | 
						PIPE_FORMAT_YCBCR_REV: (4, 2, 1, translate_ycbcr_rev),
 | 
				
			||||||
 | 
					    PIPE_FORMAT_S8Z24_UNORM: (4, 1, 1, translate_s8z24),
 | 
				
			||||||
 | 
					    PIPE_FORMAT_X8Z24_UNORM: (4, 1, 1, translate_x8z24),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def read_header(infile):
 | 
				
			||||||
 | 
						header_fmt = "IIII"
 | 
				
			||||||
 | 
						header = infile.read(struct.calcsize(header_fmt))
 | 
				
			||||||
 | 
						return struct.unpack_from(header_fmt, header)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def process(infilename, outfilename):
 | 
				
			||||||
 | 
						sys.stderr.write("%s -> %s\n" % (infilename, outfilename))
 | 
				
			||||||
 | 
						infile = open(infilename, "rb")
 | 
				
			||||||
 | 
						format, cpp, width, height = read_header(infile)
 | 
				
			||||||
 | 
						sys.stderr.write("  %ux%ux%ubpp %s\n" % (width, height, cpp*8, formats[format]))
 | 
				
			||||||
 | 
						outimage = Image.new(
 | 
				
			||||||
 | 
						mode='RGB',
 | 
				
			||||||
 | 
						size=(width, height),
 | 
				
			||||||
 | 
						color=(0,0,0))
 | 
				
			||||||
 | 
						outpixels = outimage.load()
 | 
				
			||||||
 | 
						try:
 | 
				
			||||||
 | 
							bsize, bwidth, bheight, translate_func = translate[format]
 | 
				
			||||||
 | 
						except KeyError:
 | 
				
			||||||
 | 
							sys.stderr.write('error: unsupported format %s\n' % formats[format])
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						for y in range(0, height, bheight):
 | 
				
			||||||
 | 
							for x in range(0, width, bwidth):
 | 
				
			||||||
 | 
								indata = infile.read(bsize)
 | 
				
			||||||
 | 
								outdata = translate_func(indata)
 | 
				
			||||||
 | 
								for j in range(bheight):
 | 
				
			||||||
 | 
									for i in range(bwidth):
 | 
				
			||||||
 | 
										r, g, b, a = outdata[j][i]
 | 
				
			||||||
 | 
										outpixels[x+i, y+j] = r, g, b
 | 
				
			||||||
 | 
						outimage.save(outfilename, "PNG")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
						if sys.platform == 'win32':
 | 
				
			||||||
 | 
							# wildcard expansion
 | 
				
			||||||
 | 
							from glob import glob
 | 
				
			||||||
 | 
							args = []
 | 
				
			||||||
 | 
							for arg in sys.argv[1:]:
 | 
				
			||||||
 | 
								args.extend(glob(arg))
 | 
				
			||||||
 | 
						else:
 | 
				
			||||||
 | 
							args = sys.argv[1:]
 | 
				
			||||||
 | 
						for infilename in args:
 | 
				
			||||||
 | 
							root, ext = os.path.splitext(infilename)
 | 
				
			||||||
 | 
							outfilename = root + ".png"
 | 
				
			||||||
 | 
							process(infilename, outfilename)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
						main()
 | 
				
			||||||
@@ -1,130 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env python
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import argparse
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import platform
 | 
					 | 
				
			||||||
import subprocess
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This list contains symbols that _might_ be exported for some platforms
 | 
					 | 
				
			||||||
PLATFORM_SYMBOLS = [
 | 
					 | 
				
			||||||
    '__bss_end__',
 | 
					 | 
				
			||||||
    '__bss_start__',
 | 
					 | 
				
			||||||
    '__bss_start',
 | 
					 | 
				
			||||||
    '__end__',
 | 
					 | 
				
			||||||
    '_bss_end__',
 | 
					 | 
				
			||||||
    '_edata',
 | 
					 | 
				
			||||||
    '_end',
 | 
					 | 
				
			||||||
    '_fini',
 | 
					 | 
				
			||||||
    '_init',
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def get_symbols(nm, lib):
 | 
					 | 
				
			||||||
    '''
 | 
					 | 
				
			||||||
    List all the (non platform-specific) symbols exported by the library
 | 
					 | 
				
			||||||
    '''
 | 
					 | 
				
			||||||
    symbols = []
 | 
					 | 
				
			||||||
    platform_name = platform.system()
 | 
					 | 
				
			||||||
    output = subprocess.check_output([nm, '-gP', lib],
 | 
					 | 
				
			||||||
                                     stderr=open(os.devnull, 'w')).decode("ascii")
 | 
					 | 
				
			||||||
    for line in output.splitlines():
 | 
					 | 
				
			||||||
        fields = line.split()
 | 
					 | 
				
			||||||
        if len(fields) == 2 or fields[1] == 'U':
 | 
					 | 
				
			||||||
            continue
 | 
					 | 
				
			||||||
        symbol_name = fields[0]
 | 
					 | 
				
			||||||
        if platform_name == 'Linux':
 | 
					 | 
				
			||||||
            if symbol_name in PLATFORM_SYMBOLS:
 | 
					 | 
				
			||||||
                continue
 | 
					 | 
				
			||||||
        elif platform_name == 'Darwin':
 | 
					 | 
				
			||||||
            assert symbol_name[0] == '_'
 | 
					 | 
				
			||||||
            symbol_name = symbol_name[1:]
 | 
					 | 
				
			||||||
        symbols.append(symbol_name)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return symbols
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main():
 | 
					 | 
				
			||||||
    parser = argparse.ArgumentParser()
 | 
					 | 
				
			||||||
    parser.add_argument('--symbols-file',
 | 
					 | 
				
			||||||
                        action='store',
 | 
					 | 
				
			||||||
                        required=True,
 | 
					 | 
				
			||||||
                        help='path to file containing symbols')
 | 
					 | 
				
			||||||
    parser.add_argument('--lib',
 | 
					 | 
				
			||||||
                        action='store',
 | 
					 | 
				
			||||||
                        required=True,
 | 
					 | 
				
			||||||
                        help='path to library')
 | 
					 | 
				
			||||||
    parser.add_argument('--nm',
 | 
					 | 
				
			||||||
                        action='store',
 | 
					 | 
				
			||||||
                        required=True,
 | 
					 | 
				
			||||||
                        help='path to binary (or name in $PATH)')
 | 
					 | 
				
			||||||
    args = parser.parse_args()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    try:
 | 
					 | 
				
			||||||
        lib_symbols = get_symbols(args.nm, args.lib)
 | 
					 | 
				
			||||||
    except:
 | 
					 | 
				
			||||||
        # We can't run this test, but we haven't technically failed it either
 | 
					 | 
				
			||||||
        # Return the GNU "skip" error code
 | 
					 | 
				
			||||||
        exit(77)
 | 
					 | 
				
			||||||
    mandatory_symbols = []
 | 
					 | 
				
			||||||
    optional_symbols = []
 | 
					 | 
				
			||||||
    with open(args.symbols_file) as symbols_file:
 | 
					 | 
				
			||||||
        qualifier_optional = '(optional)'
 | 
					 | 
				
			||||||
        for line in symbols_file.readlines():
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Strip comments
 | 
					 | 
				
			||||||
            line = line.split('#')[0]
 | 
					 | 
				
			||||||
            line = line.strip()
 | 
					 | 
				
			||||||
            if not line:
 | 
					 | 
				
			||||||
                continue
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Line format:
 | 
					 | 
				
			||||||
            # [qualifier] symbol
 | 
					 | 
				
			||||||
            qualifier = None
 | 
					 | 
				
			||||||
            symbol = None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            fields = line.split()
 | 
					 | 
				
			||||||
            if len(fields) == 1:
 | 
					 | 
				
			||||||
                symbol = fields[0]
 | 
					 | 
				
			||||||
            elif len(fields) == 2:
 | 
					 | 
				
			||||||
                qualifier = fields[0]
 | 
					 | 
				
			||||||
                symbol = fields[1]
 | 
					 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                print(args.symbols_file + ': invalid format: ' + line)
 | 
					 | 
				
			||||||
                exit(1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # The only supported qualifier is 'optional', which means the
 | 
					 | 
				
			||||||
            # symbol doesn't have to be exported by the library
 | 
					 | 
				
			||||||
            if qualifier and not qualifier == qualifier_optional:
 | 
					 | 
				
			||||||
                print(args.symbols_file + ': invalid qualifier: ' + qualifier)
 | 
					 | 
				
			||||||
                exit(1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if qualifier == qualifier_optional:
 | 
					 | 
				
			||||||
                optional_symbols.append(symbol)
 | 
					 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                mandatory_symbols.append(symbol)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    unknown_symbols = []
 | 
					 | 
				
			||||||
    for symbol in lib_symbols:
 | 
					 | 
				
			||||||
        if symbol in mandatory_symbols:
 | 
					 | 
				
			||||||
            continue
 | 
					 | 
				
			||||||
        if symbol in optional_symbols:
 | 
					 | 
				
			||||||
            continue
 | 
					 | 
				
			||||||
        unknown_symbols.append(symbol)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    missing_symbols = [
 | 
					 | 
				
			||||||
        sym for sym in mandatory_symbols if sym not in lib_symbols
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for symbol in unknown_symbols:
 | 
					 | 
				
			||||||
        print(args.lib + ': unknown symbol exported: ' + symbol)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for symbol in missing_symbols:
 | 
					 | 
				
			||||||
        print(args.lib + ': missing symbol: ' + symbol)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if unknown_symbols or missing_symbols:
 | 
					 | 
				
			||||||
        exit(1)
 | 
					 | 
				
			||||||
    exit(0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == '__main__':
 | 
					 | 
				
			||||||
    main()
 | 
					 | 
				
			||||||
							
								
								
									
										17
									
								
								bin/version.mk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								bin/version.mk
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					#!/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)
 | 
				
			||||||
							
								
								
									
										309
									
								
								bin/win32kprof.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										309
									
								
								bin/win32kprof.py
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,309 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					##########################################################################
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
 | 
				
			||||||
 | 
					# 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, sub license, 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 (including the
 | 
				
			||||||
 | 
					# next paragraph) 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 NON-INFRINGEMENT.
 | 
				
			||||||
 | 
					# IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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.
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					##########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import optparse
 | 
				
			||||||
 | 
					import re
 | 
				
			||||||
 | 
					import struct
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from gprof2dot import Call, Function, Profile
 | 
				
			||||||
 | 
					from gprof2dot import CALLS, SAMPLES, TIME, TIME_RATIO, TOTAL_TIME, TOTAL_TIME_RATIO
 | 
				
			||||||
 | 
					from gprof2dot import DotWriter, TEMPERATURE_COLORMAP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__version__ = '0.1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ParseError(Exception):
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MsvcDemangler:
 | 
				
			||||||
 | 
					    # http://www.kegel.com/mangle.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self, symbol):
 | 
				
			||||||
 | 
					        self._symbol = symbol
 | 
				
			||||||
 | 
					        self._pos = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def lookahead(self):
 | 
				
			||||||
 | 
					        return self._symbol[self._pos]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def consume(self):
 | 
				
			||||||
 | 
					        ret = self.lookahead()
 | 
				
			||||||
 | 
					        self._pos += 1
 | 
				
			||||||
 | 
					        return ret
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def match(self, c):
 | 
				
			||||||
 | 
					        if self.lookahead() != c:
 | 
				
			||||||
 | 
					            raise ParseError
 | 
				
			||||||
 | 
					        self.consume()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def parse(self):
 | 
				
			||||||
 | 
					        self.match('?')
 | 
				
			||||||
 | 
					        name = self.parse_name()
 | 
				
			||||||
 | 
					        qualifications = self.parse_qualifications()
 | 
				
			||||||
 | 
					        return '::'.join(qualifications + [name])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def parse_name(self):
 | 
				
			||||||
 | 
					        if self.lookahead() == '?':
 | 
				
			||||||
 | 
					            return self.consume() + self.consume()
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            name = self.parse_id()
 | 
				
			||||||
 | 
					            self.match('@')
 | 
				
			||||||
 | 
					            return name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def parse_qualifications(self):
 | 
				
			||||||
 | 
					        qualifications = []
 | 
				
			||||||
 | 
					        while self.lookahead() != '@':
 | 
				
			||||||
 | 
					            name = self.parse_id()
 | 
				
			||||||
 | 
					            qualifications.append(name)
 | 
				
			||||||
 | 
					            self.match('@')
 | 
				
			||||||
 | 
					        return qualifications
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def parse_id(self):
 | 
				
			||||||
 | 
					        s = ''
 | 
				
			||||||
 | 
					        while True:
 | 
				
			||||||
 | 
					            c = self.lookahead()
 | 
				
			||||||
 | 
					            if c.isalnum() or c in '_':
 | 
				
			||||||
 | 
					                s += c
 | 
				
			||||||
 | 
					                self.consume()
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                break
 | 
				
			||||||
 | 
					        return s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def demangle(name):
 | 
				
			||||||
 | 
					    if name.startswith('_'):
 | 
				
			||||||
 | 
					        name = name[1:]
 | 
				
			||||||
 | 
					        idx = name.rfind('@')
 | 
				
			||||||
 | 
					        if idx != -1 and name[idx+1:].isdigit():
 | 
				
			||||||
 | 
					            name = name[:idx]
 | 
				
			||||||
 | 
					        return name
 | 
				
			||||||
 | 
					    if name.startswith('?'):
 | 
				
			||||||
 | 
					        demangler = MsvcDemangler(name)
 | 
				
			||||||
 | 
					        return demangler.parse()
 | 
				
			||||||
 | 
					    return name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Reader:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        self.symbols = []
 | 
				
			||||||
 | 
					        self.symbol_cache = {}
 | 
				
			||||||
 | 
					        self.base_addr = None
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def read_map(self, mapfile):
 | 
				
			||||||
 | 
					        # See http://msdn.microsoft.com/en-us/library/k7xkk3e2.aspx
 | 
				
			||||||
 | 
					        last_addr = 0
 | 
				
			||||||
 | 
					        last_name = 0
 | 
				
			||||||
 | 
					        for line in file(mapfile, "rt"):
 | 
				
			||||||
 | 
					            fields = line.split()
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                section_offset, name, addr, type, lib_object = fields
 | 
				
			||||||
 | 
					            except ValueError:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            if type != 'f':
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            section, offset = section_offset.split(':')
 | 
				
			||||||
 | 
					            addr = int(offset, 16)
 | 
				
			||||||
 | 
					            self.symbols.append((addr, name))
 | 
				
			||||||
 | 
					            last_addr = addr
 | 
				
			||||||
 | 
					            last_name = name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # sort symbols
 | 
				
			||||||
 | 
					        self.symbols.sort(key = lambda (addr, name): addr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def lookup_addr(self, addr):
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            return self.symbol_cache[addr]
 | 
				
			||||||
 | 
					        except KeyError:
 | 
				
			||||||
 | 
					            pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tolerance = 4196
 | 
				
			||||||
 | 
					        s, e = 0, len(self.symbols)
 | 
				
			||||||
 | 
					        while s != e:
 | 
				
			||||||
 | 
					            i = (s + e)//2
 | 
				
			||||||
 | 
					            start_addr, name = self.symbols[i]
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                end_addr, next_name = self.symbols[i + 1]
 | 
				
			||||||
 | 
					            except IndexError:
 | 
				
			||||||
 | 
					                end_addr = start_addr + tolerance
 | 
				
			||||||
 | 
					            if addr < start_addr:
 | 
				
			||||||
 | 
					                e = i
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            if addr == end_addr:
 | 
				
			||||||
 | 
					                return next_name, addr - start_addr
 | 
				
			||||||
 | 
					            if addr > end_addr:
 | 
				
			||||||
 | 
					                s = i
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            return name, addr - start_addr
 | 
				
			||||||
 | 
					        raise ValueError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def lookup_symbol(self, name):
 | 
				
			||||||
 | 
					        for symbol_addr, symbol_name in self.symbols:
 | 
				
			||||||
 | 
					            if name == symbol_name:
 | 
				
			||||||
 | 
					                return symbol_addr
 | 
				
			||||||
 | 
					        return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def read_data(self, data):
 | 
				
			||||||
 | 
					        profile = Profile()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        fp = file(data, "rb")
 | 
				
			||||||
 | 
					        entry_format = "IIII"
 | 
				
			||||||
 | 
					        entry_size = struct.calcsize(entry_format)
 | 
				
			||||||
 | 
					        caller = None
 | 
				
			||||||
 | 
					        caller_stack = []
 | 
				
			||||||
 | 
					        while True:
 | 
				
			||||||
 | 
					            entry = fp.read(entry_size)
 | 
				
			||||||
 | 
					            if len(entry) < entry_size:
 | 
				
			||||||
 | 
					                break
 | 
				
			||||||
 | 
					            caller_addr, callee_addr, samples_lo, samples_hi = struct.unpack(entry_format, entry)
 | 
				
			||||||
 | 
					            if caller_addr == 0 and callee_addr == 0:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if self.base_addr is None:
 | 
				
			||||||
 | 
					                ref_addr = self.lookup_symbol('___debug_profile_reference@0')
 | 
				
			||||||
 | 
					                if ref_addr:
 | 
				
			||||||
 | 
					                    self.base_addr = (caller_addr - ref_addr) & ~(options.align - 1)
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    self.base_addr = 0
 | 
				
			||||||
 | 
					                sys.stderr.write('Base addr: %08x\n' % self.base_addr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            samples = (samples_hi << 32) | samples_lo
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                caller_raddr = caller_addr - self.base_addr
 | 
				
			||||||
 | 
					                caller_sym, caller_ofs = self.lookup_addr(caller_raddr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                try:
 | 
				
			||||||
 | 
					                    caller = profile.functions[caller_sym]
 | 
				
			||||||
 | 
					                except KeyError:
 | 
				
			||||||
 | 
					                    caller_name = demangle(caller_sym)
 | 
				
			||||||
 | 
					                    caller = Function(caller_sym, caller_name)
 | 
				
			||||||
 | 
					                    profile.add_function(caller)
 | 
				
			||||||
 | 
					                    caller[CALLS] = 0
 | 
				
			||||||
 | 
					                    caller[SAMPLES] = 0
 | 
				
			||||||
 | 
					            except ValueError:
 | 
				
			||||||
 | 
					                caller = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if not callee_addr:
 | 
				
			||||||
 | 
					                if caller:
 | 
				
			||||||
 | 
					                    caller[SAMPLES] += samples
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                callee_raddr = callee_addr - self.base_addr
 | 
				
			||||||
 | 
					                callee_sym, callee_ofs = self.lookup_addr(callee_raddr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                try:
 | 
				
			||||||
 | 
					                    callee = profile.functions[callee_sym]
 | 
				
			||||||
 | 
					                except KeyError:
 | 
				
			||||||
 | 
					                    callee_name = demangle(callee_sym)
 | 
				
			||||||
 | 
					                    callee = Function(callee_sym, callee_name)
 | 
				
			||||||
 | 
					                    profile.add_function(callee)
 | 
				
			||||||
 | 
					                    callee[CALLS] = samples
 | 
				
			||||||
 | 
					                    callee[SAMPLES] = 0
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    callee[CALLS] += samples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if caller is not None:
 | 
				
			||||||
 | 
					                    try:
 | 
				
			||||||
 | 
					                        call = caller.calls[callee.id]
 | 
				
			||||||
 | 
					                    except KeyError:
 | 
				
			||||||
 | 
					                        call = Call(callee.id)
 | 
				
			||||||
 | 
					                        call[CALLS] = samples
 | 
				
			||||||
 | 
					                        caller.add_call(call)
 | 
				
			||||||
 | 
					                    else:
 | 
				
			||||||
 | 
					                        call[CALLS] += samples
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if options.verbose:
 | 
				
			||||||
 | 
					                if not callee_addr:
 | 
				
			||||||
 | 
					                    sys.stderr.write('%s+%u: %u\n' % (caller_sym, caller_ofs, samples))
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    sys.stderr.write('%s+%u -> %s+%u: %u\n' % (caller_sym, caller_ofs, callee_sym, callee_ofs, samples))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # compute derived data
 | 
				
			||||||
 | 
					        profile.validate()
 | 
				
			||||||
 | 
					        profile.find_cycles()
 | 
				
			||||||
 | 
					        profile.aggregate(SAMPLES)
 | 
				
			||||||
 | 
					        profile.ratio(TIME_RATIO, SAMPLES)
 | 
				
			||||||
 | 
					        profile.call_ratios(CALLS)
 | 
				
			||||||
 | 
					        profile.integrate(TOTAL_TIME_RATIO, TIME_RATIO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					    parser = optparse.OptionParser(
 | 
				
			||||||
 | 
					        usage="\n\t%prog [options] [file] ...",
 | 
				
			||||||
 | 
					        version="%%prog %s" % __version__)
 | 
				
			||||||
 | 
					    parser.add_option(
 | 
				
			||||||
 | 
					        '-a', '--align', metavar='NUMBER',
 | 
				
			||||||
 | 
					        type="int", dest="align", default=16,
 | 
				
			||||||
 | 
					        help="section alignment")
 | 
				
			||||||
 | 
					    parser.add_option(
 | 
				
			||||||
 | 
					        '-m', '--map', metavar='FILE',
 | 
				
			||||||
 | 
					        type="string", dest="map",
 | 
				
			||||||
 | 
					        help="map file")
 | 
				
			||||||
 | 
					    parser.add_option(
 | 
				
			||||||
 | 
					        '-b', '--base', metavar='FILE',
 | 
				
			||||||
 | 
					        type="string", dest="base",
 | 
				
			||||||
 | 
					        help="base addr")
 | 
				
			||||||
 | 
					    parser.add_option(
 | 
				
			||||||
 | 
					        '-n', '--node-thres', metavar='PERCENTAGE',
 | 
				
			||||||
 | 
					        type="float", dest="node_thres", default=0.5,
 | 
				
			||||||
 | 
					        help="eliminate nodes below this threshold [default: %default]")
 | 
				
			||||||
 | 
					    parser.add_option(
 | 
				
			||||||
 | 
					        '-e', '--edge-thres', metavar='PERCENTAGE',
 | 
				
			||||||
 | 
					        type="float", dest="edge_thres", default=0.1,
 | 
				
			||||||
 | 
					        help="eliminate edges below this threshold [default: %default]")
 | 
				
			||||||
 | 
					    parser.add_option(
 | 
				
			||||||
 | 
					        '-v', '--verbose',
 | 
				
			||||||
 | 
					        action="count",
 | 
				
			||||||
 | 
					        dest="verbose", default=0,
 | 
				
			||||||
 | 
					        help="verbose output")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    global options
 | 
				
			||||||
 | 
					    (options, args) = parser.parse_args(sys.argv[1:])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    reader = Reader()
 | 
				
			||||||
 | 
					    if options.base is not None:
 | 
				
			||||||
 | 
					        reader.base_addr = int(options.base, 16)
 | 
				
			||||||
 | 
					    if options.map is not None:
 | 
				
			||||||
 | 
					        reader.read_map(options.map)
 | 
				
			||||||
 | 
					    for arg in args:
 | 
				
			||||||
 | 
					        profile = reader.read_data(arg)
 | 
				
			||||||
 | 
					        profile.prune(options.node_thres/100.0, options.edge_thres/100.0)
 | 
				
			||||||
 | 
					        output = sys.stdout
 | 
				
			||||||
 | 
					        dot = DotWriter(output)
 | 
				
			||||||
 | 
					        colormap = TEMPERATURE_COLORMAP
 | 
				
			||||||
 | 
					        dot.graph(profile, colormap)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    main()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1,3 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
	radeon_drm_winsys_create;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
VERSION_1 {
 | 
					 | 
				
			||||||
    global:
 | 
					 | 
				
			||||||
        main;
 | 
					 | 
				
			||||||
    local:
 | 
					 | 
				
			||||||
        *;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										140
									
								
								common.py
									
									
									
									
									
								
							
							
						
						
									
										140
									
								
								common.py
									
									
									
									
									
								
							@@ -3,121 +3,65 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import os.path
 | 
					import os.path
 | 
				
			||||||
import re
 | 
					 | 
				
			||||||
import subprocess
 | 
					 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
import platform as _platform
 | 
					import platform as _platform
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import SCons.Script.SConscript
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Defaults
 | 
					# Defaults
 | 
				
			||||||
 | 
					
 | 
				
			||||||
host_platform = _platform.system().lower()
 | 
					_platform_map = {
 | 
				
			||||||
if host_platform.startswith('cygwin'):
 | 
						'linux2': 'linux',
 | 
				
			||||||
    host_platform = 'cygwin'
 | 
						'win32': 'winddk',
 | 
				
			||||||
# MSYS2 default platform selection.
 | 
					 | 
				
			||||||
if host_platform.startswith('mingw'):
 | 
					 | 
				
			||||||
    host_platform = 'windows'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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',
 | 
					 | 
				
			||||||
    'BePC': 'x86',
 | 
					 | 
				
			||||||
    'Intel': 'x86',
 | 
					 | 
				
			||||||
    'ppc': 'ppc',
 | 
					 | 
				
			||||||
    'BeBox': 'ppc',
 | 
					 | 
				
			||||||
    'BeMac': 'ppc',
 | 
					 | 
				
			||||||
    'AMD64': 'x86_64',
 | 
					 | 
				
			||||||
    'x86_64': 'x86_64',
 | 
					 | 
				
			||||||
    'sparc': 'sparc',
 | 
					 | 
				
			||||||
    'sun4u': 'sparc',
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					default_platform = sys.platform
 | 
				
			||||||
 | 
					default_platform = _platform_map.get(default_platform, default_platform)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# find host_machine value
 | 
					_machine_map = {
 | 
				
			||||||
 | 
						'x86': 'x86',
 | 
				
			||||||
 | 
						'i386': 'x86',
 | 
				
			||||||
 | 
						'i486': 'x86',
 | 
				
			||||||
 | 
						'i586': 'x86',
 | 
				
			||||||
 | 
						'i686': 'x86',
 | 
				
			||||||
 | 
						'ppc' : 'ppc',
 | 
				
			||||||
 | 
						'x86_64': 'x86_64',
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
if 'PROCESSOR_ARCHITECTURE' in os.environ:
 | 
					if 'PROCESSOR_ARCHITECTURE' in os.environ:
 | 
				
			||||||
    host_machine = os.environ['PROCESSOR_ARCHITECTURE']
 | 
						default_machine = os.environ['PROCESSOR_ARCHITECTURE']
 | 
				
			||||||
else:
 | 
					else:
 | 
				
			||||||
    host_machine = _platform.machine()
 | 
						default_machine = _platform.machine()
 | 
				
			||||||
host_machine = _machine_map.get(host_machine, 'generic')
 | 
					default_machine = _machine_map.get(default_machine, 'generic')
 | 
				
			||||||
# MSYS2 default machine selection.
 | 
					 | 
				
			||||||
if _platform.system().lower().startswith('mingw') and 'MSYSTEM' in os.environ:
 | 
					 | 
				
			||||||
    if os.environ['MSYSTEM'] == 'MINGW32':
 | 
					 | 
				
			||||||
        host_machine = 'x86'
 | 
					 | 
				
			||||||
    if os.environ['MSYSTEM'] == 'MINGW64':
 | 
					 | 
				
			||||||
        host_machine = 'x86_64'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
default_machine = host_machine
 | 
					if default_platform in ('linux', 'freebsd', 'darwin'):
 | 
				
			||||||
default_toolchain = 'default'
 | 
						default_dri = 'yes'
 | 
				
			||||||
# MSYS2 default toolchain selection.
 | 
					elif default_platform in ('winddk', 'windows', 'wince'):
 | 
				
			||||||
if _platform.system().lower().startswith('mingw'):
 | 
						default_dri = 'no'
 | 
				
			||||||
    default_toolchain = 'mingw'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if target_platform == 'windows' and host_platform != 'windows':
 | 
					 | 
				
			||||||
    default_machine = 'x86'
 | 
					 | 
				
			||||||
    default_toolchain = 'crossmingw'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# find default_llvm value
 | 
					 | 
				
			||||||
if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
 | 
					 | 
				
			||||||
    default_llvm = 'yes'
 | 
					 | 
				
			||||||
else:
 | 
					else:
 | 
				
			||||||
    default_llvm = 'no'
 | 
						default_dri = 'no'
 | 
				
			||||||
    try:
 | 
					 | 
				
			||||||
        if target_platform != 'windows' and \
 | 
					 | 
				
			||||||
           subprocess.call(['llvm-config', '--version'],
 | 
					 | 
				
			||||||
                           stdout=subprocess.PIPE) == 0:
 | 
					 | 
				
			||||||
            default_llvm = 'yes'
 | 
					 | 
				
			||||||
    except:
 | 
					 | 
				
			||||||
        pass
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#######################################################################
 | 
					#######################################################################
 | 
				
			||||||
# Common options
 | 
					# Common options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def AddOptions(opts):
 | 
					def AddOptions(opts):
 | 
				
			||||||
    try:
 | 
						try:
 | 
				
			||||||
        from SCons.Variables.BoolVariable import BoolVariable as BoolOption
 | 
							from SCons.Variables.BoolVariable import BoolVariable as BoolOption
 | 
				
			||||||
    except ImportError:
 | 
						except ImportError:
 | 
				
			||||||
        from SCons.Options.BoolOption import BoolOption
 | 
							from SCons.Options.BoolOption import BoolOption
 | 
				
			||||||
    try:
 | 
						try:
 | 
				
			||||||
        from SCons.Variables.EnumVariable import EnumVariable as EnumOption
 | 
							from SCons.Variables.EnumVariable import EnumVariable as EnumOption
 | 
				
			||||||
    except ImportError:
 | 
						except ImportError:
 | 
				
			||||||
        from SCons.Options.EnumOption import EnumOption
 | 
							from SCons.Options.EnumOption import EnumOption
 | 
				
			||||||
    opts.Add(EnumOption('build', 'build type', 'debug',
 | 
						opts.Add(BoolOption('debug', 'debug build', 'no'))
 | 
				
			||||||
                        allowed_values=('debug', 'checked', 'profile',
 | 
						opts.Add(BoolOption('profile', 'profile build', 'no'))
 | 
				
			||||||
                                        'release')))
 | 
						opts.Add(BoolOption('quiet', 'quiet command lines', 'yes'))
 | 
				
			||||||
    opts.Add(BoolOption('verbose', 'verbose output', 'no'))
 | 
						opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
 | 
				
			||||||
    opts.Add(EnumOption('machine', 'use machine-specific assembly code',
 | 
																 allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
 | 
				
			||||||
                        default_machine,
 | 
						opts.Add(EnumOption('platform', 'target platform', default_platform,
 | 
				
			||||||
                        allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
 | 
																 allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince')))
 | 
				
			||||||
    opts.Add(EnumOption('platform', 'target platform', host_platform,
 | 
						opts.Add(EnumOption('toolchain', 'compiler toolchain', 'default',
 | 
				
			||||||
                        allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku',
 | 
																 allowed_values=('default', 'crossmingw', 'winsdk', 'winddk')))
 | 
				
			||||||
                                        'linux', 'sunos', 'windows')))
 | 
						opts.Add(BoolOption('llvm', 'use LLVM', 'no'))
 | 
				
			||||||
    opts.Add(BoolOption('embedded', 'embedded build', 'no'))
 | 
						opts.Add(BoolOption('dri', 'build DRI drivers', default_dri))
 | 
				
			||||||
    opts.Add(BoolOption('analyze',
 | 
					
 | 
				
			||||||
                        'enable static code analysis where available', 'no'))
 | 
					 | 
				
			||||||
    opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
 | 
					 | 
				
			||||||
    opts.Add('toolchain', 'compiler toolchain', default_toolchain)
 | 
					 | 
				
			||||||
    opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
 | 
					 | 
				
			||||||
    opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)',
 | 
					 | 
				
			||||||
                        'no'))
 | 
					 | 
				
			||||||
    opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
 | 
					 | 
				
			||||||
    opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
 | 
					 | 
				
			||||||
    opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
 | 
					 | 
				
			||||||
    opts.Add(BoolOption('swr', 'Build OpenSWR', 'no'))
 | 
					 | 
				
			||||||
    if host_platform == 'windows':
 | 
					 | 
				
			||||||
        opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
 | 
					 | 
				
			||||||
        opts.Add('MSVC_USE_SCRIPT', 'Microsoft Visual C/C++ vcvarsall script', True)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					current
 | 
				
			||||||
 | 
					autoconf
 | 
				
			||||||
							
								
								
									
										30
									
								
								configs/aix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								configs/aix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					# Configuration for AIX, dynamic libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = aix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = xlC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Misc tools and flags
 | 
				
			||||||
 | 
					MKLIB_OPTIONS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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 = -lX11 -lXext -lpthread -lm
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lm -lC
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/lib -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -lX11 -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lXm -lXt -lX11
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB)
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm -lC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								configs/aix-64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								configs/aix-64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					# Configuration for AIX 64-bit, dynamic libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = aix-64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = xlc
 | 
				
			||||||
 | 
					CXX = xlC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -q64 -qmaxmem=16384 -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -q64 -qmaxmem=16384 -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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 = -lX11 -lXext -lm -lpthread
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lC
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -lX11 -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXm -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/lib64 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lpthread -lC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								configs/aix-64-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								configs/aix-64-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# Configuration for AIX, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = aix-64-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = xlC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -q64 -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -q64 -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -q64 -L$(TOP)/$(LIB_DIR)  -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
 | 
				
			||||||
 | 
					               -lX11 -lXext -lXmu -lXi -lm -lpthread -lC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										23
									
								
								configs/aix-gcc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								configs/aix-gcc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# Configuration for AIX with gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = aix-gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O2 -DAIXV3
 | 
				
			||||||
 | 
					CXXFLAGS = -O2 -DAIXV3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -arch aix-gcc
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -lX11 -lXext -lm
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -Wl,-brtl -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXmu -lXi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								configs/aix-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								configs/aix-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# Configuration for AIX, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = aix-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = xlC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -O -DAIXV3 -DPTHREADS
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
 | 
				
			||||||
 | 
					               -lX11 -lXext -lXmu -lXi -lm -lpthread -lC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										145
									
								
								configs/autoconf.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								configs/autoconf.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,145 @@
 | 
				
			|||||||
 | 
					# 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@
 | 
				
			||||||
 | 
					CFLAGS = @CPPFLAGS@ @CFLAGS@ \
 | 
				
			||||||
 | 
						$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ \
 | 
				
			||||||
 | 
						$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					LDFLAGS = @LDFLAGS@
 | 
				
			||||||
 | 
					EXTRA_LIB_PATH = @EXTRA_LIB_PATH@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Assembler
 | 
				
			||||||
 | 
					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@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Python and flags (generally only needed by the developers)
 | 
				
			||||||
 | 
					PYTHON2 = python
 | 
				
			||||||
 | 
					PYTHON_FLAGS = -t -O -O
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (base name)
 | 
				
			||||||
 | 
					GL_LIB = GL
 | 
				
			||||||
 | 
					GLU_LIB = GLU
 | 
				
			||||||
 | 
					GLUT_LIB = glut
 | 
				
			||||||
 | 
					GLW_LIB = GLw
 | 
				
			||||||
 | 
					OSMESA_LIB = @OSMESA_LIB@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Globs used to install the lib and all symlinks
 | 
				
			||||||
 | 
					GL_LIB_GLOB = @GL_LIB_GLOB@
 | 
				
			||||||
 | 
					GLU_LIB_GLOB = @GLU_LIB_GLOB@
 | 
				
			||||||
 | 
					GLUT_LIB_GLOB = @GLUT_LIB_GLOB@
 | 
				
			||||||
 | 
					GLW_LIB_GLOB = @GLW_LIB_GLOB@
 | 
				
			||||||
 | 
					OSMESA_LIB_GLOB = @OSMESA_LIB_GLOB@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories to build
 | 
				
			||||||
 | 
					LIB_DIR = @LIB_DIR@
 | 
				
			||||||
 | 
					SRC_DIRS = @SRC_DIRS@
 | 
				
			||||||
 | 
					GLU_DIRS = @GLU_DIRS@
 | 
				
			||||||
 | 
					DRIVER_DIRS = @DRIVER_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_DIRS = @GALLIUM_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_AUXILIARY_DIRS = @GALLIUM_AUXILIARY_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_WINSYS_DRM_DIRS = @GALLIUM_WINSYS_DRM_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_STATE_TRACKERS_DIRS = @GALLIUM_STATE_TRACKERS_DIRS@
 | 
				
			||||||
 | 
					GALLIUM_AUXILIARIES = $(foreach DIR,$(GALLIUM_AUXILIARY_DIRS),$(TOP)/src/gallium/auxiliary/$(DIR)/lib$(DIR).a)
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Which subdirs under $(TOP)/progs/ to enter:
 | 
				
			||||||
 | 
					PROGRAM_DIRS = @PROGRAM_DIRS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Driver specific build vars
 | 
				
			||||||
 | 
					DRI_DIRS = @DRI_DIRS@ 
 | 
				
			||||||
 | 
					WINDOW_SYSTEM = @WINDOW_SYSTEM@
 | 
				
			||||||
 | 
					USING_EGL = @USING_EGL@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DRI dependencies
 | 
				
			||||||
 | 
					DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@
 | 
				
			||||||
 | 
					LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
 | 
				
			||||||
 | 
					LIBDRM_LIB = @LIBDRM_LIBS@
 | 
				
			||||||
 | 
					DRI2PROTO_CFLAGS = @DRI2PROTO_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_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@
 | 
				
			||||||
							
								
								
									
										104
									
								
								configs/beos
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								configs/beos
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,104 @@
 | 
				
			|||||||
 | 
					# Configuration for BeOS
 | 
				
			||||||
 | 
					# Written by Philippe Houdoin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = beos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFINES = 	\
 | 
				
			||||||
 | 
						-DBEOS_THREADS 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MACHINE=$(shell uname -m)
 | 
				
			||||||
 | 
					ifeq ($(MACHINE), BePC)
 | 
				
			||||||
 | 
						CPU = x86
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						CPU = ppc
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifeq ($(CPU), x86)
 | 
				
			||||||
 | 
						# BeOS x86 settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DEFINES += \
 | 
				
			||||||
 | 
							-DGNU_ASSEMBLER \
 | 
				
			||||||
 | 
							-DUSE_X86_ASM \
 | 
				
			||||||
 | 
							-DUSE_MMX_ASM \
 | 
				
			||||||
 | 
							-DUSE_3DNOW_ASM \
 | 
				
			||||||
 | 
							-DUSE_SSE_ASM
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
						GLAPI_ASM_SOURCES = $(X86_API)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CC = gcc
 | 
				
			||||||
 | 
						CXX = g++
 | 
				
			||||||
 | 
						LD = gcc
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						CFLAGS = \
 | 
				
			||||||
 | 
							-Wall -Wno-multichar -Wno-ctor-dtor-privacy \
 | 
				
			||||||
 | 
							$(DEFINES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CXXFLAGS = $(CFLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
						CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
						CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						LDFLAGS += -Xlinker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ifdef DEBUG
 | 
				
			||||||
 | 
							CFLAGS   += -g -O0
 | 
				
			||||||
 | 
							LDFLAGS += -g
 | 
				
			||||||
 | 
							DEFINES += -DDEBUG
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							CFLAGS   += -O3
 | 
				
			||||||
 | 
						endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						# BeOS PPC settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CC = mwcc
 | 
				
			||||||
 | 
						CXX = $(CC)
 | 
				
			||||||
 | 
						LD = mwldppc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CFLAGS = \
 | 
				
			||||||
 | 
							-w on -requireprotos \
 | 
				
			||||||
 | 
							$(DEFINES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CXXFLAGS = $(CFLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						LDFLAGS += \
 | 
				
			||||||
 | 
							-export pragma \
 | 
				
			||||||
 | 
							-init _init_routine_ \
 | 
				
			||||||
 | 
							-term _term_routine_ \
 | 
				
			||||||
 | 
							-lroot \
 | 
				
			||||||
 | 
							/boot/develop/lib/ppc/glue-noinit.a \
 | 
				
			||||||
 | 
							/boot/develop/lib/ppc/init_term_dyn.o \
 | 
				
			||||||
 | 
							/boot/develop/lib/ppc/start_dyn.o 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ifdef DEBUG
 | 
				
			||||||
 | 
							CFLAGS   += -g -O0
 | 
				
			||||||
 | 
							CXXFLAGS += -g -O0
 | 
				
			||||||
 | 
							LDFLAGS += -g
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							CFLAGS   += -O7
 | 
				
			||||||
 | 
							CXXFLAGS += -O7
 | 
				
			||||||
 | 
						endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS = gallium mesa glu glut/beos glew
 | 
				
			||||||
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
 | 
					DRIVER_DIRS = beos
 | 
				
			||||||
 | 
					PROGRAM_DIRS = beos samples redbook demos tests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS = 
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
 | 
					GLU_LIB_DEPS =  
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -lgame -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -lbe -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										33
									
								
								configs/bluegene-osmesa
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								configs/bluegene-osmesa
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					# Configuration for building only libOSMesa on BlueGene, no Xlib driver
 | 
				
			||||||
 | 
					# This doesn't really have a lot of dependencies, so it should be usable
 | 
				
			||||||
 | 
					# on other (gcc-based) systems too.
 | 
				
			||||||
 | 
					# It uses static linking and disables multithreading.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = bluegene-osmesa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = /bgl/BlueLight/ppcfloor/blrts-gnu/bin/powerpc-bgl-blrts-gnu-gcc
 | 
				
			||||||
 | 
					CXX = /bgl/BlueLight/ppcfloor/blrts-gnu/bin/powerpc-bgl-blrts-gnu-g++
 | 
				
			||||||
 | 
					CFLAGS = -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_SOURC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Dependencies
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -lm
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -lOSMesa -lGLU -lm
 | 
				
			||||||
							
								
								
									
										29
									
								
								configs/bluegene-xlc-osmesa
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								configs/bluegene-xlc-osmesa
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					# Configuration for building only libOSMesa on BlueGene using the IBM xlc compiler
 | 
				
			||||||
 | 
					# This doesn't really have a lot of dependencies, so it should be usable
 | 
				
			||||||
 | 
					# on similar systems too.
 | 
				
			||||||
 | 
					# It uses static linking and disables multithreading.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = bluegene-osmesa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = /opt/ibmcmp/vacpp/bg/8.0/bin/blrts_xlc
 | 
				
			||||||
 | 
					CXX = /opt/ibmcmp/vacpp/bg/8.0/bin/blrts_xlC
 | 
				
			||||||
 | 
					CFLAGS = -O3 -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					CXXFLAGS = -O3 -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Dependencies
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -lm
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -lOSMesa -lGLU -lm
 | 
				
			||||||
							
								
								
									
										32
									
								
								configs/catamount-osmesa-pgi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								configs/catamount-osmesa-pgi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					# Configuration for building only libOSMesa on Cray Xt3
 | 
				
			||||||
 | 
					# for the compute nodes running Catamount using the 
 | 
				
			||||||
 | 
					# Portland Group compiler. The Portland Group toolchain has to be 
 | 
				
			||||||
 | 
					# enabled before using "module switch PrgEnv-gnu PrgEnv-pgi" .
 | 
				
			||||||
 | 
					# This doesn't really have a lot of dependencies, so it should be usable
 | 
				
			||||||
 | 
					# on other similar systems too.
 | 
				
			||||||
 | 
					# It uses static linking and disables multithreading.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = catamount-osmesa-pgi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -target=catamount -fastsse -O3 -Mnontemporal -Mprefetch=distance:8,nta   -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					CXXFLAGS = -target=catamount -fastsse -O3 -Mnontemporal -Mprefetch=distance:8,nta -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = libOSMesa.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS = mesa glu
 | 
				
			||||||
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					PROGRAM_DIRS = osdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Dependencies
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -lm
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -lOSMesa -lGLU -lm
 | 
				
			||||||
							
								
								
									
										42
									
								
								configs/config.mgw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								configs/config.mgw
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					# 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
 | 
				
			||||||
							
								
								
									
										57
									
								
								configs/darwin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								configs/darwin
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					# Configuration for Darwin / MacOS X, making dynamic libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSTALL_DIR = /usr/X11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					X11_DIR = $(INSTALL_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = gcc
 | 
				
			||||||
 | 
					PIC_FLAGS = -fPIC
 | 
				
			||||||
 | 
					DEFINES =  -D_DARWIN_C_SOURCE -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L \
 | 
				
			||||||
 | 
						   -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS \
 | 
				
			||||||
 | 
						   -DGLX_ALIAS_UNSUPPORTED -DGLX_INDIRECT_RENDERING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# -DGLX_DIRECT_RENDERING - pulls in libdrm stuff in glx/x11
 | 
				
			||||||
 | 
					# -DGLX_USE_APPLEGL      - supposed to be used with GLX_DIRECT_RENDERING to use AGL rather than DRM, but doesn't compile
 | 
				
			||||||
 | 
					# -DIN_DRI_DRIVER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARCH_FLAGS += $(RC_CFLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS =  -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing \
 | 
				
			||||||
 | 
						-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					CXXFLAGS =  -ggdb3 -Os -Wall -fno-strict-aliasing \
 | 
				
			||||||
 | 
						-I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (actual file names)
 | 
				
			||||||
 | 
					GL_LIB_NAME = libGL.dylib
 | 
				
			||||||
 | 
					GLU_LIB_NAME = libGLU.dylib
 | 
				
			||||||
 | 
					GLUT_LIB_NAME = libglut.dylib
 | 
				
			||||||
 | 
					GLW_LIB_NAME = libGLw.dylib
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = libOSMesa.dylib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# globs used to install the lib and all symlinks
 | 
				
			||||||
 | 
					GL_LIB_GLOB = libGL.*dylib
 | 
				
			||||||
 | 
					GLU_LIB_GLOB = libGLU.*dylib
 | 
				
			||||||
 | 
					GLUT_LIB_GLOB = libglut.*dylib
 | 
				
			||||||
 | 
					GLW_LIB_GLOB = libGLw.*dylib
 | 
				
			||||||
 | 
					OSMESA_LIB_GLOB = libOSMesa.*dylib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB)  -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXi -lXext
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# omit glw lib for now:
 | 
				
			||||||
 | 
					SRC_DIRS = glx/x11 mesa glu glut/glx glew
 | 
				
			||||||
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
 | 
					DRIVER_DIRS = osmesa
 | 
				
			||||||
 | 
					#DRIVER_DIRS = dri
 | 
				
			||||||
 | 
					DRI_DIRS = swrast
 | 
				
			||||||
 | 
					PROGRAM_DIRS = xdemos
 | 
				
			||||||
							
								
								
									
										7
									
								
								configs/darwin-fat-32bit
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								configs/darwin-fat-32bit
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					# Configuration for Darwin / MacOS X, making 32bit fat dynamic libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RC_CFLAGS=-arch ppc -arch i386
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = darwin-fat-32bit
 | 
				
			||||||
							
								
								
									
										7
									
								
								configs/darwin-fat-all
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								configs/darwin-fat-all
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					# Configuration for Darwin / MacOS X, making 32bit and 64bit fat dynamic libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RC_CFLAGS=-arch ppc -arch i386 -arch ppc64 -arch x86_64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = darwin-fat-all
 | 
				
			||||||
							
								
								
									
										33
									
								
								configs/darwin-x86ppc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								configs/darwin-x86ppc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					# Configuration for Darwin / MacOS X, making dynamic libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = darwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = cc
 | 
				
			||||||
 | 
					CFLAGS = -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
 | 
				
			||||||
 | 
					         -I/usr/X11R6/include -O3 -fPIC -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 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -archopt "-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (actual file names)
 | 
				
			||||||
 | 
					GL_LIB_NAME = libGL.dylib
 | 
				
			||||||
 | 
					GLU_LIB_NAME = libGLU.dylib
 | 
				
			||||||
 | 
					GLUT_LIB_NAME = libglut.dylib
 | 
				
			||||||
 | 
					GLW_LIB_NAME = libGLw.dylib
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = libOSMesa.dylib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXt $(TOP)/lib/GL.dylib
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# omit glw lib for now:
 | 
				
			||||||
 | 
					SRC_DIRS = gallium mesa glu glut/glx glew
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										144
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,144 @@
 | 
				
			|||||||
 | 
					# Default/template configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This is included by other config files which may override some
 | 
				
			||||||
 | 
					# of these variables.
 | 
				
			||||||
 | 
					# Think of this as a base class from which configs are derived.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Version info
 | 
				
			||||||
 | 
					MESA_MAJOR=7
 | 
				
			||||||
 | 
					MESA_MINOR=5
 | 
				
			||||||
 | 
					MESA_TINY=0
 | 
				
			||||||
 | 
					MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# external projects.  This should be useless now that we use libdrm.
 | 
				
			||||||
 | 
					DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					HOST_CC = $(CC)
 | 
				
			||||||
 | 
					CFLAGS = -O
 | 
				
			||||||
 | 
					CXXFLAGS = -O
 | 
				
			||||||
 | 
					LDFLAGS =
 | 
				
			||||||
 | 
					GLU_CFLAGS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler for building demos/tests/etc
 | 
				
			||||||
 | 
					APP_CC = $(CC)
 | 
				
			||||||
 | 
					APP_CXX = $(CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Misc tools and flags
 | 
				
			||||||
 | 
					SHELL = /bin/sh
 | 
				
			||||||
 | 
					MKLIB = $(SHELL) $(TOP)/bin/mklib
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = 
 | 
				
			||||||
 | 
					MKDEP = makedepend
 | 
				
			||||||
 | 
					MKDEP_OPTIONS = -fdepend
 | 
				
			||||||
 | 
					MAKE = make
 | 
				
			||||||
 | 
					INSTALL = $(SHELL) $(TOP)/bin/minstall
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Tools for regenerating glapi (generally only needed by the developers)
 | 
				
			||||||
 | 
					PYTHON2 = python
 | 
				
			||||||
 | 
					PYTHON_FLAGS = -t -O -O
 | 
				
			||||||
 | 
					INDENT = indent
 | 
				
			||||||
 | 
					INDENT_FLAGS = -i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (base name)
 | 
				
			||||||
 | 
					GL_LIB = GL
 | 
				
			||||||
 | 
					GLU_LIB = GLU
 | 
				
			||||||
 | 
					GLUT_LIB = glut
 | 
				
			||||||
 | 
					GLEW_LIB = GLEW
 | 
				
			||||||
 | 
					GLW_LIB = GLw
 | 
				
			||||||
 | 
					OSMESA_LIB = OSMesa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (actual file names)
 | 
				
			||||||
 | 
					GL_LIB_NAME = lib$(GL_LIB).so
 | 
				
			||||||
 | 
					GLU_LIB_NAME = lib$(GLU_LIB).so
 | 
				
			||||||
 | 
					GLUT_LIB_NAME = lib$(GLUT_LIB).so
 | 
				
			||||||
 | 
					GLEW_LIB_NAME = lib$(GLEW_LIB).a
 | 
				
			||||||
 | 
					GLW_LIB_NAME = lib$(GLW_LIB).so
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = lib$(OSMESA_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)*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Optional assembly language optimization files for libGL
 | 
				
			||||||
 | 
					MESA_ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in
 | 
				
			||||||
 | 
					# order to build the Motif widget too)
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c
 | 
				
			||||||
 | 
					MOTIF_CFLAGS = -I/usr/include/Motif1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories to build
 | 
				
			||||||
 | 
					LIB_DIR = lib
 | 
				
			||||||
 | 
					SRC_DIRS = mesa gallium egl gallium/winsys glu glut/glx glew glw
 | 
				
			||||||
 | 
					GLU_DIRS = sgi
 | 
				
			||||||
 | 
					DRIVER_DIRS = x11 osmesa
 | 
				
			||||||
 | 
					# Which subdirs under $(TOP)/progs/ to enter:
 | 
				
			||||||
 | 
					PROGRAM_DIRS = demos redbook samples glsl xdemos
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# EGL directories
 | 
				
			||||||
 | 
					EGL_DRIVERS_DIRS = demo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Gallium directories and 
 | 
				
			||||||
 | 
					GALLIUM_DIRS = auxiliary drivers state_trackers
 | 
				
			||||||
 | 
					GALLIUM_AUXILIARY_DIRS = draw translate cso_cache pipebuffer tgsi sct rtasm util indices
 | 
				
			||||||
 | 
					GALLIUM_AUXILIARIES = $(foreach DIR,$(GALLIUM_AUXILIARY_DIRS),$(TOP)/src/gallium/auxiliary/$(DIR)/lib$(DIR).a)
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS_DIRS = softpipe i915simple failover trace
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a)
 | 
				
			||||||
 | 
					GALLIUM_WINSYS_DIRS = xlib egl_xlib
 | 
				
			||||||
 | 
					GALLIUM_WINSYS_DRM_DIRS =
 | 
				
			||||||
 | 
					GALLIUM_STATE_TRACKERS_DIRS = glx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library dependencies
 | 
				
			||||||
 | 
					#EXTRA_LIB_PATH ?=
 | 
				
			||||||
 | 
					GL_LIB_DEPS     = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
 | 
				
			||||||
 | 
					EGL_LIB_DEPS    = $(EXTRA_LIB_PATH) -lX11 -ldl
 | 
				
			||||||
 | 
					OSMESA_LIB_DEPS = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
 | 
				
			||||||
 | 
					GLU_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS   = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS    = $(EXTRA_LIB_PATH) -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Program dependencies - specific GL/glut libraries added in Makefiles
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Installation directories (for make install)
 | 
				
			||||||
 | 
					INSTALL_DIR = /usr/local
 | 
				
			||||||
 | 
					INSTALL_LIB_DIR = $(INSTALL_DIR)/$(LIB_DIR)
 | 
				
			||||||
 | 
					INSTALL_INC_DIR = $(INSTALL_DIR)/include
 | 
				
			||||||
 | 
					DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Where libGL will look for DRI hardware drivers
 | 
				
			||||||
 | 
					DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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 =
 | 
				
			||||||
							
								
								
									
										31
									
								
								configs/freebsd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								configs/freebsd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					# Configuration for FreeBSD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = FreeBSD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = c++
 | 
				
			||||||
 | 
					MAKE = gmake
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPT_FLAGS  = -O2
 | 
				
			||||||
 | 
					PIC_FLAGS  = -fPIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DUSE_XSHM \
 | 
				
			||||||
 | 
						-DHZ=100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					X11_INCLUDES = -I/usr/local/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS += $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) $(X11_INCLUDES) -ffast-math -pedantic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS += $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) $(X11_INCLUDES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXTRA_LIB_PATH = -L/usr/local/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
 | 
				
			||||||
							
								
								
									
										55
									
								
								configs/freebsd-dri
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								configs/freebsd-dri
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					# -*-makefile-*-
 | 
				
			||||||
 | 
					# Configuration for freebsd-dri: FreeBSD DRI hardware drivers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/freebsd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = freebsd-dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					WARN_FLAGS = -Wall
 | 
				
			||||||
 | 
					OPT_FLAGS = -O -g
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPAT_INCLUDES = -I/usr/local/include
 | 
				
			||||||
 | 
					X11_INCLUDES = -I/usr/local/include
 | 
				
			||||||
 | 
					DEFINES = -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
 | 
				
			||||||
 | 
						-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
				
			||||||
 | 
						-DHAVE_ALIAS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) -Wmissing-prototypes -std=c99 -Wundef -ffast-math \
 | 
				
			||||||
 | 
						$(ASM_FLAGS) $(X11_INCLUDES) $(DEFINES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) -Wall -ansi -pedantic $(ASM_FLAGS) $(X11_INCLUDES) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_SOURCES = 
 | 
				
			||||||
 | 
					MESA_ASM_SOURCES = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
				
			||||||
 | 
					LIBDRM_LIB = `pkg-config --libs libdrm`
 | 
				
			||||||
 | 
					DRI_LIB_DEPS = -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB)
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/local/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
				
			||||||
 | 
						-lm -pthread $(LIBDRM_LIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/local/lib -lGL -lXt -lX11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS = glx/x11 gallium mesa glu glut/glx glew glw
 | 
				
			||||||
 | 
					DRIVER_DIRS = dri
 | 
				
			||||||
 | 
					PROGRAM_DIRS = 
 | 
				
			||||||
 | 
					WINDOW_SYSTEM=dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DRM_SOURCE_PATH=$(TOP)/../drm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ffb and gamma are missing because they have not been converted to use the new
 | 
				
			||||||
 | 
					# interface.
 | 
				
			||||||
 | 
					DRI_DIRS = i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
 | 
				
			||||||
 | 
						   unichrome savage sis
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								configs/freebsd-dri-amd64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								configs/freebsd-dri-amd64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					# -*-makefile-*-
 | 
				
			||||||
 | 
					# Configuration for freebsd-dri-amd64: FreeBSD DRI hardware drivers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/freebsd-dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = freebsd-dri-x86-64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_FLAGS = -DUSE_X86_64_ASM
 | 
				
			||||||
 | 
					MESA_ASM_SOURCES = $(X86-64_SOURCES)
 | 
				
			||||||
 | 
					GLAPI_ASM_SOURCES = $(X86-64_API)
 | 
				
			||||||
							
								
								
									
										13
									
								
								configs/freebsd-dri-x86
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								configs/freebsd-dri-x86
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					# -*-makefile-*-
 | 
				
			||||||
 | 
					# Configuration for freebsd-dri: FreeBSD DRI hardware drivers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/freebsd-dri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = freebsd-dri-x86
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Unnecessary on x86, generally.
 | 
				
			||||||
 | 
					PIC_FLAGS = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					GLAPI_ASM_SOURCES = $(X86_API)
 | 
				
			||||||
							
								
								
									
										14
									
								
								configs/hpux10
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								configs/hpux10
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v10, shared libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O +DAportable +z -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -O +DAportable +Z -Ae -D_HPUX_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -$(TOP)/$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
 | 
				
			||||||
							
								
								
									
										20
									
								
								configs/hpux10-gcc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								configs/hpux10-gcc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v10, with gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux10-gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include  -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -ansi -O3 -D_HPUX_SOURCE
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								configs/hpux10-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								configs/hpux10-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v10, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux10-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O +DAportable +z -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -O +DAportable +Z -Ae -D_HPUX_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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies (static libs don't have 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) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm -lstdc++
 | 
				
			||||||
							
								
								
									
										30
									
								
								configs/hpux11-32
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								configs/hpux11-32
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux11-32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = +z -Ae -O +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = +z -Ae -O +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/lib/X11R6/ -L/usr/contrib/X11R6/lib/ -lXext -lXt -lXi -lX11 -lm -lpthread
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
 | 
				
			||||||
							
								
								
									
										27
									
								
								configs/hpux11-32-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								configs/hpux11-32-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v11, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux11-32-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O +DA2.0 -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -O +DA2.0 -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6/ -L/usr/contrib/X11R6/lib/ -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread -lCsup -lcl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										26
									
								
								configs/hpux11-32-static-nothreads
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								configs/hpux11-32-static-nothreads
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v11, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux11-32-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O +DA2.0 -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -O +DA2.0 -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
 | 
				
			||||||
							
								
								
									
										31
									
								
								configs/hpux11-64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								configs/hpux11-64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v11, 64-bit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux11-64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = +z -Ae +DD64 -O +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = +z -Ae +DD64 -O +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/lib/X11R6/pa20_64 -L/usr/contrib/X11R6/lib/pa20_64 -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
 | 
				
			||||||
							
								
								
									
										27
									
								
								configs/hpux11-64-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								configs/hpux11-64-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v11, 64-bit, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux11-64-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O +DA2.0W -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -O +DA2.0W -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6/pa20_64 -L/usr/contrib/X11R6/lib/pa20_64 -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread -lCsup -lcl
 | 
				
			||||||
							
								
								
									
										30
									
								
								configs/hpux11-ia64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								configs/hpux11-ia64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX IA64 v11, 64-bit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux11-ia64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = +z -Ae +DD64 -O +DSmckinley -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = +z -Ae +DD64 -O +DSmckinley -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library names (actual file names)
 | 
				
			||||||
 | 
					GL_LIB_NAME = libGL.so
 | 
				
			||||||
 | 
					GLU_LIB_NAME = libGLU.so
 | 
				
			||||||
 | 
					GLUT_LIB_NAME = libglut.so
 | 
				
			||||||
 | 
					GLW_LIB_NAME = libGLw.so
 | 
				
			||||||
 | 
					OSMESA_LIB_NAME = libOSMesa.so
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					GL_LIB_DEPS = -L/usr/lib/X11R6/ -L/usr/contrib/X11R6/lib/ -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread
 | 
				
			||||||
 | 
					GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
 | 
				
			||||||
 | 
					GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
 | 
				
			||||||
 | 
					GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
 | 
				
			||||||
							
								
								
									
										27
									
								
								configs/hpux11-ia64-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								configs/hpux11-ia64-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v11, 64-bit, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux11-ia64-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O +DD64 -Ae -D_HPUX_SOURCE +DSmckinley -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -O +DD64 -Ae -D_HPUX_SOURCE +DSmckinley -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Library/program dependencies
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lXt -lX11 -lpthread -lm -lCsup -lcl
 | 
				
			||||||
							
								
								
									
										16
									
								
								configs/hpux9
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								configs/hpux9
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v9, shared libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					# XXX fix this
 | 
				
			||||||
 | 
					CXX = c++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = +z -O +Olibcalls +ESlit -Ae +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5 -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = +z -O +Olibcalls +ESlit -Ae +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R5 -s -Wl,+s,-B,nonfatal,-B,immediate -lXext -lXmu -lXi -lX11 -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										14
									
								
								configs/hpux9-gcc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								configs/hpux9-gcc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					# Configuration for HPUX v10, shared libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = hpux9-gcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = aCC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -O +DAportable +z -Ae -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -O +DAportable +Z -Ae -D_HPUX_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
 | 
				
			||||||
							
								
								
									
										17
									
								
								configs/irix6-64
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								configs/irix6-64
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					# Configuration for IRIX 6.x, make n64 DSOs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = irix6-64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -64 -O3 -ansi -woff 1174 -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -64 -rpath $(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lpthread -lm
 | 
				
			||||||
							
								
								
									
										26
									
								
								configs/irix6-64-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								configs/irix6-64-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					# Configuration for IRIX 6.x, make n64 static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = irix6-64-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -64 -O3 -ansi -woff 1174 -DPTHREADS
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -64 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm -lC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								configs/irix6-n32
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								configs/irix6-n32
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					# Configuration for IRIX 6.x, make n32 DSOs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = irix6-n32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552 -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -n32 -rpath $(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lfpe -lpthread -lm
 | 
				
			||||||
							
								
								
									
										25
									
								
								configs/irix6-n32-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								configs/irix6-n32-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# Configuration for IRIX 6.x, make n32 static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = irix6-n32-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -n32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM -DPTHREADS
 | 
				
			||||||
 | 
					CXXFLAGS = -n32 -mips2 -O2 -ansi -woff 3262,3666 -DPTHREADS
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -n32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm -lC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								configs/irix6-o32
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								configs/irix6-o32
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					# Configuration for IRIX 6.x, make o32 DSOs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = irix6-o32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -32 -rpath $(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										25
									
								
								configs/irix6-o32-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								configs/irix6-o32-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# Configuration for IRIX 6.x, make o32 static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = irix6-o32-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = cc
 | 
				
			||||||
 | 
					CXX = CC
 | 
				
			||||||
 | 
					CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LIB_DIR = lib32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										38
									
								
								configs/linux
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								configs/linux
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# Configuration for generic Linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPT_FLAGS  = -O3 -g
 | 
				
			||||||
 | 
					PIC_FLAGS  = -fPIC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.  Add -m32
 | 
				
			||||||
 | 
					# to build properly on 64-bit platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARCH_FLAGS ?=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
 | 
				
			||||||
 | 
						-D_BSD_SOURCE -D_GNU_SOURCE \
 | 
				
			||||||
 | 
						-DPTHREADS -DUSE_XSHM -DHAVE_POSIX_MEMALIGN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					X11_INCLUDES = -I/usr/X11R6/include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = -Wall -Wmissing-prototypes -Wdeclaration-after-statement \
 | 
				
			||||||
 | 
						$(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
 | 
				
			||||||
 | 
						$(DEFINES) $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
 | 
				
			||||||
 | 
						$(X11_INCLUDES) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXTRA_LIB_PATH = -L/usr/X11R6/lib
 | 
				
			||||||
							
								
								
									
										22
									
								
								configs/linux-alpha
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								configs/linux-alpha
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# Configuration for Linux on Alpha
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-alpha
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					CFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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) -L/usr/X11R6/lib -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										31
									
								
								configs/linux-alpha-static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								configs/linux-alpha-static
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					# Configuration for Linux on Alpha, static libs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-alpha-static
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					CFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -D_XOPEN_SOURCE -DUSE_XSHM
 | 
				
			||||||
 | 
					CXXFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -D_XOPEN_SOURCE
 | 
				
			||||||
 | 
					GLUT_CFLAGS = -fexceptions
 | 
				
			||||||
 | 
					MKLIB_OPTIONS = -static
 | 
				
			||||||
 | 
					PIC_FLAGS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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 = -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) -L/usr/X11R6/lib -lXt -lX11
 | 
				
			||||||
 | 
					APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -L/usr/X11R6/lib -lX11 -lm
 | 
				
			||||||
							
								
								
									
										67
									
								
								configs/linux-cell
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								configs/linux-cell
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					# linux-cell  (non-debug build)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-cell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Omiting other gallium drivers:
 | 
				
			||||||
 | 
					GALLIUM_DRIVERS_DIRS = cell softpipe trace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS = $(OPT_FLAGS) -Wall -Winline -Wmissing-prototypes \
 | 
				
			||||||
 | 
						-fPIC -m32 -std=c99 -mabi=altivec -maltivec \
 | 
				
			||||||
 | 
						-I. -I$(SDK)/include \
 | 
				
			||||||
 | 
						-DGALLIUM_CELL -DUSE_XSHM -D_BSD_SOURCE -D_SVID_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = $(CFLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Omitting glw here:
 | 
				
			||||||
 | 
					SRC_DIRS = gallium mesa gallium/winsys glu glut/glx glew
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build no traditional Mesa drivers:
 | 
				
			||||||
 | 
					DRIVER_DIRS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MKDEP_OPTIONS = -fdepend -Y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
							
								
								
									
										10
									
								
								configs/linux-cell-debug
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								configs/linux-cell-debug
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					# linux-cell-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/linux-cell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# just override name and OPT_FLAGS here:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-cell-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPT_FLAGS = -g -DDEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								configs/linux-debug
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								configs/linux-debug
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					# Configuration for debugging on Linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-debug
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPT_FLAGS = -g -ansi -pedantic
 | 
				
			||||||
 | 
					DEFINES += -DDEBUG -DDEBUG_MATH
 | 
				
			||||||
							
								
								
									
										38
									
								
								configs/linux-directfb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								configs/linux-directfb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					# Configuration for DirectFB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include $(TOP)/configs/default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_NAME = linux-directfb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiler and flags
 | 
				
			||||||
 | 
					CC  = gcc
 | 
				
			||||||
 | 
					CXX = g++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS   = -Wall -O3 -ffast-math -fPIC -std=c99 -D_GNU_SOURCE -D_POSIX_SOURCE -D_SVID_SOURCE \
 | 
				
			||||||
 | 
					         -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DPTHREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -Wall -O3 -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Work around aliasing bugs - developers should comment this out
 | 
				
			||||||
 | 
					CFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					CXXFLAGS += -fno-strict-aliasing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HAVE_X86 = $(shell uname -m | grep 'i[3-6]86' >/dev/null && echo yes)
 | 
				
			||||||
 | 
					ifeq ($(HAVE_X86), yes)
 | 
				
			||||||
 | 
					     CFLAGS   += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					     CXXFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
 | 
				
			||||||
 | 
					     MESA_ASM_SOURCES = $(X86_SOURCES)
 | 
				
			||||||
 | 
					     GLAPI_ASM_SOURCES = $(X86_API)
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directories
 | 
				
			||||||
 | 
					SRC_DIRS     = gallium mesa glu glut/directfb glew
 | 
				
			||||||
 | 
					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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user