| ## |
| ## Copyright 2009, The Android Open Source Project |
| ## |
| ## Redistribution and use in source and binary forms, with or without |
| ## modification, are permitted provided that the following conditions |
| ## are met: |
| ## * Redistributions of source code must retain the above copyright |
| ## notice, this list of conditions and the following disclaimer. |
| ## * Redistributions in binary form must reproduce the above copyright |
| ## notice, this list of conditions and the following disclaimer in the |
| ## documentation and/or other materials provided with the distribution. |
| ## |
| ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY |
| ## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| ## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
| ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| ## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| ## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| ## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| ## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| ## |
| |
| # CSS property names and value keywords |
| |
| GEN := $(intermediates)/css/CSSPropertyNames.h |
| $(GEN): SCRIPT := $(LOCAL_PATH)/css/makeprop.pl |
| ifeq ($(ENABLE_SVG),true) |
| $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/SVGCSSPropertyNames.in $(LOCAL_PATH)/css/AndroidCSSPropertyNames.in |
| else |
| $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/AndroidCSSPropertyNames.in |
| endif |
| @echo "Generating CSSPropertyNames.h <= CSSPropertyNames.in" |
| @mkdir -p $(dir $@) |
| @cat $< > $(dir $@)/$(notdir $<) |
| @cat $^ > $(@:%.h=%.in) |
| @cp -f $(SCRIPT) $(dir $@) |
| @cd $(dir $@) ; perl ./$(notdir $(SCRIPT)) |
| LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp) |
| |
| # We also need the .cpp files, which are generated as side effects of the |
| # above rules. Specifying this explicitly makes -j2 work. |
| $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/css/%.cpp : $(intermediates)/css/%.h |
| |
| |
| GEN := $(intermediates)/css/CSSValueKeywords.h |
| $(GEN): SCRIPT := $(LOCAL_PATH)/css/makevalues.pl |
| $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/SVGCSSValueKeywords.in |
| @echo "Generating CSSValueKeywords.h <= CSSValueKeywords.in" |
| @mkdir -p $(dir $@) |
| @cp -f $(SCRIPT) $(dir $@) |
| ifeq ($(ENABLE_SVG),true) |
| @perl -ne 'print lc' $^ > $(@:%.h=%.in) |
| else |
| @perl -ne 'print lc' $< > $(@:%.h=%.in) |
| endif |
| @cd $(dir $@); perl makevalues.pl |
| LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp) |
| |
| # We also need the .cpp files, which are generated as side effects of the |
| # above rules. Specifying this explicitly makes -j2 work. |
| $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/css/%.cpp : $(intermediates)/css/%.h |
| |
| |
| # DOCTYPE strings |
| |
| GEN := $(intermediates)/html/DocTypeStrings.cpp |
| $(GEN): SCRIPT := $(LOCAL_PATH)/make-hash-tools.pl |
| $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) $(dir $@) $< |
| $(GEN): $(LOCAL_PATH)/html/DocTypeStrings.gperf |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| # XMLViewer CSS |
| GEN := $(intermediates)/xml/XMLViewerCSS.h |
| $(GEN): SCRIPT := $(LOCAL_PATH)/inspector/xxd.pl |
| $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) XMLViewer_css $< $@ |
| $(GEN): $(LOCAL_PATH)/xml/XMLViewer.css |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| # XMLViewer JS |
| GEN := $(intermediates)/xml/XMLViewerJS.h |
| $(GEN): SCRIPT := $(LOCAL_PATH)/inspector/xxd.pl |
| $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) XMLViewer_js $< $@ |
| $(GEN): $(LOCAL_PATH)/xml/XMLViewer.js |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| # HTML entity table |
| |
| GEN := $(intermediates)/html/HTMLEntityTable.cpp |
| $(GEN): SCRIPT := $(LOCAL_PATH)/html/parser/create-html-entity-table |
| $(GEN): WEBKITPY_RESOURCES_DIRECTORY := $(LOCAL_PATH)/../../Tools/Scripts/webkitpy |
| $(GEN): PRIVATE_CUSTOM_TOOL = $(dir $@)$(notdir $(SCRIPT)) -o $@ $< |
| $(GEN): $(LOCAL_PATH)/html/parser/HTMLEntityNames.in |
| @echo "Generating HTMLEntityTable.cpp" |
| @mkdir -p $(dir $@) |
| @cp -f $(SCRIPT) $(dir $@) |
| @cp -rf $(WEBKITPY_RESOURCES_DIRECTORY) $(dir $@) |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| |
| # color names |
| |
| GEN := $(intermediates)/platform/ColorData.cpp |
| $(GEN): SCRIPT := $(LOCAL_PATH)/make-hash-tools.pl |
| $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) $(dir $@) $< |
| $(GEN): $(LOCAL_PATH)/platform/ColorData.gperf |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| |
| # CSS tokenizer |
| |
| GEN := $(intermediates)/css/tokenizer.cpp |
| $(GEN): PRIVATE_CUSTOM_TOOL = $(OLD_FLEX) -t $< | perl $(dir $<)/maketokenizer > $@ |
| $(GEN): $(LOCAL_PATH)/css/tokenizer.flex $(LOCAL_PATH)/css/maketokenizer |
| $(transform-generated-source) |
| # we have to do this dep by hand: |
| $(intermediates)/css/CSSParser.o : $(GEN) |
| |
| # CSS grammar |
| |
| GEN := $(intermediates)/CSSGrammar.cpp |
| $(GEN) : PRIVATE_YACCFLAGS := -p cssyy |
| $(GEN): $(LOCAL_PATH)/css/CSSGrammar.y |
| $(call local-transform-y-to-cpp,.cpp) |
| $(GEN): $(LOCAL_BISON) |
| |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| # XPath grammar |
| |
| GEN := $(intermediates)/XPathGrammar.cpp |
| $(GEN) : PRIVATE_YACCFLAGS := -p xpathyy |
| $(GEN): $(LOCAL_PATH)/xml/XPathGrammar.y |
| $(call local-transform-y-to-cpp,.cpp) |
| $(GEN): $(LOCAL_BISON) |
| |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| # user agent style sheets |
| |
| style_sheets := $(LOCAL_PATH)/css/html.css $(LOCAL_PATH)/css/quirks.css $(LOCAL_PATH)/css/fullscreen.css $(LOCAL_PATH)/css/view-source.css $(LOCAL_PATH)/css/mediaControls.css $(LOCAL_PATH)/css/mediaControlsAndroid.css |
| ifeq ($(ENABLE_SVG), true) |
| style_sheets := $(style_sheets) $(LOCAL_PATH)/css/svg.css |
| endif |
| GEN := $(intermediates)/css/UserAgentStyleSheets.h |
| make_css_file_arrays := $(LOCAL_PATH)/css/make-css-file-arrays.pl |
| $(GEN): PRIVATE_CUSTOM_TOOL = $< $@ $(basename $@).cpp $(filter %.css,$^) |
| $(GEN): $(make_css_file_arrays) $(style_sheets) |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp) |
| |
| # character set name table |
| |
| #gen_inputs := \ |
| $(LOCAL_PATH)/platform/make-charset-table.pl \ |
| $(LOCAL_PATH)/platform/character-sets.txt \ |
| $(LOCAL_PATH)/platform/android/android-encodings.txt |
| #GEN := $(intermediates)/platform/CharsetData.cpp |
| #$(GEN): PRIVATE_CUSTOM_TOOL = $^ "android::Encoding::ENCODING_" > $@ |
| #$(GEN): $(gen_inputs) |
| # $(transform-generated-source) |
| #LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| # the above rule will make this build too |
| $(intermediates)/css/UserAgentStyleSheets.cpp : $(GEN) |
| |
| # XML attribute names |
| |
| GEN:= $(intermediates)/XMLNSNames.cpp |
| $(GEN): PRIVATE_PATH := $(LOCAL_PATH) |
| $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xmlns_attrs) --output $(dir $@) |
| $(GEN): xmlns_attrs := $(LOCAL_PATH)/xml/xmlnsattrs.in |
| $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xmlns_attrs) |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| GEN:= $(intermediates)/XMLNames.cpp |
| $(GEN): PRIVATE_PATH := $(LOCAL_PATH) |
| $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xml_attrs) --output $(dir $@) |
| $(GEN): xml_attrs := $(LOCAL_PATH)/xml/xmlattrs.in |
| $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xml_attrs) |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| # XLink attribute names |
| |
| GEN:= $(intermediates)/XLinkNames.cpp |
| $(GEN): PRIVATE_PATH := $(LOCAL_PATH) |
| $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xlink_attrs) --output $(dir $@) |
| $(GEN): xlink_attrs := $(LOCAL_PATH)/svg/xlinkattrs.in |
| $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xlink_attrs) |
| $(transform-generated-source) |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| ifeq ($(ENABLE_AUTOFILL),true) |
| # This is really ugly, but necessary. The following rules are taken from |
| # external/chromium/Android.mk. |
| # Chromium uses several third party libraries and headers that are already |
| # present on Android, but in different include paths. Generate a set of |
| # forwarding headers in the location that Chromium expects. We need to do |
| # this in both the Chromium and WebCore projects because of the |
| # WebKit <-> Chromium bindings which include headers from the Chromuim project. |
| |
| THIRD_PARTY = $(intermediates)/third_party |
| CHROMIUM_SRC_DIR := $(LOCAL_PATH)/../../../chromium |
| SCRIPT := $(CHROMIUM_SRC_DIR)/android/generateAndroidForwardingHeader.pl |
| |
| GEN := $(THIRD_PARTY)/expat/files/lib/expat.h |
| $(GEN): $(SCRIPT) |
| $(GEN): |
| perl $(SCRIPT) $@ "lib/expat.h" |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| GEN := $(THIRD_PARTY)/skia/include/core/SkBitmap.h |
| $(GEN): $(SCRIPT) |
| $(GEN): |
| perl $(SCRIPT) $@ "include/core/SkBitmap.h" |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebFormControlElement.h |
| $(GEN): $(SCRIPT) |
| $(GEN): |
| perl $(SCRIPT) $@ "public/WebFormControlElement.h" |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebRegularExpression.h |
| $(GEN): $(SCRIPT) |
| $(GEN): |
| perl $(SCRIPT) $@ "public/WebRegularExpression.h" |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebString.h |
| $(GEN): $(SCRIPT) |
| $(GEN): |
| perl $(SCRIPT) $@ "public/WebString.h" |
| LOCAL_GENERATED_SOURCES += $(GEN) |
| |
| endif |
| |
| LOCAL_SRC_FILES += $(LOCAL_GENERATED_SOURCES) |