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