Changes between Version 20 and Version 21 of BuildingGtk
- Timestamp:
- Jan 16, 2008, 1:57:59 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
BuildingGtk
v20 v21 1 1 [[PageOutline]] 2 2 3 = Building the G tkport =3 = Building the GTK+ port = 4 4 5 The G tkport of WebKit is intended to provide a browser component primarily for users of the portable [http://www.gtk.org/ Gtk+] UI toolkit on platforms like Linux.5 The GTK+ port of WebKit is intended to provide a browser component primarily for users of the portable [http://www.gtk.org/ Gtk+] UI toolkit on platforms like Linux. 6 6 7 7 == Status of the port == … … 9 9 The port is actively maintained, and its build state is continuously tested by the [http://build.webkit.org/ WebKit build-bot]. 10 10 11 Developers interested in using or contributing to the G tkport should be willing to get their hands dirty at this stage. Patches are welcomed on the bug tracker and help is readily available on the IRC channel and mailing list for developers who want to learn the ropes.11 Developers interested in using or contributing to the GTK+ port should be willing to get their hands dirty at this stage. Patches are welcomed on the bug tracker and help is readily available on the IRC channel and mailing list for developers who want to learn the ropes. 12 12 13 13 It is worth noting that this project is being developed directly in WebKit SVN and is entirely unrelated to the classic [http://gtk-webcore.sourceforge.net/ Gtk+ WebCore]. … … 52 52 == Dependencies == 53 53 54 The code should be easily built on any Linux distribution which has development packages for G tk+ installed. Packages you might need to install (in addition to an "ordinary build environment"):54 The code should be easily built on any Linux distribution which has development packages for GTK+ installed. Packages you might need to install (in addition to an "ordinary build environment"): 55 55 56 56 * libicu-dev … … 64 64 * flex version 2.5.33 or later 65 65 66 If you forgot to install one of the build dependencies, your build tree might be in a bad state and might fail to compile even after you've installed the missing dependency. In this case, you should ensure your SVN checkout is entirely clean with eg. make -C WebKitBuild/Release/WebCore clean 66 == Using autotools == 67 67 68 === On Debian === 69 70 To satify WebKit build dependencies simply: 71 72 {{{ 73 apt-get build-dep webkit 74 }}} 75 76 == Using Qmake4 == 77 78 The Gtk port has made a compromise on its build system by incurring a dependency on qmake 4, the Qt toolkit build system. This is only a build-time dependency -- the compiled executables will of course continue to have no requirement of Qt. The decision was made to share resources with the Qt porting team and has been largely successful -- the Gtk port is more likely now than ever to be in a building state straight out of SVN while the port developers have more free time to write code instead of maintaining the old Bakefile build system. 79 80 To start the build, ensure that you have qmake4 installed and run: 81 82 WebKit/WebKitTools/Scripts$ ./build-webkit --gtk 83 84 The above command will try to execute "qmake". If your qmake4 binary is named differently, e.g. on Debian, use the --qmake= option. 85 86 WebKit/WebKitTools/Scripts$ ./build-webkit --gtk --qmake=qmake-qt4 87 88 This will build both the library and the GtkLauncher demo in WebKit/WebKitBuild 89 90 Note: your system might have both qmake and qmake-qt4 (Debian). You must use qmake-qt4. Using `qmake` fails to compile WebCore/platform/gtk/gtk2drawing.c (missing header gtk/gtk.h) 91 92 === Building qmake if your distribution doesn't ship it in a package === 93 {{{ 94 wget ftp://ftp.trolltech.com/qt/source/qtopia-core-opensource-src-4.3.2.tar.gz 95 tar -xvzf qtopia-core-opensource-src-4.3.2.tar.gz 96 cd qtopia-core-opensource-src-4.3.2 97 echo yes | ./configure -fast 98 }}} 99 100 Et voila the bin/ directory holds a qmake binary you can use for the Gtk+ port. You might want to set the QMAKESPEC to $PWD/mkspecs/ANY-SPEC-YOU-WANT but the default should just work. 101 102 To install the library and the header files: 103 104 $ cd WebKitBuild/Release 105 106 # make install 107 108 === Change tracking issues with qmake4 === 109 110 Currently the build system's of Gtk, Qt and Wx do not detect source changes very well. So unfortunately you should build from scratch every time. :( A work around is to use `ccache`. 111 112 === Building === 113 * Missing dependencies are not reported and force a user to take a closer look at the screen. 114 115 == Using Autotools == 116 117 The Gtk+ port can now be built using autotools (autoconf, automake with libtool). To build the Gtk+ port using autotools just issue the following commands in the command-line: 68 The GTK+ port can now be built using autotools (autoconf, automake, libtool). To build the GTK+ port just issue the following commands: 118 69 119 70 {{{ … … 122 73 }}} 123 74 124 This will build a demo browser that uses the G tk+ port in the `Programs/` directory which you can run using the following command:75 This will build a demo browser that uses the GTK+ port in the `Programs/` directory which you can run using the following command: 125 76 126 77 {{{ … … 134 85 }}} 135 86 136 The `configure` script also supports the different features WebKit/G tk+ provide (e.g., SVG filters and animation features, HTML5 Video element support, etc..). Simply issuing87 The `configure` script also supports the different features WebKit/GTK+ provide (e.g., SVG filters and animation features, HTML5 Video element support, etc..). Simply issuing 137 88 138 89 {{{ … … 140 91 }}} 141 92 142 in the command-line should give you a brief overview of what can be configured. Although you can build with these features enabled, it doesn't mean that the functionality is complete, let alone working properly. Feel free to submit a bug at http://bugs.webkit.org if you find something that is not working.93 on the command-line should give you a brief overview of what can be configured. Although you can build with these features enabled, it doesn't mean that the functionality is complete, let alone working properly. Feel free to submit a bug at http://bugs.webkit.org if you find something that is not working. 143 94 95 == Using qmake == 96 97 It's still possible to use the legacy build system following the [wiki:BuildingGtkUsingQMake GTK+/qmake build instructions]. 98 99 This system will be phased out soon for the GTK+ port, but is actively maintained at time of writing. 144 100 145 101 = Further links =