14df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#
24df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Copyright (C) 2017 The Android Open Source Project
34df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#
44df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Licensed under the Apache License, Version 2.0 (the "License");
54df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# you may not use this file except in compliance with the License.
64df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# You may obtain a copy of the License at
74df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#
84df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#      http://www.apache.org/licenses/LICENSE-2.0
94df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#
104df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Unless required by applicable law or agreed to in writing, software
114df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# distributed under the License is distributed on an "AS IS" BASIS,
124df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# See the License for the specific language governing permissions and
144df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# limitations under the License.
154df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#
164df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
174df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_PATH := $(call my-dir)
184df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
194df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiSPIRIT_SRCS := \
204df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	builder.cpp\
214df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	entity.cpp\
224df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	instructions.cpp\
234df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	module.cpp\
243f30b6202dd5ad6ff66959131d216405850ed152Yang Ni	pass.cpp\
253f30b6202dd5ad6ff66959131d216405850ed152Yang Ni	pass_queue.cpp\
264df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	transformer.cpp\
274df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	visitor.cpp\
284df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	word_stream.cpp\
294df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	word_stream_impl.cpp
304df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
314df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLIBNAME = libspirit
324df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
334df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiNDK_PREBUILTS := $(TOP)/prebuilts/ndk/r13
344df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiSPIRV_TOOLS_PATH := $(NDK_PREBUILTS)/sources/third_party/shaderc/third_party/spirv-tools
354df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiSPIRV_HEADERS_PATH := $(SPIRV_TOOLS_PATH)/external/spirv-headers
364df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiSPIRV_CORE_GRAMMAR := $(SPIRV_HEADERS_PATH)/include/spirv/1.1/spirv.core.grammar.json
374df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiGENERATOR := $(LOCAL_PATH)/generate.py
384df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
394df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Don't build for unbundled branches
404df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niifeq (,$(TARGET_BUILD_APPS))
414df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
424df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
434df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Host shared library libspirit.so
444df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
454df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
464df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(CLEAR_VARS)
474df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
484df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_SRC_FILES := $(SPIRIT_SRCS)
494df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
504df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE := $(LIBNAME)
514df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MULTILIB := first
524df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_CLASS := SHARED_LIBRARIES
53d8152c9ada89be8ab1ca242b3304c287ca3742fbYang NiLOCAL_IS_HOST_MODULE := true
544df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
554df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiPATH_TO_GENERATED := $(local-generated-sources-dir)
564df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiGEN := \
574df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	instructions_generated.h\
584df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	types_generated.h\
594df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	opcodes_generated.h\
604df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	instruction_dispatches_generated.h\
614df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	enum_dispatches_generated.h\
624df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	type_inst_dispatches_generated.h\
634df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	const_inst_dispatches_generated.h\
644df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	factory_methods_generated.h
654df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
664df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiFULL_GEN := $(addprefix $(PATH_TO_GENERATED)/,$(GEN))
674df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni$(FULL_GEN): $(SPIRV_CORE_GRAMMAR) $(GENERATOR)
684df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	$(GENERATOR) $< --$(notdir $(@:%_generated.h=%)) $@
694df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
704df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_GENERATED_SOURCES := $(FULL_GEN)
714df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
724df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
734df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
744df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) $(PATH_TO_GENERATED)
754df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
764df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(BUILD_HOST_SHARED_LIBRARY)
774df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
784df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
794df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Tests for host module word_stream
804df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
814df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
824df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(CLEAR_VARS)
834df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
844df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_SRC_FILES := \
854df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  word_stream.cpp \
864df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  word_stream_impl.cpp \
874df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  word_stream_test.cpp
884df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
894df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_STATIC_LIBRARIES := libgtest_host
904df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
914df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE := word_stream_test
924df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MULTILIB := first
934df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_TAGS := tests
944df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_CLASS := NATIVE_TESTS
95d8152c9ada89be8ab1ca242b3304c287ca3742fbYang NiLOCAL_IS_HOST_MODULE := true
964df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
974df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiPATH_TO_GENERATED := $(local-generated-sources-dir)
984df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiGEN := \
994df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	enum_dispatches_generated.h\
1004df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	types_generated.h
1014df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1024df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiFULL_GEN := $(addprefix $(PATH_TO_GENERATED)/,$(GEN))
1034df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni$(FULL_GEN): $(SPIRV_CORE_GRAMMAR) $(GENERATOR)
1044df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	$(GENERATOR) $< --$(notdir $(@:%_generated.h=%)) $@
1054df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1064df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_GENERATED_SOURCES := $(FULL_GEN)
1074df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1084df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
1094df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1104df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(BUILD_HOST_NATIVE_TEST)
1114df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1124df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
1134df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Tests for host module instructions
1144df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
1154df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1164df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(CLEAR_VARS)
1174df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1184df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_SRC_FILES := \
1194df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  entity.cpp \
1204df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  instructions.cpp \
1214df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  instructions_test.cpp \
1224df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  visitor.cpp \
1234df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  word_stream.cpp \
1244df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  word_stream_impl.cpp
1254df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1264df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_STATIC_LIBRARIES := libgtest_host
1274df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1284df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE := instructions_test
1294df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MULTILIB := first
1304df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_TAGS := tests
1314df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_CLASS := NATIVE_TESTS
132d8152c9ada89be8ab1ca242b3304c287ca3742fbYang NiLOCAL_IS_HOST_MODULE := true
1334df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1344df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiPATH_TO_GENERATED := $(local-generated-sources-dir)
1354df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiGEN := \
1364df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	enum_dispatches_generated.h\
1374df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	instruction_dispatches_generated.h\
1384df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	instructions_generated.h\
1394df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	types_generated.h\
1404df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	opcodes_generated.h
1414df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1424df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiFULL_GEN := $(addprefix $(PATH_TO_GENERATED)/,$(GEN))
1434df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni$(FULL_GEN): $(SPIRV_CORE_GRAMMAR) $(GENERATOR)
1444df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	$(GENERATOR) $< --$(notdir $(@:%_generated.h=%)) $@
1454df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1464df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_GENERATED_SOURCES := $(FULL_GEN)
1474df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1484df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
1494df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1504df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(BUILD_HOST_NATIVE_TEST)
1514df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1524df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
1533f30b6202dd5ad6ff66959131d216405850ed152Yang Ni# Tests for host module pass queue
1543f30b6202dd5ad6ff66959131d216405850ed152Yang Ni#=====================================================================
1553f30b6202dd5ad6ff66959131d216405850ed152Yang Ni
1563f30b6202dd5ad6ff66959131d216405850ed152Yang Niinclude $(CLEAR_VARS)
1573f30b6202dd5ad6ff66959131d216405850ed152Yang Ni
1583f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_SRC_FILES := \
1593f30b6202dd5ad6ff66959131d216405850ed152Yang Ni  pass.cpp \
1603f30b6202dd5ad6ff66959131d216405850ed152Yang Ni  pass_queue.cpp \
1613f30b6202dd5ad6ff66959131d216405850ed152Yang Ni  pass_queue_test.cpp \
1623f30b6202dd5ad6ff66959131d216405850ed152Yang Ni
1633f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_STATIC_LIBRARIES := libgtest_host
1643f30b6202dd5ad6ff66959131d216405850ed152Yang Ni
1653f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_SHARED_LIBRARIES := $(LIBNAME)
1663f30b6202dd5ad6ff66959131d216405850ed152Yang Ni
1673f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_MODULE := pass_queue_test
1683f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_MULTILIB := first
1693f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_MODULE_TAGS := tests
1703f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_MODULE_CLASS := NATIVE_TESTS
1713f30b6202dd5ad6ff66959131d216405850ed152Yang NiLOCAL_IS_HOST_MODULE := true
1723f30b6202dd5ad6ff66959131d216405850ed152Yang Ni
1733f30b6202dd5ad6ff66959131d216405850ed152Yang Niinclude $(BUILD_HOST_NATIVE_TEST)
1743f30b6202dd5ad6ff66959131d216405850ed152Yang Ni
1753f30b6202dd5ad6ff66959131d216405850ed152Yang Ni#=====================================================================
1764df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Tests for host shared library
1774df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
1784df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1794df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(CLEAR_VARS)
1804df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1814df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_SRC_FILES := \
1824df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  builder_test.cpp \
1834df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  module_test.cpp \
1844df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni  transformer_test.cpp \
1854df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1864df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_STATIC_LIBRARIES := libgtest_host
1874df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1884df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_SHARED_LIBRARIES := $(LIBNAME)
1894df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1904df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE := $(LIBNAME)_test
1914df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MULTILIB := first
1924df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_TAGS := tests
1934df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_CLASS := NATIVE_TESTS
194d8152c9ada89be8ab1ca242b3304c287ca3742fbYang NiLOCAL_IS_HOST_MODULE := true
1954df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1964df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(BUILD_HOST_NATIVE_TEST)
1974df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
1984df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
1994df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni# Device shared library libspirit.so
2004df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni#=====================================================================
2014df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2024df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(CLEAR_VARS)
2034df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2044df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_SRC_FILES := $(SPIRIT_SRCS)
2054df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2064df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_C_INCLUDES := $(SPIRIT_INCLUDES)
2074df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2084df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE := $(LIBNAME)
2094df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_MODULE_CLASS := SHARED_LIBRARIES
2104df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2114df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_SHARED_LIBRARIES +=
2124df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2134df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiPATH_TO_GENERATED := $(local-generated-sources-dir)
2144df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2154df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiGEN := \
2164df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	instructions_generated.h\
2174df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	types_generated.h\
2184df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	opcodes_generated.h\
2194df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	instruction_dispatches_generated.h\
2204df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	enum_dispatches_generated.h\
2214df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	type_inst_dispatches_generated.h\
2224df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	const_inst_dispatches_generated.h\
2234df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	factory_methods_generated.h
2244df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2254df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiFULL_GEN := $(addprefix $(PATH_TO_GENERATED)/,$(GEN))
2264df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni$(FULL_GEN): $(SPIRV_CORE_GRAMMAR) $(GENERATOR)
2274df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni	$(GENERATOR) $< --$(notdir $(@:%_generated.h=%)) $@
2284df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2294df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_GENERATED_SOURCES := $(FULL_GEN)
2304df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2314df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_C_INCLUDES += $(PATH_TO_GENERATED)
2324df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2334df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_CFLAGS := -Wno-error=non-virtual-dtor
2344df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2354df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang NiLOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) $(PATH_TO_GENERATED)
2364df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2374df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niinclude $(BUILD_SHARED_LIBRARY)
2384df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Ni
2394df77d18bf57187f8e7142c6f7a70a9cdd3d581eYang Niendif # Don't build in unbundled branches
240