1# Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. 2# Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 8# 1. Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# 2. Redistributions in binary form must reproduce the above copyright 11# notice, this list of conditions and the following disclaimer in the 12# documentation and/or other materials provided with the distribution. 13# 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14# its contributors may be used to endorse or promote products derived 15# from this software without specific prior written permission. 16# 17# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 28VPATH = \ 29 $(WebCore) \ 30 $(WebCore)/bindings/js \ 31 $(WebCore)/bindings/objc \ 32 $(WebCore)/css \ 33 $(WebCore)/dom \ 34 $(WebCore)/html \ 35 $(WebCore)/html/canvas \ 36 $(WebCore)/inspector \ 37 $(WebCore)/loader/appcache \ 38 $(WebCore)/page \ 39 $(WebCore)/plugins \ 40 $(WebCore)/storage \ 41 $(WebCore)/xml \ 42 $(WebCore)/wml \ 43 $(WebCore)/workers \ 44 $(WebCore)/svg \ 45 $(WebCore)/websockets \ 46# 47 48DOM_CLASSES = \ 49 AbstractView \ 50 AbstractWorker \ 51 Attr \ 52 BarInfo \ 53 CDATASection \ 54 CSSCharsetRule \ 55 CSSFontFaceRule \ 56 CSSImportRule \ 57 CSSMediaRule \ 58 CSSPageRule \ 59 CSSPrimitiveValue \ 60 CSSRule \ 61 CSSRuleList \ 62 CSSStyleDeclaration \ 63 CSSStyleRule \ 64 CSSStyleSheet \ 65 CSSUnknownRule \ 66 CSSValue \ 67 CSSValueList \ 68 CSSVariablesRule \ 69 CSSVariablesDeclaration \ 70 CanvasGradient \ 71 CanvasPattern \ 72 CanvasRenderingContext2D \ 73 CharacterData \ 74 ClientRect \ 75 ClientRectList \ 76 Clipboard \ 77 Comment \ 78 Console \ 79 Coordinates \ 80 Counter \ 81 DataGridColumn \ 82 DataGridColumnList \ 83 DedicatedWorkerContext \ 84 DOMApplicationCache \ 85 DOMCoreException \ 86 DOMImplementation \ 87 DOMParser \ 88 DOMSelection \ 89 DOMWindow \ 90 Database \ 91 Document \ 92 DocumentFragment \ 93 DocumentType \ 94 Element \ 95 ElementTimeControl \ 96 Entity \ 97 EntityReference \ 98 ErrorEvent \ 99 Event \ 100 EventException \ 101 EventListener \ 102 EventTarget \ 103 File \ 104 FileList \ 105 Geolocation \ 106 Geoposition \ 107 HTMLAnchorElement \ 108 HTMLAppletElement \ 109 HTMLAreaElement \ 110 HTMLAudioElement \ 111 HTMLBRElement \ 112 HTMLBaseElement \ 113 HTMLBaseFontElement \ 114 HTMLBlockquoteElement \ 115 HTMLBodyElement \ 116 HTMLButtonElement \ 117 HTMLCanvasElement \ 118 HTMLCollection \ 119 HTMLDataGridElement \ 120 HTMLDataGridCellElement \ 121 HTMLDataGridColElement \ 122 HTMLDataGridRowElement \ 123 HTMLDListElement \ 124 HTMLDirectoryElement \ 125 HTMLDivElement \ 126 HTMLDocument \ 127 HTMLElement \ 128 HTMLEmbedElement \ 129 HTMLFieldSetElement \ 130 HTMLFontElement \ 131 HTMLFormElement \ 132 HTMLFrameElement \ 133 HTMLFrameSetElement \ 134 HTMLHRElement \ 135 HTMLHeadElement \ 136 HTMLHeadingElement \ 137 HTMLHtmlElement \ 138 HTMLIFrameElement \ 139 HTMLImageElement \ 140 HTMLInputElement \ 141 HTMLIsIndexElement \ 142 HTMLLIElement \ 143 HTMLLabelElement \ 144 HTMLLegendElement \ 145 HTMLLinkElement \ 146 HTMLMapElement \ 147 HTMLMarqueeElement \ 148 HTMLMediaElement \ 149 HTMLMenuElement \ 150 HTMLMetaElement \ 151 HTMLModElement \ 152 HTMLOListElement \ 153 HTMLObjectElement \ 154 HTMLOptGroupElement \ 155 HTMLOptionElement \ 156 HTMLOptionsCollection \ 157 HTMLParagraphElement \ 158 HTMLParamElement \ 159 HTMLPreElement \ 160 HTMLQuoteElement \ 161 HTMLScriptElement \ 162 HTMLSelectElement \ 163 HTMLSourceElement \ 164 HTMLStyleElement \ 165 HTMLTableCaptionElement \ 166 HTMLTableCellElement \ 167 HTMLTableColElement \ 168 HTMLTableElement \ 169 HTMLTableRowElement \ 170 HTMLTableSectionElement \ 171 HTMLTextAreaElement \ 172 HTMLTitleElement \ 173 HTMLUListElement \ 174 HTMLVideoElement \ 175 History \ 176 ImageData \ 177 InspectorBackend \ 178 KeyboardEvent \ 179 Location \ 180 Media \ 181 MediaError \ 182 MediaList \ 183 MessageChannel \ 184 MessageEvent \ 185 MessagePort \ 186 MimeType \ 187 MimeTypeArray \ 188 MouseEvent \ 189 MutationEvent \ 190 NamedNodeMap \ 191 Navigator \ 192 Node \ 193 NodeFilter \ 194 NodeIterator \ 195 NodeList \ 196 Notation \ 197 OverflowEvent \ 198 Plugin \ 199 PluginArray \ 200 PositionError \ 201 ProcessingInstruction \ 202 ProgressEvent \ 203 RGBColor \ 204 Range \ 205 RangeException \ 206 Rect \ 207 SharedWorker \ 208 SharedWorkerContext \ 209 SQLError \ 210 SQLResultSet \ 211 SQLResultSetRowList \ 212 SQLTransaction \ 213 Storage \ 214 StorageEvent \ 215 SVGAElement \ 216 SVGAltGlyphElement \ 217 SVGAngle \ 218 SVGAnimateColorElement \ 219 SVGAnimateElement \ 220 SVGAnimateTransformElement \ 221 SVGAnimatedAngle \ 222 SVGAnimatedBoolean \ 223 SVGAnimatedEnumeration \ 224 SVGAnimatedInteger \ 225 SVGAnimatedLength \ 226 SVGAnimatedLengthList \ 227 SVGAnimatedNumber \ 228 SVGAnimatedNumberList \ 229 SVGAnimatedPathData \ 230 SVGAnimatedPoints \ 231 SVGAnimatedPreserveAspectRatio \ 232 SVGAnimatedRect \ 233 SVGAnimatedString \ 234 SVGAnimatedTransformList \ 235 SVGAnimationElement \ 236 SVGCircleElement \ 237 SVGClipPathElement \ 238 SVGColor \ 239 SVGComponentTransferFunctionElement \ 240 SVGCursorElement \ 241 SVGDefinitionSrcElement \ 242 SVGDefsElement \ 243 SVGDescElement \ 244 SVGDocument \ 245 SVGElement \ 246 SVGElementInstance \ 247 SVGElementInstanceList \ 248 SVGEllipseElement \ 249 SVGException \ 250 SVGExternalResourcesRequired \ 251 SVGFEBlendElement \ 252 SVGFEColorMatrixElement \ 253 SVGFEComponentTransferElement \ 254 SVGFECompositeElement \ 255 SVGFEDiffuseLightingElement \ 256 SVGFEDisplacementMapElement \ 257 SVGFEDistantLightElement \ 258 SVGFEFloodElement \ 259 SVGFEFuncAElement \ 260 SVGFEFuncBElement \ 261 SVGFEFuncGElement \ 262 SVGFEFuncRElement \ 263 SVGFEGaussianBlurElement \ 264 SVGFEImageElement \ 265 SVGFEMergeElement \ 266 SVGFEMergeNodeElement \ 267 SVGFEOffsetElement \ 268 SVGFEPointLightElement \ 269 SVGFESpecularLightingElement \ 270 SVGFESpotLightElement \ 271 SVGFETileElement \ 272 SVGFETurbulenceElement \ 273 SVGFilterElement \ 274 SVGFilterPrimitiveStandardAttributes \ 275 SVGFitToViewBox \ 276 SVGFontElement \ 277 SVGFontFaceElement \ 278 SVGFontFaceFormatElement \ 279 SVGFontFaceNameElement \ 280 SVGFontFaceSrcElement \ 281 SVGFontFaceUriElement \ 282 SVGForeignObjectElement \ 283 SVGGElement \ 284 SVGGlyphElement \ 285 SVGGradientElement \ 286 SVGHKernElement \ 287 SVGImageElement \ 288 SVGLangSpace \ 289 SVGLength \ 290 SVGLengthList \ 291 SVGLineElement \ 292 SVGLinearGradientElement \ 293 SVGLocatable \ 294 SVGMarkerElement \ 295 SVGMaskElement \ 296 SVGMatrix \ 297 SVGMetadataElement \ 298 SVGMissingGlyphElement \ 299 SVGNumber \ 300 SVGNumberList \ 301 SVGPaint \ 302 SVGPathElement \ 303 SVGPathSeg \ 304 SVGPathSegArcAbs \ 305 SVGPathSegArcRel \ 306 SVGPathSegClosePath \ 307 SVGPathSegCurvetoCubicAbs \ 308 SVGPathSegCurvetoCubicRel \ 309 SVGPathSegCurvetoCubicSmoothAbs \ 310 SVGPathSegCurvetoCubicSmoothRel \ 311 SVGPathSegCurvetoQuadraticAbs \ 312 SVGPathSegCurvetoQuadraticRel \ 313 SVGPathSegCurvetoQuadraticSmoothAbs \ 314 SVGPathSegCurvetoQuadraticSmoothRel \ 315 SVGPathSegLinetoAbs \ 316 SVGPathSegLinetoHorizontalAbs \ 317 SVGPathSegLinetoHorizontalRel \ 318 SVGPathSegLinetoRel \ 319 SVGPathSegLinetoVerticalAbs \ 320 SVGPathSegLinetoVerticalRel \ 321 SVGPathSegList \ 322 SVGPathSegMovetoAbs \ 323 SVGPathSegMovetoRel \ 324 SVGPatternElement \ 325 SVGPoint \ 326 SVGPointList \ 327 SVGPolygonElement \ 328 SVGPolylineElement \ 329 SVGPreserveAspectRatio \ 330 SVGRadialGradientElement \ 331 SVGRect \ 332 SVGRectElement \ 333 SVGRenderingIntent \ 334 SVGSVGElement \ 335 SVGScriptElement \ 336 SVGSetElement \ 337 SVGStopElement \ 338 SVGStringList \ 339 SVGStylable \ 340 SVGStyleElement \ 341 SVGSwitchElement \ 342 SVGSymbolElement \ 343 SVGTRefElement \ 344 SVGTSpanElement \ 345 SVGTests \ 346 SVGTextContentElement \ 347 SVGTextElement \ 348 SVGTextPathElement \ 349 SVGTextPositioningElement \ 350 SVGTitleElement \ 351 SVGTransform \ 352 SVGTransformList \ 353 SVGTransformable \ 354 SVGURIReference \ 355 SVGUnitTypes \ 356 SVGUseElement \ 357 SVGViewElement \ 358 SVGZoomAndPan \ 359 SVGZoomEvent \ 360 Screen \ 361 StyleSheet \ 362 StyleSheetList \ 363 Text \ 364 TextEvent \ 365 TextMetrics \ 366 TimeRanges \ 367 TreeWalker \ 368 UIEvent \ 369 ValidityState \ 370 VoidCallback \ 371 WebKitAnimationEvent \ 372 WebKitCSSKeyframeRule \ 373 WebKitCSSKeyframesRule \ 374 WebKitCSSMatrix \ 375 WebKitCSSTransformValue \ 376 WebKitPoint \ 377 WebKitTransitionEvent \ 378 WebSocket \ 379 WheelEvent \ 380 Worker \ 381 WorkerContext \ 382 WorkerLocation \ 383 WorkerNavigator \ 384 XMLHttpRequest \ 385 XMLHttpRequestException \ 386 XMLHttpRequestProgressEvent \ 387 XMLHttpRequestUpload \ 388 XMLSerializer \ 389 XPathEvaluator \ 390 XPathException \ 391 XPathExpression \ 392 XPathNSResolver \ 393 XPathResult \ 394 XSLTProcessor \ 395# 396 397.PHONY : all 398 399all : \ 400 $(filter-out JSEventListener.h JSEventTarget.h,$(DOM_CLASSES:%=JS%.h)) \ 401 \ 402 JSJavaScriptCallFrame.h \ 403 \ 404 CSSGrammar.cpp \ 405 CSSPropertyNames.h \ 406 CSSValueKeywords.h \ 407 ColorData.c \ 408 DocTypeStrings.cpp \ 409 HTMLElementFactory.cpp \ 410 HTMLEntityNames.c \ 411 HTMLNames.cpp \ 412 WMLElementFactory.cpp \ 413 WMLNames.cpp \ 414 JSSVGElementWrapperFactory.cpp \ 415 SVGElementFactory.cpp \ 416 SVGNames.cpp \ 417 UserAgentStyleSheets.h \ 418 XLinkNames.cpp \ 419 XMLNames.cpp \ 420 XPathGrammar.cpp \ 421 tokenizer.cpp \ 422# 423 424# -------- 425 426ifeq ($(OS),MACOS) 427 428FRAMEWORK_FLAGS = $(shell echo $(FRAMEWORK_SEARCH_PATHS) | perl -e 'print "-F " . join(" -F ", split(" ", <>));') 429 430ifeq ($(shell gcc -E -P -dM -F $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_DASHBOARD_SUPPORT | cut -d' ' -f3), 1) 431 ENABLE_DASHBOARD_SUPPORT = 1 432else 433 ENABLE_DASHBOARD_SUPPORT = 0 434endif 435 436else 437 438ENABLE_DASHBOARD_SUPPORT = 0 439 440endif 441 442# CSS property names and value keywords 443 444WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in 445WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in 446 447ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG) 448 WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/SVGCSSPropertyNames.in 449 WEBCORE_CSS_VALUE_KEYWORDS := $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/SVGCSSValueKeywords.in 450endif 451 452ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1) 453 WEBCORE_CSS_PROPERTY_NAMES := $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/DashboardSupportCSSPropertyNames.in 454endif 455 456# The grep commands below reject output containing anything other than: 457# 1. Lines beginning with '#' 458# 2. Lines containing only whitespace 459# These two types of lines will be ignored by make{prop,values}.pl. 460CSSPropertyNames.h : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl 461 if sort $(WEBCORE_CSS_PROPERTY_NAMES) | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$)'; then echo 'Duplicate value!'; exit 1; fi 462 cat $(WEBCORE_CSS_PROPERTY_NAMES) > CSSPropertyNames.in 463 perl "$(WebCore)/css/makeprop.pl" 464 465CSSValueKeywords.h : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl 466 # Lower case all the values, as CSS values are case-insensitive 467 perl -ne 'print lc' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in 468 if sort CSSValueKeywords.in | uniq -d | grep -E -v '(^#)|(^[[:space:]]*$)'; then echo 'Duplicate value!'; exit 1; fi 469 perl "$(WebCore)/css/makevalues.pl" 470 471# -------- 472 473# DOCTYPE strings 474 475DocTypeStrings.cpp : html/DocTypeStrings.gperf 476 gperf -CEot -L ANSI-C -k "*" -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards $< > $@ 477 478# -------- 479 480# HTML entity names 481 482HTMLEntityNames.c : html/HTMLEntityNames.gperf 483 gperf -a -L ANSI-C -C -G -c -o -t -k '*' -N findEntity -D -s 2 $< > $@ 484 485# -------- 486 487# color names 488 489ColorData.c : platform/ColorData.gperf 490 gperf -CDEot -L ANSI-C -k '*' -N findColor -D -s 2 $< > $@ 491 492# -------- 493 494# CSS tokenizer 495 496tokenizer.cpp : css/tokenizer.flex css/maketokenizer 497 flex -t $< | perl $(WebCore)/css/maketokenizer > $@ 498 499# -------- 500 501# CSS grammar 502# NOTE: Older versions of bison do not inject an inclusion guard, so we add one. 503 504CSSGrammar.cpp : css/CSSGrammar.y 505 bison -d -p cssyy $< -o $@ 506 touch CSSGrammar.cpp.h 507 touch CSSGrammar.hpp 508 echo '#ifndef CSSGrammar_h' > CSSGrammar.h 509 echo '#define CSSGrammar_h' >> CSSGrammar.h 510 cat CSSGrammar.cpp.h CSSGrammar.hpp >> CSSGrammar.h 511 echo '#endif' >> CSSGrammar.h 512 rm -f CSSGrammar.cpp.h CSSGrammar.hpp 513 514# -------- 515 516# XPath grammar 517# NOTE: Older versions of bison do not inject an inclusion guard, so we add one. 518 519XPathGrammar.cpp : xml/XPathGrammar.y $(PROJECT_FILE) 520 bison -d -p xpathyy $< -o $@ 521 touch XPathGrammar.cpp.h 522 touch XPathGrammar.hpp 523 echo '#ifndef XPathGrammar_h' > XPathGrammar.h 524 echo '#define XPathGrammar_h' >> XPathGrammar.h 525 cat XPathGrammar.cpp.h XPathGrammar.hpp >> XPathGrammar.h 526 echo '#endif' >> XPathGrammar.h 527 rm -f XPathGrammar.cpp.h XPathGrammar.hpp 528 529# -------- 530 531# user agent style sheets 532 533USER_AGENT_STYLE_SHEETS = $(WebCore)/css/html.css $(WebCore)/css/quirks.css $(WebCore)/css/view-source.css $(WebCore)/css/themeWin.css $(WebCore)/css/themeWinQuirks.css 534 535ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG) 536 USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/svg.css 537endif 538 539ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML) 540 USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/wml.css 541endif 542 543ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO) 544 USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControls.css 545ifeq ($(OS),MACOS) 546 USER_AGENT_STYLE_SHEETS := $(USER_AGENT_STYLE_SHEETS) $(WebCore)/css/mediaControlsQT.css 547endif 548endif 549 550UserAgentStyleSheets.h : css/make-css-file-arrays.pl $(USER_AGENT_STYLE_SHEETS) 551 perl $< $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS) 552 553# -------- 554 555# HTML tag and attribute names 556 557ifeq ($(findstring ENABLE_VIDEO,$(FEATURE_DEFINES)), ENABLE_VIDEO) 558 HTML_FLAGS := $(HTML_FLAGS) ENABLE_VIDEO=1 559endif 560 561ifeq ($(findstring ENABLE_RUBY,$(FEATURE_DEFINES)), ENABLE_RUBY) 562 HTML_FLAGS := $(HTML_FLAGS) ENABLE_RUBY=1 563endif 564 565ifdef HTML_FLAGS 566 567HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in 568 perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines "$(HTML_FLAGS)" 569 570else 571 572HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in 573 perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory 574 575endif 576 577JSHTMLElementWrapperFactory.cpp : HTMLNames.cpp 578 579XMLNames.cpp : dom/make_names.pl xml/xmlattrs.in 580 perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in 581 582# -------- 583 584# SVG tag and attribute names, and element factory 585 586ifeq ($(findstring ENABLE_SVG,$(FEATURE_DEFINES)), ENABLE_SVG) 587 588ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS) 589 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.exp 590endif 591 592ifeq ($(findstring ENABLE_SVG_USE,$(FEATURE_DEFINES)), ENABLE_SVG_USE) 593 SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_USE=1 594endif 595 596ifeq ($(findstring ENABLE_SVG_FONTS,$(FEATURE_DEFINES)), ENABLE_SVG_FONTS) 597 SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FONTS=1 598endif 599 600ifeq ($(findstring ENABLE_FILTERS,$(FEATURE_DEFINES)), ENABLE_FILTERS) 601 SVG_FLAGS := $(SVG_FLAGS) ENABLE_FILTERS=1 602ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS) 603 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Filters.exp 604endif 605endif 606 607ifeq ($(findstring ENABLE_SVG_AS_IMAGE,$(FEATURE_DEFINES)), ENABLE_SVG_AS_IMAGE) 608 SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_AS_IMAGE=1 609endif 610 611ifeq ($(findstring ENABLE_SVG_ANIMATION,$(FEATURE_DEFINES)), ENABLE_SVG_ANIMATION) 612 SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_ANIMATION=1 613ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS) 614 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.Animation.exp 615endif 616endif 617 618ifeq ($(findstring ENABLE_SVG_FOREIGN_OBJECT,$(FEATURE_DEFINES)), ENABLE_SVG_FOREIGN_OBJECT) 619 SVG_FLAGS := $(SVG_FLAGS) ENABLE_SVG_FOREIGN_OBJECT=1 620ifeq ($(findstring ENABLE_SVG_DOM_OBJC_BINDINGS,$(FEATURE_DEFINES)), ENABLE_SVG_DOM_OBJC_BINDINGS) 621 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.SVG.ForeignObject.exp 622endif 623endif 624 625# SVG tag and attribute names (need to pass an extra flag if svg experimental features are enabled) 626 627ifdef SVG_FLAGS 628 629SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in 630 perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --extraDefines "$(SVG_FLAGS)" --factory --wrapperFactory 631else 632 633SVGElementFactory.cpp SVGNames.cpp : dom/make_names.pl svg/svgtags.in svg/svgattrs.in 634 perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory 635 636endif 637 638JSSVGElementWrapperFactory.cpp : SVGNames.cpp 639 640XLinkNames.cpp : dom/make_names.pl svg/xlinkattrs.in 641 perl -I $(WebCore)/bindings/scripts $< --attrs $(WebCore)/svg/xlinkattrs.in 642 643else 644 645SVGElementFactory.cpp : 646 echo > $@ 647 648SVGNames.cpp : 649 echo > $@ 650 651XLinkNames.cpp : 652 echo > $@ 653 654# This file is autogenerated by make_names.pl when SVG is enabled. 655 656JSSVGElementWrapperFactory.cpp : 657 echo > $@ 658 659endif 660 661# -------- 662 663# WML tag and attribute names, and element factory 664 665ifeq ($(findstring ENABLE_WML,$(FEATURE_DEFINES)), ENABLE_WML) 666 667WMLElementFactory.cpp WMLNames.cpp : dom/make_names.pl wml/WMLTagNames.in wml/WMLAttributeNames.in 668 perl -I $(WebCore)/bindings/scripts $< --tags $(WebCore)/wml/WMLTagNames.in --attrs $(WebCore)/wml/WMLAttributeNames.in --factory --wrapperFactory 669 670else 671 672WMLElementFactory.cpp : 673 echo > $@ 674 675WMLNames.cpp : 676 echo > $@ 677 678endif 679 680 681# -------- 682 683# JavaScript bindings 684 685GENERATE_BINDINGS = perl -I $(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl \ 686 --include dom --include html --include css --include page --include xml --include svg --outputDir . 687 688GENERATE_BINDINGS_SCRIPTS = \ 689 bindings/scripts/CodeGenerator.pm \ 690 bindings/scripts/IDLParser.pm \ 691 bindings/scripts/IDLStructure.pm \ 692 bindings/scripts/generate-bindings.pl \ 693# 694 695JS%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm 696 $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $< 697 698# ------------------------ 699 700# Mac-specific rules 701 702ifeq ($(OS),MACOS) 703 704all : $(filter-out DOMDOMWindow.h DOMMimeType.h DOMPlugin.h,$(DOM_CLASSES:%=DOM%.h)) 705 706all : CharsetData.cpp WebCore.exp 707 708# -------- 709 710# character set name table 711 712CharsetData.cpp : platform/text/mac/make-charset-table.pl platform/text/mac/character-sets.txt platform/text/mac/mac-encodings.txt 713 perl $^ kTextEncoding > $@ 714 715# -------- 716 717# export file 718 719ifeq ($(shell gcc -E -P -dM -F $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_MAC_JAVA_BRIDGE | cut -d' ' -f3), 1) 720 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.JNI.exp 721endif 722 723# See also "Generate 64-bit Export File" build phase script in WebCore.xcodeproj/project.pbxproj 724ifeq ($(shell gcc -E -P -dM -F $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_FLAGS) WebCore/ForwardingHeaders/wtf/Platform.h | grep ENABLE_NETSCAPE_PLUGIN_API | cut -d' ' -f3), 1) 725 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.NPAPI.exp 726endif 727 728ifeq ($(ENABLE_DASHBOARD_SUPPORT), 1) 729 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.DashboardSupport.exp 730endif 731 732ifeq ($(findstring 10.4,$(MACOSX_DEPLOYMENT_TARGET)), 10.4) 733 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.Tiger.exp 734endif 735 736ifeq ($(findstring ENABLE_PLUGIN_PROXY_FOR_VIDEO,$(FEATURE_DEFINES)), ENABLE_PLUGIN_PROXY_FOR_VIDEO) 737 WEBCORE_EXPORT_DEPENDENCIES := $(WEBCORE_EXPORT_DEPENDENCIES) WebCore.VideoProxy.exp 738endif 739 740WebCore.exp : WebCore.base.exp $(WEBCORE_EXPORT_DEPENDENCIES) 741 cat $^ > $@ 742 743# -------- 744 745# Objective-C bindings 746 747DOM%.h : %.idl $(GENERATE_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm bindings/objc/PublicDOMInterfaces.h 748 $(GENERATE_BINDINGS) --defines "$(FEATURE_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC $< 749 750# -------- 751 752endif 753 754# ------------------------ 755