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