linux下编译Firefox 3.0浏览器全过程

其他linux发行版编译Firefox 3.0浏览器可以参考本文

环境:

OS: Fedora7 (kernel 2.6.21)

Firefox: v3.0 / Minefield (firefox-3.0-source.tar.bz2)

检查一些必需的工具和代码:

(1) Shell: bash

(2) GCC: v4.1.2

(3) Perl: v5.8.8

(4) GNU make: v3.81

(5) CVS: v1.11.22

(6) GTK+: v2.10.11 (通过执行/usr/bin/gtk-query-immodules-2.0-32可以确认版本)

(7)
libXt-devel for X11/Intrinsic.h, X11/Shell.h
(幸好我用的环境里这两个文件/usr/include/X11/Intrinsic.h和/usr/include/X11/Shell.h都存在)

(8) libIDL: v0.8.8 (通过执行/usr/bin/libIDL-config-2 –version可以确认版本)

(9) zip: v2.31

(10) freetype: 2.3.4 (通过执行/usr/bin/freetype-config –ftversion可以确认版本)

(11) fontconfig: 存在这个库(/usr/lib/libfontconfig.so.1.2.0)

(12) pkg-config: v0.20

(13) dbus-1-glib-devel: 存在库/usr/lib/libdbus-glib-1.so.2.1.0

 

建立mozconfig文件:

路径:/home/tielei/opensrc/mozconfig

文件内容如下:

###### mozconfig file start #########

. $topsrcdir/browser/config/mozconfig
mk_add_options
MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@
ac_add_options
–prefix=/home/tielei/opensrc/firefox-installed

ac_add_options –enable-debug
ac_add_options –disable-optimize

###### mozconfig file end #########

 

(上面的配置打开了debug信息,并关闭了优化,便于调试) 

 

编译:

先安装新版本的glib,否则编译时会出现如下错误:

/usr/local/lib/libpangoft2-1.0.so.0: undefined reference
to
`g_once_init_enter_impl’
/usr/local/lib/libpangoft2-1.0.so.0: undefined
reference to
`g_once_init_leave’

 

(1) 将glib-2.16.0.tar.bz2拷贝到/home/tielei/opensrc/

(2) tar xjf glib-2.16.0.tar.bz2

(3) mkdir glib-2.16.0-installed

(4) cd glib-2.16.0

(5) ./configure –prefix=/home/tielei/opensrc/glib-2.16.0-installed

(6) make

(7) make install

 

下一步就可以编译firefox

(8) 将firefox-3.0-source.tar.bz2拷贝到/home/tielei/opensrc/

(9) tar xjf firefox-3.0-source.tar.bz2

(10) mkdir firefox-installed

(11) 确保.mozconfig文件是unix格式,执行

dos2unix ~/.mozconfig

如果.mozconfig文件里存在dos格式的换行符,则会出现类似“: No such file or directoryne … ”的错误

(12) export MOZCONFIG=/home/tielei/opensrc/mozconfig

(13) export
PKG_CONFIG_PATH=/home/tielei/opensrc/glib-2.16.0-installed/lib/pkgconfig:/usr/lib/pkgconfig

(14) cd mozilla

(15) make -f client.mk build

编译成功后,会在mozilla生成一个objdir,根据mozconfig文件的配置,这个objdir是/home/tielei/opensrc/obj-i686-pc-linux-gnu/。

如果需要改变mozconfig配置,重新编译之前最好到obj-i686-pc-linux-gnu目录下先执行make
clean,否则可能会出现一些意想不到的问题。

 

运行刚编译好的firefox浏览器

(16) export
LD_LIBRARY_PATH=/home/tielei/opensrc/glib-2.16.0-installed/lib
设置新安装的glib库路径

(17) cd /home/tielei/opensrc/obj-i686-pc-linux-gnu/dist/bin/
(18)
./firefox &

更为详细的编译说明见:

http://developer.mozilla.org/en/docs/Build_Documentation

2008年9月4日 | 归档于 Linux桌面
标签:
本文目前尚无任何评论.

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>