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