Title: [238637] trunk
Revision
238637
Author
krol...@apple.com
Date
2018-11-28 14:07:20 -0800 (Wed, 28 Nov 2018)

Log Message

Revert print_all_generated_files work in r238008; tighten up target specifications
https://bugs.webkit.org/show_bug.cgi?id=192025
<rdar://problem/46284301>

Reviewed by Alex Christensen.

In r238008, I added a facility for DerivedSources.make makefiles to
print out the list of files that they generate. This output was used
in the generation of .xcfilelist files used to specify the output of
the associated Generate Derived Sources build phases in Xcode. This
approach worked, but it meant that people would need to follow a
specific convention to keep this mechanism working.

Instead of continuing this approach, I'm going to implement a new
facility based on the output of `make` when passed the -d flag (which
prints dependency information). This new mechanism is completely
automatic and doesn't need maintainers to follow a convention. To that
end, remove most of the work performed in r238008 that supports the
print_all_generated_files target.

At the same time, it's important for the sets of targets and their
dependencies to be complete and correct. Therefore, also include
changes to bring those up-to-date. As part of that, you'll see
prevalent use of a particular technique. Here's an example:

    BYTECODE_FILES = \
        Bytecodes.h \
        BytecodeIndices.h \
        BytecodeStructs.h \
        InitBytecodes.asm \
    #
    BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES))

    all : $(BYTECODE_FILES)

    $(BYTECODE_FILES_PATTERNS): $(wildcard $(_javascript_Core)/generator/*.rb) $(_javascript_Core)/bytecode/BytecodeList.rb
        ...

These lines indicate a set of generated files (those specified in
BYTECODE_FILES). These files are generated by the BytecodeList.rb
tool. But, as opposed to the normal rule where a single foo.output is
generated by foo.input plus some additional dependencies, this rule
produces multiple output files from a tool whose connection to the
output files is not immediately clear. A special approach is needed
where a single rule produces multiple output files. The normal way to
implement this is to use an .INTERMEDIATE target. However, we used
this approach in the past and ran into a problem with it, addressing
it with an alternate approach in r210507. The above example shows this
approach. The .'s in the list of target files are replaced with %'s,
and the result is used as the left side of the dependency rule.

Source/_javascript_Core:

* DerivedSources.make:

Source/WebCore:

No new tests -- no changed functionality.

* DerivedSources.make:

Source/WebKit:

* DerivedSources.make:

Tools:

* DumpRenderTree/DerivedSources.make:
* WebKitTestRunner/DerivedSources.make:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (238636 => 238637)


--- trunk/Source/_javascript_Core/ChangeLog	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-11-28 22:07:20 UTC (rev 238637)
@@ -1,5 +1,60 @@
 2018-11-28  Keith Rollin  <krol...@apple.com>
 
+        Revert print_all_generated_files work in r238008; tighten up target specifications
+        https://bugs.webkit.org/show_bug.cgi?id=192025
+        <rdar://problem/46284301>
+
+        Reviewed by Alex Christensen.
+
+        In r238008, I added a facility for DerivedSources.make makefiles to
+        print out the list of files that they generate. This output was used
+        in the generation of .xcfilelist files used to specify the output of
+        the associated Generate Derived Sources build phases in Xcode. This
+        approach worked, but it meant that people would need to follow a
+        specific convention to keep this mechanism working.
+
+        Instead of continuing this approach, I'm going to implement a new
+        facility based on the output of `make` when passed the -d flag (which
+        prints dependency information). This new mechanism is completely
+        automatic and doesn't need maintainers to follow a convention. To that
+        end, remove most of the work performed in r238008 that supports the
+        print_all_generated_files target.
+
+        At the same time, it's important for the sets of targets and their
+        dependencies to be complete and correct. Therefore, also include
+        changes to bring those up-to-date. As part of that, you'll see
+        prevalent use of a particular technique. Here's an example:
+
+            BYTECODE_FILES = \
+                Bytecodes.h \
+                BytecodeIndices.h \
+                BytecodeStructs.h \
+                InitBytecodes.asm \
+            #
+            BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES))
+
+            all : $(BYTECODE_FILES)
+
+            $(BYTECODE_FILES_PATTERNS): $(wildcard $(_javascript_Core)/generator/*.rb) $(_javascript_Core)/bytecode/BytecodeList.rb
+                ...
+
+        These lines indicate a set of generated files (those specified in
+        BYTECODE_FILES). These files are generated by the BytecodeList.rb
+        tool. But, as opposed to the normal rule where a single foo.output is
+        generated by foo.input plus some additional dependencies, this rule
+        produces multiple output files from a tool whose connection to the
+        output files is not immediately clear. A special approach is needed
+        where a single rule produces multiple output files. The normal way to
+        implement this is to use an .INTERMEDIATE target. However, we used
+        this approach in the past and ran into a problem with it, addressing
+        it with an alternate approach in r210507. The above example shows this
+        approach. The .'s in the list of target files are replaced with %'s,
+        and the result is used as the left side of the dependency rule.
+
+        * DerivedSources.make:
+
+2018-11-28  Keith Rollin  <krol...@apple.com>
+
         Remove Postprocess Headers dependencies
         https://bugs.webkit.org/show_bug.cgi?id=192023
         <rdar://problem/46283377>

Modified: trunk/Source/_javascript_Core/DerivedSources.make (238636 => 238637)


--- trunk/Source/_javascript_Core/DerivedSources.make	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Source/_javascript_Core/DerivedSources.make	2018-11-28 22:07:20 UTC (rev 238637)
@@ -46,12 +46,24 @@
     DELETE = rm -f
 endif
 
-ALL_GENERATED_FILES =
+# --------
 
-all : real_all
+.PHONY : all
+all : \
+    udis86_itab.h \
+    InjectedScriptSource.h \
+    IntlCanonicalizeLanguage.h \
+    JSCBuiltins.h \
+    Lexer.lut.h \
+    KeywordLookup.h \
+    RegExpJitTables.h \
+    UnicodePatternTables.h \
+    yarr/YarrCanonicalizeUnicode.cpp \
+    WasmOps.h \
+    WasmValidateInlines.h \
+    WasmB3IRGeneratorInlines.h \
+#
 
-# --------
-
 # _javascript_ builtins.
 
 BUILTINS_GENERATOR_SCRIPTS = \
@@ -116,7 +128,6 @@
 _javascript_Core_BUILTINS_DEPENDENCIES_LIST : $(_javascript_Core_SCRIPTS_DIR)/UpdateContents.py DerivedSources.make
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/UpdateContents.py '$(_javascript_Core_BUILTINS_SOURCES) $(BUILTINS_GENERATOR_SCRIPTS)' $@
 
-ALL_GENERATED_FILES += JSCBuiltins.h
 JSCBuiltins.h: $(BUILTINS_GENERATOR_SCRIPTS) $(_javascript_Core_BUILTINS_SOURCES) _javascript_Core_BUILTINS_DEPENDENCIES_LIST
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/generate-js-builtins.py --combined --output-directory . --framework _javascript_Core $(_javascript_Core_BUILTINS_SOURCES)
 
@@ -178,27 +189,22 @@
     WebAssemblyTablePrototype.lut.h \
 #
 
-ALL_GENERATED_FILES += $(OBJECT_LUT_HEADERS)
 $(OBJECT_LUT_HEADERS): %.lut.h : %.cpp $(_javascript_Core)/create_hash_table
 	$(PERL) $(_javascript_Core)/create_hash_table $< > $@
 
-ALL_GENERATED_FILES += Lexer.lut.h
 Lexer.lut.h: Keywords.table $(_javascript_Core)/create_hash_table
 	$(PERL) $(_javascript_Core)/create_hash_table $< > $@
 
 # character tables for Yarr
 
-ALL_GENERATED_FILES += RegExpJitTables.h
 RegExpJitTables.h: yarr/create_regex_tables
 	$(PYTHON) $^ > $@
 
-ALL_GENERATED_FILES += KeywordLookup.h
 KeywordLookup.h: KeywordLookupGenerator.py Keywords.table
 	$(PYTHON) $^ > $@
 
 # udis86 instruction tables
 
-ALL_GENERATED_FILES += udis86_itab.h
 udis86_itab.h: $(_javascript_Core)/disassembler/udis86/ud_itab.py $(_javascript_Core)/disassembler/udis86/optable.xml
 	$(PYTHON) $(_javascript_Core)/disassembler/udis86/ud_itab.py $(_javascript_Core)/disassembler/udis86/optable.xml .
 
@@ -212,13 +218,14 @@
 #
 BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES))
 
-ALL_GENERATED_FILES += $(BYTECODE_FILES)
+all : $(BYTECODE_FILES)
+
 $(BYTECODE_FILES_PATTERNS): $(wildcard $(_javascript_Core)/generator/*.rb) $(_javascript_Core)/bytecode/BytecodeList.rb
 	$(RUBY) $(_javascript_Core)/generator/main.rb $(_javascript_Core)/bytecode/BytecodeList.rb --bytecode_structs_h BytecodeStructs.h --init_bytecodes_asm InitBytecodes.asm --bytecodes_h Bytecodes.h --bytecode_indices_h BytecodeIndices.h
 
 # Inspector interfaces
 
-INSPECTOR_DOMAINS = \
+INSPECTOR_DOMAINS := \
     $(_javascript_Core)/inspector/protocol/ApplicationCache.json \
     $(_javascript_Core)/inspector/protocol/CSS.json \
     $(_javascript_Core)/inspector/protocol/Canvas.json \
@@ -288,6 +295,8 @@
 #
 INSPECTOR_DISPATCHER_FILES_PATTERNS = $(subst .,%,$(INSPECTOR_DISPATCHER_FILES))
 
+all : $(INSPECTOR_DISPATCHER_FILES)
+
 # The combined JSON file depends on the actual set of domains and their file contents, so that
 # adding, modifying, or removing domains will trigger regeneration of inspector files.
 
@@ -299,11 +308,9 @@
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/generate-combined-inspector-json.py $(INSPECTOR_DOMAINS) > ./CombinedDomains.json
 
 # Inspector Backend Dispatchers, Frontend Dispatchers, Type Builders
-ALL_GENERATED_FILES += $(INSPECTOR_DISPATCHER_FILES)
-$(INSPECTOR_DISPATCHER_FILES_PATTERNS) : CombinedDomains.json $(INSPECTOR_GENERATOR_SCRIPTS) inspector
+$(INSPECTOR_DISPATCHER_FILES_PATTERNS) : CombinedDomains.json $(INSPECTOR_GENERATOR_SCRIPTS)
 	$(PYTHON) $(_javascript_Core)/inspector/scripts/generate-inspector-protocol-bindings.py --framework _javascript_Core --outputDir inspector ./CombinedDomains.json
 
-ALL_GENERATED_FILES += InjectedScriptSource.h
 InjectedScriptSource.h : inspector/InjectedScriptSource.js $(_javascript_Core_SCRIPTS_DIR)/jsmin.py $(_javascript_Core_SCRIPTS_DIR)/xxd.pl
 	echo "//# sourceURL=__InjectedScript_InjectedScriptSource.js" > ./InjectedScriptSource.min.js
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/jsmin.py < $(_javascript_Core)/inspector/InjectedScriptSource.js >> ./InjectedScriptSource.min.js
@@ -317,43 +324,31 @@
 #
 AIR_OPCODE_FILES_PATTERNS = $(subst .,%,$(AIR_OPCODE_FILES))
 
-ALL_GENERATED_FILES += $(AIR_OPCODE_FILES)
+all : $(AIR_OPCODE_FILES)
+
 $(AIR_OPCODE_FILES_PATTERNS) : $(_javascript_Core)/b3/air/opcode_generator.rb $(_javascript_Core)/b3/air/AirOpcode.opcodes
 	$(RUBY) $^
 
-ALL_GENERATED_FILES += UnicodePatternTables.h
 UnicodePatternTables.h: $(_javascript_Core)/yarr/generateYarrUnicodePropertyTables.py $(_javascript_Core)/yarr/hasher.py $(_javascript_Core)/ucd/DerivedBinaryProperties.txt $(_javascript_Core)/ucd/DerivedCoreProperties.txt $(_javascript_Core)/ucd/DerivedNormalizationProps.txt $(_javascript_Core)/ucd/PropList.txt $(_javascript_Core)/ucd/PropertyAliases.txt $(_javascript_Core)/ucd/PropertyValueAliases.txt $(_javascript_Core)/ucd/ScriptExtensions.txt $(_javascript_Core)/ucd/Scripts.txt $(_javascript_Core)/ucd/UnicodeData.txt $(_javascript_Core)/ucd/emoji-data.txt
 	$(PYTHON) $(_javascript_Core)/yarr/generateYarrUnicodePropertyTables.py $(_javascript_Core)/ucd ./UnicodePatternTables.h
 
-ALL_GENERATED_FILES += yarr/YarrCanonicalizeUnicode.cpp
 yarr/YarrCanonicalizeUnicode.cpp: $(_javascript_Core)/yarr/generateYarrCanonicalizeUnicode $(_javascript_Core)/ucd/CaseFolding.txt
 	$(PYTHON) $(_javascript_Core)/yarr/generateYarrCanonicalizeUnicode $(_javascript_Core)/ucd/CaseFolding.txt ./yarr/YarrCanonicalizeUnicode.cpp
 
-ALL_GENERATED_FILES += IntlCanonicalizeLanguage.h
 IntlCanonicalizeLanguage.h: $(_javascript_Core)/Scripts/generateIntlCanonicalizeLanguage.py $(_javascript_Core)/ucd/language-subtag-registry.txt
 	$(PYTHON) $(_javascript_Core)/Scripts/generateIntlCanonicalizeLanguage.py $(_javascript_Core)/ucd/language-subtag-registry.txt ./IntlCanonicalizeLanguage.h
 
-ALL_GENERATED_FILES += WasmOps.h
 WasmOps.h: $(_javascript_Core)/wasm/generateWasmOpsHeader.py $(_javascript_Core)/wasm/generateWasm.py $(_javascript_Core)/wasm/wasm.json
 	$(PYTHON) $(_javascript_Core)/wasm/generateWasmOpsHeader.py $(_javascript_Core)/wasm/wasm.json ./WasmOps.h
 
-ALL_GENERATED_FILES += WasmValidateInlines.h
 WasmValidateInlines.h: $(_javascript_Core)/wasm/generateWasmValidateInlinesHeader.py $(_javascript_Core)/wasm/generateWasm.py $(_javascript_Core)/wasm/wasm.json
 	$(PYTHON) $(_javascript_Core)/wasm/generateWasmValidateInlinesHeader.py $(_javascript_Core)/wasm/wasm.json ./WasmValidateInlines.h
 
-ALL_GENERATED_FILES += WasmB3IRGeneratorInlines.h
 WasmB3IRGeneratorInlines.h: $(_javascript_Core)/wasm/generateWasmB3IRGeneratorInlinesHeader.py $(_javascript_Core)/wasm/generateWasm.py $(_javascript_Core)/wasm/wasm.json
 	$(PYTHON) $(_javascript_Core)/wasm/generateWasmB3IRGeneratorInlinesHeader.py $(_javascript_Core)/wasm/wasm.json ./WasmB3IRGeneratorInlines.h
 
-# --------
+# Dynamically-defined targets are listed below. Static targets belong up top.
 
-.PHONY : all real_all print_all_generated_files
-
-real_all : $(ALL_GENERATED_FILES)
-
-print_all_generated_files :
-	@for target in $(ALL_GENERATED_FILES); \
-	do \
-		echo $${target}; \
-	done
-
+all : \
+    $(OBJECT_LUT_HEADERS) \
+#

Modified: trunk/Source/WebCore/ChangeLog (238636 => 238637)


--- trunk/Source/WebCore/ChangeLog	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Source/WebCore/ChangeLog	2018-11-28 22:07:20 UTC (rev 238637)
@@ -1,3 +1,60 @@
+2018-11-28  Keith Rollin  <krol...@apple.com>
+
+        Revert print_all_generated_files work in r238008; tighten up target specifications
+        https://bugs.webkit.org/show_bug.cgi?id=192025
+        <rdar://problem/46284301>
+
+        Reviewed by Alex Christensen.
+
+        In r238008, I added a facility for DerivedSources.make makefiles to
+        print out the list of files that they generate. This output was used
+        in the generation of .xcfilelist files used to specify the output of
+        the associated Generate Derived Sources build phases in Xcode. This
+        approach worked, but it meant that people would need to follow a
+        specific convention to keep this mechanism working.
+
+        Instead of continuing this approach, I'm going to implement a new
+        facility based on the output of `make` when passed the -d flag (which
+        prints dependency information). This new mechanism is completely
+        automatic and doesn't need maintainers to follow a convention. To that
+        end, remove most of the work performed in r238008 that supports the
+        print_all_generated_files target.
+
+        At the same time, it's important for the sets of targets and their
+        dependencies to be complete and correct. Therefore, also include
+        changes to bring those up-to-date. As part of that, you'll see
+        prevalent use of a particular technique. Here's an example:
+
+            BYTECODE_FILES = \
+                Bytecodes.h \
+                BytecodeIndices.h \
+                BytecodeStructs.h \
+                InitBytecodes.asm \
+            #
+            BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES))
+
+            all : $(BYTECODE_FILES)
+
+            $(BYTECODE_FILES_PATTERNS): $(wildcard $(_javascript_Core)/generator/*.rb) $(_javascript_Core)/bytecode/BytecodeList.rb
+                ...
+
+        These lines indicate a set of generated files (those specified in
+        BYTECODE_FILES). These files are generated by the BytecodeList.rb
+        tool. But, as opposed to the normal rule where a single foo.output is
+        generated by foo.input plus some additional dependencies, this rule
+        produces multiple output files from a tool whose connection to the
+        output files is not immediately clear. A special approach is needed
+        where a single rule produces multiple output files. The normal way to
+        implement this is to use an .INTERMEDIATE target. However, we used
+        this approach in the past and ran into a problem with it, addressing
+        it with an alternate approach in r210507. The above example shows this
+        approach. The .'s in the list of target files are replaced with %'s,
+        and the result is used as the left side of the dependency rule.
+
+        No new tests -- no changed functionality.
+
+        * DerivedSources.make:
+
 2018-11-28  Alex Christensen  <achristen...@webkit.org>
 
         Remove dead code from an earlier attempt at implementing safe browsing

Modified: trunk/Source/WebCore/DerivedSources.make (238636 => 238637)


--- trunk/Source/WebCore/DerivedSources.make	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Source/WebCore/DerivedSources.make	2018-11-28 22:07:20 UTC (rev 238637)
@@ -508,7 +508,6 @@
     $(WebCore)/css/WebKitCSSMatrix.idl \
     $(WebCore)/css/WebKitCSSViewportRule.idl \
     $(WebCore)/dom/AbortController.idl \
-    $(WebCore)/dom/AbortController.idl \
     $(WebCore)/dom/AbortSignal.idl \
     $(WebCore)/dom/AnimationEvent.idl \
     $(WebCore)/dom/Attr.idl \
@@ -1072,11 +1071,6 @@
 else
     DELETE = rm -f
 endif
-
-ALL_GENERATED_FILES =
-
-all : real_all
-
 # --------
 
 ifeq ($(OS),MACOS)
@@ -1131,16 +1125,6 @@
 endif
 endif
 
-# Items on ADDITIONAL_BINDING_IDLS get added to JS_BINDING_IDLS and are copied
-# into the current directory.
-#
-# TODO: Determine why they don't need to have full path information prepended
-# to them like the other items in JS_BINDING_IDLS. Perhaps related to the vpath
-# specification set up for *.idl files? Also look into why DocumentTouch.idl,
-# et al, get added to JS_BINDING_IDLS by virtual of ADDITIONAL_BINDING_IDLS
-# getting added to it, and also later on when they are explicitly added to
-# JS_BINDING_IDLS by hand with the full paths.
-
 ADDITIONAL_BINDING_IDLS =
 ifeq ($(findstring ENABLE_MAC_GESTURE_EVENTS,$(FEATURE_DEFINES)), ENABLE_MAC_GESTURE_EVENTS)
 ADDITIONAL_BINDING_IDLS += GestureEvent.idl
@@ -1150,8 +1134,6 @@
 ADDITIONAL_BINDING_IDLS += GestureEvent.idl
 endif
 
-# TODO: Determine if the two levels of protection hear are necessary. If so, do
-# they also need to be applied to the parallel files below?
 ifeq ($(WTF_PLATFORM_IOS_FAMILY), 1)
 ifeq ($(findstring ENABLE_IOS_TOUCH_EVENTS,$(FEATURE_DEFINES)), ENABLE_IOS_TOUCH_EVENTS)
 ADDITIONAL_BINDING_IDLS += \
@@ -1162,20 +1144,14 @@
 endif
 endif # IOS
 
-# TODO: Check places that use .in files; there seems to be inconsistent use of
-# full paths and partial paths.
 vpath %.in $(WEBKITADDITIONS_HEADER_SEARCH_PATHS)
 
-# TODO: These don't seem to be used. I see that Andreas carefully added these as
-# "extention points", but I'm not seeing how they're actually used.
 ADDITIONAL_EVENT_NAMES =
 ADDITIONAL_EVENT_TARGET_FACTORY =
 
 JS_BINDING_IDLS += $(ADDITIONAL_BINDING_IDLS)
 
-# TODO: Is this needed? Down below, we say "all : ALL_GENERATED_FILES", which
-# includes JS_DOM_HEADERS, which includes ADDITIONAL_BINDING_IDLS.
-# all : $(ADDITIONAL_BINDING_IDLS:%.idl=JS%.h)
+all : $(ADDITIONAL_BINDING_IDLS:%.idl=JS%.h)
 
 vpath %.idl $(BUILT_PRODUCTS_DIR)/usr/local/include $(SDKROOT)/usr/local/include
 
@@ -1192,6 +1168,8 @@
     $(WebCore)/dom/TouchList.idl
 endif
 
+.PHONY : all
+
 JS_DOM_CLASSES=$(basename $(notdir $(JS_BINDING_IDLS)))
 
 JS_DOM_HEADERS=$(filter-out JSEventListener.h, $(JS_DOM_CLASSES:%=JS%.h))
@@ -1199,7 +1177,54 @@
 
 WEB_DOM_HEADERS :=
 
-ALL_GENERATED_FILES += $(JS_DOM_HEADERS) $(JS_DOM_IMPLEMENTATIONS) $(WEB_DOM_HEADERS)
+all : \
+    $(JS_DOM_HEADERS) \
+    $(JS_DOM_IMPLEMENTATIONS) \
+    $(WEB_DOM_HEADERS) \
+    \
+    CSSPropertyNames.cpp \
+    CSSPropertyNames.h \
+    CSSValueKeywords.cpp \
+    CSSValueKeywords.h \
+    ColorData.cpp \
+    DOMJITAbstractHeapRepository.h \
+    EventInterfaces.h \
+    EventTargetInterfaces.h \
+    HTMLElementFactory.cpp \
+    HTMLElementFactory.h \
+    HTMLElementTypeHelpers.h \
+    HTMLEntityTable.cpp \
+    HTMLNames.cpp \
+    HTMLNames.h \
+    JSHTMLElementWrapperFactory.cpp \
+    JSHTMLElementWrapperFactory.h \
+    JSMathMLElementWrapperFactory.cpp \
+    JSMathMLElementWrapperFactory.h \
+    JSSVGElementWrapperFactory.cpp \
+    JSSVGElementWrapperFactory.h \
+    PlugInsResources.h \
+    SVGElementFactory.cpp \
+    SVGElementFactory.h \
+    SVGElementTypeHelpers.h \
+    SVGNames.cpp \
+    SVGNames.h \
+    SelectorPseudoClassAndCompatibilityElementMap.cpp \
+    SelectorPseudoElementTypeMap.cpp \
+    StyleBuilder.cpp \
+    StylePropertyShorthandFunctions.cpp \
+    StylePropertyShorthandFunctions.h \
+    UserAgentStyleSheets.h \
+    WebKitFontFamilyNames.cpp \
+    WebKitFontFamilyNames.h \
+    XLinkNames.cpp \
+    XMLNSNames.cpp \
+    XMLNames.cpp \
+    MathMLElementFactory.cpp \
+    MathMLElementFactory.h \
+    MathMLElementTypeHelpers.h \
+    MathMLNames.cpp \
+    MathMLNames.h \
+#
 
 # --------
 
@@ -1232,7 +1257,7 @@
 #
 CSS_PROPERTY_NAME_FILES_PATTERNS = $(subst .,%,$(CSS_PROPERTY_NAME_FILES))
 
-ALL_GENERATED_FILES += $(CSS_PROPERTY_NAME_FILES)
+all : $(CSS_PROPERTY_NAME_FILES)
 $(CSS_PROPERTY_NAME_FILES_PATTERNS) : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl $(PLATFORM_FEATURE_DEFINES)
 	$(PERL) -pe '' $(WEBCORE_CSS_PROPERTY_NAMES) > CSSProperties.json
 	$(PERL) "$(WebCore)/css/makeprop.pl" --defines "$(FEATURE_AND_PLATFORM_DEFINES)"
@@ -1243,7 +1268,7 @@
 #
 CSS_VALUE_KEYWORD_FILES_PATTERNS = $(subst .,%,$(CSS_VALUE_KEYWORD_FILES))
 
-ALL_GENERATED_FILES += $(CSS_VALUE_KEYWORD_FILES)
+all : $(CSS_VALUE_KEYWORD_FILES)
 $(CSS_VALUE_KEYWORD_FILES_PATTERNS) : $(WEBCORE_CSS_VALUE_KEYWORDS) css/makevalues.pl bindings/scripts/preprocessor.pm $(PLATFORM_FEATURE_DEFINES)
 	$(PERL) -pe '' $(WEBCORE_CSS_VALUE_KEYWORDS) > CSSValueKeywords.in
 	$(PERL) "$(WebCore)/css/makevalues.pl" --defines "$(FEATURE_AND_PLATFORM_DEFINES)"
@@ -1252,11 +1277,9 @@
 
 # CSS Selector pseudo type name to value map.
 
-ALL_GENERATED_FILES += SelectorPseudoClassAndCompatibilityElementMap.cpp
 SelectorPseudoClassAndCompatibilityElementMap.cpp : $(WebCore)/css/makeSelectorPseudoClassAndCompatibilityElementMap.py $(WebCore)/css/SelectorPseudoClassAndCompatibilityElementMap.in
 	$(PYTHON) "$(WebCore)/css/makeSelectorPseudoClassAndCompatibilityElementMap.py" $(WebCore)/css/SelectorPseudoClassAndCompatibilityElementMap.in gperf "$(FEATURE_DEFINES)"
 
-ALL_GENERATED_FILES += SelectorPseudoElementTypeMap.cpp
 SelectorPseudoElementTypeMap.cpp : $(WebCore)/css/makeSelectorPseudoElementsMap.py $(WebCore)/css/SelectorPseudoElementTypeMap.in
 	$(PYTHON) "$(WebCore)/css/makeSelectorPseudoElementsMap.py" $(WebCore)/css/SelectorPseudoElementTypeMap.in gperf "$(FEATURE_DEFINES)"
 
@@ -1264,7 +1287,8 @@
 
 # DOMJIT Abstract Heap
 
-ALL_GENERATED_FILES += DOMJITAbstractHeapRepository.h
+all : DOMJITAbstractHeapRepository.h
+
 DOMJITAbstractHeapRepository.h : $(WebCore)/domjit/generate-abstract-heap.rb $(WebCore)/domjit/DOMJITAbstractHeapRepository.yaml
 	$(RUBY) "$(WebCore)/domjit/generate-abstract-heap.rb" $(WebCore)/domjit/DOMJITAbstractHeapRepository.yaml ./DOMJITAbstractHeapRepository.h
 
@@ -1272,7 +1296,8 @@
 
 # XMLViewer CSS
 
-ALL_GENERATED_FILES += XMLViewerCSS.h
+all : XMLViewerCSS.h
+
 XMLViewerCSS.h : xml/XMLViewer.css
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/cssmin.py <"$(WebCore)/xml/XMLViewer.css" > ./XMLViewer.min.css
 	$(PERL) $(_javascript_Core_SCRIPTS_DIR)/xxd.pl XMLViewer_css ./XMLViewer.min.css XMLViewerCSS.h
@@ -1282,7 +1307,8 @@
 
 # XMLViewer JS
 
-ALL_GENERATED_FILES += XMLViewerJS.h
+all : XMLViewerJS.h
+
 XMLViewerJS.h : xml/XMLViewer.js
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/jsmin.py <"$(WebCore)/xml/XMLViewer.js" > ./XMLViewer.min.js
 	$(PERL) $(_javascript_Core_SCRIPTS_DIR)/xxd.pl XMLViewer_js ./XMLViewer.min.js XMLViewerJS.h
@@ -1292,7 +1318,6 @@
 
 # HTML entity names
 
-ALL_GENERATED_FILES += HTMLEntityTable.cpp
 HTMLEntityTable.cpp : html/parser/HTMLEntityNames.in $(WebCore)/html/parser/create-html-entity-table
 	$(PYTHON) $(WebCore)/html/parser/create-html-entity-table -o HTMLEntityTable.cpp $(WebCore)/html/parser/HTMLEntityNames.in
 
@@ -1307,7 +1332,7 @@
 #
 HTTP_HEADER_NAMES_FILES_PATTERNS = $(subst .,%,$(HTTP_HEADER_NAMES_FILES))
 
-ALL_GENERATED_FILES += $(HTTP_HEADER_NAMES_FILES)
+all : $(HTTP_HEADER_NAMES_FILES)
 $(HTTP_HEADER_NAMES_FILES_PATTERNS) : platform/network/HTTPHeaderNames.in $(WebCore)/platform/network/create-http-header-name-table
 	$(PYTHON) $(WebCore)/platform/network/create-http-header-name-table $(WebCore)/platform/network/HTTPHeaderNames.in gperf
 
@@ -1315,7 +1340,6 @@
 
 # color names
 
-ALL_GENERATED_FILES += ColorData.cpp
 ColorData.cpp : platform/ColorData.gperf $(WebCore)/make-hash-tools.pl
 	$(PERL) $(WebCore)/make-hash-tools.pl . $(WebCore)/platform/ColorData.gperf
 
@@ -1353,7 +1377,6 @@
 	USER_AGENT_STYLE_SHEETS += $(WebCore)/html/shadow/meterElementShadow.css
 endif
 
-ALL_GENERATED_FILES += UserAgentStyleSheets.h
 UserAgentStyleSheets.h : css/make-css-file-arrays.pl bindings/scripts/preprocessor.pm $(USER_AGENT_STYLE_SHEETS) $(PLATFORM_FEATURE_DEFINES)
 	$(PERL) $< --defines "$(FEATURE_AND_PLATFORM_DEFINES)" $@ UserAgentStyleSheetsData.cpp $(USER_AGENT_STYLE_SHEETS)
 
@@ -1374,7 +1397,8 @@
 #
 USER_AGENT_SCRIPTS_FILES_PATTERNS = $(subst .,%,$(USER_AGENT_SCRIPTS_FILES))
 
-ALL_GENERATED_FILES += $(USER_AGENT_SCRIPTS_FILES)
+all : $(USER_AGENT_SCRIPTS_FILES)
+
 $(USER_AGENT_SCRIPTS_FILES_PATTERNS) : $(_javascript_Core_SCRIPTS_DIR)/make-js-file-arrays.py $(USER_AGENT_SCRIPTS)
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/make-js-file-arrays.py -n WebCore $(USER_AGENT_SCRIPTS_FILES) $(USER_AGENT_SCRIPTS)
 endif
@@ -1385,7 +1409,6 @@
 
 PLUG_INS_RESOURCES = $(WebCore)/Resources/plugIns.js
 
-ALL_GENERATED_FILES += PlugInsResources.h
 PlugInsResources.h : css/make-css-file-arrays.pl bindings/scripts/preprocessor.pm $(PLUG_INS_RESOURCES) $(PLATFORM_FEATURE_DEFINES)
 	$(PERL) $< --defines "$(FEATURE_AND_PLATFORM_DEFINES)" $@ PlugInsResourcesData.cpp $(PLUG_INS_RESOURCES)
 
@@ -1397,7 +1420,7 @@
 #
 WEBKIT_FONT_FAMILY_NAME_FILES_PATTERNS = $(subst .,%,$(WEBKIT_FONT_FAMILY_NAME_FILES))
 
-ALL_GENERATED_FILES += $(WEBKIT_FONT_FAMILY_NAME_FILES)
+all : $(WEBKIT_FONT_FAMILY_NAME_FILES)
 $(WEBKIT_FONT_FAMILY_NAME_FILES_PATTERNS): dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm css/WebKitFontFamilyNames.in
 	$(PERL) $< --fonts $(WebCore)/css/WebKitFontFamilyNames.in
 
@@ -1446,15 +1469,14 @@
 #
 HTML_TAG_FILES_PATTERNS = $(subst .,%,$(HTML_TAG_FILES))
 
-ALL_GENERATED_FILES += $(HTML_TAG_FILES)
+all : $(HTML_TAG_FILES)
+
 $(HTML_TAG_FILES_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm html/HTMLTagNames.in html/HTMLAttributeNames.in
 	$(PERL) $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory $(if $(HTML_FLAGS), --extraDefines "$(HTML_FLAGS)")
 
-ALL_GENERATED_FILES += XMLNSNames.cpp
 XMLNSNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm xml/xmlnsattrs.in
 	$(PERL) $< --attrs $(WebCore)/xml/xmlnsattrs.in
 
-ALL_GENERATED_FILES += XMLNames.cpp
 XMLNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm xml/xmlattrs.in
 	$(PERL) $< --attrs $(WebCore)/xml/xmlattrs.in
 
@@ -1479,11 +1501,11 @@
 #
 SVG_TAG_FILES_PATTERNS = $(subst .,%,$(SVG_TAG_FILES))
 
-ALL_GENERATED_FILES += $(SVG_TAG_FILES)
+all : $(SVG_TAG_FILES)
+
 $(SVG_TAG_FILES_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/svgtags.in svg/svgattrs.in
 	$(PERL) $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory $(if $(SVG_FLAGS), --extraDefines "$(SVG_FLAGS)")
 
-ALL_GENERATED_FILES += XLinkNames.cpp
 XLinkNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/xlinkattrs.in
 	$(PERL) $< --attrs $(WebCore)/svg/xlinkattrs.in
 
@@ -1500,7 +1522,7 @@
 #
 EVENT_FACTORY_PATTERNS = $(subst .,%,$(EVENT_FACTORY_FILES))
 
-ALL_GENERATED_FILES += $(EVENT_FACTORY_FILES)
+all : $(EVENT_FACTORY_FILES)
 $(EVENT_FACTORY_PATTERNS) : dom/make_event_factory.pl $(EVENT_NAMES)
 	$(PERL) $< $(addprefix --input , $(filter-out $(WebCore)/dom/make_event_factory.pl, $^))
 
@@ -1513,7 +1535,7 @@
 #
 EVENT_TARGET_FACTORY_PATTERNS = $(subst .,%,$(EVENT_TARGET_FACTORY_FILES))
 
-ALL_GENERATED_FILES += $(EVENT_TARGET_FACTORY_FILES)
+all : $(EVENT_TARGET_FACTORY_FILES)
 $(EVENT_TARGET_FACTORY_PATTERNS) : dom/make_event_factory.pl $(EVENT_TARGET_FACTORY)
 	$(PERL) $< $(addprefix --input , $(filter-out $(WebCore)/dom/make_event_factory.pl, $^))
 
@@ -1532,7 +1554,7 @@
 #
 MATH_ML_GENERATED_PATTERNS = $(subst .,%,$(MATH_ML_GENERATED_FILES))
 
-ALL_GENERATED_FILES += $(MATH_ML_GENERATED_FILES)
+all : $(MATH_ML_GENERATED_FILES)
 $(MATH_ML_GENERATED_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm mathml/mathtags.in mathml/mathattrs.in
 	$(PERL) $< --tags $(WebCore)/mathml/mathtags.in --attrs $(WebCore)/mathml/mathattrs.in --factory --wrapperFactory
 
@@ -1550,7 +1572,7 @@
 GENERATE_SETTINGS_FILES = $(basename $(notdir $(GENERATE_SETTINGS_TEMPLATES)))
 GENERATE_SETTINGS_PATTERNS = $(subst .,%,$(GENERATE_SETTINGS_FILES))
 
-ALL_GENERATED_FILES += $(GENERATE_SETTINGS_FILES)
+all : $(GENERATE_SETTINGS_FILES)
 $(GENERATE_SETTINGS_PATTERNS) : $(WebCore)/Scripts/GenerateSettings.rb $(GENERATE_SETTINGS_TEMPLATES) page/Settings.yaml
 	$(RUBY) $< --input $(WebCore)/page/Settings.yaml
 
@@ -1597,16 +1619,15 @@
 
 JS_BINDINGS_SCRIPTS = $(COMMON_BINDINGS_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm
 
-# TODO: These next six files get created, and so should probably go into the xcfilelist
-SUPPLEMENTAL_DEPENDENCY_FILE = ./SupplementalDependencies.txt
-SUPPLEMENTAL_MAKEFILE_DEPS = ./SupplementalDependencies.dep
-WINDOW_CONSTRUCTORS_FILE = ./DOMWindowConstructors.idl
-WORKERGLOBALSCOPE_CONSTRUCTORS_FILE = ./WorkerGlobalScopeConstructors.idl
-DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE = ./DedicatedWorkerGlobalScopeConstructors.idl
-SERVICEWORKERGLOBALSCOPE_CONSTRUCTORS_FILE = ./ServiceWorkerGlobalScopeConstructors.idl
-WORKLETGLOBALSCOPE_CONSTRUCTORS_FILE = ./WorkletGlobalScopeConstructors.idl
-PAINTWORKLETGLOBALSCOPE_CONSTRUCTORS_FILE = ./PaintWorkletGlobalScopeConstructors.idl
-IDL_FILES_TMP = ./idl_files.tmp
+SUPPLEMENTAL_DEPENDENCY_FILE = SupplementalDependencies.txt
+SUPPLEMENTAL_MAKEFILE_DEPS = SupplementalDependencies.dep
+WINDOW_CONSTRUCTORS_FILE = DOMWindowConstructors.idl
+WORKERGLOBALSCOPE_CONSTRUCTORS_FILE = WorkerGlobalScopeConstructors.idl
+DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE = DedicatedWorkerGlobalScopeConstructors.idl
+SERVICEWORKERGLOBALSCOPE_CONSTRUCTORS_FILE = ServiceWorkerGlobalScopeConstructors.idl
+WORKLETGLOBALSCOPE_CONSTRUCTORS_FILE = WorkletGlobalScopeConstructors.idl
+PAINTWORKLETGLOBALSCOPE_CONSTRUCTORS_FILE = PaintWorkletGlobalScopeConstructors.idl
+IDL_FILES_TMP = idl_files.tmp
 IDL_ATTRIBUTES_FILE = $(WebCore)/bindings/scripts/IDLAttributes.json
 
 # The following lines get a newline character stored in a variable.
@@ -1616,25 +1637,46 @@
 
 endef
 
-$(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(JS_BINDING_IDLS) $(PLATFORM_FEATURE_DEFINES) DerivedSources.make
+
+IDL_INTERMEDIATE_FILES = \
+    $(SUPPLEMENTAL_MAKEFILE_DEPS) \
+    $(SUPPLEMENTAL_DEPENDENCY_FILE) \
+    $(WINDOW_CONSTRUCTORS_FILE) \
+    $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) \
+    $(DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) \
+    $(SERVICEWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) \
+    $(WORKLETGLOBALSCOPE_CONSTRUCTORS_FILE) \
+    $(PAINTWORKLETGLOBALSCOPE_CONSTRUCTORS_FILE)
+#
+IDL_INTERMEDIATE_PATTERNS = $(subst .,%,$(IDL_INTERMEDIATE_FILES))
+
+$(IDL_INTERMEDIATE_PATTERNS) : $(PREPROCESS_IDLS_SCRIPTS) $(JS_BINDING_IDLS) $(PLATFORM_FEATURE_DEFINES) DerivedSources.make
 	$(foreach f,$(JS_BINDING_IDLS),@echo $(f)>>$(IDL_FILES_TMP)$(NL))
 	$(PERL) $(WebCore)/bindings/scripts/preprocess-idls.pl --defines "$(FEATURE_AND_PLATFORM_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_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) --supplementalMakefileDeps $@
 	$(DELETE) $(IDL_FILES_TMP)
 
-JS%.cpp JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(WINDOW_CONSTRUCTORS_FILE) $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) $(WORKLETGLOBALSCOPE_CONSTRUCTORS_FILE) $(PLATFORM_FEATURE_DEFINES)
+JS%.cpp JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(IDL_ATTRIBUTES_FILE) $(IDL_INTERMEDIATE_FILES) $(PLATFORM_FEATURE_DEFINES)
 	$(PERL) $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_COMMON_ARGS) --defines "$(FEATURE_AND_PLATFORM_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --idlAttributesFile $(IDL_ATTRIBUTES_FILE) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $<
 
+ifneq ($(NO_SUPPLEMENTAL_FILES),1)
 -include $(SUPPLEMENTAL_MAKEFILE_DEPS)
+endif
 
+ifneq ($(NO_SUPPLEMENTAL_FILES),1)
+-include $(JS_DOM_HEADERS:.h=.dep)
+endif
+
 # Inspector interfaces
 
-ALL_GENERATED_FILES += InspectorOverlayPage.h
+all : InspectorOverlayPage.h
+
 InspectorOverlayPage.h : InspectorOverlayPage.html InspectorOverlayPage.css InspectorOverlayPage.js
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/inline-and-minify-stylesheets-and-scripts.py $(WebCore)/inspector/InspectorOverlayPage.html ./InspectorOverlayPage.combined.html
 	$(PERL) $(_javascript_Core_SCRIPTS_DIR)/xxd.pl InspectorOverlayPage_html ./InspectorOverlayPage.combined.html InspectorOverlayPage.h
 	$(DELETE) InspectorOverlayPage.combined.html
 
-ALL_GENERATED_FILES += CommandLineAPIModuleSource.h
+all : CommandLineAPIModuleSource.h
+
 CommandLineAPIModuleSource.h : CommandLineAPIModuleSource.js
 	echo "//# sourceURL=__InjectedScript_CommandLineAPIModuleSource.js" > ./CommandLineAPIModuleSource.min.js
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/jsmin.py <$(WebCore)/inspector/CommandLineAPIModuleSource.js >> ./CommandLineAPIModuleSource.min.js
@@ -1641,8 +1683,6 @@
 	$(PERL) $(_javascript_Core_SCRIPTS_DIR)/xxd.pl CommandLineAPIModuleSource_js ./CommandLineAPIModuleSource.min.js CommandLineAPIModuleSource.h
 	$(DELETE) CommandLineAPIModuleSource.min.js
 
--include $(JS_DOM_HEADERS:.h=.dep)
-
 # WebCore JS Builtins
 
 WebCore_BUILTINS_SOURCES = \
@@ -1704,27 +1744,7 @@
 %Builtins.h: %.js $(BUILTINS_GENERATOR_SCRIPTS) WebCore_BUILTINS_DEPENDENCIES_LIST
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/generate-js-builtins.py --output-directory . --framework WebCore $<
 
-ALL_GENERATED_FILES += $(notdir $(WebCore_BUILTINS_SOURCES:%.js=%Builtins.h)) $(WebCore_BUILTINS_WRAPPERS)
+all : $(notdir $(WebCore_BUILTINS_SOURCES:%.js=%Builtins.h)) $(WebCore_BUILTINS_WRAPPERS)
 
 # ------------------------
 
-.PHONY : all real_all print_all_generated_files
-
-# TODO: The first three prerequisites should probably not be here. Some of the
-# file-generation rules use them; *those* rules should be dependent on these
-# script (and then 'all' will transitively be dependent on them).
-real_all : \
-    $(SUPPLEMENTAL_DEPENDENCY_FILE) \
-    $(WINDOW_CONSTRUCTORS_FILE) \
-    $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) \
-    $(WORKLETGLOBALSCOPE_CONSTRUCTORS_FILE) \
-    $(PAINTWORKLETGLOBALSCOPE_CONSTRUCTORS_FILE) \
-    $(ALL_GENERATED_FILES) \
-#
-
-print_all_generated_files :
-	@for target in $(ALL_GENERATED_FILES); \
-	do \
-		echo $${target}; \
-	done
-

Modified: trunk/Source/WebKit/ChangeLog (238636 => 238637)


--- trunk/Source/WebKit/ChangeLog	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Source/WebKit/ChangeLog	2018-11-28 22:07:20 UTC (rev 238637)
@@ -1,3 +1,58 @@
+2018-11-28  Keith Rollin  <krol...@apple.com>
+
+        Revert print_all_generated_files work in r238008; tighten up target specifications
+        https://bugs.webkit.org/show_bug.cgi?id=192025
+        <rdar://problem/46284301>
+
+        Reviewed by Alex Christensen.
+
+        In r238008, I added a facility for DerivedSources.make makefiles to
+        print out the list of files that they generate. This output was used
+        in the generation of .xcfilelist files used to specify the output of
+        the associated Generate Derived Sources build phases in Xcode. This
+        approach worked, but it meant that people would need to follow a
+        specific convention to keep this mechanism working.
+
+        Instead of continuing this approach, I'm going to implement a new
+        facility based on the output of `make` when passed the -d flag (which
+        prints dependency information). This new mechanism is completely
+        automatic and doesn't need maintainers to follow a convention. To that
+        end, remove most of the work performed in r238008 that supports the
+        print_all_generated_files target.
+
+        At the same time, it's important for the sets of targets and their
+        dependencies to be complete and correct. Therefore, also include
+        changes to bring those up-to-date. As part of that, you'll see
+        prevalent use of a particular technique. Here's an example:
+
+            BYTECODE_FILES = \
+                Bytecodes.h \
+                BytecodeIndices.h \
+                BytecodeStructs.h \
+                InitBytecodes.asm \
+            #
+            BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES))
+
+            all : $(BYTECODE_FILES)
+
+            $(BYTECODE_FILES_PATTERNS): $(wildcard $(_javascript_Core)/generator/*.rb) $(_javascript_Core)/bytecode/BytecodeList.rb
+                ...
+
+        These lines indicate a set of generated files (those specified in
+        BYTECODE_FILES). These files are generated by the BytecodeList.rb
+        tool. But, as opposed to the normal rule where a single foo.output is
+        generated by foo.input plus some additional dependencies, this rule
+        produces multiple output files from a tool whose connection to the
+        output files is not immediately clear. A special approach is needed
+        where a single rule produces multiple output files. The normal way to
+        implement this is to use an .INTERMEDIATE target. However, we used
+        this approach in the past and ran into a problem with it, addressing
+        it with an alternate approach in r210507. The above example shows this
+        approach. The .'s in the list of target files are replaced with %'s,
+        and the result is used as the left side of the dependency rule.
+
+        * DerivedSources.make:
+
 2018-11-28  Daniel Bates  <daba...@apple.com>
 
         [iOS] Page not defocused when Find-in-page becomes first responder

Modified: trunk/Source/WebKit/DerivedSources.make (238636 => 238637)


--- trunk/Source/WebKit/DerivedSources.make	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Source/WebKit/DerivedSources.make	2018-11-28 22:07:20 UTC (rev 238637)
@@ -93,10 +93,6 @@
     DELETE = rm -f
 endif
 
-ALL_GENERATED_FILES =
-
-all : real_all
-
 MESSAGE_RECEIVERS = \
     AuthenticationManager \
     CacheStorageEngineConnection \
@@ -204,15 +200,13 @@
 
 -include WebKitDerivedSourcesAdditions.make
 
-# Message Receivers
+.PHONY : all
 
-MESSAGE_RECEIVERS_FILES = \
+all : \
     $(MESSAGE_RECEIVERS:%=%MessageReceiver.cpp) \
     $(MESSAGE_RECEIVERS:%=%Messages.h) \
 #
 
-ALL_GENERATED_FILES += $(MESSAGE_RECEIVERS_FILES)
-
 %MessageReceiver.cpp : %.messages.in $(SCRIPTS)
 	@echo Generating message receiver for $*...
 	@python $(WebKit2)/Scripts/generate-message-receiver.py $< > $@
@@ -221,8 +215,6 @@
 	@echo Generating messages header for $*...
 	@python $(WebKit2)/Scripts/generate-messages-header.py $< > $@
 
-# Sandbox Profiles
-
 TEXT_PREPROCESSOR_FLAGS=-E -P -w
 
 ifneq ($(SDKROOT),)
@@ -239,14 +231,12 @@
 	com.apple.WebKit.plugin-common.sb \
 	com.apple.WebKit.NetworkProcess.sb
 
-ALL_GENERATED_FILES += $(SANDBOX_PROFILES)
+all : $(SANDBOX_PROFILES)
 
 %.sb : %.sb.in
 	@echo Pre-processing $* sandbox profile...
 	grep -o '^[^;]*' $< | $(CC) $(SDK_FLAGS) $(TARGET_TRIPLE_FLAGS) $(TEXT_PREPROCESSOR_FLAGS) $(FRAMEWORK_FLAGS) $(HEADER_FLAGS) -include "wtf/Platform.h" - > $@
 
-# JSON-RPC Frontend Dispatchers, Backend Dispatchers, Type Builders
-
 AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS = \
 	$(_javascript_Core_SCRIPTS_DIR)/cpp_generator_templates.py \
 	$(_javascript_Core_SCRIPTS_DIR)/cpp_generator.py \
@@ -266,8 +256,6 @@
     $(WebKit2)/UIProcess/Automation/Automation.json \
 #
 
-# TODO: Is there some way to not hardcode this? Can we get it from
-# generate-inspector-protocol-bindings.py and ./Automation.json?
 AUTOMATION_PROTOCOL_OUTPUT_FILES = \
     AutomationBackendDispatchers.h \
     AutomationBackendDispatchers.cpp \
@@ -286,14 +274,12 @@
 endif
 endif # MACOS
 
+# JSON-RPC Frontend Dispatchers, Backend Dispatchers, Type Builders
 $(AUTOMATION_PROTOCOL_OUTPUT_PATTERNS) : $(AUTOMATION_PROTOCOL_INPUT_FILES) $(AUTOMATION_PROTOCOL_GENERATOR_SCRIPTS)
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/generate-inspector-protocol-bindings.py --framework WebKit $(AUTOMATION_BACKEND_PLATFORM_ARGUMENTS) --backend --outputDir . $(AUTOMATION_PROTOCOL_INPUT_FILES)
-#
 
-ALL_GENERATED_FILES += $(AUTOMATION_PROTOCOL_OUTPUT_FILES)
+all : $(AUTOMATION_PROTOCOL_OUTPUT_FILES)
 
-# *ScriptSource generation
-
 %ScriptSource.h : %.js $(_javascript_Core_SCRIPTS_DIR)/jsmin.py $(_javascript_Core_SCRIPTS_DIR)/xxd.pl
 	echo "//# sourceURL=__InjectedScript_$(notdir $<)" > $(basename $(notdir $<)).min.js
 	$(PYTHON) $(_javascript_Core_SCRIPTS_DIR)/jsmin.py < $< >> $(basename $(notdir $<)).min.js
@@ -300,11 +286,8 @@
 	$(PERL) $(_javascript_Core_SCRIPTS_DIR)/xxd.pl $(basename $(notdir $<))ScriptSource $(basename $(notdir $<)).min.js $@
 	$(DELETE) $(basename $(notdir $<)).min.js
 
-SCRIPT_SOURCE_FILES = \
-    WebAutomationSessionProxyScriptSource.h
+all : WebAutomationSessionProxyScriptSource.h
 
-ALL_GENERATED_FILES += $(SCRIPT_SOURCE_FILES)
-
 # WebPreferences generation
 
 WEB_PREFERENCES_TEMPLATES = \
@@ -319,18 +302,7 @@
 WEB_PREFERENCES_FILES = $(basename $(notdir $(WEB_PREFERENCES_TEMPLATES)))
 WEB_PREFERENCES_PATTERNS = $(subst .,%,$(WEB_PREFERENCES_FILES))
 
-ALL_GENERATED_FILES += $(WEB_PREFERENCES_FILES)
+all : $(WEB_PREFERENCES_FILES)
 
 $(WEB_PREFERENCES_PATTERNS) : $(WebKit2)/Scripts/GeneratePreferences.rb $(WEB_PREFERENCES_TEMPLATES) $(WebKit2)/Shared/WebPreferences.yaml
 	$(RUBY) $< --input $(WebKit2)/Shared/WebPreferences.yaml
-
-
-.PHONY : all real_all print_all_generated_files
-
-real_all : $(ALL_GENERATED_FILES)
-
-print_all_generated_files :
-	@for target in $(ALL_GENERATED_FILES); \
-	do \
-		echo $${target}; \
-	done

Modified: trunk/Tools/ChangeLog (238636 => 238637)


--- trunk/Tools/ChangeLog	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Tools/ChangeLog	2018-11-28 22:07:20 UTC (rev 238637)
@@ -1,3 +1,59 @@
+2018-11-28  Keith Rollin  <krol...@apple.com>
+
+        Revert print_all_generated_files work in r238008; tighten up target specifications
+        https://bugs.webkit.org/show_bug.cgi?id=192025
+        <rdar://problem/46284301>
+
+        Reviewed by Alex Christensen.
+
+        In r238008, I added a facility for DerivedSources.make makefiles to
+        print out the list of files that they generate. This output was used
+        in the generation of .xcfilelist files used to specify the output of
+        the associated Generate Derived Sources build phases in Xcode. This
+        approach worked, but it meant that people would need to follow a
+        specific convention to keep this mechanism working.
+
+        Instead of continuing this approach, I'm going to implement a new
+        facility based on the output of `make` when passed the -d flag (which
+        prints dependency information). This new mechanism is completely
+        automatic and doesn't need maintainers to follow a convention. To that
+        end, remove most of the work performed in r238008 that supports the
+        print_all_generated_files target.
+
+        At the same time, it's important for the sets of targets and their
+        dependencies to be complete and correct. Therefore, also include
+        changes to bring those up-to-date. As part of that, you'll see
+        prevalent use of a particular technique. Here's an example:
+
+            BYTECODE_FILES = \
+                Bytecodes.h \
+                BytecodeIndices.h \
+                BytecodeStructs.h \
+                InitBytecodes.asm \
+            #
+            BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES))
+
+            all : $(BYTECODE_FILES)
+
+            $(BYTECODE_FILES_PATTERNS): $(wildcard $(_javascript_Core)/generator/*.rb) $(_javascript_Core)/bytecode/BytecodeList.rb
+                ...
+
+        These lines indicate a set of generated files (those specified in
+        BYTECODE_FILES). These files are generated by the BytecodeList.rb
+        tool. But, as opposed to the normal rule where a single foo.output is
+        generated by foo.input plus some additional dependencies, this rule
+        produces multiple output files from a tool whose connection to the
+        output files is not immediately clear. A special approach is needed
+        where a single rule produces multiple output files. The normal way to
+        implement this is to use an .INTERMEDIATE target. However, we used
+        this approach in the past and ran into a problem with it, addressing
+        it with an alternate approach in r210507. The above example shows this
+        approach. The .'s in the list of target files are replaced with %'s,
+        and the result is used as the left side of the dependency rule.
+
+        * DumpRenderTree/DerivedSources.make:
+        * WebKitTestRunner/DerivedSources.make:
+
 2018-11-28  Aakash Jain  <aakash_j...@apple.com>
 
         [ews-app] Add support to get list of Bugzilla patches needing review

Modified: trunk/Tools/DumpRenderTree/DerivedSources.make (238636 => 238637)


--- trunk/Tools/DumpRenderTree/DerivedSources.make	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Tools/DumpRenderTree/DerivedSources.make	2018-11-28 22:07:20 UTC (rev 238637)
@@ -40,21 +40,13 @@
 
 IDL_ATTRIBUTES_FILE = $(WebCoreScripts)/IDLAttributes.json
 
-.PHONY : all print_all_generated_files
+.PHONY : all
 
 JS%.h JS%.cpp : %.idl $(SCRIPTS) $(IDL_ATTRIBUTES_FILE)
 	@echo Generating bindings for $*...
 	@perl -I $(WebCoreScripts) -I $(UISCRIPTCONTEXT_DIR) -I $(DumpRenderTree)/Bindings $(WebCoreScripts)/generate-bindings.pl --defines "" --include $(UISCRIPTCONTEXT_DIR) --outputDir . --generator DumpRenderTree --idlAttributesFile $(IDL_ATTRIBUTES_FILE) $<
 
-ALL_GENERATED_FILES = \
+all : \
     $(UICONTEXT_INTERFACES:%=JS%.h) \
     $(UICONTEXT_INTERFACES:%=JS%.cpp) \
 #
-
-all : $(ALL_GENERATED_FILES)
-
-print_all_generated_files :
-	@for target in $(ALL_GENERATED_FILES); \
-	do \
-		echo $${target}; \
-	done

Modified: trunk/Tools/WebKitTestRunner/DerivedSources.make (238636 => 238637)


--- trunk/Tools/WebKitTestRunner/DerivedSources.make	2018-11-28 21:59:51 UTC (rev 238636)
+++ trunk/Tools/WebKitTestRunner/DerivedSources.make	2018-11-28 22:07:20 UTC (rev 238637)
@@ -50,23 +50,15 @@
 
 IDL_ATTRIBUTES_FILE = $(WebCoreScripts)/IDLAttributes.json
 
-.PHONY : all print_all_generated_files
+.PHONY : all
 
 JS%.h JS%.cpp : %.idl $(SCRIPTS) $(IDL_ATTRIBUTES_FILE)
 	@echo Generating bindings for $*...
 	@perl -I $(WebCoreScripts) -I $(WebKitTestRunner)/InjectedBundle/Bindings -I $(WebKitTestRunner)/UIScriptContext/Bindings $(WebCoreScripts)/generate-bindings.pl --defines "" --include InjectedBundle/Bindings --include UIScriptContext/Bindings --outputDir . --generator TestRunner --idlAttributesFile $(IDL_ATTRIBUTES_FILE) $<
 
-ALL_GENERATED_FILES = \
+all : \
     $(INJECTED_BUNDLE_INTERFACES:%=JS%.h) \
     $(INJECTED_BUNDLE_INTERFACES:%=JS%.cpp) \
     $(UICONTEXT_INTERFACES:%=JS%.h) \
     $(UICONTEXT_INTERFACES:%=JS%.cpp) \
 #
-
-all : $(ALL_GENERATED_FILES)
-
-print_all_generated_files :
-	@for target in $(ALL_GENERATED_FILES); \
-	do \
-		echo $${target}; \
-	done
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to