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