# This file is generated by gyp; do not edit.

include $(CLEAR_VARS)

LOCAL_MODULE_CLASS := GYP
LOCAL_MODULE := third_party_WebKit_Source_core_inspector_protocol_sources_gyp
LOCAL_MODULE_STEM := inspector_protocol_sources
LOCAL_MODULE_SUFFIX := .stamp
LOCAL_MODULE_TAGS := optional
gyp_intermediate_dir := $(call local-intermediates-dir)
gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared)

# Make sure our deps are built first.
GYP_TARGET_DEPENDENCIES := \
	$(call intermediates-dir-for,GYP,third_party_WebKit_Source_core_generate_inspector_protocol_version_gyp)/generate_inspector_protocol_version.stamp

### Rules for action "generateInspectorProtocolBackendSources":
$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp: gyp_local_path := $(LOCAL_PATH)
$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp: $(LOCAL_PATH)/third_party/WebKit/Source/core/inspector/CodeGeneratorInspector.py $(LOCAL_PATH)/third_party/WebKit/Source/core/inspector/CodeGeneratorInspectorStrings.py $(LOCAL_PATH)/third_party/WebKit/Source/devtools/protocol.json $(GYP_TARGET_DEPENDENCIES)
	@echo "Gyp action: Generating Inspector protocol backend sources from protocol.json ($@)"
	$(hide)cd $(gyp_local_path)/third_party/WebKit/Source/core; mkdir -p $(gyp_shared_intermediate_dir)/webkit; python inspector/CodeGeneratorInspector.py ../devtools/protocol.json --output_dir "$(gyp_shared_intermediate_dir)/webkit"

$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.h: $(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp ;
$(gyp_shared_intermediate_dir)/webkit/InspectorFrontend.cpp: $(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp ;
$(gyp_shared_intermediate_dir)/webkit/InspectorFrontend.h: $(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp ;
$(gyp_shared_intermediate_dir)/webkit/InspectorTypeBuilder.cpp: $(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp ;
$(gyp_shared_intermediate_dir)/webkit/InspectorTypeBuilder.h: $(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp ;


GYP_GENERATED_OUTPUTS := \
	$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.cpp \
	$(gyp_shared_intermediate_dir)/webkit/InspectorBackendDispatcher.h \
	$(gyp_shared_intermediate_dir)/webkit/InspectorFrontend.cpp \
	$(gyp_shared_intermediate_dir)/webkit/InspectorFrontend.h \
	$(gyp_shared_intermediate_dir)/webkit/InspectorTypeBuilder.cpp \
	$(gyp_shared_intermediate_dir)/webkit/InspectorTypeBuilder.h

# Make sure our deps and generated files are built first.
LOCAL_ADDITIONAL_DEPENDENCIES := $(GYP_TARGET_DEPENDENCIES) $(GYP_GENERATED_OUTPUTS)

### Rules for final target.
# Add target alias to "gyp_all_modules" target.
.PHONY: gyp_all_modules
gyp_all_modules: third_party_WebKit_Source_core_inspector_protocol_sources_gyp

# Alias gyp target name.
.PHONY: inspector_protocol_sources
inspector_protocol_sources: third_party_WebKit_Source_core_inspector_protocol_sources_gyp

LOCAL_MODULE_PATH := $(PRODUCT_OUT)/gyp_stamp
LOCAL_UNINSTALLABLE_MODULE := true

include $(BUILD_SYSTEM)/base_rules.mk

$(LOCAL_BUILT_MODULE): $(LOCAL_ADDITIONAL_DEPENDENCIES)
	$(hide) echo "Gyp timestamp: $@"
	$(hide) mkdir -p $(dir $@)
	$(hide) touch $@
