ef2dc2f1ad6868655cec9c7f2139980aba433252
[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     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     DOMURL \
151     DOMWindow \
152     Database \
153     DatabaseCallback \
154     DatabaseSync \
155     DeviceMotionEvent \
156     DeviceOrientationEvent \
157     DirectoryEntry \
158     DirectoryEntrySync \
159     DirectoryReader \
160     DirectoryReaderSync \
161     Document \
162     DocumentFragment \
163     DocumentType \
164     Element \
165     ElementTimeControl \
166     Entity \
167     EntityReference \
168     EntriesCallback \
169     Entry \
170     EntrySync \
171     EntryArray \
172     EntryArraySync \
173     EntryCallback \
174     ErrorCallback \
175     ErrorEvent \
176     Event \
177     EventException \
178     EventListener \
179     EventSource \
180     EventTarget \
181     File \
182     FileCallback \
183     FileEntry \
184     FileEntrySync \
185     FileException \
186     FileError \
187     FileList \
188     FileReader \
189     FileReaderSync \
190     FileWriter \
191     FileWriterCallback \
192     FileWriterSync \
193     FileSystemCallback \
194     Flags \
195     Geolocation \
196     Geoposition \
197     HashChangeEvent \
198     History \
199     HTMLAllCollection \
200     HTMLAnchorElement \
201     HTMLAppletElement \
202     HTMLAreaElement \
203     HTMLAudioElement \
204     HTMLBRElement \
205     HTMLBaseElement \
206     HTMLBaseFontElement \
207     HTMLBlockquoteElement \
208     HTMLBodyElement \
209     HTMLButtonElement \
210     HTMLCanvasElement \
211     HTMLCollection \
212     HTMLDataGridElement \
213     HTMLDataGridCellElement \
214     HTMLDataGridColElement \
215     HTMLDataGridRowElement \
216     HTMLDataListElement \
217     HTMLDetailsElement \
218     HTMLDListElement \
219     HTMLDirectoryElement \
220     HTMLDivElement \
221     HTMLDocument \
222     HTMLElement \
223     HTMLEmbedElement \
224     HTMLFieldSetElement \
225     HTMLFontElement \
226     HTMLFormElement \
227     HTMLFrameElement \
228     HTMLFrameSetElement \
229     HTMLHRElement \
230     HTMLHeadElement \
231     HTMLHeadingElement \
232     HTMLHtmlElement \
233     HTMLIFrameElement \
234     HTMLImageElement \
235     HTMLInputElement \
236     HTMLIsIndexElement \
237     HTMLKeygenElement \
238     HTMLLIElement \
239     HTMLLabelElement \
240     HTMLLegendElement \
241     HTMLLinkElement \
242     HTMLMapElement \
243     HTMLMarqueeElement \
244     HTMLMediaElement \
245     HTMLMenuElement \
246     HTMLMetaElement \
247     HTMLMeterElement \
248     HTMLModElement \
249     HTMLOListElement \
250     HTMLObjectElement \
251     HTMLOptGroupElement \
252     HTMLOptionElement \
253     HTMLOptionsCollection \
254     HTMLOutputElement \
255     HTMLParagraphElement \
256     HTMLParamElement \
257     HTMLPreElement \
258     HTMLProgressElement \
259     HTMLQuoteElement \
260     HTMLScriptElement \
261     HTMLSelectElement \
262     HTMLSourceElement \
263     HTMLStyleElement \
264     HTMLTableCaptionElement \
265     HTMLTableCellElement \
266     HTMLTableColElement \
267     HTMLTableElement \
268     HTMLTableRowElement \
269     HTMLTableSectionElement \
270     HTMLTextAreaElement \
271     HTMLTitleElement \
272     HTMLUListElement \
273     HTMLVideoElement \
274     IDBAny \
275     IDBCursor \
276     IDBDatabaseError \
277     IDBDatabaseException \
278     IDBDatabase \
279     IDBErrorEvent \
280     IDBEvent \
281     IDBFactory \
282     IDBIndex \
283     IDBKey \
284     IDBKeyRange \
285     IDBObjectStore \
286     IDBRequest \
287     IDBSuccessEvent \
288     IDBTransaction \
289     ImageData \
290     InjectedScriptHost \
291     InspectorFrontendHost \
292     KeyboardEvent \
293     Location \
294     MediaError \
295     MediaList \
296     MediaQueryList \
297     MediaQueryListListener \
298     MemoryInfo \
299     MessageChannel \
300     MessageEvent \
301     MessagePort \
302     Metadata \
303     MetadataCallback \
304     MouseEvent \
305     MutationEvent \
306     NamedNodeMap \
307     Navigator \
308     Node \
309     NodeFilter \
310     NodeIterator \
311     NodeList \
312     Notation \
313     Notification \
314     NotificationCenter \
315     OESStandardDerivatives \
316     OESTextureFloat \
317     OverflowEvent \
318     PageTransitionEvent \
319     Performance \
320     PerformanceNavigation \
321     PerformanceTiming \
322     PopStateEvent \
323     PositionError \
324     ProcessingInstruction \
325     ProgressEvent \
326     RGBColor \
327     Range \
328     RangeException \
329     Rect \
330     SharedWorker \
331     SharedWorkerContext \
332     ScriptProfile \
333     ScriptProfileNode \
334     SpeechInputEvent \
335     SpeechInputResult \
336     SpeechInputResultList \
337     SQLError \
338     SQLException \
339     SQLResultSet \
340     SQLResultSetRowList \
341     SQLStatementCallback \
342     SQLStatementErrorCallback \
343     SQLTransaction \
344     SQLTransactionCallback \
345     SQLTransactionErrorCallback \
346     SQLTransactionSync \
347     SQLTransactionSyncCallback \
348     Storage \
349     StorageEvent \
350     SVGAElement \
351     SVGAltGlyphElement \
352     SVGAngle \
353     SVGAnimateColorElement \
354     SVGAnimateElement \
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     SVGFEFloodElement \
392     SVGFEFuncAElement \
393     SVGFEFuncBElement \
394     SVGFEFuncGElement \
395     SVGFEFuncRElement \
396     SVGFEGaussianBlurElement \
397     SVGFEImageElement \
398     SVGFEMergeElement \
399     SVGFEMergeNodeElement \
400     SVGFEMorphologyElement \
401     SVGFEOffsetElement \
402     SVGFEPointLightElement \
403     SVGFESpecularLightingElement \
404     SVGFESpotLightElement \
405     SVGFETileElement \
406     SVGFETurbulenceElement \
407     SVGFilterElement \
408     SVGFilterPrimitiveStandardAttributes \
409     SVGFitToViewBox \
410     SVGFontElement \
411     SVGFontFaceElement \
412     SVGFontFaceFormatElement \
413     SVGFontFaceNameElement \
414     SVGFontFaceSrcElement \
415     SVGFontFaceUriElement \
416     SVGForeignObjectElement \
417     SVGGElement \
418     SVGGlyphElement \
419     SVGGradientElement \
420     SVGHKernElement \
421     SVGImageElement \
422     SVGLangSpace \
423     SVGLength \
424     SVGLengthList \
425     SVGLineElement \
426     SVGLinearGradientElement \
427     SVGLocatable \
428     SVGMarkerElement \
429     SVGMaskElement \
430     SVGMatrix \
431     SVGMetadataElement \
432     SVGMissingGlyphElement \
433     SVGNumber \
434     SVGNumberList \
435     SVGPaint \
436     SVGPathElement \
437     SVGPathSeg \
438     SVGPathSegArcAbs \
439     SVGPathSegArcRel \
440     SVGPathSegClosePath \
441     SVGPathSegCurvetoCubicAbs \
442     SVGPathSegCurvetoCubicRel \
443     SVGPathSegCurvetoCubicSmoothAbs \
444     SVGPathSegCurvetoCubicSmoothRel \
445     SVGPathSegCurvetoQuadraticAbs \
446     SVGPathSegCurvetoQuadraticRel \
447     SVGPathSegCurvetoQuadraticSmoothAbs \
448     SVGPathSegCurvetoQuadraticSmoothRel \
449     SVGPathSegLinetoAbs \
450     SVGPathSegLinetoHorizontalAbs \
451     SVGPathSegLinetoHorizontalRel \
452     SVGPathSegLinetoRel \
453     SVGPathSegLinetoVerticalAbs \
454     SVGPathSegLinetoVerticalRel \
455     SVGPathSegList \
456     SVGPathSegMovetoAbs \
457     SVGPathSegMovetoRel \
458     SVGPatternElement \
459     SVGPoint \
460     SVGPointList \
461     SVGPolygonElement \
462     SVGPolylineElement \
463     SVGPreserveAspectRatio \
464     SVGRadialGradientElement \
465     SVGRect \
466     SVGRectElement \
467     SVGRenderingIntent \
468     SVGSVGElement \
469     SVGScriptElement \
470     SVGSetElement \
471     SVGStopElement \
472     SVGStringList \
473     SVGStylable \
474     SVGStyleElement \
475     SVGSwitchElement \
476     SVGSymbolElement \
477     SVGTRefElement \
478     SVGTSpanElement \
479     SVGTests \
480     SVGTextContentElement \
481     SVGTextElement \
482     SVGTextPathElement \
483     SVGTextPositioningElement \
484     SVGTitleElement \
485     SVGTransform \
486     SVGTransformList \
487     SVGTransformable \
488     SVGURIReference \
489     SVGUnitTypes \
490     SVGUseElement \
491     SVGViewElement \
492     SVGVKernElement \
493     SVGZoomAndPan \
494     SVGZoomEvent \
495     Screen \
496     StyleMedia \
497     StyleSheet \
498     StyleSheetList \
499     Text \
500     TextEvent \
501     TextMetrics \
502     TimeRanges \
503     Touch \
504     TouchEvent \
505     TouchList \
506     TreeWalker \
507     UIEvent \
508     ValidityState \
509     WebKitAnimationEvent \
510     WebKitCSSKeyframeRule \
511     WebKitCSSKeyframesRule \
512     WebKitCSSMatrix \
513     WebKitCSSTransformValue \
514     WebKitLoseContext \
515     WebKitPoint \
516     WebKitTransitionEvent \
517     WebSocket \
518     WheelEvent \
519     Worker \
520     WorkerContext \
521     WorkerLocation \
522     WorkerNavigator \
523     XMLHttpRequest \
524     XMLHttpRequestException \
525     XMLHttpRequestProgressEvent \
526     XMLHttpRequestUpload \
527     XMLSerializer \
528     XPathEvaluator \
529     XPathException \
530     XPathExpression \
531     XPathNSResolver \
532     XPathResult \
533     XSLTProcessor \
534 #
535
536 .PHONY : all
537
538 JS_DOM_HEADERS=$(filter-out JSMediaQueryListListener.h JSEventListener.h JSEventTarget.h,$(DOM_CLASSES:%=JS%.h))
539
540 WEB_DOM_HEADERS :=
541 ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
542 WEB_DOM_HEADERS := $(filter-out WebDOMXSLTProcessor.h WebDOMEventTarget.h,$(DOM_CLASSES:%=WebDOM%.h))
543 endif # BUILDING_WX
544
545 all : \
546     $(JS_DOM_HEADERS) \
547     $(WEB_DOM_HEADERS) \
548     \
549     JSJavaScriptCallFrame.h \
550     \
551     CSSGrammar.cpp \
552     CSSPropertyNames.h \
553     CSSValueKeywords.h \
554     ColorData.cpp \
555     DocTypeStrings.cpp \
556     HTMLElementFactory.cpp \
557     HTMLEntityTable.cpp \
558     HTMLNames.cpp \
559     WMLElementFactory.cpp \
560     WMLNames.cpp \
561     JSSVGElementWrapperFactory.cpp \
562     SVGElementFactory.cpp \
563     SVGNames.cpp \
564     UserAgentStyleSheets.h \
565     XLinkNames.cpp \
566     XMLNSNames.cpp \
567     XMLNames.cpp \
568     MathMLElementFactory.cpp \
569     MathMLNames.cpp \
570     XPathGrammar.cpp \
571     tokenizer.cpp \
572 #
573
574 # --------
575
576 ADDITIONAL_IDL_DEFINES :=
577
578 ifeq ($(OS),MACOS)
579
580 FRAMEWORK_FLAGS = $(shell echo $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));')
581
582 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_DASHBOARD_SUPPORT | cut -d' ' -f3), 1)
583     ENABLE_DASHBOARD_SUPPORT = 1
584 else
585     ENABLE_DASHBOARD_SUPPORT = 0
586 endif
587
588 ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_ORIENTATION_EVENTS | cut -d' ' -f3), 1)
589     ENABLE_ORIENTATION_EVENTS = 1
590 else
591     ENABLE_ORIENTATION_EVENTS = 0
592 endif
593
594 else
595
596 ifndef ENABLE_DASHBOARD_SUPPORT
597     ENABLE_DASHBOARD_SUPPORT = 0
598 endif
599
600 ifndef ENABLE_ORIENTATION_EVENTS
601     ENABLE_ORIENTATION_EVENTS = 0
602 endif
603
604 endif # MACOS
605
606 ifeq ($(ENABLE_ORIENTATION_EVENTS), 1)
607     ADDITIONAL_IDL_DEFINES := $(ADDITIONAL_IDL_DEFINES) ENABLE_ORIENTATION_EVENTS
608 endif
609
610 # --------
611
612 # CSS property names and value keywords
613
614 WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
615 WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in
616
617 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
618     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/SVGCSSPropertyNames.in
619     WEBCORE_CSS_VALUE_KEYWORDS := $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/SVGCSSValueKeywords.in
620 endif
621
622 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
623     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/DashboardSupportCSSPropertyNames.in
624 endif
625
626 # The grep commands below reject output containing anything other than:
627 # 1. Lines beginning with '#'
628 # 2. Lines containing only whitespace
629 # These two types of lines will be ignored by make{prop,values}.pl.
630 CSSPropertyNames.h : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl
631         if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
632         cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in
633         perl "$(WebCore)/css/makeprop.pl"
634
635 CSSValueKeywords.h : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl
636         # Lower case all the values, as CSS values are case-insensitive
637         perl -ne 'print lc' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in
638         if sort CSSValueKeywords.in | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
639         perl "$(WebCore)/css/makevalues.pl"
640
641 # --------
642
643 # DOCTYPE strings
644
645 DocTypeStrings.cpp : html/DocTypeStrings.gperf $(WebCore)/make-hash-tools.pl
646         perl $(WebCore)/make-hash-tools.pl . $(WebCore)/html/DocTypeStrings.gperf
647
648 # --------
649
650 # HTML entity names
651
652 HTMLEntityTable.cpp : html/parser/HTMLEntityNames.in $(WebCore)/html/parser/create-html-entity-table
653         python $(WebCore)/html/parser/create-html-entity-table -o HTMLEntityTable.cpp $(WebCore)/html/parser/HTMLEntityNames.in
654
655 # --------
656
657 # color names
658
659 ColorData.cpp : platform/ColorData.gperf $(WebCore)/make-hash-tools.pl
660         perl $(WebCore)/make-hash-tools.pl . $(WebCore)/platform/ColorData.gperf
661
662 # --------
663
664 # CSS tokenizer
665
666 tokenizer.cpp : css/tokenizer.flex css/maketokenizer
667         flex -t $< | perl $(WebCore)/css/maketokenizer > $@
668
669 # --------
670
671 # CSS grammar
672 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
673
674 CSSGrammar.cpp : css/CSSGrammar.y
675         bison -d -p cssyy $< -o $@
676         touch CSSGrammar.cpp.h
677         touch CSSGrammar.hpp
678         echo '#ifndef CSSGrammar_h' > CSSGrammar.h
679         echo '#define CSSGrammar_h' >> CSSGrammar.h
680         cat CSSGrammar.cpp.h CSSGrammar.hpp >> CSSGrammar.h
681         echo '#endif' >> CSSGrammar.h
682         rm -f CSSGrammar.cpp.h CSSGrammar.hpp
683
684 # --------
685
686 # XPath grammar
687 # NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
688
689 XPathGrammar.cpp : xml/XPathGrammar.y $(PROJECT_FILE)
690         bison -d -p xpathyy $< -o $@
691         touch XPathGrammar.cpp.h
692         touch XPathGrammar.hpp
693         echo '#ifndef XPathGrammar_h' > XPathGrammar.h
694         echo '#define XPathGrammar_h' >> XPathGrammar.h
695         cat XPathGrammar.cpp.h XPathGrammar.hpp >> XPathGrammar.h
696         echo '#endif' >> XPathGrammar.h
697         rm -f XPathGrammar.cpp.h XPathGrammar.hpp
698
699 # --------
700
701 # user agent style sheets
702
703 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 
704
705 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
706     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/svg.css 
707 endif
708
709 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
710     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/wml.css
711 endif
712
713 ifeq ($(findstring ENABLE_MATHML,$(FEATURE_DEFINES)), ENABLE_MATHML)
714     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mathml.css
715 endif
716
717 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
718     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControls.css
719     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControlsQuickTime.css
720 endif
721
722 ifeq ($(findstring ENABLE_FULLSCREEN_API,$(FEATURE_DEFINES)), ENABLE_FULLSCREEN_API)
723     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/fullscreen.css
724 endif
725
726 UserAgentStyleSheets.h : css/make-css-file-arrays.pl $(USER_AGENT_STYLE_SHEETS)
727         perl $< $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
728
729 # --------
730
731 # HTML tag and attribute names
732
733 ifeq ($(findstring ENABLE_DATALIST,$(FEATURE_DEFINES)), ENABLE_DATALIST)
734     HTML_FLAGS := $(HTML_FLAGS) ENABLE_DATALIST=1
735 endif
736
737 ifeq ($(findstring ENABLE_METER_TAG,$(FEATURE_DEFINES)), ENABLE_METER_TAG)
738     HTML_FLAGS := $(HTML_FLAGS) ENABLE_METER_TAG=1
739 endif
740
741 ifeq ($(findstring ENABLE_PROGRESS_TAG,$(FEATURE_DEFINES)), ENABLE_PROGRESS_TAG)
742     HTML_FLAGS := $(HTML_FLAGS) ENABLE_PROGRESS_TAG=1
743 endif
744
745 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
746     HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO=1
747 endif
748
749 ifdef HTML_FLAGS
750
751 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
752         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines "$(HTML_FLAGS)"
753
754 else
755
756 HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
757         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory
758
759 endif
760
761 JSHTMLElementWrapperFactory.cpp : HTMLNames.cpp
762
763 XMLNSNames.cpp : dom/make_names.pl xml/xmlnsattrs.in
764         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlnsattrs.in
765
766 XMLNames.cpp : dom/make_names.pl xml/xmlattrs.in
767         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in
768
769 # --------
770
771 # SVG tag and attribute names, and element factory
772
773 ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE)
774     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1
775 endif
776
777 ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS)
778     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1
779 endif
780
781 ifeq ($(findstring ENABLE_FILTERS,$(FEATURE_DEFINES)), ENABLE_FILTERS)
782     SVG_FLAGS := $(SVG_FLAGS) ENABLE_FILTERS=1
783 endif
784
785 ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE)
786     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1
787 endif
788
789 ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION)
790     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1
791 endif
792
793 ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT)
794     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1
795 endif
796
797 # SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
798
799 ifdef SVG_FLAGS
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 --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory
803 else
804
805 SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
806         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
807
808 endif
809
810 JSSVGElementWrapperFactory.cpp : SVGNames.cpp
811
812 XLinkNames.cpp : dom/make_names.pl svg/xlinkattrs.in
813         perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in
814
815 # --------
816
817 # WML tag and attribute names, and element factory
818
819 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
820
821 WMLElementFactory.cpp WMLNames.cpp : dom/make_names.pl wml/WMLTagNames.in wml/WMLAttributeNames.in
822         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/wml/WMLTagNames.in --attrs $(WebCore)/wml/WMLAttributeNames.in --factory --wrapperFactory
823
824 else
825
826 WMLElementFactory.cpp :
827         echo > $@
828
829 WMLNames.cpp :
830         echo > $@
831
832 endif
833
834 # --------
835  
836 # MathML tag and attribute names, and element factory
837
838 MathMLElementFactory.cpp MathMLNames.cpp : dom/make_names.pl mathml/mathtags.in mathml/mathattrs.in
839         perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory
840
841 # --------
842
843 # Common generator things
844
845 GENERATE_SCRIPTS = \
846     bindings/scripts/CodeGenerator.pm \
847     bindings/scripts/IDLParser.pm \
848     bindings/scripts/IDLStructure.pm \
849     bindings/scripts/generate-bindings.pl
850
851 generator_script = perl $(addprefix -I $(WebCore)/, $(sort $(dir $(1)))) $(WebCore)/bindings/scripts/generate-bindings.pl
852
853 # JS bindings generator
854
855 IDL_INCLUDES = dom fileapi html css page notifications xml svg
856 IDL_COMMON_ARGS = $(IDL_INCLUDES:%=--include %) --write-dependencies --outputDir .
857
858 JS_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
859
860 JS%.h : %.idl $(JS_BINDINGS_SCRIPTS)
861         $(call generator_script, $(JS_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $<
862
863 # Inspector interfaces generator
864
865 all : InspectorFrontend.h
866
867 INSPECTOR_GENERATOR_SCRIPTS = $(GENERATE_SCRIPTS) inspector/CodeGeneratorInspector.pm
868
869 InspectorFrontend.h : Inspector.idl $(INSPECTOR_GENERATOR_SCRIPTS)
870         $(call generator_script, $(INSPECTOR_GENERATOR_SCRIPTS)) --outputDir . --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator Inspector $<
871
872 all : InjectedScriptSource.h
873
874 InjectedScriptSource.h : InjectedScriptSource.js
875         perl $(WebCore)/inspector/xxd.pl InjectedScriptSource_js $(WebCore)/inspector/InjectedScriptSource.js InjectedScriptSource.h
876
877 -include $(JS_DOM_HEADERS:.h=.dep)
878
879 ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
880 CPP_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorCPP.pm
881
882 WebDOM%.h : %.idl $(CPP_BINDINGS_SCRIPTS)
883         $(call generator_script, $(CPP_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_CPP" --generator CPP $<
884 endif # BUILDING_WX
885
886 # ------------------------
887
888 # Mac-specific rules
889
890 ifeq ($(OS),MACOS)
891
892 OBJC_DOM_HEADERS=$(filter-out DOMDOMWindow.h DOMDOMMimeType.h DOMDOMPlugin.h,$(DOM_CLASSES:%=DOM%.h))
893
894 all : $(OBJC_DOM_HEADERS)
895
896 all : CharsetData.cpp
897
898 # --------
899
900 # character set name table
901
902 CharsetData.cpp : platform/text/mac/make-charset-table.pl platform/text/mac/character-sets.txt platform/text/mac/mac-encodings.txt
903         perl $^ kTextEncoding > $@
904
905 # --------
906
907 ifneq ($(ACTION),installhdrs)
908
909 all : WebCore.exp WebCore.LP64.exp
910
911 WebCore.exp : $(BUILT_PRODUCTS_DIR)/WebCoreExportFileGenerator
912         $^ > $@
913
914 # Switch NSRect, NSSize and NSPoint with their CG counterparts for the 64-bit exports file.
915 WebCore.LP64.exp : WebCore.exp
916         cat $^ | sed -e s/7_NSRect/6CGRect/ -e s/7_NSSize/6CGSize/ -e s/8_NSPoint/7CGPoint/ > $@
917
918 endif # installhdrs
919
920 # --------
921
922 # Objective-C bindings
923
924 DOM_BINDINGS_SCRIPTS = $(GENERATE_BINDING_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm
925 DOM%.h : %.idl $(DOM_BINDINGS_SCRIPTS) bindings/objc/PublicDOMInterfaces.h
926         $(call generator_script, $(DOM_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC $<
927
928 -include $(OBJC_DOM_HEADERS:.h=.dep)
929
930 # --------
931
932 endif # MACOS
933
934 # ------------------------