ae013d02653b79e2fd07ba055d295aadb4ac910a
[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     Counter \
77     DOMApplicationCache \
78     DOMCoreException \
79     DOMImplementation \
80     DOMParser \
81     DOMSelection \
82     DOMStringList \
83     DOMWindow \
84     Database \
85     Document \
86     DocumentFragment \
87     DocumentType \
88     Element \
89     ElementTimeControl \
90     Entity \
91     EntityReference \
92     Event \
93     EventException \
94     EventListener \
95     EventTarget \
96     File \
97     FileList \
98     Geolocation \
99     Geoposition \
100     HTMLAnchorElement \
101     HTMLAppletElement \
102     HTMLAreaElement \
103     HTMLAudioElement \
104     HTMLBRElement \
105     HTMLBaseElement \
106     HTMLBaseFontElement \
107     HTMLBlockquoteElement \
108     HTMLBodyElement \
109     HTMLButtonElement \
110     HTMLCanvasElement \
111     HTMLCollection \
112     HTMLDListElement \
113     HTMLDirectoryElement \
114     HTMLDivElement \
115     HTMLDocument \
116     HTMLElement \
117     HTMLEmbedElement \
118     HTMLFieldSetElement \
119     HTMLFontElement \
120     HTMLFormElement \
121     HTMLFrameElement \
122     HTMLFrameSetElement \
123     HTMLHRElement \
124     HTMLHeadElement \
125     HTMLHeadingElement \
126     HTMLHtmlElement \
127     HTMLIFrameElement \
128     HTMLImageElement \
129     HTMLInputElement \
130     HTMLIsIndexElement \
131     HTMLLIElement \
132     HTMLLabelElement \
133     HTMLLegendElement \
134     HTMLLinkElement \
135     HTMLMapElement \
136     HTMLMarqueeElement \
137     HTMLMediaElement \
138     HTMLMenuElement \
139     HTMLMetaElement \
140     HTMLModElement \
141     HTMLOListElement \
142     HTMLObjectElement \
143     HTMLOptGroupElement \
144     HTMLOptionElement \
145     HTMLOptionsCollection \
146     HTMLParagraphElement \
147     HTMLParamElement \
148     HTMLPreElement \
149     HTMLQuoteElement \
150     HTMLScriptElement \
151     HTMLSelectElement \
152     HTMLSourceElement \
153     HTMLStyleElement \
154     HTMLTableCaptionElement \
155     HTMLTableCellElement \
156     HTMLTableColElement \
157     HTMLTableElement \
158     HTMLTableRowElement \
159     HTMLTableSectionElement \
160     HTMLTextAreaElement \
161     HTMLTitleElement \
162     HTMLUListElement \
163     HTMLVideoElement \
164     History \
165     ImageData \
166     KeyboardEvent \
167     Location \
168     MediaError \
169     MediaList \
170     MessageChannel \
171     MessageEvent \
172     MessagePort \
173     MimeType \
174     MimeTypeArray \
175     MouseEvent \
176     MutationEvent \
177     NamedNodeMap \
178     Navigator \
179     Node \
180     NodeFilter \
181     NodeIterator \
182     NodeList \
183     Notation \
184     OverflowEvent \
185     Plugin \
186     PluginArray \
187     PositionCallback \
188     PositionError \
189     PositionErrorCallback \
190     ProcessingInstruction \
191     ProgressEvent \
192     RGBColor \
193     Range \
194     RangeException \
195     Rect \
196     SQLError \
197     SQLResultSet \
198     SQLResultSetRowList \
199     SQLTransaction \
200     Storage \
201     StorageEvent \
202     SVGAElement \
203     SVGAltGlyphElement \
204     SVGAngle \
205     SVGAnimateColorElement \
206     SVGAnimateElement \
207     SVGAnimateTransformElement \
208     SVGAnimatedAngle \
209     SVGAnimatedBoolean \
210     SVGAnimatedEnumeration \
211     SVGAnimatedInteger \
212     SVGAnimatedLength \
213     SVGAnimatedLengthList \
214     SVGAnimatedNumber \
215     SVGAnimatedNumberList \
216     SVGAnimatedPathData \
217     SVGAnimatedPoints \
218     SVGAnimatedPreserveAspectRatio \
219     SVGAnimatedRect \
220     SVGAnimatedString \
221     SVGAnimatedTransformList \
222     SVGAnimationElement \
223     SVGCircleElement \
224     SVGClipPathElement \
225     SVGColor \
226     SVGComponentTransferFunctionElement \
227     SVGCursorElement \
228     SVGDefinitionSrcElement \
229     SVGDefsElement \
230     SVGDescElement \
231     SVGDocument \
232     SVGElement \
233     SVGElementInstance \
234     SVGElementInstanceList \
235     SVGEllipseElement \
236     SVGException \
237     SVGExternalResourcesRequired \
238     SVGFEBlendElement \
239     SVGFEColorMatrixElement \
240     SVGFEComponentTransferElement \
241     SVGFECompositeElement \
242     SVGFEDiffuseLightingElement \
243     SVGFEDisplacementMapElement \
244     SVGFEDistantLightElement \
245     SVGFEFloodElement \
246     SVGFEFuncAElement \
247     SVGFEFuncBElement \
248     SVGFEFuncGElement \
249     SVGFEFuncRElement \
250     SVGFEGaussianBlurElement \
251     SVGFEImageElement \
252     SVGFEMergeElement \
253     SVGFEMergeNodeElement \
254     SVGFEOffsetElement \
255     SVGFEPointLightElement \
256     SVGFESpecularLightingElement \
257     SVGFESpotLightElement \
258     SVGFETileElement \
259     SVGFETurbulenceElement \
260     SVGFilterElement \
261     SVGFilterPrimitiveStandardAttributes \
262     SVGFitToViewBox \
263     SVGFontElement \
264     SVGFontFaceElement \
265     SVGFontFaceFormatElement \
266     SVGFontFaceNameElement \
267     SVGFontFaceSrcElement \
268     SVGFontFaceUriElement \
269     SVGForeignObjectElement \
270     SVGGElement \
271     SVGGlyphElement \
272     SVGGradientElement \
273     SVGHKernElement \
274     SVGImageElement \
275     SVGLangSpace \
276     SVGLength \
277     SVGLengthList \
278     SVGLineElement \
279     SVGLinearGradientElement \
280     SVGLocatable \
281     SVGMarkerElement \
282     SVGMaskElement \
283     SVGMatrix \
284     SVGMetadataElement \
285     SVGMissingGlyphElement \
286     SVGNumber \
287     SVGNumberList \
288     SVGPaint \
289     SVGPathElement \
290     SVGPathSeg \
291     SVGPathSegArcAbs \
292     SVGPathSegArcRel \
293     SVGPathSegClosePath \
294     SVGPathSegCurvetoCubicAbs \
295     SVGPathSegCurvetoCubicRel \
296     SVGPathSegCurvetoCubicSmoothAbs \
297     SVGPathSegCurvetoCubicSmoothRel \
298     SVGPathSegCurvetoQuadraticAbs \
299     SVGPathSegCurvetoQuadraticRel \
300     SVGPathSegCurvetoQuadraticSmoothAbs \
301     SVGPathSegCurvetoQuadraticSmoothRel \
302     SVGPathSegLinetoAbs \
303     SVGPathSegLinetoHorizontalAbs \
304     SVGPathSegLinetoHorizontalRel \
305     SVGPathSegLinetoRel \
306     SVGPathSegLinetoVerticalAbs \
307     SVGPathSegLinetoVerticalRel \
308     SVGPathSegList \
309     SVGPathSegMovetoAbs \
310     SVGPathSegMovetoRel \
311     SVGPatternElement \
312     SVGPoint \
313     SVGPointList \
314     SVGPolygonElement \
315     SVGPolylineElement \
316     SVGPreserveAspectRatio \
317     SVGRadialGradientElement \
318     SVGRect \
319     SVGRectElement \
320     SVGRenderingIntent \
321     SVGSVGElement \
322     SVGScriptElement \
323     SVGSetElement \
324     SVGStopElement \
325     SVGStringList \
326     SVGStylable \
327     SVGStyleElement \
328     SVGSwitchElement \
329     SVGSymbolElement \
330     SVGTRefElement \
331     SVGTSpanElement \
332     SVGTests \
333     SVGTextContentElement \
334     SVGTextElement \
335     SVGTextPathElement \
336     SVGTextPositioningElement \
337     SVGTitleElement \
338     SVGTransform \
339     SVGTransformList \
340     SVGTransformable \
341     SVGURIReference \
342     SVGUnitTypes \
343     SVGUseElement \
344     SVGViewElement \
345     SVGZoomAndPan \
346     SVGZoomEvent \
347     Screen \
348     StyleSheet \
349     StyleSheetList \
350     Text \
351     TextEvent \
352     TextMetrics \
353     TimeRanges \
354     TreeWalker \
355     UIEvent \
356     VoidCallback \
357     WebKitAnimationEvent \
358     WebKitCSSKeyframeRule \
359     WebKitCSSKeyframesRule \
360     WebKitCSSMatrix \
361     WebKitCSSTransformValue \
362     WebKitPoint \
363     WebKitTransitionEvent \
364     WheelEvent \
365     Worker \
366     WorkerContext \
367     WorkerLocation \
368     WorkerNavigator \
369     XMLHttpRequest \
370     XMLHttpRequestException \
371     XMLHttpRequestProgressEvent \
372     XMLHttpRequestUpload \
373     XMLSerializer \
374     XPathEvaluator \
375     XPathException \
376     XPathExpression \
377     XPathNSResolver \
378     XPathResult \
379     XSLTProcessor \
380 #
381
382 .PHONY : all
383
384 all : \
385     $(filter-out JSEventListener.h JSEventTarget.h JSRGBColor.h,$(DOM_CLASSES:%=JS%.h)) \
386     \
387     JSDOMWindowBase.lut.h \
388     JSRGBColor.lut.h \
389     JSWorkerContextBase.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 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.exp
579
580 ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE)
581     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1
582 endif
583
584 ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS)
585     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1
586 endif
587
588 ifeq ($(findstring ENABLE_SVG_FILTERS,$(FEATURE_DEFINES)), ENABLE_SVG_FILTERS)
589     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FILTERS=1
590     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Filters.exp
591 endif
592
593 ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE)
594     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1
595 endif
596
597 ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION)
598     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1
599     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Animation.exp
600 endif
601
602 ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT)
603     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1
604     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.ForeignObject.exp
605 endif
606
607 # SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
608
609 ifdef SVG_FLAGS
610
611 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
612         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory
613 else
614
615 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
616         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
617
618 endif
619
620 JSSVGElementWrapperFactory.cpp : SVGNames.cpp
621
622 XLinkNames.cpp : dom/make_names.pl svg/xlinkattrs.in
623         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in
624
625 else
626
627 SVGElementFactory.cpp :
628         echo > $@
629
630 SVGNames.cpp :
631         echo > $@
632
633 XLinkNames.cpp :
634         echo > $@
635
636 # This file is autogenerated by make_names.pl when SVG is enabled.
637
638 JSSVGElementWrapperFactory.cpp :
639         echo > $@
640
641 endif
642
643 # --------
644
645 # WML tag and attribute names, and element factory
646
647 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
648
649 WMLElementFactory.cpp WMLNames.cpp : dom/make_names.pl wml/WMLTagNames.in wml/WMLAttributeNames.in
650         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/wml/WMLTagNames.in --attrs $(WebCore)/wml/WMLAttributeNames.in --factory --wrapperFactory
651
652 else
653
654 WMLElementFactory.cpp :
655         echo > $@
656
657 WMLNames.cpp :
658         echo > $@
659
660 endif
661
662
663 # --------
664
665 # JavaScript bindings
666
667 GENERATE_BINDINGS = perl -I $(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl \
668     --include dom --include html --include css --include page --include xml --include svg --outputDir .
669
670 GENERATE_BINDINGS_SCRIPTS = \
671     bindings/scripts/CodeGenerator.pm \
672     bindings/scripts/IDLParser.pm \
673     bindings/scripts/IDLStructure.pm \
674     bindings/scripts/generate-bindings.pl \
675 #
676
677 JS%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
678         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $<
679
680 # ------------------------
681
682 # Mac-specific rules
683
684 ifeq ($(OS),MACOS)
685
686 all : $(filter-out DOMDOMWindow.h DOMMimeType.h DOMPlugin.h,$(DOM_CLASSES:%=DOM%.h))
687
688 all : CharsetData.cpp WebCore.exp
689
690 # --------
691
692 # character set name table
693
694 CharsetData.cpp : platform/text/mac/make-charset-table.pl platform/text/mac/character-sets.txt platform/text/mac/mac-encodings.txt
695         perl $^ kTextEncoding > $@
696
697 # --------
698
699 # export file
700
701 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)
702     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.JNI.exp
703 endif
704
705 # See also "Generate 64-bit Export File" build phase script in WebCore.xcodeproj/project.pbxproj
706 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)
707     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.NPAPI.exp
708 endif
709
710 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
711     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.DashboardSupport.exp
712 endif
713
714 ifeq ($(findstring 10.4,$(MACOSX_DEPLOYMENT_TARGET)), 10.4)
715     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Tiger.exp
716 endif
717
718 ifeq ($(findstring ENABLE_PLUGIN_PROXY_FOR_VIDEO,$(FEATURE_DEFINES)), ENABLE_PLUGIN_PROXY_FOR_VIDEO)
719      WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.VideoProxy.exp
720 endif
721
722 WebCore.exp : WebCore.base.exp $(WEBCORE_EXPORT_DEPENDENCIES)
723         cat $^ > $@
724
725 # --------
726
727 # Objective-C bindings
728
729 DOM%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm bindings/objc/PublicDOMInterfaces.h
730         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC $<
731
732 # --------
733
734 endif
735
736 # ------------------------