Bug 29753 - DerivedSources.make broken for non-Mac targets
Summary: DerivedSources.make broken for non-Mac targets
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Windows Vista
: P2 Normal
Assignee: David Kilzer (:ddkilzer)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-25 16:20 PDT by Steve Falkenburg
Modified: 2009-09-26 20:17 PDT (History)
5 users (show)

See Also:


Attachments
Part 1 Patch v1 (2.79 KB, patch)
2009-09-25 19:18 PDT, David Kilzer (:ddkilzer)
no flags Details | Formatted Diff | Diff
Part 2 Patch v1 (4.96 KB, patch)
2009-09-26 05:26 PDT, David Kilzer (:ddkilzer)
darin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Falkenburg 2009-09-25 16:20:03 PDT
I get errors building DerivedSources.make in WebCore on Windows.
The parameters passed to gcc for preprocessing aren't correct for non-Mac builds.
In particular, since -F isn't supported, we don't pass it, but this means that gcc can't locate the headers needed to complete the compiles.
Besides this, the path to WebCore should be specified as $(WebCore) to work on Windows (in the gcc commands).

Here's the error output I see on Windows:

------ Build started: Project: WebCoreGenerated, Configuration: Release Win32 ------
Performing Makefile project actions
/usr/bin/bash
gcc: WebCore/ForwardingHeaders/wtf/Platform.h: No such file or directory
gcc: no input files
gcc: WebCore/ForwardingHeaders/wtf/Platform.h: No such file or directory
gcc: no input files
gcc: WebCore/ForwardingHeaders/wtf/Platform.h: No such file or directory
gcc: no input files
gcc: WebCore/ForwardingHeaders/wtf/Platform.h: No such file or directory
gcc: no input files
Comment 1 David Kilzer (:ddkilzer) 2009-09-25 17:31:26 PDT
Which revision did this break in?  Was it r48609?
Comment 2 David Kilzer (:ddkilzer) 2009-09-25 17:34:12 PDT
(In reply to comment #0)
> In particular, since -F isn't supported, we don't pass it, but this means that
> gcc can't locate the headers needed to complete the compiles.

It appears that the -F issue was fixed in r48729:  <http://trac.webkit.org/changeset/48729>
Comment 3 Mark Rowe (bdash) 2009-09-25 17:40:55 PDT
The -F change didn't achieve towards fixing other platforms.

The fundamental issue here is that the manner in which we detect whether the macro is enabled only works on Mac, due to the search path only being set on Mac and the header file using a path that is not portable.
Comment 4 David Kilzer (:ddkilzer) 2009-09-25 18:12:00 PDT
(In reply to comment #3)
> The fundamental issue here is that the manner in which we detect whether the
> macro is enabled only works on Mac, due to the search path only being set on
> Mac and the header file using a path that is not portable.

I guess we can't use $(WebCore)/../JavaScriptCore/wtf/Platform.h because we can't always assume that JavaScriptCore sources are sitting next to WebCore sources.
Comment 5 Mark Rowe (bdash) 2009-09-25 18:16:43 PDT
Correct.
Comment 6 David Kilzer (:ddkilzer) 2009-09-25 18:22:29 PDT
So ENABLE_CONTEXT_MENUS, ENABLE_DRAG_SUPPORT and ENABLE_INSPECTOR are only used to determine which *.exp files to concatenate for the Mac platform, so those definitions may all be moved out of the common code path.

That leaves ENABLE_ORIENTATION_EVENTS.  It's required for both the *.exp file generation and the JS/ObjC code generation.  One solution there would be to move it (back) to the FeatureDefines.xcconfig files (and related build files for other platforms) where it was in an earlier patch for Bug 29508.

Is that acceptable?
Comment 7 David Kilzer (:ddkilzer) 2009-09-25 19:18:20 PDT
Created attachment 40159 [details]
Part 1 Patch v1
Comment 8 Greg Bolsinga 2009-09-25 19:27:10 PDT
Dave, I would suggest we have ENABLE_DRAG_AND_DROP, ENABLE_INSPECTOR, and ENABLE_CONTEXT_MENUS always be on. See the non MacOS ENABLE_DASHBOARD_SUPPORT section.

This is because testing really isn't even needed here. Nothing in Open Source will turn these off at the moment. We can just 'do the right thing' for iPhone as is being done for Mac OS now, in this makefile.
Comment 9 David Kilzer (:ddkilzer) 2009-09-25 19:58:02 PDT
(In reply to comment #8)
> Dave, I would suggest we have ENABLE_DRAG_AND_DROP, ENABLE_INSPECTOR, and
> ENABLE_CONTEXT_MENUS always be on. See the non MacOS ENABLE_DASHBOARD_SUPPORT
> section.

The only reason that's needed is because ENABLE_DASHBOARD_SUPPORT is used for both WEBCORE_CSS_PROPERTY_NAMES and WEBCORE_EXPORT_DEPENDENCIES.

Moving these tests to where they're used is consistent with the other *.exp file tests.
Comment 10 David Kilzer (:ddkilzer) 2009-09-25 21:33:25 PDT
Committed r48784: <http://trac.webkit.org/changeset/48784>
Comment 11 David Kilzer (:ddkilzer) 2009-09-25 21:34:02 PDT
Comment on attachment 40159 [details]
Part 1 Patch v1

Clearing darin's r+ flag.
Comment 12 David Kilzer (:ddkilzer) 2009-09-26 05:26:43 PDT
Created attachment 40168 [details]
Part 2 Patch v1
Comment 13 David Kilzer (:ddkilzer) 2009-09-26 20:04:21 PDT
Committed r48795: <http://trac.webkit.org/changeset/48795>
Comment 14 David Kilzer (:ddkilzer) 2009-09-26 20:17:21 PDT
GTK build fix:

Committed r48796: <http://trac.webkit.org/changeset/48796>