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

include $(CLEAR_VARS)

LOCAL_MODULE_CLASS := GYP
LOCAL_MODULE := third_party_WebKit_Source_devtools_generate_devtools_grd_gyp
LOCAL_MODULE_STEM := generate_devtools_grd
LOCAL_MODULE_SUFFIX := .stamp
LOCAL_MODULE_TARGET_ARCH := $(TARGET_$(GYP_VAR_PREFIX)ARCH)
LOCAL_SDK_VERSION := 21
gyp_intermediate_dir := $(call local-intermediates-dir,,$(GYP_VAR_PREFIX))
gyp_shared_intermediate_dir := $(call intermediates-dir-for,GYP,shared,,,$(GYP_VAR_PREFIX))

# Make sure our deps are built first.
GYP_TARGET_DEPENDENCIES := \
	$(call intermediates-dir-for,GYP,third_party_WebKit_Source_devtools_devtools_extension_api_gyp,,,$(GYP_VAR_PREFIX))/devtools_extension_api.stamp \
	$(call intermediates-dir-for,GYP,third_party_WebKit_Source_devtools_devtools_frontend_resources_gyp,,,$(GYP_VAR_PREFIX))/devtools_frontend_resources.stamp

### Rules for action "generate_devtools_grd":
$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd: gyp_local_path := $(LOCAL_PATH)
$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd: gyp_var_prefix := $(GYP_VAR_PREFIX)
$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd: $(LOCAL_PATH)/third_party/WebKit/Source/devtools/scripts/generate_devtools_grd.py $(gyp_shared_intermediate_dir)/resources/inspector/devtools.css $(gyp_shared_intermediate_dir)/resources/inspector/devtools.html $(gyp_shared_intermediate_dir)/resources/inspector/devtools.js $(gyp_shared_intermediate_dir)/resources/inspector/toolbox.css $(gyp_shared_intermediate_dir)/resources/inspector/toolbox.html $(gyp_shared_intermediate_dir)/resources/inspector/toolbox.js $(gyp_shared_intermediate_dir)/resources/inspector/audits_module.js $(gyp_shared_intermediate_dir)/resources/inspector/console_module.js $(gyp_shared_intermediate_dir)/resources/inspector/devices_module.js $(gyp_shared_intermediate_dir)/resources/inspector/documentation_module.js $(gyp_shared_intermediate_dir)/resources/inspector/elements_module.js $(gyp_shared_intermediate_dir)/resources/inspector/heap_snapshot_worker_module.js $(gyp_shared_intermediate_dir)/resources/inspector/layers_module.js $(gyp_shared_intermediate_dir)/resources/inspector/network_module.js $(gyp_shared_intermediate_dir)/resources/inspector/profiler_module.js $(gyp_shared_intermediate_dir)/resources/inspector/promises_module.js $(gyp_shared_intermediate_dir)/resources/inspector/resources_module.js $(gyp_shared_intermediate_dir)/resources/inspector/script_formatter_worker_module.js $(gyp_shared_intermediate_dir)/resources/inspector/settings_module.js $(gyp_shared_intermediate_dir)/resources/inspector/source_frame_module.js $(gyp_shared_intermediate_dir)/resources/inspector/sources_module.js $(gyp_shared_intermediate_dir)/resources/inspector/temp_storage_shared_worker_module.js $(gyp_shared_intermediate_dir)/resources/inspector/timeline_module.js $(gyp_shared_intermediate_dir)/resources/inspector/devtools_extension_api.js $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/applicationCache.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/back.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/breakpoint.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/breakpoint_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/breakpointConditional.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/breakpointConditional_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/checker.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/cookie.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/chromeDisabledSelect.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/chromeDisabledSelect_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/chromeLeft.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/chromeMiddle.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/chromeRight.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/chromeSelect.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/chromeSelect_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/database.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/databaseTable.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/deleteIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/domain.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/errorWave.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/errorWave_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/fileSystem.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/forward.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/frame.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/graphLabelCalloutLeft.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/graphLabelCalloutRight.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/indexedDB.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/indexedDBIndex.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/indexedDBObjectStore.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/localStorage.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/navigationControls.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/navigationControls_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/paneAddButtons.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/paneElementStateButtons.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/paneFilterButtons.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/paneRefreshButtons.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/popoverArrows.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/popoverBackground.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/profileGroupIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/profileIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/profileSmallIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/radioDot.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/resourceCSSIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/resourceDocumentIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/resourceDocumentIconSmall.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/resourceJSIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/resourcePlainIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/resourcePlainIconSmall.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/resourcesTimeGraphIcon.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/responsiveDesign.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/responsiveDesign_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/searchNext.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/searchPrev.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/sessionStorage.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/settingsListRemove.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/settingsListRemove_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/statusbarButtonGlyphs.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/statusbarButtonGlyphs_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/statusbarResizerHorizontal.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/statusbarResizerVertical.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/thumbActiveHoriz.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/thumbActiveVert.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/thumbHoriz.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/thumbHoverHoriz.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/thumbHoverVert.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/thumbVert.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/toolbarItemSelected.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/touchCursor.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/touchCursor_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/transformControls.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/front_end/Images/transformControls_2x.png $(LOCAL_PATH)/third_party/WebKit/Source/devtools/devtools_static_grd_files.tmp $(GYP_TARGET_DEPENDENCIES)
	@echo "Gyp action: third_party_WebKit_Source_devtools_devtools_gyp_generate_devtools_grd_target_generate_devtools_grd ($@)"
	$(hide)cd $(gyp_local_path)/third_party/WebKit/Source/devtools; mkdir -p $(gyp_shared_intermediate_dir)/devtools; python scripts/generate_devtools_grd.py "$(gyp_shared_intermediate_dir)/resources/inspector/devtools.css" "$(gyp_shared_intermediate_dir)/resources/inspector/devtools.html" "$(gyp_shared_intermediate_dir)/resources/inspector/devtools.js" "$(gyp_shared_intermediate_dir)/resources/inspector/toolbox.css" "$(gyp_shared_intermediate_dir)/resources/inspector/toolbox.html" "$(gyp_shared_intermediate_dir)/resources/inspector/toolbox.js" "$(gyp_shared_intermediate_dir)/resources/inspector/audits_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/console_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/devices_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/documentation_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/elements_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/heap_snapshot_worker_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/layers_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/network_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/profiler_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/promises_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/resources_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/script_formatter_worker_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/settings_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/source_frame_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/sources_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/temp_storage_shared_worker_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/timeline_module.js" "$(gyp_shared_intermediate_dir)/resources/inspector/devtools_extension_api.js" --static_files_list devtools_static_grd_files.tmp --relative_path_dirs "$(gyp_shared_intermediate_dir)/resources/inspector" front_end --images front_end/Images --output "$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd"



GYP_GENERATED_OUTPUTS := \
	$(gyp_shared_intermediate_dir)/devtools/devtools_resources.grd

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

### Rules for final target.
### Set directly by aosp_build_settings.
LOCAL_CLANG := false
LOCAL_NDK_STL_VARIANT := stlport_static

# Add target alias to "gyp_all_modules" target.
.PHONY: gyp_all_modules
gyp_all_modules: third_party_WebKit_Source_devtools_generate_devtools_grd_gyp

# Alias gyp target name.
.PHONY: generate_devtools_grd
generate_devtools_grd: third_party_WebKit_Source_devtools_generate_devtools_grd_gyp

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

include $(BUILD_SYSTEM)/base_rules.mk

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

LOCAL_2ND_ARCH_VAR_PREFIX :=
