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