1 # Mesa 3-D graphics library
3 # Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
4 # Copyright (C) 2010-2011 LunarG Inc.
6 # Permission is hereby granted, free of charge, to any person obtaining a
7 # copy of this software and associated documentation files (the "Software"),
8 # to deal in the Software without restriction, including without limitation
9 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 # and/or sell copies of the Software, and to permit persons to whom the
11 # Software is furnished to do so, subject to the following conditions:
13 # The above copyright notice and this permission notice shall be included
14 # in all copies or substantial portions of the Software.
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 # DEALINGS IN THE SOFTWARE.
24 # included by glsl Android.mk for source generation
26 ifeq ($(LOCAL_MODULE_CLASS
),)
27 LOCAL_MODULE_CLASS
:= STATIC_LIBRARIES
30 intermediates
:= $(call local-generated-sources-dir
)
32 LOCAL_SRC_FILES
:= $(LOCAL_SRC_FILES
)
35 $(intermediates
)/glcpp \
36 $(intermediates
)/nir \
37 $(MESA_TOP
)/src
/glsl
/glcpp \
38 $(MESA_TOP
)/src
/glsl
/nir
40 LOCAL_EXPORT_C_INCLUDE_DIRS
+= \
43 LOCAL_GENERATED_SOURCES
+= $(addprefix $(intermediates
)/, \
44 $(LIBGLCPP_GENERATED_FILES
) \
45 $(NIR_GENERATED_FILES
) \
46 $(LIBGLSL_GENERATED_CXX_FILES
))
48 define local-l-or-ll-to-c-or-cpp
50 @echo
"Mesa Lex: $(PRIVATE_MODULE) <= $<"
51 $(hide
) $(LEX
) --nounistd
-o
$@
$<
54 define glsl_local-y-to-c-and-h
56 @echo
"Mesa Yacc: $(PRIVATE_MODULE) <= $<"
57 $(hide
) $(YACC
) -o
$@
-p
"glcpp_parser_" $<
60 define local-yy-to-cpp-and-h
62 @echo
"Mesa Yacc: $(PRIVATE_MODULE) <= $<"
63 $(hide
) $(YACC
) -p
"_mesa_glsl_" -o
$@
$<
64 touch
$(@
:$1=$(YACC_HEADER_SUFFIX
))
65 echo
'#ifndef '$(@F
:$1=_h
) > $(@
:$1=.h
)
66 echo
'#define '$(@F
:$1=_h
) >> $(@
:$1=.h
)
67 cat
$(@
:$1=$(YACC_HEADER_SUFFIX
)) >> $(@
:$1=.h
)
68 echo
'#endif' >> $(@
:$1=.h
)
69 rm -f
$(@
:$1=$(YACC_HEADER_SUFFIX
))
72 $(intermediates
)/glsl_lexer.
cpp: $(LOCAL_PATH
)/glsl_lexer.ll
73 $(call local-l-or-ll-to-c-or-cpp
)
75 $(intermediates
)/glsl_parser.
cpp: $(LOCAL_PATH
)/glsl_parser.yy
76 $(call local-yy-to-cpp-and-h
,.
cpp)
78 $(intermediates
)/glcpp
/glcpp-lex.c
: $(LOCAL_PATH
)/glcpp
/glcpp-lex.l
79 $(call local-l-or-ll-to-c-or-cpp
)
81 $(intermediates
)/glcpp
/glcpp-parse.c
: $(LOCAL_PATH
)/glcpp
/glcpp-parse.y
82 $(call glsl_local-y-to-c-and-h
)
84 nir_builder_opcodes_gen
:= $(LOCAL_PATH
)/nir
/nir_builder_opcodes_h.py
85 nir_builder_opcodes_deps
:= \
86 $(LOCAL_PATH
)/nir
/nir_opcodes.py \
87 $(LOCAL_PATH
)/nir
/nir_builder_opcodes_h.py
89 $(intermediates
)/nir
/nir_builder_opcodes.h
: $(nir_builder_opcodes_deps
)
91 $(hide
) $(MESA_PYTHON2
) $(nir_builder_opcodes_gen
) $< > $@
93 nir_constant_expressions_gen
:= $(LOCAL_PATH
)/nir
/nir_constant_expressions.py
94 nir_constant_expressions_deps
:= \
95 $(LOCAL_PATH
)/nir
/nir_opcodes.py \
96 $(LOCAL_PATH
)/nir
/nir_constant_expressions.py
98 $(intermediates
)/nir
/nir_constant_expressions.c
: $(nir_constant_expressions_deps
)
100 $(hide
) $(MESA_PYTHON2
) $(nir_constant_expressions_gen
) $< > $@
102 nir_opcodes_h_gen
:= $(LOCAL_PATH
)/nir
/nir_opcodes_h.py
103 nir_opcodes_h_deps
:= \
104 $(LOCAL_PATH
)/nir
/nir_opcodes.py \
105 $(LOCAL_PATH
)/nir
/nir_opcodes_h.py
107 $(intermediates
)/nir
/nir_opcodes.h
: $(nir_opcodes_h_deps
)
109 $(hide
) $(MESA_PYTHON2
) $(nir_opcodes_h_gen
) $< > $@
111 $(LOCAL_PATH
)/nir
/nir.h
: $(intermediates
)/nir
/nir_opcodes.h
113 nir_opcodes_c_gen
:= $(LOCAL_PATH
)/nir
/nir_opcodes_c.py
114 nir_opcodes_c_deps
:= \
115 $(LOCAL_PATH
)/nir
/nir_opcodes.py \
116 $(LOCAL_PATH
)/nir
/nir_opcodes_c.py
118 $(intermediates
)/nir
/nir_opcodes.c
: $(nir_opcodes_c_deps
)
120 $(hide
) $(MESA_PYTHON2
) $(nir_opcodes_c_gen
) $< > $@
122 nir_opt_algebraic_gen
:= $(LOCAL_PATH
)/nir
/nir_opt_algebraic.py
123 nir_opt_algebraic_deps
:= \
124 $(LOCAL_PATH
)/nir
/nir_opt_algebraic.py \
125 $(LOCAL_PATH
)/nir
/nir_algebraic.py
127 $(intermediates
)/nir
/nir_opt_algebraic.c
: $(nir_opt_algebraic_deps
)
129 $(hide
) $(MESA_PYTHON2
) $(nir_opt_algebraic_gen
) $< > $@