Changeset 268566 in webkit
- Timestamp:
- Oct 15, 2020 6:01:22 PM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r268565 r268566 1 2020-10-15 Keith Rollin <krollin@apple.com> 2 3 Lessen the reliance on VPATH in WebCore/DerivedSources.make 4 https://bugs.webkit.org/show_bug.cgi?id=217696 5 <rdar://problem/70279941> 6 7 Reviewed by Darin Adler. 8 9 Due to the way vpath/VPATH works in `make`, we can get into a 10 situation where necessarily IDL files are not copied to their correct 11 locations. 12 13 WebKit comes with many IDL files. When building for internal purposes, 14 Apple can add to or modify this set of IDL files. When creating 15 Engineering builds, these additional IDL files are copied to 16 .../WebKitBuild/<configuration>/usr/local/includes. When performing 17 Production builds, these IDL files are included in the SDK. This 18 arrangement can be seen in DerivedSources.make: 19 20 vpath %.idl $(BUILT_PRODUCTS_DIR)/usr/local/include $(SDKROOT)/usr/local/include 21 22 In order to get these IDL files into a location where they can be 23 uniformly found and handled, there is a step in DerivedSources.make 24 that copies them to the current directory, which is 25 WebKitBuild/<configuration>/DerivedSources/WebCore: 26 27 $(ADDITIONAL_BINDING_IDLS) : % : WebKitAdditions/% 28 cp $< . 29 30 The IDL files specified in ADDITIONAL_BINDING_IDLS are specified as 31 bare files names, meaning that vpath and VPATH are employed to find 32 them. Given the vpath specification previously shown, if the IDL files 33 can be found in $(BUILT_PRODUCTS_DIR)/usr/local/include, they are 34 copied locally. Otherwise, they should be found in 35 $(SDKROOT)/usr/local/include and copied locally. 36 37 As it turns out, vpath/VPATH resolution is performed not only on the 38 prerequisites of the build rule, but also the target (see section 39 4.5.3 of the GNU `make` manual). This means that the files specified 40 on the left side of the `cp` rule above are also searched for. And 41 since the standard IDL files (the ones that are being replaced with 42 the Apple-specific versions) can be found on VPATH as it's defined in 43 DerivedSources.make (specifically, in $(WebCore)/dom), then those 44 files participate in determining if the `cp` rule is executed. 45 46 Consider the normal build case: repositories are checked out (applying 47 the current modification timestamp to the files). During the build, 48 the files in $(ADDITIONAL_BINDING_IDLS) are copied to either 49 BUILT_PRODUCTS_DIR or to SDKROOT, which again modifies their 50 timestamps. We eventually get to the build rule for the `cp` 51 operation. Because the files in WebKitAdditions (be it in the local 52 build directory or the SDK) are *newer* than the checked-out ones in 53 $(WebCore)/dom due to their having been copied after they were 54 checked-out, then the `cp` command is invoked and then files are 55 copied to the current build directory. 56 57 However, consider a slightly different build case. In this case, 58 projects are checked out and built one at a time. So the project 59 producing the files in ADDITIONAL_BINDING_IDLS is checked out and then 60 the IDL files are copied to their intermediate location and have their 61 timestamps set to that time. Later, WebCore is checked out, and 62 DerivedSources.make is eventually invoked. Now, the files in 63 $(WebCore)/dom are *newer* than those in WebKitAdditions. `make` 64 determines that the IDL files are up-to-date and does not execute the 65 `cp` commands. The IDL files are not copied, and the build then either 66 fails (because of missing files) or proceeds incorrectly (because the 67 wrong IDL files are found). 68 69 The solution to this issue is to lessen the reliance on vpath/VPATH in 70 DerivedSources.make. Instead, be more explicit about where files can 71 be found and trim down vpath/VPATH to it's bare minimum. With 72 vpath/VPATH reduced, we remove the issue of files being accidentally 73 discovered that we don't want discovered. 74 75 The modifications effected to make this change are: 76 77 - Remove the definition of VPATH. 78 - Dynamically build up an idl-only "VPATH" as needed with the "vpath" 79 directive. 80 - Manually look for the additional IDL files at their expected 81 locations without using vpath/VPATH. 82 - For the files that used to be found on VPATH, specify their actual 83 locations (typically by prefixing them with $(WebCore). 84 - (Cleanup) Consistently refer to local files with bare names (that 85 is, remove the "./" that some files were prefixed with). 86 - (Cleanup) Use consistent spacing around "<" and ">" redirection 87 symbols. 88 - (Cleanup) Remove some redundant prerequisites from the build rule 89 involving IDL_INTERMEDIATE_PATTERNS. 90 91 No new tests -- no new or changed functionality. 92 93 * DerivedSources.make: 94 1 95 2020-10-15 Chris Dumez <cdumez@apple.com> 2 96 -
trunk/Source/WebCore/DerivedSources.make
r268564 r268566 46 46 47 47 # FIXME: This should list Platform.h and all the things it includes. Could do that by using the -MD flag in the CC line above. 48 FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES = DerivedSources.make 49 50 # -------- 51 52 VPATH = \ 53 $(WebCore) \ 54 $(WebCore)/Modules/airplay \ 55 $(WebCore)/Modules/applepay \ 56 $(WebCore)/Modules/applepay/paymentrequest \ 57 $(WebCore)/Modules/async-clipboard \ 58 $(WebCore)/Modules/beacon \ 59 $(WebCore)/Modules/cache \ 60 $(WebCore)/Modules/contact-picker \ 61 $(WebCore)/Modules/credentialmanagement \ 62 $(WebCore)/Modules/encryptedmedia \ 63 $(WebCore)/Modules/encryptedmedia/legacy \ 64 $(WebCore)/Modules/entriesapi \ 65 $(WebCore)/Modules/fetch \ 66 $(WebCore)/Modules/gamepad \ 67 $(WebCore)/Modules/geolocation \ 68 $(WebCore)/Modules/highlight \ 69 $(WebCore)/Modules/indexeddb \ 70 $(WebCore)/Modules/indieui \ 71 $(WebCore)/Modules/mediacapabilities \ 72 $(WebCore)/Modules/mediacontrols \ 73 $(WebCore)/Modules/mediarecorder \ 74 $(WebCore)/Modules/mediasource \ 75 $(WebCore)/Modules/mediastream \ 76 $(WebCore)/Modules/notifications \ 77 $(WebCore)/Modules/paymentrequest \ 78 $(WebCore)/Modules/pictureinpicture \ 79 $(WebCore)/Modules/plugins \ 80 $(WebCore)/Modules/quota \ 81 $(WebCore)/Modules/remoteplayback \ 82 $(WebCore)/Modules/speech \ 83 $(WebCore)/Modules/streams \ 84 $(WebCore)/Modules/webaudio \ 85 $(WebCore)/Modules/webauthn \ 86 $(WebCore)/Modules/webdatabase \ 87 $(WebCore)/Modules/webdriver \ 88 $(WebCore)/Modules/webgpu \ 89 $(WebCore)/Modules/websockets \ 90 $(WebCore)/Modules/webxr \ 91 $(WebCore)/accessibility \ 92 $(WebCore)/animation \ 93 $(WebCore)/bindings/js \ 94 $(WebCore)/crypto \ 95 $(WebCore)/crypto/keys \ 96 $(WebCore)/crypto/parameters \ 97 $(WebCore)/css \ 98 $(WebCore)/css/typedom \ 99 $(WebCore)/dom \ 100 $(WebCore)/editing \ 101 $(WebCore)/fileapi \ 102 $(WebCore)/html \ 103 $(WebCore)/html/canvas \ 104 $(WebCore)/html/shadow \ 105 $(WebCore)/html/track \ 106 $(WebCore)/inspector \ 107 $(WebCore)/loader/appcache \ 108 $(WebCore)/mathml \ 109 $(WebCore)/page \ 110 $(WebCore)/platform/network \ 111 $(WebCore)/plugins \ 112 $(WebCore)/storage \ 113 $(WebCore)/svg \ 114 $(WebCore)/testing \ 115 $(WebCore)/websockets \ 116 $(WebCore)/workers \ 117 $(WebCore)/workers/service \ 118 $(WebCore)/worklets \ 119 $(WebCore)/xml \ 120 # 48 FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES = $(WebCore)/DerivedSources.make 49 50 # -------- 121 51 122 52 JS_BINDING_IDLS = \ … … 128 58 $(WebCore)/Modules/applepay/ApplePayErrorContactField.idl \ 129 59 $(WebCore)/Modules/applepay/ApplePayInstallmentConfiguration.idl \ 130 131 132 60 $(WebCore)/Modules/applepay/ApplePayInstallmentItem.idl \ 61 $(WebCore)/Modules/applepay/ApplePayInstallmentItemType.idl \ 62 $(WebCore)/Modules/applepay/ApplePayInstallmentRetailChannel.idl \ 133 63 $(WebCore)/Modules/applepay/ApplePayLineItem.idl \ 134 64 $(WebCore)/Modules/applepay/ApplePayMerchantCapability.idl \ … … 369 299 $(WebCore)/Modules/quota/StorageUsageCallback.idl \ 370 300 $(WebCore)/Modules/quota/WorkerNavigator+StorageQuota.idl \ 371 372 373 301 $(WebCore)/Modules/remoteplayback/HTMLMediaElement+RemotePlayback.idl \ 302 $(WebCore)/Modules/remoteplayback/RemotePlayback.idl \ 303 $(WebCore)/Modules/remoteplayback/RemotePlaybackAvailabilityCallback.idl \ 374 304 $(WebCore)/Modules/speech/DOMWindow+SpeechSynthesis.idl \ 375 305 $(WebCore)/Modules/speech/SpeechSynthesis.idl \ … … 465 395 $(WebCore)/Modules/webaudio/ScriptProcessorNode.idl \ 466 396 $(WebCore)/Modules/webaudio/StereoPannerNode.idl \ 467 397 $(WebCore)/Modules/webaudio/StereoPannerOptions.idl \ 468 398 $(WebCore)/Modules/webaudio/WaveShaperNode.idl \ 469 399 $(WebCore)/Modules/webaudio/WaveShaperOptions.idl \ … … 1358 1288 -include WebCoreDerivedSourcesAdditions.make 1359 1289 1360 JS_BINDING_IDLS += $(ADDITIONAL_BINDING_IDLS) 1361 1362 all : $(ADDITIONAL_BINDING_IDLS:%.idl=JS%.h) 1363 1364 vpath %.idl $(BUILT_PRODUCTS_DIR)/usr/local/include $(SDKROOT)/usr/local/include 1365 1366 $(ADDITIONAL_BINDING_IDLS) : % : WebKitAdditions/% 1367 cp $< . 1290 # Convert the IDLs in ADDITIONAL_BINDING_IDLS -- which are just bare names 1291 # -- into full paths. We want to look for the IDL files in the set of paths 1292 # given in ADDITIONAL_BINDING_IDLS_PATHS, preferring the order in which the 1293 # paths are specified. 1294 # 1295 # We perform this conversions by taking each IDL from ADDITIONAL_BINDING_IDLS 1296 # in turn. For each one, prepend it with the paths in 1297 # ADDITIONAL_BINDING_IDLS_PATHS. Then pass those paths for that single IDL to 1298 # $(realpath) in order to evaluate their existence. Take the resulting list 1299 # (which should have 1..N items in it, depending on the number of directories 1300 # in ADDITIONAL_BINDING_IDLS_PATHS and the existence of the IDL file at each 1301 # location) and pick the first one. That will be the path we use for that IDL. 1302 # 1303 # Note that we don't want to find the IDL files by using `vpath`. Of necessity, 1304 # those facilities reference directories in $(WebCore) which also include IDL 1305 # files. We don't want to find any files listed in ADDITIONAL_BINDING_IDLS that 1306 # exist on those paths. So we go through the process of looking up the IDLs 1307 # along the desired set of paths ourselves. 1308 1309 ADDITIONAL_BINDING_IDLS_PATHS = $(BUILT_PRODUCTS_DIR) $(SDKROOT) 1310 JS_BINDING_IDLS += \ 1311 $(foreach \ 1312 idl, \ 1313 $(ADDITIONAL_BINDING_IDLS), \ 1314 $(firstword $(realpath $(foreach \ 1315 path, \ 1316 $(ADDITIONAL_BINDING_IDLS_PATHS), \ 1317 $(path)/usr/local/include/WebKitAdditions/$(idl))))) 1368 1318 1369 1319 ifneq ($(findstring ENABLE_IOS_TOUCH_EVENTS,$(FEATURE_AND_PLATFORM_DEFINES)), ENABLE_IOS_TOUCH_EVENTS) … … 1453 1403 1454 1404 all : $(CSS_PROPERTY_NAME_FILES) 1455 $(CSS_PROPERTY_NAME_FILES_PATTERNS) : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)1405 $(CSS_PROPERTY_NAME_FILES_PATTERNS) : $(WEBCORE_CSS_PROPERTY_NAMES) $(WebCore)/css/makeprop.pl $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) 1456 1406 $(PERL) -pe '' $(WEBCORE_CSS_PROPERTY_NAMES) > CSSProperties.json 1457 1407 $(PERL) "$(WebCore)/css/makeprop.pl" --defines "$(FEATURE_AND_PLATFORM_DEFINES)" … … 1464 1414 1465 1415 all : $(CSS_VALUE_KEYWORD_FILES) 1466 $(CSS_VALUE_KEYWORD_FILES_PATTERNS) : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.plbindings/scripts/preprocessor.pm $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)1416 $(CSS_VALUE_KEYWORD_FILES_PATTERNS) : $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/makevalues.pl $(WebCore)/bindings/scripts/preprocessor.pm $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) 1467 1417 $(PERL) -pe '' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in 1468 1418 $(PERL) "$(WebCore)/css/makevalues.pl" --defines "$(FEATURE_AND_PLATFORM_DEFINES)" … … 1485 1435 1486 1436 DOMJITAbstractHeapRepository.h : $(WebCore)/domjit/generate-abstract-heap.rb $(WebCore)/domjit/DOMJITAbstractHeapRepository.yaml 1487 $(RUBY) "$(WebCore)/domjit/generate-abstract-heap.rb" $(WebCore)/domjit/DOMJITAbstractHeapRepository.yaml ./DOMJITAbstractHeapRepository.h1437 $(RUBY) "$(WebCore)/domjit/generate-abstract-heap.rb" $(WebCore)/domjit/DOMJITAbstractHeapRepository.yaml DOMJITAbstractHeapRepository.h 1488 1438 1489 1439 # -------- … … 1493 1443 all : XMLViewerCSS.h 1494 1444 1495 XMLViewerCSS.h : xml/XMLViewer.css1496 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/cssmin.py < "$(WebCore)/xml/XMLViewer.css" > ./XMLViewer.min.css1497 $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl XMLViewer_css ./XMLViewer.min.css XMLViewerCSS.h1445 XMLViewerCSS.h : $(WebCore)/xml/XMLViewer.css 1446 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/cssmin.py < "$(WebCore)/xml/XMLViewer.css" > XMLViewer.min.css 1447 $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl XMLViewer_css XMLViewer.min.css XMLViewerCSS.h 1498 1448 $(DELETE) XMLViewer.min.css 1499 1449 … … 1504 1454 all : XMLViewerJS.h 1505 1455 1506 XMLViewerJS.h : xml/XMLViewer.js1507 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py < "$(WebCore)/xml/XMLViewer.js" > ./XMLViewer.min.js1508 $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl XMLViewer_js ./XMLViewer.min.js XMLViewerJS.h1456 XMLViewerJS.h : $(WebCore)/xml/XMLViewer.js 1457 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py < "$(WebCore)/xml/XMLViewer.js" > XMLViewer.min.js 1458 $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl XMLViewer_js XMLViewer.min.js XMLViewerJS.h 1509 1459 $(DELETE) XMLViewer.min.js 1510 1460 … … 1513 1463 # HTML entity names 1514 1464 1515 HTMLEntityTable.cpp : html/parser/HTMLEntityNames.in $(WebCore)/html/parser/create-html-entity-table1465 HTMLEntityTable.cpp : $(WebCore)/html/parser/HTMLEntityNames.in $(WebCore)/html/parser/create-html-entity-table 1516 1466 $(PYTHON) $(WebCore)/html/parser/create-html-entity-table -o HTMLEntityTable.cpp $(WebCore)/html/parser/HTMLEntityNames.in 1517 1467 … … 1528 1478 1529 1479 all : $(HTTP_HEADER_NAMES_FILES) 1530 $(HTTP_HEADER_NAMES_FILES_PATTERNS) : platform/network/HTTPHeaderNames.in $(WebCore)/platform/network/create-http-header-name-table1480 $(HTTP_HEADER_NAMES_FILES_PATTERNS) : $(WebCore)/platform/network/HTTPHeaderNames.in $(WebCore)/platform/network/create-http-header-name-table 1531 1481 $(PYTHON) $(WebCore)/platform/network/create-http-header-name-table $(WebCore)/platform/network/HTTPHeaderNames.in gperf 1532 1482 … … 1535 1485 # color names 1536 1486 1537 ColorData.cpp : platform/ColorData.gperf $(WebCore)/make-hash-tools.pl1487 ColorData.cpp : $(WebCore)/platform/ColorData.gperf $(WebCore)/make-hash-tools.pl 1538 1488 $(PERL) $(WebCore)/make-hash-tools.pl . $(WebCore)/platform/ColorData.gperf 1539 1489 … … 1564 1514 USER_AGENT_STYLE_SHEETS += $(WebCore)/html/shadow/meterElementShadow.css 1565 1515 1566 UserAgentStyleSheets.h : css/make-css-file-arrays.plbindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)1516 UserAgentStyleSheets.h : $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) 1567 1517 $(PERL) $< --defines "$(FEATURE_AND_PLATFORM_DEFINES)" $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS) 1568 1518 … … 1590 1540 PLUG_INS_RESOURCES = $(WebCore)/Resources/plugIns.js 1591 1541 1592 PlugInsResources.h : css/make-css-file-arrays.plbindings/scripts/preprocessor.pm $(PLUG_INS_RESOURCES) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)1542 PlugInsResources.h : $(WebCore)/css/make-css-file-arrays.pl $(WebCore)/bindings/scripts/preprocessor.pm $(PLUG_INS_RESOURCES) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) 1593 1543 $(PERL) $< --defines "$(FEATURE_AND_PLATFORM_DEFINES)" $@ PlugInsResourcesData.cpp $(PLUG_INS_RESOURCES) 1594 1544 … … 1602 1552 1603 1553 all : $(WEBKIT_FONT_FAMILY_NAME_FILES) 1604 $(WEBKIT_FONT_FAMILY_NAME_FILES_PATTERNS): dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pmcss/WebKitFontFamilyNames.in1554 $(WEBKIT_FONT_FAMILY_NAME_FILES_PATTERNS): $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/css/WebKitFontFamilyNames.in 1605 1555 $(PERL) $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in 1606 1556 … … 1620 1570 all : $(HTML_TAG_FILES) 1621 1571 1622 $(HTML_TAG_FILES_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm html/HTMLTagNames.inhtml/HTMLAttributeNames.in $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)1572 $(HTML_TAG_FILES_PATTERNS) : $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/html/HTMLTagNames.in $(WebCore)/html/HTMLAttributeNames.in $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) 1623 1573 $(PERL) $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory 1624 1574 1625 XMLNSNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pmxml/xmlnsattrs.in1575 XMLNSNames.cpp : $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/xml/xmlnsattrs.in 1626 1576 $(PERL) $< --attrs $(WebCore)/xml/xmlnsattrs.in 1627 1577 1628 XMLNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pmxml/xmlattrs.in1578 XMLNames.cpp : $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/xml/xmlattrs.in 1629 1579 $(PERL) $< --attrs $(WebCore)/xml/xmlattrs.in 1630 1580 … … 1646 1596 all : $(SVG_TAG_FILES) 1647 1597 1648 $(SVG_TAG_FILES_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/svgtags.insvg/svgattrs.in $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)1598 $(SVG_TAG_FILES_PATTERNS) : $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/svg/svgtags.in $(WebCore)/svg/svgattrs.in $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) 1649 1599 $(PERL) $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory 1650 1600 1651 XLinkNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pmsvg/xlinkattrs.in1601 XLinkNames.cpp : $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/svg/xlinkattrs.in 1652 1602 $(PERL) $< --attrs $(WebCore)/svg/xlinkattrs.in 1653 1603 … … 1656 1606 # Register event constructors and targets 1657 1607 1658 EVENT_NAMES = EventNames.in $(ADDITIONAL_EVENT_NAMES)1608 EVENT_NAMES = $(WebCore)/dom/EventNames.in $(ADDITIONAL_EVENT_NAMES) 1659 1609 1660 1610 EVENT_FACTORY_FILES = \ … … 1666 1616 1667 1617 all : $(EVENT_FACTORY_FILES) 1668 $(EVENT_FACTORY_PATTERNS) : dom/make_event_factory.pl $(EVENT_NAMES)1618 $(EVENT_FACTORY_PATTERNS) : $(WebCore)/dom/make_event_factory.pl $(EVENT_NAMES) 1669 1619 $(PERL) $< $(addprefix --input , $(filter-out $(WebCore)/dom/make_event_factory.pl, $^)) 1670 1620 1671 EVENT_TARGET_FACTORY = EventTargetFactory.in $(ADDITIONAL_EVENT_TARGET_FACTORY)1621 EVENT_TARGET_FACTORY = $(WebCore)/dom/EventTargetFactory.in $(ADDITIONAL_EVENT_TARGET_FACTORY) 1672 1622 1673 1623 EVENT_TARGET_FACTORY_FILES = \ … … 1679 1629 1680 1630 all : $(EVENT_TARGET_FACTORY_FILES) 1681 $(EVENT_TARGET_FACTORY_PATTERNS) : dom/make_event_factory.pl $(EVENT_TARGET_FACTORY)1631 $(EVENT_TARGET_FACTORY_PATTERNS) : $(WebCore)/dom/make_event_factory.pl $(EVENT_TARGET_FACTORY) 1682 1632 $(PERL) $< $(addprefix --input , $(filter-out $(WebCore)/dom/make_event_factory.pl, $^)) 1683 1633 … … 1698 1648 1699 1649 all : $(MATH_ML_GENERATED_FILES) 1700 $(MATH_ML_GENERATED_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm mathml/mathtags.inmathml/mathattrs.in1650 $(MATH_ML_GENERATED_PATTERNS) : $(WebCore)/dom/make_names.pl $(WebCore)/bindings/scripts/Hasher.pm $(WebCore)/bindings/scripts/StaticString.pm $(WebCore)/mathml/mathtags.in $(WebCore)/mathml/mathattrs.in 1701 1651 $(PERL) $< --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory 1702 1652 … … 1723 1673 1724 1674 all : $(GENERATE_SETTINGS_FILES) 1725 $(GENERATE_SETTINGS_PATTERNS) : $(WebCore)/Scripts/GenerateSettings.rb $(GENERATE_SETTINGS_TEMPLATES) $(WEB_PREFERENCES_INPUT_FILES) page/Settings.yaml1675 $(GENERATE_SETTINGS_PATTERNS) : $(WebCore)/Scripts/GenerateSettings.rb $(GENERATE_SETTINGS_TEMPLATES) $(WEB_PREFERENCES_INPUT_FILES) $(WebCore)/page/Settings.yaml 1726 1676 $(RUBY) $< --additionalSettings $(WebCore)/page/Settings.yaml --base ${WTF_BUILD_SCRIPTS_DIR}/Preferences/WebPreferences.yaml --debug ${WTF_BUILD_SCRIPTS_DIR}/Preferences/WebPreferencesDebug.yaml --experimental ${WTF_BUILD_SCRIPTS_DIR}/Preferences/WebPreferencesExperimental.yaml --internal ${WTF_BUILD_SCRIPTS_DIR}/Preferences/WebPreferencesInternal.yaml 1727 1677 … … 1743 1693 1744 1694 COMMON_BINDINGS_SCRIPTS = \ 1745 bindings/scripts/CodeGenerator.pm \1746 bindings/scripts/IDLParser.pm \1747 bindings/scripts/generate-bindings.pl \1748 bindings/scripts/preprocessor.pm1695 $(WebCore)/bindings/scripts/CodeGenerator.pm \ 1696 $(WebCore)/bindings/scripts/IDLParser.pm \ 1697 $(WebCore)/bindings/scripts/generate-bindings.pl \ 1698 $(WebCore)/bindings/scripts/preprocessor.pm 1749 1699 1750 1700 PREPROCESS_IDLS_SCRIPTS = \ 1751 bindings/scripts/preprocess-idls.pl1701 $(WebCore)/bindings/scripts/preprocess-idls.pl 1752 1702 1753 1703 # JS bindings generator … … 1780 1730 IDL_COMMON_ARGS = $(IDL_INCLUDES:%=--include %) --write-dependencies --outputDir . 1781 1731 1782 JS_BINDINGS_SCRIPTS = $(COMMON_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm1732 JS_BINDINGS_SCRIPTS = $(COMMON_BINDINGS_SCRIPTS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm 1783 1733 1784 1734 SUPPLEMENTAL_DEPENDENCY_FILE = SupplementalDependencies.txt … … 1808 1758 IDL_INTERMEDIATE_PATTERNS = $(subst .,%,$(IDL_INTERMEDIATE_FILES)) 1809 1759 1810 $(IDL_INTERMEDIATE_PATTERNS) : $(PREPROCESS_IDLS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(JS_BINDING_IDLS) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) DerivedSources.make $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)1760 $(IDL_INTERMEDIATE_PATTERNS) : $(PREPROCESS_IDLS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(JS_BINDING_IDLS) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) 1811 1761 $(shell echo $(JS_BINDING_IDLS) | tr " " "\n" > IDLFileNamesList.txt) 1812 1762 $(PERL) $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "$(FEATURE_AND_PLATFORM_DEFINES) LANGUAGE_JAVASCRIPT" --idlFileNamesList IDLFileNamesList.txt --idlAttributesFile $(IDL_ATTRIBUTES_FILE) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --isoSubspacesHeaderFile $(ISO_SUBSPACES_HEADER_FILE) --windowConstructorsFile $(WINDOW_CONSTRUCTORS_FILE) --workerGlobalScopeConstructorsFile $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --dedicatedWorkerGlobalScopeConstructorsFile $(DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --serviceWorkerGlobalScopeConstructorsFile $(SERVICEWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --workletGlobalScopeConstructorsFile $(WORKLETGLOBALSCOPE_CONSTRUCTORS_FILE) --paintWorkletGlobalScopeConstructorsFile $(PAINTWORKLETGLOBALSCOPE_CONSTRUCTORS_FILE) --audioWorkletGlobalScopeConstructorsFile $(AUDIOWORKLETGLOBALSCOPE_CONSTRUCTORS_FILE) --supplementalMakefileDeps $(SUPPLEMENTAL_MAKEFILE_DEPS) 1763 1764 # The "JS%.cpp JS%.h : %.idl ..." rule takes IDL files from a number of 1765 # locations and compiles them into header and implementation files in one 1766 # single location. In order for the pattern matching to work, `vpath` needs to 1767 # be set up to find all of these IDL files, no matter where they are. To build 1768 # up `vpath`, take the set of IDL files and extract their directory 1769 # components. When doing this, make sure that the paths containing 1770 # WebKitAdditions appear first so that they can override the standard IDL 1771 # files. 1772 1773 IDL_VPATH = $(sort $(foreach f,$(JS_BINDING_IDLS),$(realpath $(dir $(f))))) 1774 OVERRIDE_IDL_VPATH = $(filter %WebKitAdditions,$(IDL_VPATH)) 1775 STANDARD_IDL_VPATH = $(filter-out %WebKitAdditions,$(IDL_VPATH)) 1776 vpath %.idl $(OVERRIDE_IDL_VPATH) $(STANDARD_IDL_VPATH) 1813 1777 1814 1778 JS%.cpp JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(IDL_INTERMEDIATE_FILES) $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES) … … 1827 1791 all : CommandLineAPIModuleSource.h 1828 1792 1829 CommandLineAPIModuleSource.h : CommandLineAPIModuleSource.js1830 echo "//# sourceURL=__InjectedScript_CommandLineAPIModuleSource.js" > ./CommandLineAPIModuleSource.min.js1831 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py < $(WebCore)/inspector/CommandLineAPIModuleSource.js >> ./CommandLineAPIModuleSource.min.js1832 $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js ./CommandLineAPIModuleSource.min.js CommandLineAPIModuleSource.h1793 CommandLineAPIModuleSource.h : $(WebCore)/inspector/CommandLineAPIModuleSource.js 1794 echo "//# sourceURL=__InjectedScript_CommandLineAPIModuleSource.js" > CommandLineAPIModuleSource.min.js 1795 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/jsmin.py < $(WebCore)/inspector/CommandLineAPIModuleSource.js >> CommandLineAPIModuleSource.min.js 1796 $(PERL) $(JavaScriptCore_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js CommandLineAPIModuleSource.min.js CommandLineAPIModuleSource.h 1833 1797 $(DELETE) CommandLineAPIModuleSource.min.js 1834 1798 … … 1887 1851 # generated should not affect other builtins when not passing '--combined' to the generator. 1888 1852 1889 WebCore_BUILTINS_SOURCES_LIST : $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py DerivedSources.make1853 WebCore_BUILTINS_SOURCES_LIST : $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py $(WebCore)/DerivedSources.make 1890 1854 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py '$(WebCore_BUILTINS_SOURCES)' $@ 1891 1855 1892 WebCore_BUILTINS_DEPENDENCIES_LIST : $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py DerivedSources.make1856 WebCore_BUILTINS_DEPENDENCIES_LIST : $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py $(WebCore)/DerivedSources.make 1893 1857 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/UpdateContents.py '$(BUILTINS_GENERATOR_SCRIPTS)' $@ 1894 1858 … … 1896 1860 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py --wrappers-only --output-directory . --framework WebCore $(WebCore_BUILTINS_SOURCES) 1897 1861 1862 # See comments for IDL_VPATH for a description of what this is for. 1863 vpath %.js $(sort $(foreach f,$(WebCore_BUILTINS_SOURCES),$(realpath $(dir $(f))))) 1864 1898 1865 %Builtins.h: %.js $(BUILTINS_GENERATOR_SCRIPTS) WebCore_BUILTINS_DEPENDENCIES_LIST 1899 1866 $(PYTHON) $(JavaScriptCore_SCRIPTS_DIR)/generate-js-builtins.py --output-directory . --framework WebCore $<
Note: See TracChangeset
for help on using the changeset viewer.