Search code examples
visual-studio-2010webkitnmake

Failed to Build WebKit-r161259 on Win7/VS2010


I've build WebKit-r128959 successfully on Win7/VS2010, but now the source (WebKit-r161259) has changed a lot and my experience doesn't work any longer... I met this first error.

WebKitSupportLibrary is up-to-date.
Building results into: /cygdrive/c/cygwin_dir/home/LioMoon/WebKit-r161249/WebKitBuild
WEBKIT_OUTPUTDIR is set to: C:\cygwin_dir\home\LioMoon\WebKit-r161249\WebKitBuild
WEBKIT_LIBRARIES is set to: C:\cygwin_dir\home\LioMoon\WebKit-r161249\WebKitLibraries\win
/cygdrive/c/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/devenv.com WebKit.vcxproj\WebKit.sln /build Release|Win32

Microsoft (R) Visual Studio Version 10.0.40219.1.
Copyright (C) Microsoft Corp. All rights reserved.
------ Build started: Project: WTFGenerated, Configuration: Release Win32 ------
Build started 1/4/2014 7:05:45 AM.
Build:
  /usr/bin/which: no bash in ((null))
  'nmake' is not recognized as an internal or external command,
  operable program or batch file.
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "%SystemDrive%\cygwin\bin\which.exe bash
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: set PLATFORMARCHITECTURE=32
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake /nologo -f WTFGenerated.make" exited with code 9009.

Build FAILED.

I just don't understand why the path is (null) and why the devenv executable cannot find nmake. The following lines are the path variable in VS2010:

Path=C:\Program Files\Microsoft F#\v4.0\;C:\Program Files\Microsoft Visual Studi
o 10.0\VSTSDB\Deploy;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\;
c:\Program Files\Microsoft Visual Studio 10.0\VC\BIN;C:\Program Files\Microsoft
Visual Studio 10.0\Common7\Tools;c:\Windows\Microsoft.NET\Framework\v4.0.30319;c
:\Windows\Microsoft.NET\Framework\v3.5;c:\Program Files\Microsoft Visual Studio
10.0\VC\VCPackages;C:\Program Files\HTML Help Workshop;C:\Program Files\Microsof
t Visual Studio 10.0\Team Tools\Performance Tools;C:\Program Files\Microsoft SDK
s\Windows\v7.0A\bin\NETFX 4.0 Tools;C:\Program Files\Microsoft SDKs\Windows\v7.0
A\bin;c:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\..\..\VC\bin;C
:\cygwin\bin;C:\Program Files\Parallels\Parallels Tools\Applications;C:\Windows\
system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShe
ll\v1.0\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\
Microsoft SQL Server\100\DTS\Binn" /f;c:\Program Files\Microsoft Visual Studio 1
0.0\Common7\Tools\..\..\VC\bin;

Obviously it's not null. How can I fix the problem?


