Title: [108523] trunk
Revision
108523
Author
mrobin...@webkit.org
Date
2012-02-22 10:56:40 -0800 (Wed, 22 Feb 2012)

Log Message

[GTK] Clean build is broken when using make -j
https://bugs.webkit.org/show_bug.cgi?id=76388

.:

* GNUmakefile.am: Add new global source list variables.

Source/WebCore:

No new tests. This is just a build fix.

Use order-only dependencies to ensure that built sources are built before
files that depend on them.

* GNUmakefile.am: Establish an order-only dependency on some built sources before starting
to build non-generated sources. Rename some temporary files and variables to be more consistent.
* bindings/gobject/GNUmakefile.am: Updated to reflect new variable names.

Source/WebKit2:

* GNUmakefile.am: Add some WebKit2 sources to global sources lists
so that we can refer to them in separate GNUmakefiles.

Modified Paths

Diff

Modified: trunk/ChangeLog (108522 => 108523)


--- trunk/ChangeLog	2012-02-22 18:56:25 UTC (rev 108522)
+++ trunk/ChangeLog	2012-02-22 18:56:40 UTC (rev 108523)
@@ -1,3 +1,10 @@
+2012-02-22  Martin Robinson  <mrobin...@igalia.com>
+
+        [GTK] Clean build is broken when using make -j
+        https://bugs.webkit.org/show_bug.cgi?id=76388
+
+        * GNUmakefile.am: Add new global source list variables.
+
 2012-02-20  Ryosuke Niwa  <rn...@webkit.org>
 
         perf-o-matic: Extract logic to generate JSON responses as classes to unit test

Modified: trunk/GNUmakefile.am (108522 => 108523)


--- trunk/GNUmakefile.am	2012-02-22 18:56:25 UTC (rev 108522)
+++ trunk/GNUmakefile.am	2012-02-22 18:56:40 UTC (rev 108523)
@@ -80,7 +80,9 @@
 webkitgtk_gdom_built_sources :=
 webkitgtk_built_sources :=
 webkitgtk_built_nosources :=
+webkit2_sources :=
 webkit2_built_sources :=
+webkit2_plugin_process_sources :=
 webkit2_plugin_process_built_sources :=
 webkittestrunner_built_sources :=
 libwebcoreinternals_built_sources :=

Modified: trunk/Source/WebCore/ChangeLog (108522 => 108523)


--- trunk/Source/WebCore/ChangeLog	2012-02-22 18:56:25 UTC (rev 108522)
+++ trunk/Source/WebCore/ChangeLog	2012-02-22 18:56:40 UTC (rev 108523)
@@ -1,3 +1,17 @@
+2012-02-22  Martin Robinson  <mrobin...@igalia.com>
+
+        [GTK] Clean build is broken when using make -j
+        https://bugs.webkit.org/show_bug.cgi?id=76388
+
+        No new tests. This is just a build fix.
+
+        Use order-only dependencies to ensure that built sources are built before
+        files that depend on them.
+
+        * GNUmakefile.am: Establish an order-only dependency on some built sources before starting
+        to build non-generated sources. Rename some temporary files and variables to be more consistent.
+        * bindings/gobject/GNUmakefile.am: Updated to reflect new variable names.
+
 2012-02-22  Dana Jansens  <dan...@chromium.org>
 
         [Chromium] New CCOcclusionTracker class with tests

Modified: trunk/Source/WebCore/GNUmakefile.am (108522 => 108523)


--- trunk/Source/WebCore/GNUmakefile.am	2012-02-22 18:56:25 UTC (rev 108522)
+++ trunk/Source/WebCore/GNUmakefile.am	2012-02-22 18:56:40 UTC (rev 108523)
@@ -785,24 +785,32 @@
 
 vpath %.idl $(IDL_PATH)
 
