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