Reviewed by Hyatt.
[WebKit-https.git] / WebCore / DerivedSources.make
1 # Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
2 #
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions
5 # are met:
6 #
7 # 1.  Redistributions of source code must retain the above copyright
8 #     notice, this list of conditions and the following disclaimer. 
9 # 2.  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 # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
13 #     its contributors may be used to endorse or promote products derived
14 #     from this software without specific prior written permission. 
15 #
16 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
17 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
20 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27 VPATH = \
28     $(WebCore) \
29     $(WebCore)/bindings/js \
30     $(WebCore)/css \
31     $(WebCore)/dom \
32     $(WebCore)/html \
33     $(WebCore)/page \
34 #
35
36 .PHONY : all
37 all : \
38     CSSGrammar.cpp \
39     CSSPropertyNames.h \
40     CSSValueKeywords.h \
41     CharsetData.cpp \
42     ColorData.c \
43     DocTypeStrings.cpp \
44     HTMLEntityNames.c \
45     JSAttr.h \
46     JSCanvasGradient.h \
47     JSCanvasPattern.h \
48     JSCanvasRenderingContext2D.h \
49     JSCanvasRenderingContext2DBaseTable.cpp \
50     JSCounter.h \
51     JSCharacterData.h \
52     JSCSSPrimitiveValue.h \
53     JSDOMImplementation.h \
54     JSDOMParser.lut.h \
55     JSDocument.h \
56     JSDocumentType.h \
57     JSDOMWindow.h \
58     JSElement.h \
59     JSEntity.h \
60     JSHTMLCanvasElement.h \
61     JSKeyboardEvent.h \
62     JSMouseEvent.h \
63     JSMutationEvent.h \
64     JSNotation.h \
65     JSProcessingInstruction.h \
66     JSRange.h \
67     JSText.h \
68     JSUIEvent.h \
69     JSWheelEvent.h \
70     JSXMLHttpRequest.lut.h \
71     JSXMLSerializer.lut.h \
72     JSXSLTProcessor.lut.h \
73     SVGNames.cpp \
74     UserAgentStyleSheets.h \
75     XLinkNames.cpp \
76     kjs_css.lut.h \
77     kjs_dom.lut.h \
78     kjs_events.lut.h \
79     kjs_html.lut.h \
80     kjs_navigator.lut.h \
81     kjs_traversal.lut.h \
82     kjs_window.lut.h \
83     ksvgcssproperties.h \
84     ksvgcssvalues.h \
85     tokenizer.cpp \
86 #
87
88 # CSS property names and value keywords
89
90 CSSPropertyNames.h : css/CSSPropertyNames.in css/makeprop
91         cat $< > CSSPropertyNames.in
92         sh "$(WebCore)/css/makeprop"
93
94 CSSValueKeywords.h : css/CSSValueKeywords.in css/makevalues
95         cat $< > CSSValueKeywords.in
96         sh "$(WebCore)/css/makevalues"
97
98 # DOCTYPE strings
99
100 DocTypeStrings.cpp : html/DocTypeStrings.gperf
101         gperf -CEot -L ANSI-C -k "*" -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards $< > $@
102
103 # HTML entity names
104
105 HTMLEntityNames.c : html/HTMLEntityNames.gperf
106         gperf -a -L ANSI-C -C -G -c -o -t -k '*' -N findEntity -D -s 2 $< > $@
107
108 # color names
109
110 ColorData.c : platform/ColorData.gperf
111         gperf -CDEot -L ANSI-C -k '*' -N findColor -D -s 2 $< > $@
112
113 # CSS tokenizer
114
115 tokenizer.cpp : css/tokenizer.flex css/maketokenizer
116         flex -t $< | perl $(WebCore)/css/maketokenizer > $@
117
118 # CSS grammar
119
120 CSSGrammar.cpp : css/CSSGrammar.y
121         bison -d -p cssyy $< -o $@
122         touch CSSGrammar.cpp.h
123         touch CSSGrammar.hpp
124         cat CSSGrammar.cpp.h CSSGrammar.hpp > CSSGrammar.h
125         rm -f CSSGrammar.cpp.h CSSGrammar.hpp
126
127 # user agent style sheets
128
129 USER_AGENT_STYLE_SHEETS = $(WebCore)/css/html4.css $(WebCore)/css/quirks.css $(WebCore)/css/svg.css 
130 UserAgentStyleSheets.h : css/make-css-file-arrays.pl $(USER_AGENT_STYLE_SHEETS)
131         $< $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
132
133 # character set name table
134
135 CharsetData.cpp : platform/make-charset-table.pl platform/character-sets.txt $(ENCODINGS_FILE)
136         $^ $(ENCODINGS_PREFIX) > $@
137
138 # lookup tables for old-style JavaScript bindings
139
140 %.lut.h: %.cpp $(CREATE_HASH_TABLE)
141         $(CREATE_HASH_TABLE) $< > $@
142 %Table.cpp: %.cpp $(CREATE_HASH_TABLE)
143         $(CREATE_HASH_TABLE) $< > $@
144
145 # SVG tag and attribute names
146
147 SVGNames.cpp : $(WebCore)/ksvg2/scripts/make_names.pl $(WebCore)/ksvg2/svg/svgtags.in $(WebCore)/ksvg2/svg/svgattrs.in
148         $< --tags $(WebCore)/ksvg2/svg/svgtags.in --attrs $(WebCore)/ksvg2/svg/svgattrs.in \
149             --namespace SVG --cppNamespace WebCore --namespaceURI "http://www.w3.org/2000/svg" --factory --attrsNullNamespace --output .
150
151 XLinkNames.cpp : $(WebCore)/ksvg2/scripts/make_names.pl $(WebCore)/ksvg2/misc/xlinkattrs.in
152         $< --attrs $(WebCore)/ksvg2/misc/xlinkattrs.in \
153             --namespace XLink --cppNamespace WebCore --namespaceURI "http://www.w3.org/1999/xlink" --output .
154         touch $(WebCore)/WebCore+SVG/XLinkNamesWrapper.cpp
155
156 # SVG CSS property names and value keywords
157
158 ksvgcssproperties.h : $(WebCore)/ksvg2/scripts/cssmakeprops $(WebCore)/css/CSSPropertyNames.in $(WebCore)/ksvg2/css/CSSPropertyNames.in
159         if sort $(WebCore)/css/CSSPropertyNames.in $(WebCore)/ksvg2/css/CSSPropertyNames.in | uniq -d | grep -E '^[^#]'; then echo 'Duplicate value!'; exit 1; fi
160         cat $(WebCore)/ksvg2/css/CSSPropertyNames.in > ksvgcssproperties.in
161         $(WebCore)/ksvg2/scripts/cssmakeprops -n SVG -f ksvgcssproperties.in
162
163 ksvgcssvalues.h : $(WebCore)/ksvg2/scripts/cssmakevalues $(WebCore)/css/CSSValueKeywords.in $(WebCore)/ksvg2/css/CSSValueKeywords.in
164         if sort $(WebCore)/css/CSSValueKeywords.in $(WebCore)/ksvg2/css/CSSValueKeywords.in | uniq -d | grep -E '^[^#]'; then echo 'Duplicate value!'; exit 1; fi
165         # Lower case all the values, as CSS values are case-insensitive
166         perl -ne 'print lc' $(WebCore)/ksvg2/css/CSSValueKeywords.in > ksvgcssvalues.in
167         $(WebCore)/ksvg2/scripts/cssmakevalues -n SVG -f ksvgcssvalues.in
168
169 # new-style JavaScript bindings
170
171 JS_BINDINGS_SCRIPTS = \
172     $(WebCore)/bindings/scripts/CodeGenerator.pm \
173     $(WebCore)/bindings/scripts/CodeGeneratorJS.pm \
174     $(WebCore)/bindings/scripts/IDLParser.pm \
175     $(WebCore)/bindings/scripts/IDLStructure.pm \
176     $(WebCore)/bindings/scripts/generate-bindings.pl \
177 #
178
179 JS%.h : %.idl $(JS_BINDINGS_SCRIPTS)
180         perl -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --generator JS --include dom --include html --outputdir . $<