OSDN Git Service

Generate files correctly
[android-x86/external-webkit.git] / WebCore / Android.derived.mk
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)
42
43 GEN := $(intermediates)/css/CSSValueKeywords.h
44 $(GEN): SCRIPT := $(LOCAL_PATH)/css/makevalues.pl
45 $(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.in $(LOCAL_PATH)/css/SVGCSSValueKeywords.in
46         @echo "Generating CSSValueKeywords.h <= CSSValueKeywords.in"
47         @mkdir -p $(dir $@)
48         @cp -f $(SCRIPT) $(dir $@)
49 ifeq ($(ENABLE_SVG),true)    
50         @perl -ne 'print lc' $^ > $(@:%.h=%.in)
51 else
52         @perl -ne 'print lc' $< > $(@:%.h=%.in)
53 endif
54         @cd $(dir $@); perl makevalues.pl
55 LOCAL_GENERATED_SOURCES += $(GEN)
56
57
58 # DOCTYPE strings
59
60 GEN := $(intermediates)/html/DocTypeStrings.cpp
61 $(GEN): SCRIPT := $(LOCAL_PATH)/make-hash-tools.pl
62 $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) $(dir $@) $<
63 $(GEN): $(LOCAL_PATH)/html/DocTypeStrings.gperf
64         $(transform-generated-source)
65 LOCAL_GENERATED_SOURCES += $(GEN)
66
67
68 # HTML entity table
69
70 GEN := $(intermediates)/html/HTMLEntityTable.cpp
71 $(GEN): SCRIPT := $(LOCAL_PATH)/../WebCore/html/parser/create-html-entity-table
72 $(GEN): WEBKITPY_RESOURCES_DIRECTORY := $(LOCAL_PATH)/../WebKitTools/Scripts/webkitpy
73 $(GEN): PRIVATE_CUSTOM_TOOL = $(dir $@)$(notdir $(SCRIPT)) -o $@ $<
74 $(GEN): $(LOCAL_PATH)/html/parser/HTMLEntityNames.in
75         @echo "Generating HTMLEntityTable.cpp"
76         @mkdir -p $(dir $@)
77         @cp -f $(SCRIPT) $(dir $@)
78         @cp -rf $(WEBKITPY_RESOURCES_DIRECTORY) $(dir $@)
79         $(transform-generated-source)
80 LOCAL_GENERATED_SOURCES += $(GEN)
81
82
83 # color names
84
85 GEN := $(intermediates)/platform/ColorData.cpp
86 $(GEN): SCRIPT := $(LOCAL_PATH)/make-hash-tools.pl
87 $(GEN): PRIVATE_CUSTOM_TOOL = perl $(SCRIPT) $(dir $@) $<
88 $(GEN): $(LOCAL_PATH)/platform/ColorData.gperf
89         $(transform-generated-source)
90 LOCAL_GENERATED_SOURCES += $(GEN)
91
92
93 # CSS tokenizer
94
95 GEN := $(intermediates)/css/tokenizer.cpp
96 $(GEN): PRIVATE_CUSTOM_TOOL = $(OLD_FLEX) -t $< | perl $(dir $<)/maketokenizer > $@
97 $(GEN): $(LOCAL_PATH)/css/tokenizer.flex $(LOCAL_PATH)/css/maketokenizer
98         $(transform-generated-source)
99 # we have to do this dep by hand:
100 $(intermediates)/css/CSSParser.o : $(GEN)
101
102 # CSS grammar
103
104 GEN := $(intermediates)/CSSGrammar.cpp
105 $(GEN) : PRIVATE_YACCFLAGS := -p cssyy
106 $(GEN): $(LOCAL_PATH)/css/CSSGrammar.y
107         $(call local-transform-y-to-cpp,.cpp)
108 $(GEN): $(LOCAL_BISON)
109
110 LOCAL_GENERATED_SOURCES += $(GEN)
111
112 # XPath grammar
113
114 GEN := $(intermediates)/XPathGrammar.cpp
115 $(GEN) : PRIVATE_YACCFLAGS := -p xpathyy
116 $(GEN): $(LOCAL_PATH)/xml/XPathGrammar.y
117         $(call local-transform-y-to-cpp,.cpp)
118 $(GEN): $(LOCAL_BISON)
119
120 LOCAL_GENERATED_SOURCES += $(GEN)
121 # user agent style sheets
122
123 style_sheets := $(LOCAL_PATH)/css/html.css $(LOCAL_PATH)/css/quirks.css $(LOCAL_PATH)/css/view-source.css $(LOCAL_PATH)/css/mediaControls.css $(LOCAL_PATH)/css/mediaControlsAndroid.css
124 ifeq ($(ENABLE_SVG), true)
125 style_sheets := $(style_sheets) $(LOCAL_PATH)/css/svg.css
126 endif
127 GEN := $(intermediates)/css/UserAgentStyleSheets.h
128 make_css_file_arrays := $(LOCAL_PATH)/css/make-css-file-arrays.pl
129 $(GEN): PRIVATE_CUSTOM_TOOL = $< $@ $(basename $@).cpp $(filter %.css,$^)
130 $(GEN): $(make_css_file_arrays) $(style_sheets)
131         $(transform-generated-source)
132 LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)
133
134 # character set name table
135
136 #gen_inputs := \
137                 $(LOCAL_PATH)/platform/make-charset-table.pl \
138                 $(LOCAL_PATH)/platform/character-sets.txt \
139                 $(LOCAL_PATH)/platform/android/android-encodings.txt
140 #GEN := $(intermediates)/platform/CharsetData.cpp
141 #$(GEN): PRIVATE_CUSTOM_TOOL = $^ "android::Encoding::ENCODING_" > $@
142 #$(GEN): $(gen_inputs)
143 #       $(transform-generated-source)
144 #LOCAL_GENERATED_SOURCES += $(GEN)
145
146 # the above rule will make this build too
147 $(intermediates)/css/UserAgentStyleSheets.cpp : $(GEN)
148
149 # XML attribute names
150
151 GEN:= $(intermediates)/XMLNSNames.cpp
152 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
153 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xmlns_attrs) --output $(dir $@) 
154 $(GEN): xmlns_attrs := $(LOCAL_PATH)/xml/xmlnsattrs.in
155 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xmlns_attrs)
156         $(transform-generated-source)
157 LOCAL_GENERATED_SOURCES += $(GEN)
158
159 GEN:= $(intermediates)/XMLNames.cpp
160 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
161 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xml_attrs) --output $(dir $@) 
162 $(GEN): xml_attrs := $(LOCAL_PATH)/xml/xmlattrs.in
163 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xml_attrs)
164         $(transform-generated-source)
165 LOCAL_GENERATED_SOURCES += $(GEN)
166
167 # XLink attribute names
168
169 GEN:= $(intermediates)/XLinkNames.cpp
170 $(GEN): PRIVATE_PATH := $(LOCAL_PATH)
171 $(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --attrs $(xlink_attrs) --output $(dir $@) 
172 $(GEN): xlink_attrs := $(LOCAL_PATH)/svg/xlinkattrs.in
173 $(GEN): $(LOCAL_PATH)/dom/make_names.pl $(xlink_attrs)
174         $(transform-generated-source)
175 LOCAL_GENERATED_SOURCES += $(GEN)
176
177 ifeq ($(ENABLE_AUTOFILL),true)
178 # This is really ugly, but necessary. The following rules are taken from
179 # external/chromium/Android.mk.
180 # Chromium uses several third party libraries and headers that are already
181 # present on Android, but in different include paths. Generate a set of
182 # forwarding headers in the location that Chromium expects. We need to do
183 # this in both the Chromium and WebCore projects because of the
184 # WebKit <-> Chromium bindings which include headers from the Chromuim project.
185
186 THIRD_PARTY = $(intermediates)/third_party
187 CHROMIUM_SRC_DIR := $(LOCAL_PATH)/../../chromium
188 SCRIPT := $(CHROMIUM_SRC_DIR)/android/generateAndroidForwardingHeader.pl
189
190 GEN := $(THIRD_PARTY)/expat/files/lib/expat.h
191 $(GEN): $(SCRIPT)
192 $(GEN):
193         perl $(SCRIPT) $@ "lib/expat.h"
194 LOCAL_GENERATED_SOURCES += $(GEN)
195
196 GEN := $(THIRD_PARTY)/skia/include/core/SkBitmap.h
197 $(GEN): $(SCRIPT)
198 $(GEN):
199         perl $(SCRIPT) $@ "include/core/SkBitmap.h"
200 LOCAL_GENERATED_SOURCES += $(GEN)
201
202 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebFormControlElement.h
203 $(GEN): $(SCRIPT)
204 $(GEN):
205         perl $(SCRIPT) $@ "public/WebFormControlElement.h"
206 LOCAL_GENERATED_SOURCES += $(GEN)
207
208 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebRegularExpression.h
209 $(GEN): $(SCRIPT)
210 $(GEN):
211         perl $(SCRIPT) $@ "public/WebRegularExpression.h"
212 LOCAL_GENERATED_SOURCES += $(GEN)
213
214 GEN := $(THIRD_PARTY)/WebKit/WebKit/chromium/public/WebString.h
215 $(GEN): $(SCRIPT)
216 $(GEN):
217         perl $(SCRIPT) $@ "public/WebString.h"
218 LOCAL_GENERATED_SOURCES += $(GEN)
219
220 endif
221
222 LOCAL_SRC_FILES += $(LOCAL_GENERATED_SOURCES)
223