Home | History | Annotate | Download | only in WebCore
      1 ##
      2 ## Copyright 2009, The Android Open Source Project
      3 ##
      4 ## Redistribution and use in source and binary forms, with or without
      5 ## modification, are permitted provided that the following conditions
      6 ## are met:
      7 ##  * Redistributions of source code must retain the above copyright
      8 ##    notice, this list of conditions and the following disclaimer.
      9 ##  * Redistributions in binary form must reproduce the above copyright
     10 ##    notice, this list of conditions and the following disclaimer in the
     11 ##    documentation and/or other materials provided with the distribution.
     12 ##
     13 ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
     14 ## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15 ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16 ## PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     17 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18 ## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19 ## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20 ## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21 ## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22 ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23 ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24 ##
     25 
     26 # CSS property names and value keywords
     27 
     28 GEN := $(intermediates)/css/CSSPropertyNames.h
     29 $(GEN): SCRIPT := $(LOCAL_PATH)/css/makeprop.pl
     30 ifeq ($(ENABLE_SVG),true)
     31 $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/SVGCSSPropertyNames.in $(LOCAL_PATH)/css/AndroidCSSPropertyNames.in
     32 else
     33 $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/AndroidCSSPropertyNames.in
     34 endif
     35 	@echo "Generating CSSPropertyNames.h <= CSSPropertyNames.in"
     36 	@mkdir -p $(dir $@)
     37 	@cat $< > $(dir $@)/$(notdir $<)
     38 	@cat $^ > $(@:%.h=%.in)
     39 	@cp -f $(SCRIPT) $(dir $@)
     40 	@cd $(dir $@) ; perl ./$(notdir $(SCRIPT))
     41 LOCAL_GENERATED_SOURCES += $(GEN)  $(GEN:%.h=%.cpp)
     42 
     43 # We also need the .cpp files, which are generated as side effects of the
     44 # above rules.  Specifying this explicitly makes -j2 work.
     45 $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/css/%.cpp : $(intermediates)/css/%.h
     46 
     47 
     48 GEN := $(intermediates)/css/CSSValueKeywords.h
     49 $(GEN): SCRIPT := $(LOCAL_PATH)/css/makevalues.pl
     50 $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/SVGCSSValueKeywords.in
     51 	@echo "Generating CSSValueKeywords.h <= CSSValueKeywords.in"
     52 	@mkdir -p $(dir $@)
     53 	@cp -f $(SCRIPT) $(dir $@)
     54 ifeq ($(ENABLE_SVG),true)    
     55 	@perl -ne 'print lc' $^ > $(@:%.h=%.in)
     56 else
     57 	@perl -ne 'print lc' $< > $(@:%.h=%.in)
     58 endif
     59 	@cd $(dir $@); perl makevalues.pl
     60 LOCAL_GENERATED_SOURCES += $(GEN)  $(GEN:%.h=%.cpp)
     61 
     62 # We also need the .cpp files, which are generated as side effects of the
     63 # above rules.  Specifying this explicitly makes -j2 work.
     64 $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/css/%.cpp : $(intermediates)/css/%.h
     65 
     66 
     67 # DOCTYPE strings
     68 
     69 GEN := $(intermediates)/html/DocTypeStrings.cpp
     70 $(GEN): SCRIPT := $(LOCAL_PATH)/make-hash-tools.pl
     71 $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) $(dir $@) $<
     72 $(GEN): $(LOCAL_PATH)/html/DocTypeStrings.gperf
     73 	$(transform-generated-source)
     74 LOCAL_GENERATED_SOURCES += $(GEN)
     75 
     76 # XMLViewer CSS
     77 GEN := $(intermediates)/xml/XMLViewerCSS.h
     78 $(GEN): SCRIPT := $(LOCAL_PATH)/inspector/xxd.pl
     79 $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) XMLViewer_css $< $@
     80 $(GEN): $(LOCAL_PATH)/xml/XMLViewer.css
     81 	$(transform-generated-source)
     82 LOCAL_GENERATED_SOURCES += $(GEN)
     83 
     84 # XMLViewer JS
     85 GEN := $(intermediates)/xml/XMLViewerJS.h
     86 $(GEN): SCRIPT := $(LOCAL_PATH)/inspector/xxd.pl
     87 $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) XMLViewer_js $< $@
     88 $(GEN): $(LOCAL_PATH)/xml/XMLViewer.js
     89 	$(transform-generated-source)
     90 LOCAL_GENERATED_SOURCES += $(GEN)
     91 
     92 # HTML entity table
     93 
     94 GEN := $(intermediates)/html/HTMLEntityTable.cpp
     95 $(GEN): SCRIPT := $(LOCAL_PATH)/html/parser/create-html-entity-table
     96 $(GEN): WEBKITPY_RESOURCES_DIRECTORY := $(LOCAL_PATH)/../../Tools/Scripts/webkitpy
     97 $(GEN): PRIVATE_CUSTOM_TOOL = $(dir $@)$(notdir $(SCRIPT)) -o $@ $<
     98 $(GEN): $(LOCAL_PATH)/html/parser/HTMLEntityNames.in
     99 	@echo "Generating HTMLEntityTable.cpp"
    100 	@mkdir -p $(dir $@)
    101 	@cp -f $(SCRIPT) $(dir $@)
    102 	@cp -rf $(WEBKITPY_RESOURCES_DIRECTORY) $(dir $@)
    103 	$(transform-generated-source)
    104 LOCAL_GENERATED_SOURCES += $(GEN)
    105 
    106 
    107 # color names
    108 
    109 GEN := $(intermediates)/platform/ColorData.cpp
    110 $(GEN): SCRIPT := $(LOCAL_PATH)/make-hash-tools.pl
    111 $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) $(dir $@) $<
    112 $(GEN): $(LOCAL_PATH)/platform/ColorData.gperf
    113 	$(transform-generated-source)
    114 LOCAL_GENERATED_SOURCES += $(GEN)
    115 
    116 
    117 # CSS tokenizer
    118 
    119 GEN := $(intermediates)/css/tokenizer.cpp
    120 $(GEN): PRIVATE_CUSTOM_TOOL = $(OLD_FLEX) -t $< | perl $(dir $<)/maketokenizer > $@
    121 $(GEN): $(LOCAL_PATH)/css/tokenizer.flex $(LOCAL_PATH)/css/maketokenizer
    122 	$(transform-generated-source)
    123 # we have to do this dep by hand:
    124 $(intermediates)/css/CSSParser.o : $(GEN)
    125 
    126 # CSS grammar
    127 
    128 GEN := $(intermediates)/CSSGrammar.cpp
    129 $(GEN) : PRIVATE_YACCFLAGS := -p cssyy
    130 $(GEN): $(LOCAL_PATH)/css/CSSGrammar.y
    131 	$(call webkit-transform-y-to-cpp,.cpp)
    132 
    133 LOCAL_GENERATED_SOURCES += $(GEN)
    134 
    135 # XPath grammar
    136 
    137 GEN := $(intermediates)/XPathGrammar.cpp
    138 $(GEN) : PRIVATE_YACCFLAGS := -p xpathyy
    139 $(GEN): $(LOCAL_PATH)/xml/XPathGrammar.y
    140 	$(call webkit-transform-y-to-cpp,.cpp)
    141 
    142 LOCAL_GENERATED_SOURCES += $(GEN)
    143 # user agent style sheets
    144 
    145 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
    146 ifeq ($(ENABLE_SVG), true)
    147 style_sheets := $(style_sheets) $(LOCAL_PATH)/css/svg.css
    148 endif
    149 GEN := $(intermediates)/css/UserAgentStyleSheets.h
    150 make_css_file_arrays := $(LOCAL_PATH)/css/make-css-file-arrays.pl
    151 $(GEN): PRIVATE_CUSTOM_TOOL = $< $@ $(basename $@).cpp $(filter %.css,$^)
    152 $(GEN): $(make_css_file_arrays) $(style_sheets)
    153 	$(transform-generated-source)
    154 LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
    155 
    156 # character set name table
    157 
    158 #gen_inputs := \
    159 		$(LOCAL_PATH)/platform/make-charset-table.pl \
    160 		$(LOCAL_PATH)/platform/character-sets.txt \
    161 		$(LOCAL_PATH)/platform/android/android-encodings.txt
    162 #GEN := $(intermediates)/platform/CharsetData.cpp
    163 #$(GEN): PRIVATE_CUSTOM_TOOL = $^ "android::Encoding::ENCODING_" > $@
    164 #$(GEN): $(gen_inputs)
    165 #	$(transform-generated-source)
    166 #LOCAL_GENERATED_SOURCES += $(GEN)
    167 
    168 # the above rule will make this build too
    169 $(intermediates)/css/UserAgentStyleSheets.cpp : $(GEN)
    170 
    171 # XML attribute names
    172 
    173 GEN:= $(intermediates)/XMLNSNames.cpp
    174 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
    175 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xmlns_attrs) --output $(dir $@) 
    176 $(GEN): xmlns_attrs := $(LOCAL_PATH)/xml/xmlnsattrs.in
    177 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xmlns_attrs)
    178 	$(transform-generated-source)
    179 LOCAL_GENERATED_SOURCES += $(GEN)
    180 
    181 GEN:= $(intermediates)/XMLNames.cpp
    182 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
    183 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xml_attrs) --output $(dir $@) 
    184 $(GEN): xml_attrs := $(LOCAL_PATH)/xml/xmlattrs.in
    185 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xml_attrs)
    186 	$(transform-generated-source)
    187 LOCAL_GENERATED_SOURCES += $(GEN)
    188 
    189 # XLink attribute names
    190 
    191 GEN:= $(intermediates)/XLinkNames.cpp
    192 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
    193 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xlink_attrs) --output $(dir $@) 
    194 $(GEN): xlink_attrs := $(LOCAL_PATH)/svg/xlinkattrs.in
    195 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xlink_attrs)
    196 	$(transform-generated-source)
    197 LOCAL_GENERATED_SOURCES += $(GEN)
    198 
    199 ifeq ($(ENABLE_AUTOFILL),true)
    200 # This is really ugly, but necessary. The following rules are taken from
    201 # external/chromium/Android.mk.
    202 # Chromium uses several third party libraries and headers that are already
    203 # present on Android, but in different include paths. Generate a set of
    204 # forwarding headers in the location that Chromium expects. We need to do
    205 # this in both the Chromium and WebCore projects because of the
    206 # WebKit <-> Chromium bindings which include headers from the Chromuim project.
    207 
    208 THIRD_PARTY = $(intermediates)/third_party
    209 CHROMIUM_SRC_DIR := $(LOCAL_PATH)/../../../chromium
    210 SCRIPT := $(CHROMIUM_SRC_DIR)/android/generateAndroidForwardingHeader.pl
    211 
    212 GEN := $(THIRD_PARTY)/expat/files/lib/expat.h
    213 $(GEN): $(SCRIPT)
    214 $(GEN):
    215 	perl $(SCRIPT) $@ "lib/expat.h"
    216 LOCAL_GENERATED_SOURCES += $(GEN)
    217 
    218 GEN := $(THIRD_PARTY)/skia/include/core/SkBitmap.h
    219 $(GEN): $(SCRIPT)
    220 $(GEN):
    221 	perl $(SCRIPT) $@ "include/core/SkBitmap.h"
    222 LOCAL_GENERATED_SOURCES += $(GEN)
    223 
    224 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebFormControlElement.h
    225 $(GEN): $(SCRIPT)
    226 $(GEN):
    227 	perl $(SCRIPT) $@ "public/WebFormControlElement.h"
    228 LOCAL_GENERATED_SOURCES += $(GEN)
    229 
    230 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebRegularExpression.h
    231 $(GEN): $(SCRIPT)
    232 $(GEN):
    233 	perl $(SCRIPT) $@ "public/WebRegularExpression.h"
    234 LOCAL_GENERATED_SOURCES += $(GEN)
    235 
    236 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebString.h
    237 $(GEN): $(SCRIPT)
    238 $(GEN):
    239 	perl $(SCRIPT) $@ "public/WebString.h"
    240 LOCAL_GENERATED_SOURCES += $(GEN)
    241 
    242 endif
    243 
    244 LOCAL_SRC_FILES += $(LOCAL_GENERATED_SOURCES)
    245