`
tuoxie007
  • 浏览: 162732 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

编译开源软件之5----Mozilla-Firefox-4.0-beta2_on_Fedora-13

阅读更多

上一文中讲到了在windows 7下如何编译firefox4.0, 今天换了一个平台,在Fedora13下编译。

那么就开始吧。

 

主要参考:

《Simple Firefox build》

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

依然是一篇官方的英文文章,一篇中文文章。

 

1. [可选]替换yum的软件源

因为默认的官方的源在国内很慢,用的很让人崩溃,如果你的比较快,那么恭喜咯。

我用的是163的源。

使用方法在163的帮助里面有讲的很清楚。

下载fedora-163.repofedora-updates-163.repo , 放入/etc/yum.repos.d/

运行yum makecache生成缓存。

我是先删除了原来的源的配置文件。

 

2. 安装相关的编译工具

sudo yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development'
sudo yum install mercurial autoconf213 glibc-static

3.安装glib库。

#cd /usr/src/

#mkdir firefox

#cd firefox

#tar xf glib-2.24.0.tar.bz2

#cd glib-2.24.0

#mkdir /usr/local/lib/glib-2.24.0

#./configure --prefix=/usr/local/lib/glib-2.24.0

#make

#make install

#export PKG_CONFIG_PATH=/usr/local/lib/glib-2.24.0/lib/pkgconfig:/usr/lib/pkgconfig   #不知道是不是必须的

 

3. 同步源代码

#hg clone http://hg.mozilla.org/mozilla-central/

#cd mozilla-central

 

4. 编写mozconfig配置文件

#touch mozconfig

#vim mozconfig

添加以下内容

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

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@

mk_add_options MOZ_MAKE_FLAGS="-j4"

#ac_add_options --enable-debug
#ac_add_options --disable-optimize
#ac_add_options --disable-necko-wiki

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

解释一下这个配置

  • . $topsrcdir/browser/config/mozconfig,执行源文件中的一个默认配置,其实就是把两个mozconfig相加。其中的$topsrcdir就是你mozilla-center目录,也就是firefox源代码根目录。
  • mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@,make add options,make命令添加选项。MOZ_OBJDIR是编译之后生成的目标目录位置,@TOPSRCDIR就是之前说的mozilla-center目录,这样的配置就是说我们编译之后生成的目标目录在mozilla-center的上一级的以obj-开头,以版本号结尾的目录里。
  • mk_add_options MOZ_MAKE_FLAGS="-j4",表示编译的时候同时以4个线程进行,这样会比较快,如果你的CPU够快的话可以充分利用计算资源,我尝试过,加了这个参数之后30分钟,不加参数大概2个小时。
  • #ac_add_options --enable-debug
  • #ac_add_options --disable-optimize
  • 这两个参数是用于你在debug编译时使用的,我们不用,只希望编译的快一点。
  • #ac_add_options --disable-necko-wiki,这个参数是在如果你缺少一个关于wifi的库的话用于忽略的,但我试过,貌似没有起作用。我是用yum安装了这个库,库的名字不记得了,但编译信息中会有提示你。

4.最后就是编译了,很简单的命令,根windows里一样。

#make -f client.mk

但问题是,在check的时候可能会提示你缺少上文所说的wifi的库,我说过了,自己用yum装一个就行了。然后再重新执行这个编译命令。

 

5. 启动新的firefox。

编译之后的firefox在我的/usr/src/firefox/obj-i686-pc-linux-gnu/dist/bin/firefox的位置,双击以下就可以运行。

但问题来了,在我的机器上firefox在调用glib库的时候被SELinux拦了下来,我对Redhat搞的这个东西不太明白,索性关掉了,关闭的命令是

#setenforce 0

然后在运行firefox就OK了,以下是截图

 

界面上的改动不大,默认是根3.6一模一样的,但可以将标签栏和导航栏换个位置,截图中已经换了。

 

OK, the End.

 

本人新博客:tuoxie.me

  • 大小: 320.8 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics