The WebKit Open Source Project

Installing the Developer Tools

OS X

  1. Install Xcode

    Get Xcode from https://developer.apple.com/downloads. Xcode 5.0 or later is required to build.

  2. Install the Xcode Command Line Tools by running xcode-select --install in the Terminal.

  3. Install Java for Mac OS X Developer Package

    Download and install the latest OS-appropriate “Java for Mac OS X Developer Package” from https://developer.apple.com/downloads.

Windows

  1. You can build with either Visual Studio 2013 or Visual Studio 2013 express. (Newer versions currently unsupported)

    Use the default options for the installation.

  2. Install Cygwin

    Cygwin is a collection of utilities for Windows that includes not only a Subversion client, but also additional tools that are required to build the WebKit source. We have made a downloader available that automatically collects all of the required packages.

    Download cygwin-downloader.zip.

    Extract the content of the archive to some folder and start cygwin-downloader.exe from that folder. This will download all the Cygwin packages you need.

    When all the packages have finished downloading, the Cygwin installer will launch. Choose Install from Local Directory, then click Next until the install is complete. If you are running Vista, the installer won't be able to launch automatically, so you will have to manually launch Cygwin's Setup.exe.

    Note: If you are behind a proxy you need to set the http_proxy environment variable to the URL of the proxy. This would likely match this pattern: http[s]://[username[:password]@]somehost.com[:port]. Where the square brackets ([]) are not part of the url but enclose url elements that are optional indicating that those elements might be missing in your case together with their enclosed delimiter such as @ and :.

    Note: Vista may warn you that Cygwin did not install correctly. Ignore this warning and tell Vista that the install was successful.

    Warning: If you are running Vista or Windows 7, Cygwin may have trouble with implementing fork (the POSIX function frequently used to start child processes, needed by many of the WebKit build tools). In order to enable cygwin1.dll to implement fork successfully it is better if no DLL loaded in the parent process is relocated at runtime. One way to achive this is to rebase all cygwin dlls except cyglsa64.dll and cygwin1.dll to base addresses that cause them to not overlap in memory.

    In order to rebase all cygwin dlls a rebaseall script is provided in the cygwin installation's bin directory (usually C:\cygwin\bin). This script must be run from ash.exe (found in the same directory) while no other cygwin application is running.
    ash.exe has very limited command line editing features so cutting and pasting to the commandline is recommended.
    The PATH environment variable may not contain the /bin directory by default thus the script should be launched as /bin/rebaseall.
    If rebaseall is complaining about failure to write to a Windows Temp directory (i.e. /cygdrive/c/Users/you/AppData/Local/Temp), fix the permissions on that folder (i.e. /bin/chown you /cygdrive/c/Users/you/AppData/Local/Temp) or change the TMP environment variable to point to a directory with the appropriate permission flags (i.e.: export TMP=/tmp).

    Note: The rebase process may need to be repeated to include any new libraries added later to cygwin by listing these libraries by full cygwin path in a file and passing the file to rebaseall via the -T fileName commandline argument. The dlls under LayoutTests/http/conf are a relevant use case.

    Remove the following lines from /home/[username]/.bashrc (if present):

    unset TMP
    unset TEMP

    Those lines would prevent picking up the Windows TMP and TEMP environment variables.

    If you are behind a proxy you need to do the following to allow cygwin svn to get through the proxy (similar steps are available for your Windows svn):

    • In bash (Cygwin) run: svn help. This will create in your cygwin home directory the file .subversion/servers.
    • Edit the file mentioned above and follow the instructions in the file to set up your proxy settings.

  3. Install DirectX SDK

    Download the June 2010 DirectX SDK This is needed for accelerated compositing.

  4. Install Python

    Download Python 2.7.8 from www.python.org. When done installing, remember to add the folder of the python executable to your PATH environment variable.

  5. Install php, we use the following steps (you need this to run http layout tests):

    1. cd /usr/local/bin
    2. wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
    3. chmod a+x apt-cyg
    4. Change line 341 of the apt-cyg script to "wget -nc $mirror/../$install"
    5. apt-cyg -m ftp://sourceware.org/pub/cygwinports/x86 install php
  6. Optional: Install the 32-bit version of Debugging Tools for Windows

    Debugging Tools for Windows includes many useful debugging tools such as WinDbg and NTSD. Some of WebKit’s tests and scripts use these tools. Follow the instructions for installing the 32-bit version of Debugging Tools for Windows.

  7. Optional: Hotfix for 64-bit Windows to disable the user-mode callback filter for exceptions

    Without the 976038 hotfix, exceptions may be thrown in callback routines that do not cause a crash but leave the application in an inconsistent state that might cause a crash later. You will need to click on "View and request hotfix downloads" and fill out the form. A link to download the hotfix and a password will be emailed to you.

GTK

Follow the instructions on the BuildingGTK wiki page.

EFL

Follow the instructions on the EFLWebKit wiki page.

Once you have installed your developer tools, the next step is getting the code.