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