11dc9555d17702a261c58b16e071d8ba7e481400
[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     JSWorkerContextBase.lut.h \
391     \
392     JSJavaScriptCallFrame.h \
393     \
394     CSSGrammar.cpp \
395     CSSPropertyNames.h \
396     CSSValueKeywords.h \
397     ColorData.c \
398     DocTypeStrings.cpp \
399     HTMLElementFactory.cpp \
400     HTMLEntityNames.c \
401     HTMLNames.cpp \
402     WMLElementFactory.cpp \
403     WMLNames.cpp \
404     JSSVGElementWrapperFactory.cpp \
405     SVGElementFactory.cpp \
406     SVGNames.cpp \
407     UserAgentStyleSheets.h \
408     XLinkNames.cpp \
409     XMLNames.cpp \
410     XPathGrammar.cpp \
411     tokenizer.cpp \
412 #
413
414 # --------
415
416 ifeq ($(OS),MACOS)
417
418 FRAMEWORK_FLAGS = $(shell echo $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));')
419
420 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)
421     ENABLE_DASHBOARD_SUPPORT = 1
422 else
423     ENABLE_DASHBOARD_SUPPORT = 0
424 endif
425
426 else
427
428 ENABLE_DASHBOARD_SUPPORT = 0
429
430 endif
431
432 # CSS property names and value keywords
433
434 WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
435 WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in
436
437 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
438     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/SVGCSSPropertyNames.in
439     WEBCORE_CSS_VALUE_KEYWORDS := $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/SVGCSSValueKeywords.in
440 endif
441
442 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
443     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/DashboardSupportCSSPropertyNames.in
444 endif
445
446 CSSPropertyNames.h : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl
447         if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E '^[^#]'; then echo 'Duplicate value!'; exit 1; fi
448         cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in
449         perl "$(WebCore)/css/makeprop.pl"
450
451 CSSValueKeywords.h : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl
452         # Lower case all the values, as CSS values are case-insensitive
453         perl -ne 'print lc' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in
454         if sort CSSValueKeywords.in | uniq -d | grep -E '^[^#]'; then echo 'Duplicate value!'; exit 1; fi
455         perl "$(WebCore)/css/makevalues.pl"
456
457 # --------
458
459 # DOCTYPE strings
460
461 DocTypeStrings.cpp : html/DocTypeStrings.gperf
462         gperf -CEot -L ANSI-C -k "*" -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards $< > $@
463
464 # --------
465
466 # HTML entity names
467
468 HTMLEntityNames.c : html/HTMLEntityNames.gperf
469         gperf -a -L ANSI-C -C -G -c -o -t -k '*' -N findEntity -D -s 2 $< > $@
470
471 # --------
472
473 # color names
474
475 ColorData.c : platform/ColorData.gperf
476         gperf -CDEot -L ANSI-C -k '*' -N findColor -D -s 2 $< > $@
477
478 # --------
479
480 # CSS tokenizer
481
482 tokenizer.cpp : css/tokenizer.flex css/maketokenizer
483         flex -t $< | perl $(WebCore)/css/maketokenizer > $@
484
485 # --------
486
487 # CSS grammar
488 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
489
490 CSSGrammar.cpp : css/CSSGrammar.y
491         bison -d -p cssyy $< -o $@
492         touch CSSGrammar.cpp.h
493         touch CSSGrammar.hpp
494         echo '#ifndef CSSGrammar_h' > CSSGrammar.h
495         echo '#define CSSGrammar_h' >> CSSGrammar.h
496         cat CSSGrammar.cpp.h CSSGrammar.hpp >> CSSGrammar.h
497         echo '#endif' >> CSSGrammar.h
498         rm -f CSSGrammar.cpp.h CSSGrammar.hpp
499
500 # --------
501
502 # XPath grammar
503 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
504
505 XPathGrammar.cpp : xml/XPathGrammar.y $(PROJECT_FILE)
506         bison -d -p xpathyy $< -o $@
507         touch XPathGrammar.cpp.h
508         touch XPathGrammar.hpp
509         echo '#ifndef XPathGrammar_h' > XPathGrammar.h
510         echo '#define XPathGrammar_h' >> XPathGrammar.h
511         cat XPathGrammar.cpp.h XPathGrammar.hpp >> XPathGrammar.h
512         echo '#endif' >> XPathGrammar.h
513         rm -f XPathGrammar.cpp.h XPathGrammar.hpp
514
515 # --------
516
517 # user agent style sheets
518
519 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 
520
521 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
522     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/svg.css 
523 endif
524
525 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
526     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/wml.css
527 endif
528
529 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
530     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControls.css
531 ifeq ($(OS),MACOS)
532     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControlsQT.css
533 endif
534 endif
535
536 UserAgentStyleSheets.h : css/make-css-file-arrays.pl $(USER_AGENT_STYLE_SHEETS)
537         perl $< $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
538
539 # --------
540
541 # lookup tables for old-style JavaScript bindings
542
543 %.lut.h: %.cpp $(CREATE_HASH_TABLE)
544         $(CREATE_HASH_TABLE) $< -n WebCore > $@
545 %Table.cpp: %.cpp $(CREATE_HASH_TABLE)
546         $(CREATE_HASH_TABLE) $< -n WebCore > $@
547
548 # --------
549
550 # HTML tag and attribute names
551
552 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
553     HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO=1
554 endif
555
556 ifdef HTML_FLAGS
557
558 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
559         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines "$(HTML_FLAGS)"
560
561 else
562
563 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
564         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory
565
566 endif
567
568 JSHTMLElementWrapperFactory.cpp : HTMLNames.cpp
569
570 XMLNames.cpp : dom/make_names.pl xml/xmlattrs.in
571         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in
572
573 # --------
574
575 # SVG tag and attribute names, and element factory
576
577 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
578
579 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
580     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.exp
581 endif
582
583 ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE)
584     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1
585 endif
586
587 ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS)
588     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1
589 endif
590
591 ifeq ($(findstring ENABLE_SVG_FILTERS,$(FEATURE_DEFINES)), ENABLE_SVG_FILTERS)
592     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FILTERS=1
593 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
594     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Filters.exp
595 endif
596 endif
597
598 ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE)
599     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1
600 endif
601
602 ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION)
603     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1
604 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
605     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Animation.exp
606 endif
607 endif
608
609 ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT)
610     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1
611 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
612     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.ForeignObject.exp
613 endif
614 endif
615
616 # SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
617
618 ifdef SVG_FLAGS
619
620 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
621         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory
622 else
623
624 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
625         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
626
627 endif
628
629 JSSVGElementWrapperFactory.cpp : SVGNames.cpp
630
631 XLinkNames.cpp : dom/make_names.pl svg/xlinkattrs.in
632         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in
633
634 else
635
636 SVGElementFactory.cpp :
637         echo > $@
638
639 SVGNames.cpp :
640         echo > $@
641
642 XLinkNames.cpp :
643         echo > $@
644
645 # This file is autogenerated by make_names.pl when SVG is enabled.
646
647 JSSVGElementWrapperFactory.cpp :
648         echo > $@
649
650 endif
651
652 # --------
653
654 # WML tag and attribute names, and element factory
655
656 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
657
658 WMLElementFactory.cpp WMLNames.cpp : dom/make_names.pl wml/WMLTagNames.in wml/WMLAttributeNames.in
659         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/wml/WMLTagNames.in --attrs $(WebCore)/wml/WMLAttributeNames.in --factory --wrapperFactory
660
661 else
662
663 WMLElementFactory.cpp :
664         echo > $@
665
666 WMLNames.cpp :
667         echo > $@
668
669 endif
670
671
672 # --------
673
674 # JavaScript bindings
675
676 GENERATE_BINDINGS = perl -I $(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl \
677     --include dom --include html --include css --include page --include xml --include svg --outputDir .
678
679 GENERATE_BINDINGS_SCRIPTS = \
680     bindings/scripts/CodeGenerator.pm \
681     bindings/scripts/IDLParser.pm \
682     bindings/scripts/IDLStructure.pm \
683     bindings/scripts/generate-bindings.pl \
684 #
685
686 JS%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
687         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $<
688
689 # ------------------------
690
691 # Mac-specific rules
692
693 ifeq ($(OS),MACOS)
694
695 all : $(filter-out DOMDOMWindow.h DOMMimeType.h DOMPlugin.h,$(DOM_CLASSES:%=DOM%.h))
696
697 all : CharsetData.cpp WebCore.exp
698
699 # --------
700
701 # character set name table
702
703 CharsetData.cpp : platform/text/mac/make-charset-table.pl platform/text/mac/character-sets.txt platform/text/mac/mac-encodings.txt
704         perl $^ kTextEncoding > $@
705
706 # --------
707
708 # export file
709
710 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)
711     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.JNI.exp
712 endif
713
714 # See also "Generate 64-bit Export File" build phase script in WebCore.xcodeproj/project.pbxproj
715 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)
716     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.NPAPI.exp
717 endif
718
719 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
720     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.DashboardSupport.exp
721 endif
722
723 ifeq ($(findstring 10.4,$(MACOSX_DEPLOYMENT_TARGET)), 10.4)
724     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Tiger.exp
725 endif
726
727 ifeq ($(findstring ENABLE_PLUGIN_PROXY_FOR_VIDEO,$(FEATURE_DEFINES)), ENABLE_PLUGIN_PROXY_FOR_VIDEO)
728      WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.VideoProxy.exp
729 endif
730
731 WebCore.exp : WebCore.base.exp $(WEBCORE_EXPORT_DEPENDENCIES)
732         cat $^ > $@
733
734 # --------
735
736 # Objective-C bindings
737
738 DOM%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm bindings/objc/PublicDOMInterfaces.h
739         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC $<
740
741 # --------
742
743 endif
744
745 # ------------------------