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