2009-04-22 Sam Weinig <sam@webkit.org>
[WebKit-https.git] / WebCore / DerivedSources.make
1 # Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
2 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 
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 #
8 # 1.  Redistributions of source code must retain the above copyright
9 #     notice, this list of conditions and the following disclaimer. 
10 # 2.  Redistributions in binary form must reproduce the above copyright
11 #     notice, this list of conditions and the following disclaimer in the
12 #     documentation and/or other materials provided with the distribution. 
13 # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14 #     its contributors may be used to endorse or promote products derived
15 #     from this software without specific prior written permission. 
16 #
17 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28 VPATH = \
29     $(WebCore) \
30     $(WebCore)/bindings/js \
31     $(WebCore)/bindings/objc \
32     $(WebCore)/css \
33     $(WebCore)/dom \
34     $(WebCore)/html \
35     $(WebCore)/inspector \
36     $(WebCore)/loader/appcache \
37     $(WebCore)/page \
38     $(WebCore)/plugins \
39     $(WebCore)/storage \
40     $(WebCore)/xml \
41     $(WebCore)/wml \
42     $(WebCore)/workers \
43     $(WebCore)/svg \
44 #
45
46 DOM_CLASSES = \
47     AbstractView \
48     Attr \
49     BarInfo \
50     CDATASection \
51     CSSCharsetRule \
52     CSSFontFaceRule \
53     CSSImportRule \
54     CSSMediaRule \
55     CSSPageRule \
56     CSSPrimitiveValue \
57     CSSRule \
58     CSSRuleList \
59     CSSStyleDeclaration \
60     CSSStyleRule \
61     CSSStyleSheet \
62     CSSUnknownRule \
63     CSSValue \
64     CSSValueList \
65     CSSVariablesRule \
66     CSSVariablesDeclaration \
67     CanvasGradient \
68     CanvasPattern \
69     CanvasRenderingContext2D \
70     CharacterData \
71     ClientRect \
72     ClientRectList \
73     Clipboard \
74     Comment \
75     Console \
76     Coordinates \
77     Counter \
78     DOMApplicationCache \
79     DOMCoreException \
80     DOMImplementation \
81     DOMParser \
82     DOMSelection \
83     DOMStringList \
84     DOMWindow \
85     Database \
86     Document \
87     DocumentFragment \
88     DocumentType \
89     Element \
90     ElementTimeControl \
91     Entity \
92     EntityReference \
93     Event \
94     EventException \
95     EventListener \
96     EventTarget \
97     File \
98     FileList \
99     Geolocation \
100     Geoposition \
101     HTMLAnchorElement \
102     HTMLAppletElement \
103     HTMLAreaElement \
104     HTMLAudioElement \
105     HTMLBRElement \
106     HTMLBaseElement \
107     HTMLBaseFontElement \
108     HTMLBlockquoteElement \
109     HTMLBodyElement \
110     HTMLButtonElement \
111     HTMLCanvasElement \
112     HTMLCollection \
113     HTMLDListElement \
114     HTMLDirectoryElement \
115     HTMLDivElement \
116     HTMLDocument \
117     HTMLElement \
118     HTMLEmbedElement \
119     HTMLFieldSetElement \
120     HTMLFontElement \
121     HTMLFormElement \
122     HTMLFrameElement \
123     HTMLFrameSetElement \
124     HTMLHRElement \
125     HTMLHeadElement \
126     HTMLHeadingElement \
127     HTMLHtmlElement \
128     HTMLIFrameElement \
129     HTMLImageElement \
130     HTMLInputElement \
131     HTMLIsIndexElement \
132     HTMLLIElement \
133     HTMLLabelElement \
134     HTMLLegendElement \
135     HTMLLinkElement \
136     HTMLMapElement \
137     HTMLMarqueeElement \
138     HTMLMediaElement \
139     HTMLMenuElement \
140     HTMLMetaElement \
141     HTMLModElement \
142     HTMLOListElement \
143     HTMLObjectElement \
144     HTMLOptGroupElement \
145     HTMLOptionElement \
146     HTMLOptionsCollection \
147     HTMLParagraphElement \
148     HTMLParamElement \
149     HTMLPreElement \
150     HTMLQuoteElement \
151     HTMLScriptElement \
152     HTMLSelectElement \
153     HTMLSourceElement \
154     HTMLStyleElement \
155     HTMLTableCaptionElement \
156     HTMLTableCellElement \
157     HTMLTableColElement \
158     HTMLTableElement \
159     HTMLTableRowElement \
160     HTMLTableSectionElement \
161     HTMLTextAreaElement \
162     HTMLTitleElement \
163     HTMLUListElement \
164     HTMLVideoElement \
165     History \
166     ImageData \
167     InspectorController \
168     KeyboardEvent \
169     Location \
170     MediaError \
171     MediaList \
172     MessageChannel \
173     MessageEvent \
174     MessagePort \
175     MimeType \
176     MimeTypeArray \
177     MouseEvent \
178     MutationEvent \
179     NamedNodeMap \
180     Navigator \
181     Node \
182     NodeFilter \
183     NodeIterator \
184     NodeList \
185     Notation \
186     OverflowEvent \
187     Plugin \
188     PluginArray \
189     PositionCallback \
190     PositionError \
191     PositionErrorCallback \
192     ProcessingInstruction \
193     ProgressEvent \
194     RGBColor \
195     Range \
196     RangeException \
197     Rect \
198     SQLError \
199     SQLResultSet \
200     SQLResultSetRowList \
201     SQLTransaction \
202     Storage \
203     StorageEvent \
204     SVGAElement \
205     SVGAltGlyphElement \
206     SVGAngle \
207     SVGAnimateColorElement \
208     SVGAnimateElement \
209     SVGAnimateTransformElement \
210     SVGAnimatedAngle \
211     SVGAnimatedBoolean \
212     SVGAnimatedEnumeration \
213     SVGAnimatedInteger \
214     SVGAnimatedLength \
215     SVGAnimatedLengthList \
216     SVGAnimatedNumber \
217     SVGAnimatedNumberList \
218     SVGAnimatedPathData \
219     SVGAnimatedPoints \
220     SVGAnimatedPreserveAspectRatio \
221     SVGAnimatedRect \
222     SVGAnimatedString \
223     SVGAnimatedTransformList \
224     SVGAnimationElement \
225     SVGCircleElement \
226     SVGClipPathElement \
227     SVGColor \
228     SVGComponentTransferFunctionElement \
229     SVGCursorElement \
230     SVGDefinitionSrcElement \
231     SVGDefsElement \
232     SVGDescElement \
233     SVGDocument \
234     SVGElement \
235     SVGElementInstance \
236     SVGElementInstanceList \
237     SVGEllipseElement \
238     SVGException \
239     SVGExternalResourcesRequired \
240     SVGFEBlendElement \
241     SVGFEColorMatrixElement \
242     SVGFEComponentTransferElement \
243     SVGFECompositeElement \
244     SVGFEDiffuseLightingElement \
245     SVGFEDisplacementMapElement \
246     SVGFEDistantLightElement \
247     SVGFEFloodElement \
248     SVGFEFuncAElement \
249     SVGFEFuncBElement \
250     SVGFEFuncGElement \
251     SVGFEFuncRElement \
252     SVGFEGaussianBlurElement \
253     SVGFEImageElement \
254     SVGFEMergeElement \
255     SVGFEMergeNodeElement \
256     SVGFEOffsetElement \
257     SVGFEPointLightElement \
258     SVGFESpecularLightingElement \
259     SVGFESpotLightElement \
260     SVGFETileElement \
261     SVGFETurbulenceElement \
262     SVGFilterElement \
263     SVGFilterPrimitiveStandardAttributes \
264     SVGFitToViewBox \
265     SVGFontElement \
266     SVGFontFaceElement \
267     SVGFontFaceFormatElement \
268     SVGFontFaceNameElement \
269     SVGFontFaceSrcElement \
270     SVGFontFaceUriElement \
271     SVGForeignObjectElement \
272     SVGGElement \
273     SVGGlyphElement \
274     SVGGradientElement \
275     SVGHKernElement \
276     SVGImageElement \
277     SVGLangSpace \
278     SVGLength \
279     SVGLengthList \
280     SVGLineElement \
281     SVGLinearGradientElement \
282     SVGLocatable \
283     SVGMarkerElement \
284     SVGMaskElement \
285     SVGMatrix \
286     SVGMetadataElement \
287     SVGMissingGlyphElement \
288     SVGNumber \
289     SVGNumberList \
290     SVGPaint \
291     SVGPathElement \
292     SVGPathSeg \
293     SVGPathSegArcAbs \
294     SVGPathSegArcRel \
295     SVGPathSegClosePath \
296     SVGPathSegCurvetoCubicAbs \
297     SVGPathSegCurvetoCubicRel \
298     SVGPathSegCurvetoCubicSmoothAbs \
299     SVGPathSegCurvetoCubicSmoothRel \
300     SVGPathSegCurvetoQuadraticAbs \
301     SVGPathSegCurvetoQuadraticRel \
302     SVGPathSegCurvetoQuadraticSmoothAbs \
303     SVGPathSegCurvetoQuadraticSmoothRel \
304     SVGPathSegLinetoAbs \
305     SVGPathSegLinetoHorizontalAbs \
306     SVGPathSegLinetoHorizontalRel \
307     SVGPathSegLinetoRel \
308     SVGPathSegLinetoVerticalAbs \
309     SVGPathSegLinetoVerticalRel \
310     SVGPathSegList \
311     SVGPathSegMovetoAbs \
312     SVGPathSegMovetoRel \
313     SVGPatternElement \
314     SVGPoint \
315     SVGPointList \
316     SVGPolygonElement \
317     SVGPolylineElement \
318     SVGPreserveAspectRatio \
319     SVGRadialGradientElement \
320     SVGRect \
321     SVGRectElement \
322     SVGRenderingIntent \
323     SVGSVGElement \
324     SVGScriptElement \
325     SVGSetElement \
326     SVGStopElement \
327     SVGStringList \
328     SVGStylable \
329     SVGStyleElement \
330     SVGSwitchElement \
331     SVGSymbolElement \
332     SVGTRefElement \
333     SVGTSpanElement \
334     SVGTests \
335     SVGTextContentElement \
336     SVGTextElement \
337     SVGTextPathElement \
338     SVGTextPositioningElement \
339     SVGTitleElement \
340     SVGTransform \
341     SVGTransformList \
342     SVGTransformable \
343     SVGURIReference \
344     SVGUnitTypes \
345     SVGUseElement \
346     SVGViewElement \
347     SVGZoomAndPan \
348     SVGZoomEvent \
349     Screen \
350     StyleSheet \
351     StyleSheetList \
352     Text \
353     TextEvent \
354     TextMetrics \
355     TimeRanges \
356     TreeWalker \
357     UIEvent \
358     VoidCallback \
359     WebKitAnimationEvent \
360     WebKitCSSKeyframeRule \
361     WebKitCSSKeyframesRule \
362     WebKitCSSMatrix \
363     WebKitCSSTransformValue \
364     WebKitPoint \
365     WebKitTransitionEvent \
366     WheelEvent \
367     Worker \
368     WorkerContext \
369     WorkerLocation \
370     WorkerNavigator \
371     XMLHttpRequest \
372     XMLHttpRequestException \
373     XMLHttpRequestProgressEvent \
374     XMLHttpRequestUpload \
375     XMLSerializer \
376     XPathEvaluator \
377     XPathException \
378     XPathExpression \
379     XPathNSResolver \
380     XPathResult \
381     XSLTProcessor \
382 #
383
384 .PHONY : all
385
386 all : \
387     $(filter-out JSEventListener.h JSEventTarget.h JSRGBColor.h,$(DOM_CLASSES:%=JS%.h)) \
388     \
389     JSRGBColor.lut.h \
390     \
391     JSJavaScriptCallFrame.h \
392     \
393     CSSGrammar.cpp \
394     CSSPropertyNames.h \
395     CSSValueKeywords.h \
396     ColorData.c \
397     DocTypeStrings.cpp \
398     HTMLElementFactory.cpp \
399     HTMLEntityNames.c \
400     HTMLNames.cpp \
401     WMLElementFactory.cpp \
402     WMLNames.cpp \
403     JSSVGElementWrapperFactory.cpp \
404     SVGElementFactory.cpp \
405     SVGNames.cpp \
406     UserAgentStyleSheets.h \
407     XLinkNames.cpp \
408     XMLNames.cpp \
409     XPathGrammar.cpp \
410     tokenizer.cpp \
411 #
412
413 # --------
414
415 ifeq ($(OS),MACOS)
416
417 FRAMEWORK_FLAGS = $(shell echo $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));')
418
419 ifeq ($(shell gcc -E -P -dM -F $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_DASHBOARD_SUPPORT | cut -d' ' -f3), 1)
420     ENABLE_DASHBOARD_SUPPORT = 1
421 else
422     ENABLE_DASHBOARD_SUPPORT = 0
423 endif
424
425 else
426
427 ENABLE_DASHBOARD_SUPPORT = 0
428
429 endif
430
431 # CSS property names and value keywords
432
433 WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
434 WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in
435
436 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
437     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/SVGCSSPropertyNames.in
438     WEBCORE_CSS_VALUE_KEYWORDS := $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/SVGCSSValueKeywords.in
439 endif
440
441 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
442     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/DashboardSupportCSSPropertyNames.in
443 endif
444
445 CSSPropertyNames.h : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl
446         if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E '^[^#]'; then echo 'Duplicate value!'; exit 1; fi
447         cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in
448         perl "$(WebCore)/css/makeprop.pl"
449
450 CSSValueKeywords.h : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl
451         # Lower case all the values, as CSS values are case-insensitive
452         perl -ne 'print lc' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in
453         if sort CSSValueKeywords.in | uniq -d | grep -E '^[^#]'; then echo 'Duplicate value!'; exit 1; fi
454         perl "$(WebCore)/css/makevalues.pl"
455
456 # --------
457
458 # DOCTYPE strings
459
460 DocTypeStrings.cpp : html/DocTypeStrings.gperf
461         gperf -CEot -L ANSI-C -k "*" -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards $< > $@
462
463 # --------
464
465 # HTML entity names
466
467 HTMLEntityNames.c : html/HTMLEntityNames.gperf
468         gperf -a -L ANSI-C -C -G -c -o -t -k '*' -N findEntity -D -s 2 $< > $@
469
470 # --------
471
472 # color names
473
474 ColorData.c : platform/ColorData.gperf
475         gperf -CDEot -L ANSI-C -k '*' -N findColor -D -s 2 $< > $@
476
477 # --------
478
479 # CSS tokenizer
480
481 tokenizer.cpp : css/tokenizer.flex css/maketokenizer
482         flex -t $< | perl $(WebCore)/css/maketokenizer > $@
483
484 # --------
485
486 # CSS grammar
487 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
488
489 CSSGrammar.cpp : css/CSSGrammar.y
490         bison -d -p cssyy $< -o $@
491         touch CSSGrammar.cpp.h
492         touch CSSGrammar.hpp
493         echo '#ifndef CSSGrammar_h' > CSSGrammar.h
494         echo '#define CSSGrammar_h' >> CSSGrammar.h
495         cat CSSGrammar.cpp.h CSSGrammar.hpp >> CSSGrammar.h
496         echo '#endif' >> CSSGrammar.h
497         rm -f CSSGrammar.cpp.h CSSGrammar.hpp
498
499 # --------
500
501 # XPath grammar
502 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
503
504 XPathGrammar.cpp : xml/XPathGrammar.y $(PROJECT_FILE)
505         bison -d -p xpathyy $< -o $@
506         touch XPathGrammar.cpp.h
507         touch XPathGrammar.hpp
508         echo '#ifndef XPathGrammar_h' > XPathGrammar.h
509         echo '#define XPathGrammar_h' >> XPathGrammar.h
510         cat XPathGrammar.cpp.h XPathGrammar.hpp >> XPathGrammar.h
511         echo '#endif' >> XPathGrammar.h
512         rm -f XPathGrammar.cpp.h XPathGrammar.hpp
513
514 # --------
515
516 # user agent style sheets
517
518 USER_AGENT_STYLE_SHEETS = $(WebCore)/css/html4.css $(WebCore)/css/quirks.css $(WebCore)/css/view-source.css $(WebCore)/css/themeWin.css $(WebCore)/css/themeWinQuirks.css 
519
520 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
521     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/svg.css 
522 endif
523
524 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
525     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/wml.css
526 endif
527
528 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
529     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControls.css
530 ifeq ($(OS),MACOS)
531     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControlsQT.css
532 endif
533 endif
534
535 UserAgentStyleSheets.h : css/make-css-file-arrays.pl $(USER_AGENT_STYLE_SHEETS)
536         perl $< $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
537
538 # --------
539
540 # lookup tables for old-style JavaScript bindings
541
542 %.lut.h: %.cpp $(CREATE_HASH_TABLE)
543         $(CREATE_HASH_TABLE) $< -n WebCore > $@
544 %Table.cpp: %.cpp $(CREATE_HASH_TABLE)
545         $(CREATE_HASH_TABLE) $< -n WebCore > $@
546
547 # --------
548
549 # HTML tag and attribute names
550
551 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
552     HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO=1
553 endif
554
555 ifdef HTML_FLAGS
556
557 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
558         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines "$(HTML_FLAGS)"
559
560 else
561
562 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
563         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory
564
565 endif
566
567 JSHTMLElementWrapperFactory.cpp : HTMLNames.cpp
568
569 XMLNames.cpp : dom/make_names.pl xml/xmlattrs.in
570         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in
571
572 # --------
573
574 # SVG tag and attribute names, and element factory
575
576 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
577
578 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
579     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.exp
580 endif
581
582 ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE)
583     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1
584 endif
585
586 ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS)
587     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1
588 endif
589
590 ifeq ($(findstring ENABLE_SVG_FILTERS,$(FEATURE_DEFINES)), ENABLE_SVG_FILTERS)
591     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FILTERS=1
592 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
593     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Filters.exp
594 endif
595 endif
596
597 ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE)
598     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1
599 endif
600
601 ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION)
602     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1
603 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
604     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Animation.exp
605 endif
606 endif
607
608 ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT)
609     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1
610 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
611     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.ForeignObject.exp
612 endif
613 endif
614
615 # SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
616
617 ifdef SVG_FLAGS
618
619 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
620         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory
621 else
622
623 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
624         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
625
626 endif
627
628 JSSVGElementWrapperFactory.cpp : SVGNames.cpp
629
630 XLinkNames.cpp : dom/make_names.pl svg/xlinkattrs.in
631         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in
632
633 else
634
635 SVGElementFactory.cpp :
636         echo > $@
637
638 SVGNames.cpp :
639         echo > $@
640
641 XLinkNames.cpp :
642         echo > $@
643
644 # This file is autogenerated by make_names.pl when SVG is enabled.
645
646 JSSVGElementWrapperFactory.cpp :
647         echo > $@
648
649 endif
650
651 # --------
652
653 # WML tag and attribute names, and element factory
654
655 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
656
657 WMLElementFactory.cpp WMLNames.cpp : dom/make_names.pl wml/WMLTagNames.in wml/WMLAttributeNames.in
658         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/wml/WMLTagNames.in --attrs $(WebCore)/wml/WMLAttributeNames.in --factory --wrapperFactory
659
660 else
661
662 WMLElementFactory.cpp :
663         echo > $@
664
665 WMLNames.cpp :
666         echo > $@
667
668 endif
669
670
671 # --------
672
673 # JavaScript bindings
674
675 GENERATE_BINDINGS = perl -I $(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl \
676     --include dom --include html --include css --include page --include xml --include svg --outputDir .
677
678 GENERATE_BINDINGS_SCRIPTS = \
679     bindings/scripts/CodeGenerator.pm \
680     bindings/scripts/IDLParser.pm \
681     bindings/scripts/IDLStructure.pm \
682     bindings/scripts/generate-bindings.pl \
683 #
684
685 JS%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
686         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $<
687
688 # ------------------------
689
690 # Mac-specific rules
691
692 ifeq ($(OS),MACOS)
693
694 all : $(filter-out DOMDOMWindow.h DOMMimeType.h DOMPlugin.h,$(DOM_CLASSES:%=DOM%.h))
695
696 all : CharsetData.cpp WebCore.exp
697
698 # --------
699
700 # character set name table
701
702 CharsetData.cpp : platform/text/mac/make-charset-table.pl platform/text/mac/character-sets.txt platform/text/mac/mac-encodings.txt
703         perl $^ kTextEncoding > $@
704
705 # --------
706
707 # export file
708
709 ifeq ($(shell gcc -E -P -dM -F $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_MAC_JAVA_BRIDGE | cut -d' ' -f3), 1)
710     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.JNI.exp
711 endif
712
713 # See also "Generate 64-bit Export File" build phase script in WebCore.xcodeproj/project.pbxproj
714 ifeq ($(shell gcc -E -P -dM -F $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_NETSCAPE_PLUGIN_API | cut -d' ' -f3), 1)
715     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.NPAPI.exp
716 endif
717
718 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
719     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.DashboardSupport.exp
720 endif
721
722 ifeq ($(findstring 10.4,$(MACOSX_DEPLOYMENT_TARGET)), 10.4)
723     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Tiger.exp
724 endif
725
726 ifeq ($(findstring ENABLE_PLUGIN_PROXY_FOR_VIDEO,$(FEATURE_DEFINES)), ENABLE_PLUGIN_PROXY_FOR_VIDEO)
727      WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.VideoProxy.exp
728 endif
729
730 WebCore.exp : WebCore.base.exp $(WEBCORE_EXPORT_DEPENDENCIES)
731         cat $^ > $@
732
733 # --------
734
735 # Objective-C bindings
736
737 DOM%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm bindings/objc/PublicDOMInterfaces.h
738         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC $<
739
740 # --------
741
742 endif
743
744 # ------------------------