Solution

  • My build experience is as follow. See more at http://blog.csdn.net/lzl124631x/article/details/18098361

    Environment:
         Operating System:     Windows 7 Ultimate 32-bit
         Processor:               Intel Core i7 860
         Installed Memory:     4.00 GB    
    
    1. Installing VS2013:
         a. Install Win7 SP1 (windows6.1-KB976932-X86.exe)
         b. Install 5 patches for IE10
              ⅰ. Windows6.1-KB2533623-x86.msu
              ⅱ. Windows6.1-KB2670838-x86.msu
              ⅲ. Windows6.1-KB2729094-v2-x86.msu
              ⅳ. Windows6.1-KB2731771-x86.msu
              ⅴ. Windows6.1-KB2786081-x86.msu
         c. Install IE10 (IE10-Windows6.1-x86-en-us.exe)
         d. Install VS2013 (VS2013_RTM_ULT_ENU.iso)
         e. Right click on "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe", "Properties", "Compatibility", check "Run this program as an administrator".
    
    2. Installing Cygwin
         a. Download cygwin-downloader.zip (http://svn.webkit.org/repository/webkit/trunk/Tools/CygwinDownloader/cygwin-downloader.zip) and unzip it.
         b. Run cygwin-downloader.exe and wait...
         c. Run setup.exe, select "Install from Local Directory" and install.
         d. Run setup.exe, select "Install from Internet"
              i. In steps before "Select Packages", just select default folder, whatever connection and download site.
              ⅱ. Select Packages: Search "gcc", expand Devel, select "gcc-g++: GNU Compiler Collection(C++)"
              ⅲ. Select Packages: Search "gdb", expand Devel, select "gdb: The GNU Debugger"
         See more at "Installing gcc with Cygwin"(http://www.eecg.utoronto.ca/~aamodt/ece242/cygwin.html)
         e. Open C:\cygwin\etc\profile
              ⅰ. Modify line 32 to PATH="/bin:${PATH}"
              ⅱ. Comment line 44-50 by adding '#' at the beginning of each line.
    
    3. Installing SDKs
         a. Install QuickTime SDK (https://developer.apple.com/quicktime/)
         b. Install Direct SDK (June 2010 DirectX SDK:http://www.microsoft.com/en-us/download/details.aspx?id=6812)
    
    4. Getting the Code
         a. Download Nightly Build (http://nightly.webkit.org/) and unzip it. My version is WebKit-r161524.
         b. Suppress Warning 4309: Open "WebKitLibraries/win/tools/vsprops/common.props", find tag , add 4309.
         c. Download Support Library (https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html) and copy it into WebKit-r161524. DO NOT unzip it.
         d. Open Source/WebCore/platform/LocalizedString.cpp, search "Look Up", delete the DOUBLE-BYTE double quotation marks around “%@” and “”.
    
    5. Save the following lines as a .cmd/.bat file. I named it as Build.cmd.
    
        @echo off  
    
        echo Setting up links...  
        set CYGWIN_DIR=C:\cygwin  
    
        set WEBKIT_SOURCE_DIR=%~dp0%  
        if "%WEBKIT_SOURCE_DIR:~-1%"=="\" set WEBKIT_SOURCE_DIR=%WEBKIT_SOURCE_DIR:~0,-1%  
    
        for /R "delims=\" %%a in (%WEBKIT_SOURCE_DIR%) do set WEBKIT_DIR_NAME=%%~nxa  
        set WEBKIT_LINK_DIR=%CYGWIN_DIR%\home\%username%\%WEBKIT_DIR_NAME%  
    
        if exist "%WEBKIT_LINK_DIR%" rmdir "%WEBKIT_LINK_DIR%"  
        mklink /D "%WEBKIT_LINK_DIR%" "%WEBKIT_SOURCE_DIR%"  
    
        echo Exporting environment varibles...  
        set WEBKIT_OUTPUTDIR=%WEBKIT_LINK_DIR%\WebKitBuildByCygwin  
        set WEBKIT_LIBRARIES=%WEBKIT_LINK_DIR%\WebKitLibraries\win  
        set VSINSTALLDIR=%VS120COMNTOOLS%..\..  
        set PATH=%WEBKIT_LINK_DIR%\Tools\Scripts;%PATH%  
    
        echo Running Cygwin...  
        call "%CYGWIN_DIR%\Cygwin.bat"  
        :exit  
    
    6. Build
         a. run Build.cmd
         b. update-webkit
         c. build-webkit --debug | tee WebKit-r161524/log.txt
    
    Other Material:
         a. Building on Windows:http://trac.webkit.org/wiki/BuildingOnWindows (WebKit Team's note on building on windows)
         b. ​WebKit Wiki: http://trac.webkit.org/wiki/WikiStart
    
    Error Solutions:
    ---------------------------------------------------------------------
    Error Message:
         17>     sh: /usr/bin/gcc: No such file or directory
         17>     Failed to read names from file: /cygdrive/g/WEBKIT~1/Source/WebCore/html/HTMLTagNames.in at /cygdrive/g/WEBKIT~1/Source/WebCore/dom/make_names.pl line 324.
         17>     /cygdrive/g/WEBKIT~1/Source/WebCore/DerivedSources.make:942: recipe for target 'HTMLElementFactory.cpp' failed
         17>     make: *** [HTMLElementFactory.cpp] Error 127
         17>     make: *** Waiting for unfinished jobs....
         17>     ./CSSGrammar.y:62.1: error: syntax error, unexpected end of file
    Solution:
         Install gcc to Cygwin (step 2.d).
    ---------------------------------------------------------------------
    Error Message:
         17>     build-generated-files.sh: line 59: cd: /home/Moon/WEBKIT~1/WEBKIT~2/Debug/obj32/WebCore/DerivedSources: Permission denied
         18>     c1xx : fatal error C1083: Cannot open source file: 'C:\cygwin\home\Moon\WebKit-r161524\WebKitBuildByCygwin\Debug\obj32\WebCore\DerivedSources\CSSPropertyNames.cpp': No such file or directory
    Solution:
         Right click on "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe", "Properties", "Compatibility", check "Run this program as an administrator"
    ---------------------------------------------------------------------
    Error Message:
         ..\platform\LocalizedStrings.cpp(248): error C2001: newline in constant
    Or
         ..\platform\LocalizedStrings.cpp(250): error C2001: newline in constant
    Solution:
         Open Source/WebCore/platform/LocalizedString.cpp, search "Look Up", delete the DOUBLE-BYTE double quotation marks around “%@” and “”.