04b771a7e16e3af3c0787b8b4d49dcce29bb36f6
[profile/ivi/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         # Includes
12         env.Append(CPPPATH = [
13                 '#/src/mesa',
14                 '#/src/mesa/main',
15         ])
16         
17         if gcc:
18                 env.Append(CFLAGS = [
19                         '-std=c99',
20                 ])
21         
22         # x86 assembly
23         if x86 and gcc:
24                 env.Append(CPPDEFINES = [
25                         'USE_X86_ASM', 
26                         'USE_MMX_ASM',
27                         'USE_3DNOW_ASM',
28                         'USE_SSE_ASM',
29                 ])
30         
31         
32         #######################################################################
33         # Core sources
34         
35         MAIN_SOURCES = [
36                 'main/api_arrayelt.c',
37                 'main/api_loopback.c',
38                 'main/api_noop.c',
39                 'main/api_validate.c',
40                 'main/accum.c',
41                 'main/attrib.c',
42                 'main/arrayobj.c',
43                 'main/blend.c',
44                 'main/bufferobj.c',
45                 'main/buffers.c',
46                 'main/clip.c',
47                 'main/colortab.c',
48                 'main/context.c',
49                 'main/convolve.c',
50                 'main/debug.c',
51                 'main/depth.c',
52                 'main/depthstencil.c',
53                 'main/dlist.c',
54                 'main/drawpix.c',
55                 'main/enable.c',
56                 'main/enums.c',
57                 'main/eval.c',
58                 'main/execmem.c',
59                 'main/extensions.c',
60                 'main/fbobject.c',
61                 'main/feedback.c',
62                 'main/ffvertex_prog.c',
63                 'main/fog.c',
64                 'main/framebuffer.c',
65                 'main/get.c',
66                 'main/getstring.c',
67                 'main/hash.c',
68                 'main/hint.c',
69                 'main/histogram.c',
70                 'main/image.c',
71                 'main/imports.c',
72                 'main/light.c',
73                 'main/lines.c',
74                 'main/matrix.c',
75                 'main/mipmap.c',
76                 'main/mm.c',
77                 'main/pixel.c',
78                 'main/points.c',
79                 'main/polygon.c',
80                 'main/queryobj.c',
81                 'main/rastpos.c',
82                 'main/rbadaptors.c',
83                 'main/renderbuffer.c',
84                 'main/shaders.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/texenvprogram.c',
91                 'main/texformat.c',
92                 'main/teximage.c',
93                 'main/texobj.c',
94                 'main/texrender.c',
95                 'main/texstate.c',
96                 'main/texstore.c',
97                 'main/varray.c',
98                 'main/vtxfmt.c',
99         ]
100         
101         GLAPI_SOURCES = [
102                 'main/dispatch.c',
103                 'glapi/glapi.c',
104                 'glapi/glthread.c',
105         ]
106         
107         MATH_SOURCES = [
108                 'math/m_debug_clip.c',
109                 'math/m_debug_norm.c',
110                 'math/m_debug_xform.c',
111                 'math/m_eval.c',
112                 'math/m_matrix.c',
113                 'math/m_translate.c',
114                 'math/m_vector.c',
115                 'math/m_xform.c',
116         ]
117         
118         VBO_SOURCES = [
119                 'vbo/vbo_context.c',
120                 'vbo/vbo_exec.c',
121                 'vbo/vbo_exec_api.c',
122                 'vbo/vbo_exec_array.c',
123                 'vbo/vbo_exec_draw.c',
124                 'vbo/vbo_exec_eval.c',
125                 'vbo/vbo_rebase.c',
126                 'vbo/vbo_split.c',
127                 'vbo/vbo_split_copy.c',
128                 'vbo/vbo_split_inplace.c',
129                 'vbo/vbo_save.c',
130                 'vbo/vbo_save_api.c',
131                 'vbo/vbo_save_draw.c',
132                 'vbo/vbo_save_loopback.c',
133         ]
134         
135         VF_SOURCES = [
136                 'vf/vf.c',
137                 'vf/vf_generic.c',
138                 'vf/vf_sse.c',
139         ]
140         
141         STATETRACKER_SOURCES = [
142                 'state_tracker/st_atom.c',
143                 'state_tracker/st_atom_blend.c',
144                 'state_tracker/st_atom_clip.c',
145                 'state_tracker/st_atom_constbuf.c',
146                 'state_tracker/st_atom_depth.c',
147                 'state_tracker/st_atom_framebuffer.c',
148                 'state_tracker/st_atom_pixeltransfer.c',
149                 'state_tracker/st_atom_sampler.c',
150                 'state_tracker/st_atom_scissor.c',
151                 'state_tracker/st_atom_shader.c',
152                 'state_tracker/st_atom_rasterizer.c',
153                 'state_tracker/st_atom_stipple.c',
154                 'state_tracker/st_atom_texture.c',
155                 'state_tracker/st_atom_viewport.c',
156                 'state_tracker/st_cb_accum.c',
157                 'state_tracker/st_cb_bitmap.c',
158                 'state_tracker/st_cb_blit.c',
159                 'state_tracker/st_cb_bufferobjects.c',
160                 'state_tracker/st_cb_clear.c',
161                 'state_tracker/st_cb_flush.c',
162                 'state_tracker/st_cb_drawpixels.c',
163                 'state_tracker/st_cb_fbo.c',
164                 'state_tracker/st_cb_feedback.c',
165                 'state_tracker/st_cb_program.c',
166                 'state_tracker/st_cb_queryobj.c',
167                 'state_tracker/st_cb_rasterpos.c',
168                 'state_tracker/st_cb_readpixels.c',
169                 'state_tracker/st_cb_strings.c',
170                 'state_tracker/st_cb_texture.c',
171                 'state_tracker/st_context.c',
172                 'state_tracker/st_debug.c',
173                 'state_tracker/st_draw.c',
174                 'state_tracker/st_extensions.c',
175                 'state_tracker/st_format.c',
176                 'state_tracker/st_framebuffer.c',
177                 'state_tracker/st_gen_mipmap.c',
178                 'state_tracker/st_mesa_to_tgsi.c',
179                 'state_tracker/st_program.c',
180                 'state_tracker/st_texture.c',
181         ]
182         
183         SHADER_SOURCES = [
184                 'shader/arbprogparse.c',
185                 'shader/arbprogram.c',
186                 'shader/atifragshader.c',
187                 'shader/grammar/grammar_mesa.c',
188                 'shader/nvfragparse.c',
189                 'shader/nvprogram.c',
190                 'shader/nvvertparse.c',
191                 'shader/program.c',
192                 'shader/prog_cache.c',
193                 'shader/prog_debug.c',
194                 'shader/prog_execute.c',
195                 'shader/prog_instruction.c',
196                 'shader/prog_parameter.c',
197                 'shader/prog_print.c',
198                 'shader/prog_statevars.c',
199                 'shader/prog_uniform.c',
200                 'shader/programopt.c',
201                 'shader/shader_api.c',
202         ]
203         
204         SLANG_SOURCES = [
205                 'shader/slang/slang_builtin.c',
206                 'shader/slang/slang_codegen.c',
207                 'shader/slang/slang_compile.c',
208                 'shader/slang/slang_compile_function.c',
209                 'shader/slang/slang_compile_operation.c',
210                 'shader/slang/slang_compile_struct.c',
211                 'shader/slang/slang_compile_variable.c',
212                 'shader/slang/slang_emit.c',
213                 'shader/slang/slang_ir.c',
214                 'shader/slang/slang_label.c',
215                 'shader/slang/slang_library_noise.c',
216                 'shader/slang/slang_link.c',
217                 'shader/slang/slang_log.c',
218                 'shader/slang/slang_mem.c',
219                 'shader/slang/slang_preprocess.c',
220                 'shader/slang/slang_print.c',
221                 'shader/slang/slang_simplify.c',
222                 'shader/slang/slang_storage.c',
223                 'shader/slang/slang_typeinfo.c',
224                 'shader/slang/slang_vartable.c',
225                 'shader/slang/slang_utility.c',
226         ]
227         
228         
229         #######################################################################
230         # Assembly sources
231         
232         ASM_C_SOURCES = [
233                 'x86/common_x86.c',
234                 'x86/x86.c',
235                 'x86/3dnow.c',
236                 'x86/sse.c',
237                 'sparc/sparc.c',
238                 'ppc/common_ppc.c',
239                 'x86-64/x86-64.c',
240         ]
241         
242         X86_SOURCES = [
243                 'x86/common_x86_asm.S',
244                 'x86/x86_xform2.S',
245                 'x86/x86_xform3.S',
246                 'x86/x86_xform4.S',
247                 'x86/x86_cliptest.S',
248                 'x86/mmx_blend.S',
249                 'x86/3dnow_xform1.S',
250                 'x86/3dnow_xform2.S',
251                 'x86/3dnow_xform3.S',
252                 'x86/3dnow_xform4.S',
253                 'x86/3dnow_normal.S',
254                 'x86/sse_xform1.S',
255                 'x86/sse_xform2.S',
256                 'x86/sse_xform3.S',
257                 'x86/sse_xform4.S',
258                 'x86/sse_normal.S',
259                 'x86/read_rgba_span_x86.S',
260         ]
261         
262         X86_API = [
263                 'x86/glapi_x86.S',
264         ]
265         
266         X86_64_SOURCES = [
267                 'x86-64/xform4.S',
268         ]
269         
270         X86_64_API = [
271                 'x86-64/glapi_x86-64.S',
272         ]
273         
274         SPARC_SOURCES = [
275                 'sparc/clip.S',
276                 'sparc/norm.S',
277                 'sparc/xform.S',
278         ]
279         
280         SPARC_API = [
281                 'sparc/glapi_sparc.S',
282         ]
283         
284         if x86 and gcc:
285                 ASM_SOURCES = ASM_C_SOURCES + X86_SOURCES 
286                 API_SOURCES = X86_API
287         else:
288                 ASM_SOURCES = []
289                 API_SOURCES = []
290         
291         SOLO_SOURCES = \
292                 MAIN_SOURCES + \
293                 MATH_SOURCES + \
294                 VBO_SOURCES + \
295                 VF_SOURCES + \
296                 STATETRACKER_SOURCES + \
297                 SHADER_SOURCES + \
298                 ASM_SOURCES + \
299                 SLANG_SOURCES
300         
301         mesa = env.ConvenienceLibrary(
302                 target = 'mesa',
303                 source = SOLO_SOURCES,
304         )
305         Export('mesa')
306         
307         if not dri:
308                 glapi = env.ConvenienceLibrary(
309                         target = 'glapi',
310                         source = GLAPI_SOURCES + API_SOURCES,
311                 )
312                 Export('glapi')