Home | History | Annotate | Download | only in WebCore
      1 # Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
      2 # Copyright (C) 2006 Samuel Weinig <sam.weinig (a] gmail.com> 
      3 # Copyright (C) 2009 Cameron McCormack <cam (a] 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     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 
    554 JS_DOM_HEADERS=$(filter-out JSMediaQueryListListener.h JSEventListener.h JSEventTarget.h,$(DOM_CLASSES:%=JS%.h))
    555 
    556 WEB_DOM_HEADERS :=
    557 ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
    558 WEB_DOM_HEADERS := $(filter-out WebDOMXSLTProcessor.h WebDOMEventTarget.h,$(DOM_CLASSES:%=WebDOM%.h))
    559 endif # BUILDING_WX
    560 
    561 all : \
    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 
    592 ADDITIONAL_IDL_DEFINES :=
    593 
    594 ifeq ($(OS),MACOS)
    595 
    596 FRAMEWORK_FLAGS = $(shell echo $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));')
    597 
    598 ifeq ($(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
    600 else
    601     ENABLE_DASHBOARD_SUPPORT = 0
    602 endif
    603 
    604 ifeq ($(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
    606 else
    607     ENABLE_ORIENTATION_EVENTS = 0
    608 endif
    609 
    610 else
    611 
    612 ifndef ENABLE_DASHBOARD_SUPPORT
    613     ENABLE_DASHBOARD_SUPPORT = 0
    614 endif
    615 
    616 ifndef ENABLE_ORIENTATION_EVENTS
    617     ENABLE_ORIENTATION_EVENTS = 0
    618 endif
    619 
    620 endif # MACOS
    621 
    622 ifeq ($(ENABLE_ORIENTATION_EVENTS), 1)
    623     ADDITIONAL_IDL_DEFINES := $(ADDITIONAL_IDL_DEFINES) ENABLE_ORIENTATION_EVENTS
    624 endif
    625 
    626 # --------
    627 
    628 # CSS property names and value keywords
    629 
    630 WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
    631 WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in
    632 
    633 ifeq ($(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
    636 endif
    637 
    638 ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1)
    639     WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/DashboardSupportCSSPropertyNames.in
    640 endif
    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.
    646 CSSPropertyNames.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 
    651 CSSValueKeywords.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 
    661 DocTypeStrings.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 
    668 all : XMLViewerCSS.h
    669 
    670 XMLViewerCSS.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 
    677 all : XMLViewerJS.h
    678 
    679 XMLViewerJS.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 
    686 HTMLEntityTable.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 
    693 ColorData.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 
    700 tokenizer.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 
    708 CSSGrammar.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 
    723 XPathGrammar.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 
    737 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 
    738 
    739 ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG)
    740     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/svg.css 
    741 endif
    742 
    743 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
    744     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/wml.css
    745 endif
    746 
    747 ifeq ($(findstring ENABLE_MATHML,$(FEATURE_DEFINES)), ENABLE_MATHML)
    748     USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mathml.css
    749 endif
    750 
    751 ifeq ($(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
    754 endif
    755 
    756 ifeq ($(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
    758 endif
    759 
    760 UserAgentStyleSheets.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 
    767 ifeq ($(findstring ENABLE_DATALIST,$(FEATURE_DEFINES)), ENABLE_DATALIST)
    768     HTML_FLAGS := $(HTML_FLAGS) ENABLE_DATALIST=1
    769 endif
    770 
    771 ifeq ($(findstring ENABLE_METER_TAG,$(FEATURE_DEFINES)), ENABLE_METER_TAG)
    772     HTML_FLAGS := $(HTML_FLAGS) ENABLE_METER_TAG=1
    773 endif
    774 
    775 ifeq ($(findstring ENABLE_PROGRESS_TAG,$(FEATURE_DEFINES)), ENABLE_PROGRESS_TAG)
    776     HTML_FLAGS := $(HTML_FLAGS) ENABLE_PROGRESS_TAG=1
    777 endif
    778 
    779 ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO)
    780     HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO=1
    781 endif
    782 
    783 ifeq ($(findstring ENABLE_VIDEO_TRACK,$(FEATURE_DEFINES)), ENABLE_VIDEO_TRACK)
    784     HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO_TRACK=0
    785 endif
    786 
    787 ifdef HTML_FLAGS
    788 
    789 HTMLElementFactory.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 
    792 else
    793 
    794 HTMLElementFactory.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 
    797 endif
    798 
    799 JSHTMLElementWrapperFactory.cpp : HTMLNames.cpp
    800 
    801 XMLNSNames.cpp : dom/make_names.pl xml/xmlnsattrs.in
    802 	perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlnsattrs.in
    803 
    804 XMLNames.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 
    811 ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE)
    812     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1
    813 endif
    814 
    815 ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS)
    816     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1
    817 endif
    818 
    819 ifeq ($(findstring ENABLE_FILTERS,$(FEATURE_DEFINES)), ENABLE_FILTERS)
    820     SVG_FLAGS := $(SVG_FLAGS) ENABLE_FILTERS=1
    821 endif
    822 
    823 ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE)
    824     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1
    825 endif
    826 
    827 ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION)
    828     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1
    829 endif
    830 
    831 ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT)
    832     SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1
    833 endif
    834 
    835 # SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled)
    836 
    837 ifdef SVG_FLAGS
    838 
    839 SVGElementFactory.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
    841 else
    842 
    843 SVGElementFactory.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 
    846 endif
    847 
    848 JSSVGElementWrapperFactory.cpp : SVGNames.cpp
    849 
    850 XLinkNames.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 
    857 ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML)
    858 
    859 WMLElementFactory.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 
    862 else
    863 
    864 WMLElementFactory.cpp :
    865 	echo > $@
    866 
    867 WMLNames.cpp :
    868 	echo > $@
    869 
    870 endif
    871 
    872 # --------
    873  
    874 # MathML tag and attribute names, and element factory
    875 
    876 MathMLElementFactory.cpp MathMLNames.cpp : dom/make_names.pl mathml/mathtags.in mathml/mathattrs.in
    877 	perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory
    878 
    879 # --------
    880 
    881 # Common generator things
    882 
    883 GENERATE_SCRIPTS = \
    884     bindings/scripts/CodeGenerator.pm \
    885     bindings/scripts/IDLParser.pm \
    886     bindings/scripts/IDLStructure.pm \
    887     bindings/scripts/generate-bindings.pl
    888 
    889 generator_script = perl $(addprefix -I $(WebCore)/, $(sort $(dir $(1)))) $(WebCore)/bindings/scripts/generate-bindings.pl
    890 
    891 # JS bindings generator
    892 
    893 IDL_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 
    903 IDL_COMMON_ARGS = $(IDL_INCLUDES:%=--include %) --write-dependencies --outputDir .
    904 
    905 JS_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
    906 
    907 JS%.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 
    912 Inspector.idl : Inspector.json inspector/generate-inspector-idl
    913 	python $(WebCore)/inspector/generate-inspector-idl -o Inspector.idl $(WebCore)/inspector/Inspector.json
    914 
    915 all : InspectorFrontend.h
    916 
    917 INSPECTOR_GENERATOR_SCRIPTS = $(GENERATE_SCRIPTS) inspector/CodeGeneratorInspector.pm
    918 
    919 InspectorFrontend.h : Inspector.idl $(INSPECTOR_GENERATOR_SCRIPTS)
    920 	$(call generator_script, $(INSPECTOR_GENERATOR_SCRIPTS)) --outputDir . --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator Inspector $<
    921 
    922 all : InjectedScriptSource.h
    923 
    924 InjectedScriptSource.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 
    929 ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
    930 CPP_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorCPP.pm
    931 
    932 WebDOM%.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 $<
    934 endif # BUILDING_WX
    935 
    936 # ------------------------
    937 
    938 # Mac-specific rules
    939 
    940 ifeq ($(OS),MACOS)
    941 
    942 OBJC_DOM_HEADERS=$(filter-out DOMDOMWindow.h DOMDOMMimeType.h DOMDOMPlugin.h,$(DOM_CLASSES:%=DOM%.h))
    943 
    944 all : $(OBJC_DOM_HEADERS)
    945 
    946 all : CharsetData.cpp
    947 
    948 # --------
    949 
    950 # character set name table
    951 
    952 CharsetData.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 
    957 ifneq ($(ACTION),installhdrs)
    958 
    959 all : WebCore.exp WebCore.LP64.exp
    960 
    961 WebCore.exp : $(BUILT_PRODUCTS_DIR)/WebCoreExportFileGenerator
    962 	$^ > $@
    963 
    964 # Switch NSRect, NSSize and NSPoint with their CG counterparts for the 64-bit exports file.
    965 WebCore.LP64.exp : WebCore.exp
    966 	cat $^ | sed -e s/7_NSRect/6CGRect/ -e s/7_NSSize/6CGSize/ -e s/8_NSPoint/7CGPoint/ > $@
    967 
    968 endif # installhdrs
    969 
    970 # --------
    971 
    972 # Objective-C bindings
    973 
    974 DOM_BINDINGS_SCRIPTS = $(GENERATE_BINDING_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm
    975 DOM%.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 
    982 endif # MACOS
    983