5a106ed9eff87000af1ae20d957f8cc125f84c5b
[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 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au>
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
7 # are met:
8 #
9 # 1.  Redistributions of source code must retain the above copyright
10 #     notice, this list of conditions and the following disclaimer. 
11 # 2.  Redistributions in binary form must reproduce the above copyright
12 #     notice, this list of conditions and the following disclaimer in the
13 #     documentation and/or other materials provided with the distribution. 
14 # 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15 #     its contributors may be used to endorse or promote products derived
16 #     from this software without specific prior written permission. 
17 #
18 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 VPATH = \
30     $(WebCore) \
31     $(WebCore)/bindings/js \
32     $(WebCore)/bindings/objc \
33     $(WebCore)/css \
34     $(WebCore)/dom \
35     $(WebCore)/html \
36     $(WebCore)/html/canvas \
37     $(WebCore)/inspector \
38     $(WebCore)/loader/appcache \
39     $(WebCore)/notifications \
40     $(WebCore)/page \
41     $(WebCore)/plugins \
42     $(WebCore)/storage \
43     $(WebCore)/xml \
44     $(WebCore)/wml \
45     $(WebCore)/workers \
46     $(WebCore)/svg \
47     $(WebCore)/websockets \
48 #
49
50 DOM_CLASSES = \
51     AbstractView \
52     AbstractWorker \
53     Attr \
54     BarInfo \
55     BeforeLoadEvent \
56     BeforeProcessEvent \
57     Blob \
58     BlobBuilder \
59     CDATASection \
60     CSSCharsetRule \
61     CSSFontFaceRule \
62     CSSImportRule \
63     CSSMediaRule \
64     CSSPageRule \
65     CSSPrimitiveValue \
66     CSSRule \
67     CSSRuleList \
68     CSSStyleDeclaration \
69     CSSStyleRule \
70     CSSStyleSheet \
71     CSSUnknownRule \
72     CSSValue \
73     CSSValueList \
74     CSSVariablesRule \
75     CSSVariablesDeclaration \
76     WebGLActiveInfo \
77     ArrayBufferView \
78     ArrayBuffer \
79     WebGLBuffer \
80     Int8Array \
81     WebGLContextAttributes \
82     Float32Array \
83     WebGLFramebuffer \
84     CanvasGradient \
85     Int32Array \
86     CanvasPattern \
87     WebGLProgram \
88     WebGLRenderbuffer \
89     CanvasRenderingContext \
90     CanvasRenderingContext2D \
91     WebGLRenderingContext \
92     WebGLShader \
93     Int16Array \
94     WebGLTexture \
95     WebGLUniformLocation \
96     Uint8Array \
97     Uint32Array \
98     Uint16Array \
99     CharacterData \
100     ClientRect \
101     ClientRectList \
102     Clipboard \
103     Comment \
104     CompositionEvent \
105     Console \
106     Coordinates \
107     Counter \
108     CustomEvent \
109     DataGridColumn \
110     DataGridColumnList \
111     DedicatedWorkerContext \
112     DOMApplicationCache \
113     DOMCoreException \
114     DOMFormData \
115     DOMImplementation \
116     DOMParser \
117     DOMSelection \
118     DOMStringList \
119     DOMWindow \
120     Database \
121     DatabaseCallback \
122     DatabaseSync \
123     DeviceOrientationEvent \
124     Document \
125     DocumentFragment \
126     DocumentType \
127     Element \
128     ElementTimeControl \
129     Entity \
130     EntityReference \
131     ErrorEvent \
132     Event \
133     EventException \
134     EventListener \
135     EventSource \
136     EventTarget \
137     File \
138     FileError \
139     FileList \
140     FileReader \
141     Geolocation \
142     Geoposition \
143     HTMLAllCollection \
144     HTMLAnchorElement \
145     HTMLAppletElement \
146     HTMLAreaElement \
147     HTMLAudioElement \
148     HTMLBRElement \
149     HTMLBaseElement \
150     HTMLBaseFontElement \
151     HTMLBlockquoteElement \
152     HTMLBodyElement \
153     HTMLButtonElement \
154     HTMLCanvasElement \
155     HTMLCollection \
156     HTMLDataGridElement \
157     HTMLDataGridCellElement \
158     HTMLDataGridColElement \
159     HTMLDataGridRowElement \
160     HTMLDataListElement \
161     HTMLDListElement \
162     HTMLDirectoryElement \
163     HTMLDivElement \
164     HTMLDocument \
165     HTMLElement \
166     HTMLEmbedElement \
167     HTMLFieldSetElement \
168     HTMLFontElement \
169     HTMLFormElement \
170     HTMLFrameElement \
171     HTMLFrameSetElement \
172     HTMLHRElement \
173     HTMLHeadElement \
174     HTMLHeadingElement \
175     HTMLHtmlElement \
176     HTMLIFrameElement \
177     HTMLImageElement \
178     HTMLInputElement \
179     HTMLIsIndexElement \
180     HTMLLIElement \
181     HTMLLabelElement \
182     HTMLLegendElement \
183     HTMLLinkElement \
184     HTMLMapElement \
185     HTMLMarqueeElement \
186     HTMLMediaElement \
187     HTMLMenuElement \
188     HTMLMetaElement \
189     HTMLMeterElement \
190     HTMLModElement \
191     HTMLOListElement \
192     HTMLObjectElement \
193     HTMLOptGroupElement \
194     HTMLOptionElement \
195     HTMLOptionsCollection \
196     HTMLParagraphElement \
197     HTMLParamElement \
198     HTMLPreElement \
199     HTMLProgressElement \
200     HTMLQuoteElement \
201     HTMLScriptElement \
202     HTMLSelectElement \
203     HTMLSourceElement \
204     HTMLStyleElement \
205     HTMLTableCaptionElement \
206     HTMLTableCellElement \
207     HTMLTableColElement \
208     HTMLTableElement \
209     HTMLTableRowElement \
210     HTMLTableSectionElement \
211     HTMLTextAreaElement \
212     HTMLTitleElement \
213     HTMLUListElement \
214     HTMLVideoElement \
215     History \
216     IDBAny \
217     IDBDatabaseError \
218     IDBDatabaseException \
219     IDBDatabaseRequest \
220     IDBErrorEvent \
221     IDBEvent \
222     IDBIndexRequest \
223     IDBKeyRange \
224     IDBObjectStoreRequest \
225     IDBRequest \
226     IDBSuccessEvent \
227     ImageData \
228     IndexedDatabaseRequest \
229     InjectedScriptHost \
230     InspectorBackend \
231     InspectorFrontendHost \
232     KeyboardEvent \
233     Location \
234     MediaError \
235     MediaList \
236     MemoryInfo \
237     MessageChannel \
238     MessageEvent \
239     MessagePort \
240     MimeType \
241     MimeTypeArray \
242     MouseEvent \
243     MutationEvent \
244     NamedNodeMap \
245     NavigationTiming \
246     Navigator \
247     Node \
248     NodeFilter \
249     NodeIterator \
250     NodeList \
251     Notation \
252     Notification \
253     NotificationCenter \
254     OverflowEvent \
255     PageTransitionEvent \
256     Performance \
257     Plugin \
258     PluginArray \
259     PopStateEvent \
260     PositionError \
261     ProcessingInstruction \
262     ProgressEvent \
263     RGBColor \
264     Range \
265     RangeException \
266     Rect \
267     SharedWorker \
268     SharedWorkerContext \
269     ScriptProfile \
270     ScriptProfileNode \
271     SQLError \
272     SQLException \
273     SQLResultSet \
274     SQLResultSetRowList \
275     SQLStatementCallback \
276     SQLStatementErrorCallback \
277     SQLTransaction \
278     SQLTransactionCallback \
279     SQLTransactionErrorCallback \
280     SQLTransactionSync \
281     SQLTransactionSyncCallback \
282     Storage \
283     StorageEvent \
284     SVGAElement \
285     SVGAltGlyphElement \
286     SVGAngle \
287     SVGAnimateColorElement \
288     SVGAnimateElement \
289     SVGAnimateTransformElement \
290     SVGAnimatedAngle \
291     SVGAnimatedBoolean \
292     SVGAnimatedEnumeration \
293     SVGAnimatedInteger \
294     SVGAnimatedLength \
295     SVGAnimatedLengthList \
296     SVGAnimatedNumber \
297     SVGAnimatedNumberList \
298     SVGAnimatedPathData \
299     SVGAnimatedPoints \
300     SVGAnimatedPreserveAspectRatio \
301     SVGAnimatedRect \
302     SVGAnimatedString \
303     SVGAnimatedTransformList \
304     SVGAnimationElement \
305     SVGCircleElement \
306     SVGClipPathElement \
307     SVGColor \
308     SVGComponentTransferFunctionElement \
309     SVGCursorElement \
310     SVGDefsElement \
311     SVGDescElement \
312     SVGDocument \
313     SVGElement \
314     SVGElementInstance \
315     SVGElementInstanceList \
316     SVGEllipseElement \
317     SVGException \
318     SVGExternalResourcesRequired \
319     SVGFEBlendElement \
320     SVGFEColorMatrixElement \
321     SVGFEComponentTransferElement \
322     SVGFECompositeElement \
323     SVGFEConvolveMatrixElement \
324     SVGFEDiffuseLightingElement \
325     SVGFEDisplacementMapElement \
326     SVGFEDistantLightElement \
327     SVGFEFloodElement \
328     SVGFEFuncAElement \
329     SVGFEFuncBElement \
330     SVGFEFuncGElement \
331     SVGFEFuncRElement \
332     SVGFEGaussianBlurElement \
333     SVGFEImageElement \
334     SVGFEMergeElement \
335     SVGFEMergeNodeElement \
336     SVGFEMorphologyElement \
337     SVGFEOffsetElement \
338     SVGFEPointLightElement \
339     SVGFESpecularLightingElement \
340     SVGFESpotLightElement \
341     SVGFETileElement \
342     SVGFETurbulenceElement \
343     SVGFilterElement \
344     SVGFilterPrimitiveStandardAttributes \
345     SVGFitToViewBox \
346     SVGFontElement \
347     SVGFontFaceElement \
348     SVGFontFaceFormatElement \
349     SVGFontFaceNameElement \
350     SVGFontFaceSrcElement \
351     SVGFontFaceUriElement \
352     SVGForeignObjectElement \
353     SVGGElement \
354     SVGGlyphElement \
355     SVGGradientElement \
356     SVGHKernElement \
357     SVGImageElement \
358     SVGLangSpace \
359     SVGLength \
360     SVGLengthList \
361     SVGLineElement \
362     SVGLinearGradientElement \
363     SVGLocatable \
364     SVGMarkerElement \
365     SVGMaskElement \
366     SVGMatrix \
367     SVGMetadataElement \
368     SVGMissingGlyphElement \
369     SVGNumber \
370     SVGNumberList \
371     SVGPaint \
372     SVGPathElement \
373     SVGPathSeg \
374     SVGPathSegArcAbs \
375     SVGPathSegArcRel \
376     SVGPathSegClosePath \
377     SVGPathSegCurvetoCubicAbs \
378     SVGPathSegCurvetoCubicRel \
379     SVGPathSegCurvetoCubicSmoothAbs \
380     SVGPathSegCurvetoCubicSmoothRel \
381     SVGPathSegCurvetoQuadraticAbs \
382     SVGPathSegCurvetoQuadraticRel \
383     SVGPathSegCurvetoQuadraticSmoothAbs \
384     SVGPathSegCurvetoQuadraticSmoothRel \
385     SVGPathSegLinetoAbs \
386     SVGPathSegLinetoHorizontalAbs \
387     SVGPathSegLinetoHorizontalRel \
388     SVGPathSegLinetoRel \
389     SVGPathSegLinetoVerticalAbs \
390     SVGPathSegLinetoVerticalRel \
391     SVGPathSegList \
392     SVGPathSegMovetoAbs \
393     SVGPathSegMovetoRel \
394     SVGPatternElement \
395     SVGPoint \
396     SVGPointList \
397     SVGPolygonElement \
398     SVGPolylineElement \
399     SVGPreserveAspectRatio \
400     SVGRadialGradientElement \
401     SVGRect \
402     SVGRectElement \
403     SVGRenderingIntent \
404     SVGSVGElement \
405     SVGScriptElement \
406     SVGSetElement \
407     SVGStopElement \
408     SVGStringList \
409     SVGStylable \
410     SVGStyleElement \
411     SVGSwitchElement \
412     SVGSymbolElement \
413     SVGTRefElement \
414     SVGTSpanElement \
415     SVGTests \
416     SVGTextContentElement \
417     SVGTextElement \
418     SVGTextPathElement \
419     SVGTextPositioningElement \
420     SVGTitleElement \
421     SVGTransform \
422     SVGTransformList \
423     SVGTransformable \
424     SVGURIReference \
425     SVGUnitTypes \
426     SVGUseElement \
427     SVGViewElement \
428     SVGVKernElement \
429     SVGZoomAndPan \
430     SVGZoomEvent \
431     Screen \
432     StyleMedia \
433     StyleSheet \
434     StyleSheetList \
435     Text \
436     TextEvent \
437     TextMetrics \
438     TimeRanges \
439     Touch \
440     TouchEvent \
441     TouchList \
442     TreeWalker \
443     UIEvent \
444     ValidityState \
445     WebKitAnimationEvent \
446     WebKitCSSKeyframeRule \
447     WebKitCSSKeyframesRule \
448     WebKitCSSMatrix \
449     WebKitCSSTransformValue \
450     WebKitPoint \
451     WebKitTransitionEvent \
452     WebSocket \
453     WheelEvent \
454     Worker \
455     WorkerContext \
456     WorkerLocation \
457     WorkerNavigator \
458     XMLHttpRequest \
459     XMLHttpRequestException \
460     XMLHttpRequestProgressEvent \
461     XMLHttpRequestUpload \
462     XMLSerializer \
463     XPathEvaluator \
464     XPathException \
465     XPathExpression \
466     XPathNSResolver \
467     XPathResult \
468     XSLTProcessor \
469 #
470
471 .PHONY : all
472
473 JS_DOM_HEADERS=$(filter-out JSEventListener.h JSEventTarget.h,$(DOM_CLASSES:%=JS%.h))
474
475 all : \
476     $(JS_DOM_HEADERS) \
477     \
478     JSJavaScriptCallFrame.h \
479     \
480     CSSGrammar.cpp \
481     CSSPropertyNames.h \
482     CSSValueKeywords.h \
483     ColorData.cpp \
484     DocTypeStrings.cpp \
485     HTMLElementFactory.cpp \
486     HTMLEntityNames.cpp \
487     HTMLNames.cpp \
488     WMLElementFactory.cpp \
489     WMLNames.cpp \
490     JSSVGElementWrapperFactory.cpp \
491     SVGElementFactory.cpp \
492     SVGNames.cpp \
493     UserAgentStyleSheets.h \
494     XLinkNames.cpp \
495     XMLNSNames.cpp \
496     XMLNames.cpp \
497     MathMLElementFactory.cpp \
498     MathMLNames.cpp \
499     XPathGrammar.cpp \
500     tokenizer.cpp \
501 #
502
503 # --------
504
505 ADDITIONAL_IDL_DEFINES :=
506
507 ifeq ($(OS),MACOS)
508
509 FRAMEWORK_FLAGS = $(shell echo $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));')
510
511 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_DASHBOARD_SUPPORT | cut -d' ' -f3), 1)
512     ENABLE_DASHBOARD_SUPPORT = 1
513 else
514     ENABLE_DASHBOARD_SUPPORT = 0
515 endif
516
517 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_ORIENTATION_EVENTS | cut -d' ' -f3), 1)
518     ENABLE_ORIENTATION_EVENTS = 1
519 else
520     ENABLE_ORIENTATION_EVENTS = 0
521 endif
522
523 else
524
525 ifndef ENABLE_DASHBOARD_SUPPORT
526     ENABLE_DASHBOARD_SUPPORT = 0
527 endif
528
529 ifndef ENABLE_ORIENTATION_EVENTS
530     ENABLE_ORIENTATION_EVENTS = 0
531 endif
532
533 endif # MACOS
534
535 ifeq ($(ENABLE_ORIENTATION_EVENTS), 1)
536     ADDITIONAL_IDL_DEFINES := $(ADDITIONAL_IDL_DEFINES) ENABLE_ORIENTATION_EVENTS
537 endif
538
539 # --------
540
541 # CSS property names and value keywords
542
543 WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
544 WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in
545
546 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
547     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/SVGCSSPropertyNames.in
548     WEBCORE_CSS_VALUE_KEYWORDS := $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/SVGCSSValueKeywords.in
549 endif
550
551 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
552     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/DashboardSupportCSSPropertyNames.in
553 endif
554
555 # The grep commands below reject output containing anything other than:
556 # 1. Lines beginning with '#'
557 # 2. Lines containing only whitespace
558 # These two types of lines will be ignored by make{prop,values}.pl.
559 CSSPropertyNames.h : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl
560         if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
561         cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in
562         perl "$(WebCore)/css/makeprop.pl"
563
564 CSSValueKeywords.h : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl
565         # Lower case all the values, as CSS values are case-insensitive
566         perl -ne 'print lc' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in
567         if sort CSSValueKeywords.in | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
568         perl "$(WebCore)/css/makevalues.pl"
569
570 # --------
571
572 # DOCTYPE strings
573
574 DocTypeStrings.cpp : html/DocTypeStrings.gperf $(WebCore)/make-hash-tools.pl
575         perl $(WebCore)/make-hash-tools.pl . $(WebCore)/html/DocTypeStrings.gperf
576
577 # --------
578
579 # HTML entity names
580
581 HTMLEntityNames.cpp : html/HTMLEntityNames.gperf $(WebCore)/make-hash-tools.pl
582         perl $(WebCore)/make-hash-tools.pl . $(WebCore)/html/HTMLEntityNames.gperf
583
584 # --------
585
586 # color names
587
588 ColorData.cpp : platform/ColorData.gperf $(WebCore)/make-hash-tools.pl
589         perl $(WebCore)/make-hash-tools.pl . $(WebCore)/platform/ColorData.gperf
590
591 # --------
592
593 # CSS tokenizer
594
595 tokenizer.cpp : css/tokenizer.flex css/maketokenizer
596         flex -t $< | perl $(WebCore)/css/maketokenizer > $@
597
598 # --------
599
600 # CSS grammar
601 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
602
603 CSSGrammar.cpp : css/CSSGrammar.y
604         bison -d -p cssyy $< -o $@
605         touch CSSGrammar.cpp.h
606         touch CSSGrammar.hpp
607         echo '#ifndef CSSGrammar_h' > CSSGrammar.h
608         echo '#define CSSGrammar_h' >> CSSGrammar.h
609         cat CSSGrammar.cpp.h CSSGrammar.hpp >> CSSGrammar.h
610         echo '#endif' >> CSSGrammar.h
611         rm -f CSSGrammar.cpp.h CSSGrammar.hpp
612
613 # --------
614
615 # XPath grammar
616 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
617
618 XPathGrammar.cpp : xml/XPathGrammar.y $(PROJECT_FILE)
619         bison -d -p xpathyy $< -o $@
620         touch XPathGrammar.cpp.h
621         touch XPathGrammar.hpp
622         echo '#ifndef XPathGrammar_h' > XPathGrammar.h
623         echo '#define XPathGrammar_h' >> XPathGrammar.h
624         cat XPathGrammar.cpp.h XPathGrammar.hpp >> XPathGrammar.h
625         echo '#endif' >> XPathGrammar.h
626         rm -f XPathGrammar.cpp.h XPathGrammar.hpp
627
628 # --------
629
630 # user agent style sheets
631
632 USER_AGENT_STYLE_SHEETS = $(WebCore)/css/html.css $(WebCore)/css/quirks.css $(WebCore)/css/view-source.css $(WebCore)/css/themeWin.css $(WebCore)/css/themeWinQuirks.css 
633
634 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
635     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/svg.css 
636 endif
637
638 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
639     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/wml.css
640 endif
641
642 ifeq ($(findstring ENABLE_MATHML,$(FEATURE_DEFINES)), ENABLE_MATHML)
643     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mathml.css
644 endif
645
646 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
647     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControls.css
648 ifeq ($(OS),MACOS)
649     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControlsQuickTime.css
650 endif
651 endif
652
653 UserAgentStyleSheets.h : css/make-css-file-arrays.pl $(USER_AGENT_STYLE_SHEETS)
654         perl $< $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
655
656 # --------
657
658 # HTML tag and attribute names
659
660 ifeq ($(findstring ENABLE_DATALIST,$(FEATURE_DEFINES)), ENABLE_DATALIST)
661     HTML_FLAGS := $(HTML_FLAGS) ENABLE_DATALIST=1
662 endif
663
664 ifeq ($(findstring ENABLE_METER_TAG,$(FEATURE_DEFINES)), ENABLE_METER_TAG)
665     HTML_FLAGS := $(HTML_FLAGS) ENABLE_METER_TAG=1
666 endif
667
668 ifeq ($(findstring ENABLE_PROGRESS_TAG,$(FEATURE_DEFINES)), ENABLE_PROGRESS_TAG)
669     HTML_FLAGS := $(HTML_FLAGS) ENABLE_PROGRESS_TAG=1
670 endif
671
672 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
673     HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO=1
674 endif
675
676 ifeq ($(findstring ENABLE_RUBY,$(FEATURE_DEFINES)), ENABLE_RUBY)
677     HTML_FLAGS := $(HTML_FLAGS) ENABLE_RUBY=1
678 endif
679
680 ifdef HTML_FLAGS
681
682 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
683         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines "$(HTML_FLAGS)"
684
685 else
686
687 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
688         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory
689
690 endif
691
692 JSHTMLElementWrapperFactory.cpp : HTMLNames.cpp
693
694 XMLNSNames.cpp : dom/make_names.pl xml/xmlnsattrs.in
695         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlnsattrs.in
696
697 XMLNames.cpp : dom/make_names.pl xml/xmlattrs.in
698         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in
699
700 # --------
701
702 # SVG tag and attribute names, and element factory
703
704 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
705
706 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
707     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.exp
708 endif
709
710 ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE)
711     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1
712 endif
713
714 ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS)
715     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1
716 endif
717
718 ifeq ($(findstring ENABLE_FILTERS,$(FEATURE_DEFINES)), ENABLE_FILTERS)
719     SVG_FLAGS := $(SVG_FLAGS) ENABLE_FILTERS=1
720 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
721     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Filters.exp
722 endif
723 endif
724
725 ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE)
726     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1
727 endif
728
729 ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION)
730     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1
731 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
732     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Animation.exp
733 endif
734 endif
735
736 ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT)
737     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1
738 ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS)
739     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.ForeignObject.exp
740 endif
741 endif
742
743 # SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
744
745 ifdef SVG_FLAGS
746
747 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
748         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory
749 else
750
751 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
752         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
753
754 endif
755
756 JSSVGElementWrapperFactory.cpp : SVGNames.cpp
757
758 XLinkNames.cpp : dom/make_names.pl svg/xlinkattrs.in
759         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in
760
761 else
762
763 SVGElementFactory.cpp :
764         echo > $@
765
766 SVGNames.cpp :
767         echo > $@
768
769 XLinkNames.cpp :
770         echo > $@
771
772 # This file is autogenerated by make_names.pl when SVG is enabled.
773
774 JSSVGElementWrapperFactory.cpp :
775         echo > $@
776
777 endif
778
779 # --------
780
781 # WML tag and attribute names, and element factory
782
783 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
784
785 WMLElementFactory.cpp WMLNames.cpp : dom/make_names.pl wml/WMLTagNames.in wml/WMLAttributeNames.in
786         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/wml/WMLTagNames.in --attrs $(WebCore)/wml/WMLAttributeNames.in --factory --wrapperFactory
787
788 else
789
790 WMLElementFactory.cpp :
791         echo > $@
792
793 WMLNames.cpp :
794         echo > $@
795
796 endif
797
798 # --------
799  
800 # MathML tag and attribute names, and element factory
801
802 ifeq ($(findstring ENABLE_MATHML,$(FEATURE_DEFINES)), ENABLE_MATHML)
803
804 MathMLElementFactory.cpp MathMLNames.cpp : dom/make_names.pl mathml/mathtags.in mathml/mathattrs.in
805         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory
806
807 else
808
809 MathMLElementFactory.cpp :
810         echo > $@
811
812 MathMLNames.cpp :
813         echo > $@
814
815 endif
816
817
818
819 # --------
820
821 # JavaScript bindings
822
823 GENERATE_BINDINGS = perl -I $(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl \
824     --include dom --include html --include css --include page --include notifications --include xml --include svg --write-dependencies --outputDir .
825
826 GENERATE_BINDINGS_SCRIPTS = \
827     bindings/scripts/CodeGenerator.pm \
828     bindings/scripts/IDLParser.pm \
829     bindings/scripts/IDLStructure.pm \
830     bindings/scripts/generate-bindings.pl \
831 #
832
833 JS%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
834         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $<
835
836 -include $(JS_DOM_HEADERS:.h=.dep)
837
838 # ------------------------
839
840 # Mac-specific rules
841
842 ifeq ($(OS),MACOS)
843
844 OBJC_DOM_HEADERS=$(filter-out DOMDOMWindow.h DOMMimeType.h DOMPlugin.h,$(DOM_CLASSES:%=DOM%.h))
845
846 all : $(OBJC_DOM_HEADERS)
847
848 all : CharsetData.cpp WebCore.exp WebCore.LP64.exp
849
850 # --------
851
852 # character set name table
853
854 CharsetData.cpp : platform/text/mac/make-charset-table.pl platform/text/mac/character-sets.txt platform/text/mac/mac-encodings.txt
855         perl $^ kTextEncoding > $@
856
857 # --------
858
859 # export file
860
861 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_JAVA_BRIDGE | cut -d' ' -f3), 1)
862     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.JNI.exp
863 endif
864
865 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_NETSCAPE_PLUGIN_API | cut -d' ' -f3), 1)
866     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.NPAPI.exp
867 endif
868
869 # FIXME: WTF_USE_PLUGIN_HOST_PROCESS is only true when building for x86_64, but we shouldn't have to know about that here.
870 ifeq ($(findstring x86_64,$(ARCHS)) $(findstring x86_64,$(VALID_ARCHS)), x86_64 x86_64)
871 ifeq ($(shell gcc -arch x86_64 -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep WTF_USE_PLUGIN_HOST_PROCESS | cut -d' ' -f3), 1)
872     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.PluginHostProcess.exp
873 endif
874 endif
875
876 ifeq ($(findstring ENABLE_3D_RENDERING,$(FEATURE_DEFINES)), ENABLE_3D_RENDERING)
877     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.3DRendering.exp
878 endif
879
880 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_CONTEXT_MENUS | cut -d' ' -f3), 1)
881     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.ContextMenus.exp
882 endif
883
884 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
885     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.DashboardSupport.exp
886 endif
887
888 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_DRAG_SUPPORT | cut -d' ' -f3), 1)
889     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.DragSupport.exp
890 endif
891
892 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_INSPECTOR | cut -d' ' -f3), 1)
893     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Inspector.exp
894 endif
895
896 ifeq ($(ENABLE_ORIENTATION_EVENTS), 1)
897     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.OrientationEvents.exp
898 endif
899
900 ifeq ($(findstring 10.4,$(MACOSX_DEPLOYMENT_TARGET)), 10.4)
901     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Tiger.exp
902 endif
903
904 ifeq ($(findstring ENABLE_PLUGIN_PROXY_FOR_VIDEO,$(FEATURE_DEFINES)), ENABLE_PLUGIN_PROXY_FOR_VIDEO)
905      WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.VideoProxy.exp
906 endif
907
908 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
909      WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Video.exp
910 endif
911
912 ifeq ($(findstring ENABLE_GEOLOCATION,$(FEATURE_DEFINES)), ENABLE_GEOLOCATION)
913 ifeq ($(findstring ENABLE_CLIENT_BASED_GEOLOCATION,$(FEATURE_DEFINES)), ENABLE_CLIENT_BASED_GEOLOCATION)
914     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.ClientBasedGeolocation.exp
915 else
916     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Geolocation.exp
917 endif
918 endif
919
920 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK | cut -d' ' -f3), 1)
921     WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.ProtectionSpaceAuthCallback.exp
922 endif
923
924 WebCore.exp : WebCore.base.exp $(WEBCORE_EXPORT_DEPENDENCIES)
925         cat $^ > $@
926
927 # Switch NSRect, NSSize and NSPoint with their CG counterparts for 64-bit.
928 WebCore.LP64.exp : WebCore.exp
929         cat $^ | sed -e s/7_NSRect/6CGRect/ -e s/7_NSSize/6CGSize/ -e s/8_NSPoint/7CGPoint/ > $@
930
931 # --------
932
933 # Objective-C bindings
934
935 DOM%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm bindings/objc/PublicDOMInterfaces.h
936         $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC $<
937
938 -include $(OBJC_DOM_HEADERS:.h=.dep)
939
940 # --------
941
942 endif # MACOS
943
944 # ------------------------