2 ## Copyright 2009, The Android Open Source Project
4 ## Redistribution and use in source and binary forms, with or without
5 ## modification, are permitted provided that the following conditions
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.
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.
26 # CSS property names and value keywords
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
33 $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/AndroidCSSPropertyNames.in
35 @echo "Generating CSSPropertyNames.h <= CSSPropertyNames.in"
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)
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
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"
53 @cp -f $(SCRIPT) $(dir $@)
54 ifeq ($(ENABLE_SVG),true)
55 @perl -ne 'print lc' $^ > $(@:%.h=%.in)
57 @perl -ne 'print lc' $< > $(@:%.h=%.in)
59 @cd $(dir $@); perl makevalues.pl
60 LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
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
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)
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)
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)
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"
101 @cp -f $(SCRIPT) $(dir $@)
102 @cp -rf $(WEBKITPY_RESOURCES_DIRECTORY) $(dir $@)
103 $(transform-generated-source)
104 LOCAL_GENERATED_SOURCES += $(GEN)
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)
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)
128 GEN := $(intermediates)/CSSGrammar.cpp
129 $(GEN) : PRIVATE_YACCFLAGS := -p cssyy
130 $(GEN): $(LOCAL_PATH)/css/CSSGrammar.y
131 $(call local-transform-y-to-cpp,.cpp)
132 $(GEN): $(LOCAL_BISON)
134 LOCAL_GENERATED_SOURCES += $(GEN)
138 GEN := $(intermediates)/XPathGrammar.cpp
139 $(GEN) : PRIVATE_YACCFLAGS := -p xpathyy
140 $(GEN): $(LOCAL_PATH)/xml/XPathGrammar.y
141 $(call local-transform-y-to-cpp,.cpp)
142 $(GEN): $(LOCAL_BISON)
144 LOCAL_GENERATED_SOURCES += $(GEN)
145 # user agent style sheets
147 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
148 ifeq ($(ENABLE_SVG), true)
149 style_sheets := $(style_sheets) $(LOCAL_PATH)/css/svg.css
151 GEN := $(intermediates)/css/UserAgentStyleSheets.h
152 make_css_file_arrays := $(LOCAL_PATH)/css/make-css-file-arrays.pl
153 $(GEN): PRIVATE_CUSTOM_TOOL = $< $@ $(basename $@).cpp $(filter %.css,$^)
154 $(GEN): $(make_css_file_arrays) $(style_sheets)
155 $(transform-generated-source)
156 LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
158 # character set name table
161 $(LOCAL_PATH)/platform/make-charset-table.pl \
162 $(LOCAL_PATH)/platform/character-sets.txt \
163 $(LOCAL_PATH)/platform/android/android-encodings.txt
164 #GEN := $(intermediates)/platform/CharsetData.cpp
165 #$(GEN): PRIVATE_CUSTOM_TOOL = $^ "android::Encoding::ENCODING_" > $@
166 #$(GEN): $(gen_inputs)
167 # $(transform-generated-source)
168 #LOCAL_GENERATED_SOURCES += $(GEN)
170 # the above rule will make this build too
171 $(intermediates)/css/UserAgentStyleSheets.cpp : $(GEN)
173 # XML attribute names
175 GEN:= $(intermediates)/XMLNSNames.cpp
176 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
177 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xmlns_attrs) --output $(dir $@)
178 $(GEN): xmlns_attrs := $(LOCAL_PATH)/xml/xmlnsattrs.in
179 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xmlns_attrs)
180 $(transform-generated-source)
181 LOCAL_GENERATED_SOURCES += $(GEN)
183 GEN:= $(intermediates)/XMLNames.cpp
184 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
185 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xml_attrs) --output $(dir $@)
186 $(GEN): xml_attrs := $(LOCAL_PATH)/xml/xmlattrs.in
187 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xml_attrs)
188 $(transform-generated-source)
189 LOCAL_GENERATED_SOURCES += $(GEN)
191 # XLink attribute names
193 GEN:= $(intermediates)/XLinkNames.cpp
194 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
195 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xlink_attrs) --output $(dir $@)
196 $(GEN): xlink_attrs := $(LOCAL_PATH)/svg/xlinkattrs.in
197 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xlink_attrs)
198 $(transform-generated-source)
199 LOCAL_GENERATED_SOURCES += $(GEN)
201 ifeq ($(ENABLE_AUTOFILL),true)
202 # This is really ugly, but necessary. The following rules are taken from
203 # external/chromium/Android.mk.
204 # Chromium uses several third party libraries and headers that are already
205 # present on Android, but in different include paths. Generate a set of
206 # forwarding headers in the location that Chromium expects. We need to do
207 # this in both the Chromium and WebCore projects because of the
208 # WebKit <-> Chromium bindings which include headers from the Chromuim project.
210 THIRD_PARTY = $(intermediates)/third_party
211 CHROMIUM_SRC_DIR := $(LOCAL_PATH)/../../../chromium
212 SCRIPT := $(CHROMIUM_SRC_DIR)/android/generateAndroidForwardingHeader.pl
214 GEN := $(THIRD_PARTY)/expat/files/lib/expat.h
217 perl $(SCRIPT) $@ "lib/expat.h"
218 LOCAL_GENERATED_SOURCES += $(GEN)
220 GEN := $(THIRD_PARTY)/skia/include/core/SkBitmap.h
223 perl $(SCRIPT) $@ "include/core/SkBitmap.h"
224 LOCAL_GENERATED_SOURCES += $(GEN)
226 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebFormControlElement.h
229 perl $(SCRIPT) $@ "public/WebFormControlElement.h"
230 LOCAL_GENERATED_SOURCES += $(GEN)
232 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebRegularExpression.h
235 perl $(SCRIPT) $@ "public/WebRegularExpression.h"
236 LOCAL_GENERATED_SOURCES += $(GEN)
238 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebString.h
241 perl $(SCRIPT) $@ "public/WebString.h"
242 LOCAL_GENERATED_SOURCES += $(GEN)
246 LOCAL_SRC_FILES += $(LOCAL_GENERATED_SOURCES)