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-intermediates-dir
)
38 ifneq ($(LOCAL_IS_HOST_MODULE
),true
)
39 sources
+= builtin_function.
cpp
42 LOCAL_SRC_FILES
:= $(filter-out $(sources
), $(LOCAL_SRC_FILES
))
44 LOCAL_C_INCLUDES
+= $(intermediates
) $(intermediates
)/glcpp
$(MESA_TOP
)/src
/glsl
/glcpp
46 sources
:= $(addprefix $(intermediates
)/, $(sources
))
47 LOCAL_GENERATED_SOURCES
+= $(sources
)
49 define local-l-or-ll-to-c-or-cpp
51 @echo
"Mesa Lex: $(PRIVATE_MODULE) <= $<"
52 $(hide
) $(LEX
) --nounistd
-o
$@
$<
55 define local-y-to-c-and-h
57 @echo
"Mesa Yacc: $(PRIVATE_MODULE) <= $<"
58 $(hide
) $(YACC
) -o
$@
$<
61 define local-yy-to-cpp-and-h
63 @echo
"Mesa Yacc: $(PRIVATE_MODULE) <= $<"
64 $(hide
) $(YACC
) -p
"_mesa_glsl_" -o
$@
$<
65 touch
$(@
:$1=$(YACC_HEADER_SUFFIX
))
66 echo
'#ifndef '$(@F
:$1=_h
) > $(@
:$1=.h
)
67 echo
'#define '$(@F
:$1=_h
) >> $(@
:$1=.h
)
68 cat
$(@
:$1=$(YACC_HEADER_SUFFIX
)) >> $(@
:$1=.h
)
69 echo
'#endif' >> $(@
:$1=.h
)
70 rm -f
$(@
:$1=$(YACC_HEADER_SUFFIX
))
73 $(intermediates
)/glsl_lexer.
cpp: $(LOCAL_PATH
)/glsl_lexer.ll
74 $(call local-l-or-ll-to-c-or-cpp
)
76 $(intermediates
)/glsl_parser.
cpp: $(LOCAL_PATH
)/glsl_parser.yy
77 $(call local-yy-to-cpp-and-h
,.
cpp)
79 $(intermediates
)/glcpp
/glcpp-lex.c
: $(LOCAL_PATH
)/glcpp
/glcpp-lex.l
80 $(call local-l-or-ll-to-c-or-cpp
)
82 $(intermediates
)/glcpp
/glcpp-parse.c
: $(LOCAL_PATH
)/glcpp
/glcpp-parse.y
83 $(call local-y-to-c-and-h
)
85 BUILTIN_COMPILER
:= $(BUILD_OUT_EXECUTABLES
)/mesa_builtin_compiler
$(BUILD_EXECUTABLE_SUFFIX
)
87 builtin_function_deps
:= \
88 $(LOCAL_PATH
)/builtins
/tools
/generate_builtins.py \
89 $(LOCAL_PATH
)/builtins
/tools
/texture_builtins.py \
91 $(wildcard $(LOCAL_PATH
)/builtins
/profiles
/*) \
92 $(wildcard $(LOCAL_PATH
)/builtins
/ir
/*)
94 $(intermediates
)/builtin_function.
cpp: PRIVATE_SCRIPT
:= $(MESA_PYTHON2
) $(LOCAL_PATH
)/builtins
/tools
/generate_builtins.py
95 $(intermediates
)/builtin_function.
cpp: $(builtin_function_deps
)
97 @echo
"Gen GLSL: $(PRIVATE_MODULE) <= $(notdir $@)"
98 $(hide
) $(PRIVATE_SCRIPT
) $(BUILTIN_COMPILER
) > $@ ||
rm -f
$@