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