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

include $(CLEAR_VARS)

LOCAL_MODULE_CLASS := GYP
LOCAL_MODULE := android_webview_jarjar_ui_resources
LOCAL_MODULE_SUFFIX := .stamp
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_TARGET_ARCH := $(TARGET_$(GYP_VAR_PREFIX)ARCH)
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 :=

### Rules for action "jarjar resources":
$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp: gyp_local_path := $(LOCAL_PATH)
$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp: gyp_var_prefix := $(GYP_VAR_PREFIX)
$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp: gyp_intermediate_dir := $(abspath $(gyp_intermediate_dir))
$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp: gyp_shared_intermediate_dir := $(abspath $(gyp_shared_intermediate_dir))
$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp: export PATH := $(subst $(ANDROID_BUILD_PATHS),,$(PATH))
$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp: $(LOCAL_PATH)/build/android/gyp/util/build_utils.py $(LOCAL_PATH)/build/android/gyp/jarjar_resources.py $(LOCAL_PATH)/ui/android/java/res/drawable-hdpi/color_picker_advanced_select_handle.png $(LOCAL_PATH)/ui/android/java/res/drawable-hdpi/dropdown_popup_background_down.9.png $(LOCAL_PATH)/ui/android/java/res/drawable-hdpi/dropdown_popup_background_up.9.png $(LOCAL_PATH)/ui/android/java/res/drawable-xhdpi/color_picker_advanced_select_handle.png $(LOCAL_PATH)/ui/android/java/res/drawable-xhdpi/dropdown_popup_background_down.9.png $(LOCAL_PATH)/ui/android/java/res/drawable-xhdpi/dropdown_popup_background_up.9.png $(LOCAL_PATH)/ui/android/java/res/drawable/color_button_background.xml $(LOCAL_PATH)/ui/android/java/res/drawable/color_picker_border.xml $(LOCAL_PATH)/ui/android/java/res/drawable/dropdown_popup_background.xml $(LOCAL_PATH)/ui/android/java/res/layout/color_picker_advanced_component.xml $(LOCAL_PATH)/ui/android/java/res/layout/color_picker_dialog_content.xml $(LOCAL_PATH)/ui/android/java/res/layout/color_picker_dialog_title.xml $(LOCAL_PATH)/ui/android/java/res/layout/date_time_suggestion.xml $(LOCAL_PATH)/ui/android/java/res/layout/dropdown_item.xml $(LOCAL_PATH)/ui/android/java/res/values-v17/styles.xml $(LOCAL_PATH)/ui/android/java/res/values/strings.xml $(LOCAL_PATH)/ui/android/java/res/values/colors.xml $(LOCAL_PATH)/ui/android/java/res/values/dimens.xml $(LOCAL_PATH)/ui/android/java/res/values/values.xml $(LOCAL_PATH)/ui/android/java/res/drawable-mdpi/color_picker_advanced_select_handle.png $(LOCAL_PATH)/ui/android/java/res/drawable-mdpi/dropdown_popup_background_down.9.png $(LOCAL_PATH)/ui/android/java/res/drawable-mdpi/dropdown_popup_background_up.9.png $(GYP_TARGET_DEPENDENCIES)
	@echo "Gyp action: Copying and jar-jaring resources for android_webview_jarjar_ui_resources ($@)"
	$(hide)cd $(gyp_local_path)/android_webview; mkdir -p $(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources; python ../build/android/gyp/jarjar_resources.py --input-dir ../ui/android/java/res --output-dir "$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_res" --rules-path ../android_webview/build/jarjar-rules.txt --stamp "$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp"



GYP_GENERATED_OUTPUTS := \
	$(gyp_shared_intermediate_dir)/android_webview_jarjar_ui_resources/jarjar_resources.stamp

# 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: android_webview_jarjar_ui_resources

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 :=
