[[PageOutline]] = Building on Windows = There is a decent amount of setup work before building of JavaScriptCore and WebCore on Windows. There are also some areas of the code which are not entirely fleshed out yet on Win32. This page serves to document those issues. == Build Environment Setup == * Install a compiler: * Visual Studio 2005, if you have MSDN subscription or have purchased it. * or [http://msdn.microsoft.com/vstudio/express/visualc/ Visual C++ Express Edition] (free of charge). See the [http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ MSDN documentation] for information on building Win32 C++ applications using Visual C++ Express Edition. * Download and install [http://cygwin.com/ cygwin]. On the package selection screen, make sure to select the following packages that are not part of the default install: {{{ bison (Devel) curl (Net) flex (Devel) gcc (Devel, we only use cpp) gperf (Devel)) make (Devel) patch (Utils) perl (Perl) perl-libwin32 (Perl) subversion (Devel) unzip (Archive) }}} The ''default text file type'' must be set to ''DOS / text'' during installation. * [http://webkit.opendarwin.org/building/checkout.html Check out WebKit] in the usual way. Make sure that the path to the checkout directory does not contain spaces (e.g. 'Documents and Settings'), the Perl build scripts cannot handle this. * Run `WebKitTools/Scripts/install-win-extras`. This will install a few extra software packages on your system: icu, iconv, libxml, libxslt and setx. It will also configure the `PATH` and `WebKitOutputDir` environment variables. You may wish to change `WebKitOutputDir` from the default of `C:\WebKitBuild`. * Optional: if you would like an IRC client for Windows, try [http://www.mirc.com/ mIRC], [http://www.silverex.org/download/ X-Chat], or [http://www.ceruleanstudios.com/ Trillian]. If you want a non-IE browser, try [http://getfirefox.com/ Firefox] or [http://opera.com/ Opera]. == Building == === From within Visual Studio === To build from within Visual Studio, open up `JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore.sln` and then select Build. There are two configurations, Debug and Release. The output directory structure is identical to Xcode, so you can safely change configurations and preserve your other configuration's intermediates and libraries/executables. After you've succeeded in building JavaScriptCore, you can do the same for WebCore, by opening up `WebCore/WebCore.vcproj/WebCore.sln` and selecting Build. For the test application, open `WebKitTools/Spinneret/Spinneret.sln` in VS. This also builds Webkit as a dependency. === From the command line === To build from the command line, you use the following syntax: {{{ WebKitTools/Scripts/build-webkit }}} This will build both projects. == Areas needing improvement == __TODO__: fill me in? * Describe DLL registration step