OSDN Git Service

Remove r500 stuff
[android-x86/external-mesa.git] / src / mesa / SConscript
1 #######################################################################
2 # SConscript for Mesa
3
4
5 Import('*')
6
7 if env['platform'] != 'winddk':
8
9         env = env.Clone()
10         
11         env.Append(CPPPATH = [
12                 '#/src/mesa',
13         ])
14         
15         if env['platform'] == 'windows':
16                 env.Append(CPPDEFINES = [
17                         '_GDI32_', # prevent gl* being declared __declspec(dllimport) in MS headers
18                         'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers 
19                         'WIN32_THREADS', # use Win32 thread API
20                 ])       
21
22         #
23         # Source files
24         #
25         
26         main_sources = [
27                 'main/api_arrayelt.c',
28                 'main/api_exec.c',
29                 'main/api_loopback.c',
30                 'main/api_noop.c',
31                 'main/api_validate.c',
32                 'main/accum.c',
33                 'main/attrib.c',
34                 'main/arrayobj.c',
35                 'main/blend.c',
36                 'main/bufferobj.c',
37                 'main/buffers.c',
38                 'main/clear.c',
39                 'main/clip.c',
40                 'main/colortab.c',
41                 'main/context.c',
42                 'main/convolve.c',
43                 'main/cpuinfo.c',
44                 'main/debug.c',
45                 'main/depth.c',
46                 'main/depthstencil.c',
47                 'main/dlist.c',
48                 'main/dlopen.c',
49                 'main/drawpix.c',
50                 'main/enable.c',
51                 'main/enums.c',
52                 'main/eval.c',
53                 'main/execmem.c',
54                 'main/extensions.c',
55                 'main/fbobject.c',
56                 'main/feedback.c',
57                 'main/ffvertex_prog.c',
58                 'main/fog.c',
59                 'main/framebuffer.c',
60                 'main/get.c',
61                 'main/getstring.c',
62                 'main/hash.c',
63                 'main/hint.c',
64                 'main/histogram.c',
65                 'main/image.c',
66                 'main/imports.c',
67                 'main/light.c',
68                 'main/lines.c',
69                 'main/matrix.c',
70                 'main/mipmap.c',
71                 'main/mm.c',
72                 'main/multisample.c',
73                 'main/pixel.c',
74                 'main/pixelstore.c',
75                 'main/points.c',
76                 'main/polygon.c',
77                 'main/queryobj.c',
78                 'main/rastpos.c',
79                 'main/rbadaptors.c',
80                 'main/readpix.c',
81                 'main/renderbuffer.c',
82                 'main/scissor.c',
83                 'main/shaders.c',
84                 'main/shared.c',
85                 'main/state.c',
86                 'main/stencil.c',
87                 'main/texcompress.c',
88                 'main/texcompress_s3tc.c',
89                 'main/texcompress_fxt1.c',
90                 'main/texenv.c',
91                 'main/texenvprogram.c',
92                 'main/texformat.c',
93                 'main/texgen.c',
94                 'main/teximage.c',
95                 'main/texobj.c',
96                 'main/texparam.c',
97                 'main/texrender.c',
98                 'main/texstate.c',
99                 'main/texstore.c',
100                 'main/varray.c',
101                 'main/viewport.c',
102                 'main/vtxfmt.c',
103         ]
104         
105         math_sources = [
106                 'math/m_debug_clip.c',
107                 'math/m_debug_norm.c',
108                 'math/m_debug_xform.c',
109                 'math/m_eval.c',
110                 'math/m_matrix.c',
111                 'math/m_translate.c',
112                 'math/m_vector.c',
113                 'math/m_xform.c',
114         ]
115         
116         vbo_sources = [
117                 'vbo/vbo_context.c',
118                 'vbo/vbo_exec.c',
119                 'vbo/vbo_exec_api.c',
120                 'vbo/vbo_exec_array.c',
121                 'vbo/vbo_exec_draw.c',
122                 'vbo/vbo_exec_eval.c',
123                 'vbo/vbo_rebase.c',
124                 'vbo/vbo_split.c',
125                 'vbo/vbo_split_copy.c',
126                 'vbo/vbo_split_inplace.c',
127                 'vbo/vbo_save.c',
128                 'vbo/vbo_save_api.c',
129                 'vbo/vbo_save_draw.c',
130                 'vbo/vbo_save_loopback.c',
131         ]
132         
133         vf_sources = [
134                 'vf/vf.c',
135                 'vf/vf_generic.c',
136                 'vf/vf_sse.c',
137         ]
138         
139         statetracker_sources = [
140                 'state_tracker/st_atom.c',
141                 'state_tracker/st_atom_blend.c',
142                 'state_tracker/st_atom_clip.c',
143                 'state_tracker/st_atom_constbuf.c',
144                 'state_tracker/st_atom_depth.c',
145                 'state_tracker/st_atom_framebuffer.c',
146                 'state_tracker/st_atom_pixeltransfer.c',
147                 'state_tracker/st_atom_sampler.c',
148                 'state_tracker/st_atom_scissor.c',
149                 'state_tracker/st_atom_shader.c',
150                 'state_tracker/st_atom_rasterizer.c',
151                 'state_tracker/st_atom_stipple.c',
152                 'state_tracker/st_atom_texture.c',
153                 'state_tracker/st_atom_viewport.c',
154                 'state_tracker/st_cb_accum.c',
155                 'state_tracker/st_cb_bitmap.c',
156                 'state_tracker/st_cb_blit.c',
157                 'state_tracker/st_cb_bufferobjects.c',
158                 'state_tracker/st_cb_clear.c',
159                 'state_tracker/st_cb_flush.c',
160                 'state_tracker/st_cb_drawpixels.c',
161                 'state_tracker/st_cb_fbo.c',
162                 'state_tracker/st_cb_get.c',
163                 'state_tracker/st_cb_feedback.c',
164                 'state_tracker/st_cb_program.c',
165                 'state_tracker/st_cb_queryobj.c',
166                 'state_tracker/st_cb_rasterpos.c',
167                 'state_tracker/st_cb_readpixels.c',
168                 'state_tracker/st_cb_strings.c',
169                 'state_tracker/st_cb_texture.c',
170                 'state_tracker/st_cb_viewport.c',
171                 'state_tracker/st_context.c',
172                 'state_tracker/st_debug.c',
173                 'state_tracker/st_draw.c',
174                 'state_tracker/st_draw_feedback.c',
175                 'state_tracker/st_extensions.c',
176                 'state_tracker/st_format.c',
177                 'state_tracker/st_framebuffer.c',
178                 'state_tracker/st_gen_mipmap.c',
179                 'state_tracker/st_mesa_to_tgsi.c',
180                 'state_tracker/st_program.c',
181                 'state_tracker/st_texture.c',
182         ]
183         
184         shader_sources = [
185                 'shader/arbprogparse.c',
186                 'shader/arbprogram.c',
187                 'shader/atifragshader.c',
188                 'shader/grammar/grammar_mesa.c',
189                 'shader/nvfragparse.c',
190                 'shader/nvprogram.c',
191                 'shader/nvvertparse.c',
192                 'shader/program.c',
193                 'shader/prog_cache.c',
194                 'shader/prog_execute.c',
195                 'shader/prog_instruction.c',
196                 'shader/prog_noise.c',
197                 'shader/prog_optimize.c',
198                 'shader/prog_parameter.c',
199                 'shader/prog_print.c',
200                 'shader/prog_statevars.c',
201                 'shader/prog_uniform.c',
202                 'shader/programopt.c',
203                 'shader/shader_api.c',
204         ]
205         
206         slang_sources = [
207                 'shader/slang/slang_builtin.c',
208                 'shader/slang/slang_codegen.c',
209                 'shader/slang/slang_compile.c',
210                 'shader/slang/slang_compile_function.c',
211                 'shader/slang/slang_compile_operation.c',
212                 'shader/slang/slang_compile_struct.c',
213                 'shader/slang/slang_compile_variable.c',
214                 'shader/slang/slang_emit.c',
215                 'shader/slang/slang_ir.c',
216                 'shader/slang/slang_label.c',
217                 'shader/slang/slang_link.c',
218                 'shader/slang/slang_log.c',
219                 'shader/slang/slang_mem.c',
220                 'shader/slang/slang_preprocess.c',
221                 'shader/slang/slang_print.c',
222                 'shader/slang/slang_simplify.c',
223                 'shader/slang/slang_storage.c',
224                 'shader/slang/slang_typeinfo.c',
225                 'shader/slang/slang_vartable.c',
226                 'shader/slang/slang_utility.c',
227         ]
228         
229         mesa_sources = (
230                 main_sources +
231                 math_sources +
232                 vbo_sources +
233                 vf_sources +
234                 statetracker_sources +
235                 shader_sources +
236                 slang_sources
237         )
238
239         glapi_sources = [
240                 'main/dispatch.c',
241                 'glapi/glapi.c',
242                 'glapi/glapi_getproc.c',
243                 'glapi/glthread.c',
244         ]
245         
246         #
247         # Assembly sources
248         #
249         if gcc and env['machine'] == 'x86':
250                 env.Append(CPPDEFINES = [
251                         'USE_X86_ASM', 
252                         'USE_MMX_ASM',
253                         'USE_3DNOW_ASM',
254                         'USE_SSE_ASM',
255                 ])
256                 mesa_sources += [
257                         'x86/common_x86.c',
258                         'x86/x86_xform.c',
259                         'x86/3dnow.c',
260                         'x86/sse.c',
261                         'x86/common_x86_asm.S',
262                         'x86/x86_xform2.S',
263                         'x86/x86_xform3.S',
264                         'x86/x86_xform4.S',
265                         'x86/x86_cliptest.S',
266                         'x86/mmx_blend.S',
267                         'x86/3dnow_xform1.S',
268                         'x86/3dnow_xform2.S',
269                         'x86/3dnow_xform3.S',
270                         'x86/3dnow_xform4.S',
271                         'x86/3dnow_normal.S',
272                         'x86/sse_xform1.S',
273                         'x86/sse_xform2.S',
274                         'x86/sse_xform3.S',
275                         'x86/sse_xform4.S',
276                         'x86/sse_normal.S',
277                         'x86/read_rgba_span_x86.S',
278                 ]
279                 glapi_sources += [
280                         'x86/glapi_x86.S',
281                 ]
282         elif gcc and env['machine'] == 'x86_64':
283                 env.Append(CPPDEFINES = [
284                         'USE_X86_64_ASM', 
285                 ])
286                 mesa_sources += [
287                         'x86-64/x86-64.c',
288                         'x86-64/xform4.S',
289                 ]
290                 glapi_sources += [
291                         'x86-64/glapi_x86-64.S'
292                 ]
293         elif gcc and env['machine'] == 'ppc':
294                 env.Append(CPPDEFINES = [
295                         'USE_PPC_ASM', 
296                         'USE_VMX_ASM', 
297                 ])
298                 mesa_sources += [
299                         'ppc/common_ppc.c',
300                 ]
301                 glapi_sources += [
302                 ]
303         elif gcc and env['machine'] == 'sparc':
304                 mesa_sources += [
305                         'sparc/sparc.c',
306                         'sparc/clip.S',
307                         'sparc/norm.S',
308                         'sparc/xform.S',
309                 ]
310                 glapi_sources += [
311                         'sparc/glapi_sparc.S'
312                 ]
313         else:
314                 pass
315         
316         # Generate matypes.h
317         if gcc and env['machine'] in ('x86', 'x86_64'):
318                 # See http://www.scons.org/wiki/UsingCodeGenerators
319                 gen_matypes = env.Program(
320                         target = 'gen_matypes',
321                         source = 'x86/gen_matypes.c',
322                 )
323                 matypes = env.Command(
324                         'matypes.h',
325                         gen_matypes,
326                         gen_matypes[0].abspath + ' > $TARGET',
327                 )
328                 # Add the dir containing the generated header (somewhere inside  the
329                 # build dir) to the include path  
330                 env.Append(CPPPATH = [matypes[0].dir])
331         
332         #
333         # Libraries
334         # 
335
336         mesa = env.ConvenienceLibrary(
337                 target = 'mesa',
338                 source = mesa_sources,
339         )
340         Export('mesa')
341         
342         if not dri:
343                 glapi = env.ConvenienceLibrary(
344                         target = 'glapi',
345                         source = glapi_sources,
346                 )
347                 Export('glapi')
348