+supplemental_dependency_file = $(top_builddir)/DerivedSources/WebCore/idl_supplemental_dependencies
+idl_files_list = $(top_builddir)/DerivedSources/WebCore/idl_files_list
+idl_attributes_file = $(WebCore)/bindings/scripts/IDLAttributes.txt
+
+.SECONDARY:
+$(supplemental_dependency_file): $(SCRIPTS_FOR_RESOLVE_SUPPLEMENTAL) $(dom_binding_idls) $(idl_attributes_file)
+	$(AM_V_GEN)
+	$(AM_V_at)echo -n > $(idl_files_list)
+	$(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(idl_files_list)
+	$(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/resolve-supplemental.pl --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --idlFilesList $(idl_files_list) --supplementalDependencyFile $@ --idlAttributesFile $(idl_attributes_file)
+
 # This does not appear to work correctly with gnumake unless
 # it includes an empty command list (the semicolon).
 DerivedSources/WebCore/JS%.cpp: DerivedSources/WebCore/JS%.h;
 
-SUPPLEMENTAL_DEPENDENCY_FILE = $(top_builddir)/DerivedSources/WebCore/supplemental_dependency.tmp
-IDL_FILES_TMP = $(top_builddir)/DerivedSources/WebCore/idl_files.tmp
-IDL_ATTRIBUTES_FILE = $(WebCore)/bindings/scripts/IDLAttributes.txt
-
 .SECONDARY:
-$(SUPPLEMENTAL_DEPENDENCY_FILE): $(SCRIPTS_FOR_RESOLVE_SUPPLEMENTAL) $(dom_binding_idls) $(IDL_ATTRIBUTES_FILE)
-	$(AM_V_GEN)
-	$(AM_V_at)echo -n > $(IDL_FILES_TMP)
-	$(AM_V_at)($(foreach idl, $(dom_binding_idls), echo $(idl) &&) echo -n) >> $(IDL_FILES_TMP)
-	$(AM_V_at)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/resolve-supplemental.pl --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $@ --idlAttributesFile $(IDL_ATTRIBUTES_FILE)
+DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(supplemental_dependency_file)
+	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --generator JS --supplementalDependencyFile $(supplemental_dependency_file) $<
 
-.SECONDARY:
-DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm $(SUPPLEMENTAL_DEPENDENCY_FILE)
-	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --generator JS --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $<
+# See https://bugs.webkit.org/show_bug.cgi?id=76388
+# We need to introduce a manual dependency to prevent non-generated sources from 
+# trying to build before the generated ones. This can happen if the supplemental
+# IDL generation takes a long time. The pipe represents an order-only dependency,
+# which means that GNUmake will only try to build the dependencies first, but
+# not rebuild all the targets if the dependencies change.
+$(webkitgtk_sources) $(webkit2_sources) $(webkit2_plugin_process_sources) $(webcore_sources) $(webcoregtk_sources) : | $(supplemental_dependency_file) $(webcore_built_sources)
 
 noinst_LTLIBRARIES += \
 	libWebCore.la

Modified: trunk/Source/WebCore/bindings/gobject/GNUmakefile.am (108522 => 108523)


--- trunk/Source/WebCore/bindings/gobject/GNUmakefile.am	2012-02-22 18:56:25 UTC (rev 108522)
+++ trunk/Source/WebCore/bindings/gobject/GNUmakefile.am	2012-02-22 18:56:40 UTC (rev 108523)
@@ -460,5 +460,5 @@
 
 # Filter out SVG and IndexedDB for now
 gdom_feature_defines := $(filter-out ENABLE_INDEXED_DATABASE=1, $(filter-out ENABLE_SVG%, $(FEATURE_DEFINES)))
-DerivedSources/webkit/WebKitDOM%.cpp DerivedSources/webkit/WebKitDOM%.h DerivedSources/webkit/WebKitDOM%Private.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm $(WebCore)/bindings/gobject/GNUmakefile.am $(SUPPLEMENTAL_DEPENDENCY_FILE)
-	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKIT)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $<
+DerivedSources/webkit/WebKitDOM%.cpp DerivedSources/webkit/WebKitDOM%.h DerivedSources/webkit/WebKitDOM%Private.h: %.idl $(SCRIPTS_FOR_GENERATE_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm $(WebCore)/bindings/gobject/GNUmakefile.am $(supplemental_dependency_file)
+	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/xml --include $(WebCore)/svg --outputDir "$(GENSOURCES_WEBKIT)" --defines "LANGUAGE_GOBJECT=1 $(gdom_feature_defines)" --generator GObject --supplementalDependencyFile $(supplemental_dependency_file) $<

Modified: trunk/Source/WebKit2/ChangeLog (108522 => 108523)


--- trunk/Source/WebKit2/ChangeLog	2012-02-22 18:56:25 UTC (rev 108522)
+++ trunk/Source/WebKit2/ChangeLog	2012-02-22 18:56:40 UTC (rev 108523)
@@ -1,3 +1,11 @@
+2012-02-22  Martin Robinson  <mrobin...@igalia.com>
+
+        [GTK] Clean build is broken when using make -j
+        https://bugs.webkit.org/show_bug.cgi?id=76388
+
+        * GNUmakefile.am: Add some WebKit2 sources to global sources lists
+        so that we can refer to them in separate GNUmakefiles.
+
 2012-02-22  Antaryami Pandia  <antaryami.pan...@motorola.com>
 
         [GTK][WK2] Add WebGL WebSetting.

Modified: trunk/Source/WebKit2/GNUmakefile.am (108522 => 108523)


--- trunk/Source/WebKit2/GNUmakefile.am	2012-02-22 18:56:25 UTC (rev 108522)
+++ trunk/Source/WebKit2/GNUmakefile.am	2012-02-22 18:56:40 UTC (rev 108523)
@@ -195,7 +195,7 @@
 nodist_libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
 	$(webkit2_built_sources)
 
-libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
+webkit2_sources += \
 	Source/WebKit2/config.h \
 	Source/WebKit2/Platform/CoreIPC/ArgumentCoder.h \
 	Source/WebKit2/Platform/CoreIPC/ArgumentCoders.cpp \
@@ -959,6 +959,9 @@
 	Source/WebKit2/WebProcess/WebProcess.cpp \
 	Source/WebKit2/WebProcess/WebProcess.h
 
+libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
+	$(webkit2_sources)
+
 libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPPFLAGS = \
 	-fno-strict-aliasing \
 	$(global_cppflags) \
@@ -1384,7 +1387,7 @@
 nodist_Programs_WebKitPluginProcess_SOURCES = $(webkit2_plugin_process_built_sources)
 BUILT_SOURCES += $(nodist_Programs_WebKitPluginProcess_SOURCES)
 
-Programs_WebKitPluginProcess_SOURCES = \
+webkit2_plugin_process_sources += \
 	Source/WebKit2/Platform/CoreIPC/ArgumentCoder.h \
 	Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h \
 	Source/WebKit2/Platform/CoreIPC/ArgumentCoders.cpp \
@@ -1472,6 +1475,8 @@
 	Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h \
 	Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp \
 	Source/WebKit2/gtk/PluginMainGtk.cpp
+Programs_WebKitPluginProcess_SOURCES = \
+	$(webkit2_plugin_process_sources)
 
 Programs_WebKitPluginProcess_LDADD = \
 	-lpthread \
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to