• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
29VPATH = \
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
53DOM_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    WebKitBlobBuilder \
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    WebKitFlags \
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    StorageInfo \
360    StorageInfoErrorCallback \
361    StorageInfoUsageCallback \
362    StringCallback \
363    SVGAElement \
364    SVGAltGlyphElement \
365    SVGAngle \
366    SVGAnimateColorElement \
367    SVGAnimateElement \
368    SVGAnimateTransformElement \
369    SVGAnimatedAngle \
370    SVGAnimatedBoolean \
371    SVGAnimatedEnumeration \
372    SVGAnimatedInteger \
373    SVGAnimatedLength \
374    SVGAnimatedLengthList \
375    SVGAnimatedNumber \
376    SVGAnimatedNumberList \
377    SVGAnimatedPreserveAspectRatio \
378    SVGAnimatedRect \
379    SVGAnimatedString \
380    SVGAnimatedTransformList \
381    SVGAnimationElement \
382    SVGCircleElement \
383    SVGClipPathElement \
384    SVGColor \
385    SVGComponentTransferFunctionElement \
386    SVGCursorElement \
387    SVGDefsElement \
388    SVGDescElement \
389    SVGDocument \
390    SVGElement \
391    SVGElementInstance \
392    SVGElementInstanceList \
393    SVGEllipseElement \
394    SVGException \
395    SVGExternalResourcesRequired \
396    SVGFEBlendElement \
397    SVGFEColorMatrixElement \
398    SVGFEComponentTransferElement \
399    SVGFECompositeElement \
400    SVGFEConvolveMatrixElement \
401    SVGFEDiffuseLightingElement \
402    SVGFEDisplacementMapElement \
403    SVGFEDistantLightElement \
404    SVGFEFloodElement \
405    SVGFEFuncAElement \
406    SVGFEFuncBElement \
407    SVGFEFuncGElement \
408    SVGFEFuncRElement \
409    SVGFEGaussianBlurElement \
410    SVGFEImageElement \
411    SVGFEMergeElement \
412    SVGFEMergeNodeElement \
413    SVGFEMorphologyElement \
414    SVGFEOffsetElement \
415    SVGFEPointLightElement \
416    SVGFESpecularLightingElement \
417    SVGFESpotLightElement \
418    SVGFETileElement \
419    SVGFETurbulenceElement \
420    SVGFilterElement \
421    SVGFilterPrimitiveStandardAttributes \
422    SVGFitToViewBox \
423    SVGFontElement \
424    SVGFontFaceElement \
425    SVGFontFaceFormatElement \
426    SVGFontFaceNameElement \
427    SVGFontFaceSrcElement \
428    SVGFontFaceUriElement \
429    SVGForeignObjectElement \
430    SVGGElement \
431    SVGGlyphElement \
432    SVGGradientElement \
433    SVGHKernElement \
434    SVGImageElement \
435    SVGLangSpace \
436    SVGLength \
437    SVGLengthList \
438    SVGLineElement \
439    SVGLinearGradientElement \
440    SVGLocatable \
441    SVGMarkerElement \
442    SVGMaskElement \
443    SVGMatrix \
444    SVGMetadataElement \
445    SVGMissingGlyphElement \
446    SVGNumber \
447    SVGNumberList \
448    SVGPaint \
449    SVGPathElement \
450    SVGPathSeg \
451    SVGPathSegArcAbs \
452    SVGPathSegArcRel \
453    SVGPathSegClosePath \
454    SVGPathSegCurvetoCubicAbs \
455    SVGPathSegCurvetoCubicRel \
456    SVGPathSegCurvetoCubicSmoothAbs \
457    SVGPathSegCurvetoCubicSmoothRel \
458    SVGPathSegCurvetoQuadraticAbs \
459    SVGPathSegCurvetoQuadraticRel \
460    SVGPathSegCurvetoQuadraticSmoothAbs \
461    SVGPathSegCurvetoQuadraticSmoothRel \
462    SVGPathSegLinetoAbs \
463    SVGPathSegLinetoHorizontalAbs \
464    SVGPathSegLinetoHorizontalRel \
465    SVGPathSegLinetoRel \
466    SVGPathSegLinetoVerticalAbs \
467    SVGPathSegLinetoVerticalRel \
468    SVGPathSegList \
469    SVGPathSegMovetoAbs \
470    SVGPathSegMovetoRel \
471    SVGPatternElement \
472    SVGPoint \
473    SVGPointList \
474    SVGPolygonElement \
475    SVGPolylineElement \
476    SVGPreserveAspectRatio \
477    SVGRadialGradientElement \
478    SVGRect \
479    SVGRectElement \
480    SVGRenderingIntent \
481    SVGSVGElement \
482    SVGScriptElement \
483    SVGSetElement \
484    SVGStopElement \
485    SVGStringList \
486    SVGStylable \
487    SVGStyleElement \
488    SVGSwitchElement \
489    SVGSymbolElement \
490    SVGTRefElement \
491    SVGTSpanElement \
492    SVGTests \
493    SVGTextContentElement \
494    SVGTextElement \
495    SVGTextPathElement \
496    SVGTextPositioningElement \
497    SVGTitleElement \
498    SVGTransform \
499    SVGTransformList \
500    SVGTransformable \
501    SVGURIReference \
502    SVGUnitTypes \
503    SVGUseElement \
504    SVGViewElement \
505    SVGVKernElement \
506    SVGZoomAndPan \
507    SVGZoomEvent \
508    Screen \
509    StringCallback \
510    StyleMedia \
511    StyleSheet \
512    StyleSheetList \
513    Text \
514    TextEvent \
515    TextMetrics \
516    TimeRanges \
517    Touch \
518    TouchEvent \
519    TouchList \
520    TreeWalker \
521    UIEvent \
522    ValidityState \
523    WebKitAnimation \
524    WebKitAnimationEvent \
525    WebKitAnimationList \
526    WebKitCSSKeyframeRule \
527    WebKitCSSKeyframesRule \
528    WebKitCSSMatrix \
529    WebKitCSSTransformValue \
530    WebKitLoseContext \
531    WebKitPoint \
532    WebKitTransitionEvent \
533    WebSocket \
534    WheelEvent \
535    Worker \
536    WorkerContext \
537    WorkerLocation \
538    WorkerNavigator \
539    XMLHttpRequest \
540    XMLHttpRequestException \
541    XMLHttpRequestProgressEvent \
542    XMLHttpRequestUpload \
543    XMLSerializer \
544    XPathEvaluator \
545    XPathException \
546    XPathExpression \
547    XPathNSResolver \
548    XPathResult \
549    XSLTProcessor \
550#
551
552.PHONY : all
553
554JS_DOM_HEADERS=$(filter-out JSMediaQueryListListener.h JSEventListener.h JSEventTarget.h,$(DOM_CLASSES:%=JS%.h))
555
556WEB_DOM_HEADERS :=
557ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
558WEB_DOM_HEADERS := $(filter-out WebDOMXSLTProcessor.h WebDOMEventTarget.h,$(DOM_CLASSES:%=WebDOM%.h))
559endif # BUILDING_WX
560
561all : \
562    $(JS_DOM_HEADERS) \
563    $(WEB_DOM_HEADERS) \
564    \
565    JSJavaScriptCallFrame.h \
566    \
567    CSSGrammar.cpp \
568    CSSPropertyNames.h \
569    CSSValueKeywords.h \
570    ColorData.cpp \
571    DocTypeStrings.cpp \
572    HTMLElementFactory.cpp \
573    HTMLEntityTable.cpp \
574    HTMLNames.cpp \
575    WMLElementFactory.cpp \
576    WMLNames.cpp \
577    JSSVGElementWrapperFactory.cpp \
578    SVGElementFactory.cpp \
579    SVGNames.cpp \
580    UserAgentStyleSheets.h \
581    XLinkNames.cpp \
582    XMLNSNames.cpp \
583    XMLNames.cpp \
584    MathMLElementFactory.cpp \
585    MathMLNames.cpp \
586    XPathGrammar.cpp \
587    tokenizer.cpp \
588#
589
590# --------
591
592ADDITIONAL_IDL_DEFINES :=
593
594ifeq ($(OS),MACOS)
595
596FRAMEWORK_FLAGS = $(shell echo $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));')
597
598ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_DASHBOARD_SUPPORT | cut -d' ' -f3), 1)
599    ENABLE_DASHBOARD_SUPPORT = 1
600else
601    ENABLE_DASHBOARD_SUPPORT = 0
602endif
603
604ifeq ($(shell gcc -E -P -dM $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_ORIENTATION_EVENTS | cut -d' ' -f3), 1)
605    ENABLE_ORIENTATION_EVENTS = 1
606else
607    ENABLE_ORIENTATION_EVENTS = 0
608endif
609
610else
611
612ifndef ENABLE_DASHBOARD_SUPPORT
613    ENABLE_DASHBOARD_SUPPORT = 0
614endif
615
616ifndef ENABLE_ORIENTATION_EVENTS
617    ENABLE_ORIENTATION_EVENTS = 0
618endif
619
620endif # MACOS
621
622ifeq ($(ENABLE_ORIENTATION_EVENTS), 1)
623    ADDITIONAL_IDL_DEFINES := $(ADDITIONAL_IDL_DEFINES) ENABLE_ORIENTATION_EVENTS
624endif
625
626# --------
627
628# CSS property names and value keywords
629
630WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
631WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in
632
633ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
634    WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/SVGCSSPropertyNames.in
635    WEBCORE_CSS_VALUE_KEYWORDS := $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/SVGCSSValueKeywords.in
636endif
637
638ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
639    WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/DashboardSupportCSSPropertyNames.in
640endif
641
642# The grep commands below reject output containing anything other than:
643# 1. Lines beginning with '#'
644# 2. Lines containing only whitespace
645# These two types of lines will be ignored by make{prop,values}.pl.
646CSSPropertyNames.h : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl
647	if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
648	cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in
649	perl "$(WebCore)/css/makeprop.pl"
650
651CSSValueKeywords.h : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl
652	# Lower case all the values, as CSS values are case-insensitive
653	perl -ne 'print lc' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in
654	if sort CSSValueKeywords.in | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$$)'; then echo 'Duplicate value!'; exit 1; fi
655	perl "$(WebCore)/css/makevalues.pl"
656
657# --------
658
659# DOCTYPE strings
660
661DocTypeStrings.cpp : html/DocTypeStrings.gperf $(WebCore)/make-hash-tools.pl
662	perl $(WebCore)/make-hash-tools.pl . $(WebCore)/html/DocTypeStrings.gperf
663
664# --------
665
666# XMLViewer CSS
667
668all : XMLViewerCSS.h
669
670XMLViewerCSS.h : xml/XMLViewer.css
671	perl $(WebCore)/inspector/xxd.pl XMLViewer_css $(WebCore)/xml/XMLViewer.css XMLViewerCSS.h
672
673# --------
674
675# XMLViewer JS
676
677all : XMLViewerJS.h
678
679XMLViewerJS.h : xml/XMLViewer.js
680	perl $(WebCore)/inspector/xxd.pl XMLViewer_js $(WebCore)/xml/XMLViewer.js XMLViewerJS.h
681
682# --------
683
684# HTML entity names
685
686HTMLEntityTable.cpp : html/parser/HTMLEntityNames.in $(WebCore)/html/parser/create-html-entity-table
687	python $(WebCore)/html/parser/create-html-entity-table -o HTMLEntityTable.cpp $(WebCore)/html/parser/HTMLEntityNames.in
688
689# --------
690
691# color names
692
693ColorData.cpp : platform/ColorData.gperf $(WebCore)/make-hash-tools.pl
694	perl $(WebCore)/make-hash-tools.pl . $(WebCore)/platform/ColorData.gperf
695
696# --------
697
698# CSS tokenizer
699
700tokenizer.cpp : css/tokenizer.flex css/maketokenizer
701	flex -t $< | perl $(WebCore)/css/maketokenizer > $@
702
703# --------
704
705# CSS grammar
706# NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
707
708CSSGrammar.cpp : css/CSSGrammar.y
709	bison -d -p cssyy $< -o $@
710	touch CSSGrammar.cpp.h
711	touch CSSGrammar.hpp
712	echo '#ifndef CSSGrammar_h' > CSSGrammar.h
713	echo '#define CSSGrammar_h' >> CSSGrammar.h
714	cat CSSGrammar.cpp.h CSSGrammar.hpp >> CSSGrammar.h
715	echo '#endif' >> CSSGrammar.h
716	rm -f CSSGrammar.cpp.h CSSGrammar.hpp
717
718# --------
719
720# XPath grammar
721# NOTE: Older versions of bison do not inject an inclusion guard, so we add one.
722
723XPathGrammar.cpp : xml/XPathGrammar.y $(PROJECT_FILE)
724	bison -d -p xpathyy $< -o $@
725	touch XPathGrammar.cpp.h
726	touch XPathGrammar.hpp
727	echo '#ifndef XPathGrammar_h' > XPathGrammar.h
728	echo '#define XPathGrammar_h' >> XPathGrammar.h
729	cat XPathGrammar.cpp.h XPathGrammar.hpp >> XPathGrammar.h
730	echo '#endif' >> XPathGrammar.h
731	rm -f XPathGrammar.cpp.h XPathGrammar.hpp
732
733# --------
734
735# user agent style sheets
736
737USER_AGENT_STYLE_SHEETS = $(WebCore)/css/html.css $(WebCore)/css/quirks.css $(WebCore)/css/view-source.css $(WebCore)/css/themeWin.css $(WebCore)/css/themeWinQuirks.css
738
739ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
740    USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/svg.css
741endif
742
743ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
744    USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/wml.css
745endif
746
747ifeq ($(findstring ENABLE_MATHML,$(FEATURE_DEFINES)), ENABLE_MATHML)
748    USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mathml.css
749endif
750
751ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
752    USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControls.css
753    USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControlsQuickTime.css
754endif
755
756ifeq ($(findstring ENABLE_FULLSCREEN_API,$(FEATURE_DEFINES)), ENABLE_FULLSCREEN_API)
757    USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/fullscreen.css $(WebCore)/css/fullscreenQuickTime.css
758endif
759
760UserAgentStyleSheets.h : css/make-css-file-arrays.pl $(USER_AGENT_STYLE_SHEETS)
761	perl $< $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
762
763# --------
764
765# HTML tag and attribute names
766
767ifeq ($(findstring ENABLE_DATALIST,$(FEATURE_DEFINES)), ENABLE_DATALIST)
768    HTML_FLAGS := $(HTML_FLAGS) ENABLE_DATALIST=1
769endif
770
771ifeq ($(findstring ENABLE_METER_TAG,$(FEATURE_DEFINES)), ENABLE_METER_TAG)
772    HTML_FLAGS := $(HTML_FLAGS) ENABLE_METER_TAG=1
773endif
774
775ifeq ($(findstring ENABLE_PROGRESS_TAG,$(FEATURE_DEFINES)), ENABLE_PROGRESS_TAG)
776    HTML_FLAGS := $(HTML_FLAGS) ENABLE_PROGRESS_TAG=1
777endif
778
779ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
780    HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO=1
781endif
782
783ifeq ($(findstring ENABLE_VIDEO_TRACK,$(FEATURE_DEFINES)), ENABLE_VIDEO_TRACK)
784    HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO_TRACK=0
785endif
786
787ifdef HTML_FLAGS
788
789HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
790	perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines "$(HTML_FLAGS)"
791
792else
793
794HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in
795	perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory
796
797endif
798
799JSHTMLElementWrapperFactory.cpp : HTMLNames.cpp
800
801XMLNSNames.cpp : dom/make_names.pl xml/xmlnsattrs.in
802	perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlnsattrs.in
803
804XMLNames.cpp : dom/make_names.pl xml/xmlattrs.in
805	perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in
806
807# --------
808
809# SVG tag and attribute names, and element factory
810
811ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE)
812    SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1
813endif
814
815ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS)
816    SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1
817endif
818
819ifeq ($(findstring ENABLE_FILTERS,$(FEATURE_DEFINES)), ENABLE_FILTERS)
820    SVG_FLAGS := $(SVG_FLAGS) ENABLE_FILTERS=1
821endif
822
823ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE)
824    SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1
825endif
826
827ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION)
828    SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1
829endif
830
831ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT)
832    SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1
833endif
834
835# SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
836
837ifdef SVG_FLAGS
838
839SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
840	perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory
841else
842
843SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in
844	perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
845
846endif
847
848JSSVGElementWrapperFactory.cpp : SVGNames.cpp
849
850XLinkNames.cpp : dom/make_names.pl svg/xlinkattrs.in
851	perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in
852
853# --------
854
855# WML tag and attribute names, and element factory
856
857ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
858
859WMLElementFactory.cpp WMLNames.cpp : dom/make_names.pl wml/WMLTagNames.in wml/WMLAttributeNames.in
860	perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/wml/WMLTagNames.in --attrs $(WebCore)/wml/WMLAttributeNames.in --factory --wrapperFactory
861
862else
863
864WMLElementFactory.cpp :
865	echo > $@
866
867WMLNames.cpp :
868	echo > $@
869
870endif
871
872# --------
873
874# MathML tag and attribute names, and element factory
875
876MathMLElementFactory.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
883GENERATE_SCRIPTS = \
884    bindings/scripts/CodeGenerator.pm \
885    bindings/scripts/IDLParser.pm \
886    bindings/scripts/IDLStructure.pm \
887    bindings/scripts/generate-bindings.pl
888
889generator_script = perl $(addprefix -I $(WebCore)/, $(sort $(dir $(1)))) $(WebCore)/bindings/scripts/generate-bindings.pl
890
891# JS bindings generator
892
893IDL_INCLUDES = \
894    $(WebCore)/dom \
895    $(WebCore)/fileapi \
896    $(WebCore)/html \
897    $(WebCore)/css \
898    $(WebCore)/page \
899    $(WebCore)/notifications \
900    $(WebCore)/xml \
901    $(WebCore)/svg
902
903IDL_COMMON_ARGS = $(IDL_INCLUDES:%=--include %) --write-dependencies --outputDir .
904
905JS_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
906
907JS%.h : %.idl $(JS_BINDINGS_SCRIPTS)
908	$(call generator_script, $(JS_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $<
909
910# Inspector interfaces generator
911
912Inspector.idl : Inspector.json inspector/generate-inspector-idl
913	python $(WebCore)/inspector/generate-inspector-idl -o Inspector.idl $(WebCore)/inspector/Inspector.json
914
915all : InspectorFrontend.h
916
917INSPECTOR_GENERATOR_SCRIPTS = $(GENERATE_SCRIPTS) inspector/CodeGeneratorInspector.pm
918
919InspectorFrontend.h : Inspector.idl $(INSPECTOR_GENERATOR_SCRIPTS)
920	$(call generator_script, $(INSPECTOR_GENERATOR_SCRIPTS)) --outputDir . --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator Inspector $<
921
922all : InjectedScriptSource.h
923
924InjectedScriptSource.h : InjectedScriptSource.js
925	perl $(WebCore)/inspector/xxd.pl InjectedScriptSource_js $(WebCore)/inspector/InjectedScriptSource.js InjectedScriptSource.h
926
927-include $(JS_DOM_HEADERS:.h=.dep)
928
929ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
930CPP_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorCPP.pm
931
932WebDOM%.h : %.idl $(CPP_BINDINGS_SCRIPTS)
933	$(call generator_script, $(CPP_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_CPP" --generator CPP $<
934endif # BUILDING_WX
935
936# ------------------------
937
938# Mac-specific rules
939
940ifeq ($(OS),MACOS)
941
942OBJC_DOM_HEADERS=$(filter-out DOMDOMWindow.h DOMDOMMimeType.h DOMDOMPlugin.h,$(DOM_CLASSES:%=DOM%.h))
943
944all : $(OBJC_DOM_HEADERS)
945
946all : CharsetData.cpp
947
948# --------
949
950# character set name table
951
952CharsetData.cpp : platform/text/mac/make-charset-table.pl platform/text/mac/character-sets.txt platform/text/mac/mac-encodings.txt
953	perl $^ kTextEncoding > $@
954
955# --------
956
957ifneq ($(ACTION),installhdrs)
958
959all : WebCore.exp WebCore.LP64.exp
960
961WebCore.exp : $(BUILT_PRODUCTS_DIR)/WebCoreExportFileGenerator
962	$^ > $@
963
964# Switch NSRect, NSSize and NSPoint with their CG counterparts for the 64-bit exports file.
965WebCore.LP64.exp : WebCore.exp
966	cat $^ | sed -e s/7_NSRect/6CGRect/ -e s/7_NSSize/6CGSize/ -e s/8_NSPoint/7CGPoint/ > $@
967
968endif # installhdrs
969
970# --------
971
972# Objective-C bindings
973
974DOM_BINDINGS_SCRIPTS = $(GENERATE_BINDING_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm
975DOM%.h : %.idl $(DOM_BINDINGS_SCRIPTS) bindings/objc/PublicDOMInterfaces.h
976	$(call generator_script, $(DOM_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC $<
977
978-include $(OBJC_DOM_HEADERS:.h=.dep)
979
980# --------
981
982endif # MACOS
983