交叉编译Webkit.doc

上传人:啊飒飒 文档编号:11699875 上传时间:2021-08-31 格式:DOC 页数:8 大小:64.50KB
返回 下载 相关 举报
交叉编译Webkit.doc_第1页
第1页 / 共8页
交叉编译Webkit.doc_第2页
第2页 / 共8页
交叉编译Webkit.doc_第3页
第3页 / 共8页
交叉编译Webkit.doc_第4页
第4页 / 共8页
交叉编译Webkit.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《交叉编译Webkit.doc》由会员分享,可在线阅读,更多相关《交叉编译Webkit.doc(8页珍藏版)》请在三一文库上搜索。

1、交叉编译 Webkit (基于 GTK + DFB )最近为了将webkit移植到arm上奋战了2个多星期,才终于将近20个库全部编译成功。在这个过程中碰到了无数困难,而且网上的很多文章都有问题,即使能将gtk勉强编译成功,也无法使用,故在此将一些信息与需要的人分享。首先有些说明,为了将webkit裁剪的小些,编译中很多功能都disable了,比如多线程。如果需要的人,可以仔细检查每一个configure的选项,将需要的功能enable。其次,此文中需要注意的是pango和gtk的install,本文中提到的olo是intel的arm的机顶盒,感兴趣的同志可以找我:P。因此directFB就有

2、一些我们自己开发的东西,所以编译过程就不放上来了。1.需要的库Name Version Zlib 1.2.3 Libpng 1.2.10 Tiff 3.8.2 Libtool 1.5.24 Jpegb V6b Freetype 2.1.10 Libxml 2.6.30 Fontconfig 2.4.2 Olo directFB In PDK Glib 2.12.0 Atk 1.20.0 Cairo 1.4.2 Pango 1.16.2 Gtk+ 2.10.1 ICU 4c-3-6 Libxslt 1.1.22 Libsqlite 3.5.6 Curl 7.18.0 Webkt r297112.

3、Prepare Working environment 2.1.1 Source cross.shYou can find cross.sh under root directory of subversion. Below gives one example, you can do modification as you need. export WORK_DIR=pwd mkdir -p $WORK_DIR/rootfs export ROOTFS_DIR=$WORK_DIR/rootfs export PKG_CONFIG_PATH=$ROOTFS_DIR/usr/local/lib/p

4、kgconfig:$ROOTFS_DIR/usr/lib/pkgconfig if ! -e $ROOTFS_DIR/usr/local/include ; then mkdir -p $ROOTFS_DIR/usr/local/include;fi; if ! -e $ROOTFS_DIR/usr/local/lib ; then mkdir -p $ROOTFS_DIR/usr/local/lib; fi; if ! -e $ROOTFS_DIR/usr/local/etc ; then mkdir -p $ROOTFS_DIR/usr/local/etc; fi; if ! -e $RO

5、OTFS_DIR/usr/local/bin ; then mkdir -p $ROOTFS_DIR/usr/local/bin; fi; if ! -e $ROOTFS_DIR/usr/local/share ; then mkdir -p $ROOTFS_DIR/usr/local/share; fi; if ! -e $ROOTFS_DIR/usr/local/man ; then mkdir -p $ROOTFS_DIR/usr/local/man; fi; if ! -e $ROOTFS_DIR/usr/include ; then mkdir -p $ROOTFS_DIR/usr/

6、include; fi; if ! -e $ROOTFS_DIR/usr/lib ; then mkdir -p $ROOTFS_DIR/usr/lib; fi; if ! -e $ROOTFS_DIR/usr/etc ; then mkdir -p $ROOTFS_DIR/usr/etc; fi; if ! -e $ROOTFS_DIR/usr/bin ; then mkdir -p $ROOTFS_DIR/usr/bin; fi; if ! -e $ROOTFS_DIR/usr/share ; then mkdir -p $ROOTFS_DIR/usr/share; fi; if ! -e

7、 $ROOTFS_DIR/usr/man ; then mkdir -p $ROOTFS_DIR/usr/man; fi; 2.1.2 Build each components in dependency orderAll the components (libraries) need to build have internal dependency, wed better build it as ordered below. 2.1.2.1 Build zlibexport ARCH=arm export CC=$ARCH-linux-gcc ./configure -prefix=$R

8、OOTFS_DIR/usr -shared & make & make install 2.1.2.2 Build libpngexport ARCH=arm CC=$ARCH-linux-gcc rm -rf ./$ARCH-linux.cache echo ac_cv_fnuc_malloc_O_nonull=yes$ARCH-linux.cache ./configure -cache-file=$ARCH-linux.cache -prefix=/$ROOTFS_DIR/usr -build= i686-pc-linux-gnu -host=$ARCH-linux -target=$A

9、RCH-linux CFLAGS=-I/$ROOTFS_DIR/usr/include LIBS=-L/$ROOTFS_DIR/usr/lib -lz Comment the “#define malloc rpl_malloc” line in config.h. Otherwise, when build pango, it will report can not find rpl_malloc. make & make install 2.1.2.3 Build tiffexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROO

10、TFS_DIR/usr -enable-shared -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux CFLAGS=-I$ROOTFS_DIR/usr/include LIBS=-L$ROOTFS_DIR/usr/lib -lz & make & make install 2.1.2.4 Build libtoolexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -build= i686-pc-linux-gnu -targ

11、et=$ARCH-linux -host=$ARCH-linux & make & make install 2.1.2.5 Build Jpegb1. export ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -enable-shared -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux CFLAGS=-I$ROOTFS_DIR/usr/include LIBS=-L$ROOTFS_DIR/usr/lib -lz Edit Make

12、file, change the “LIBTOOL=./libtool” to “LIBTOOL=$(ROOTFS_DIR)/usr/bin/libtool”; make sure the “libtool” is in the PATH of local machine. make&make install 2.1.2.6 Build Freetypeexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -build= i686-pc-linux-gnu -target=$ARCH-linux -host

13、=$ARCH-linux CFLAGS=-I$ROOTFS_DIR/usr/include LDFLAGS=-L$ROOTFS_DIR/usr/lib LIBS=-lz & make & make install 2.1.2.7 Build libxmlexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux CFLAGS=-I$ROOTFS_DIR/usr/include LDFLA

14、GS=-L$ROOTFS_DIR/usr/lib LIBS=-lz & make & make install 2.1.2.8 Build fontconfigexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -enable-libxml2 -with-arch=$ARCH -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux -with-freetype-config=$ROOTFS_DIR/usr/bin/freetype-c

15、onfig & make & make install 2.1.2.9 Build Olo DirectFBNone2.1.2.10 Build glibexport ARCH=arm CC=$ARCH-linux-gcc echo ac_cv_type_long_long=yes$ARCH-linux.cache echo glib_cv_long_long_format=ll$ARCH-linux.cache echo glib_cv_stack_grows=no$ARCH-linux.cache echo glib_cv_uscore=no$ARCH-linux.cache echo a

16、c_cv_func_posix_getpwuid_r=yes$ARCH-linux.cache ./configure -prefix=$ROOTFS_DIR/usr -cache-file=$ARCH-linux.cache -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux & make & make install 2.1.2.11 Build atkexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -build= i68

17、6-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux & make & make install 2.1.2.12 Build cairoexport ARCH=arm CC=$ARCH-linux-gcc export CFLAGS=-I/opt/gui/include export LDFLAGS=-L$ROOTFS_DIR/usr/lib ./configure -prefix=$ROOTFS_DIR/usr -enable-directfb -disable-xlib -disable-win32 -enable-png -enabl

18、e-freetype -enable-pdf -enable-ps -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux & make & make install 2.1.2.13 Build pangoChange the configure file as below: then do the build script export ARCH=arm CC=$ARCH-linux-gcc export LDFLAGS=-L$ROOTFS_DIR/usr/lib -Wl,-rpath=$ROOTFS_DIR/usr/

19、lib export FREETYPE_CONFIG=$ROOTFS_DIR/usr/bin/freetype-config ./configure -prefix=$ROOTFS_DIR/usr -build= i686-pc-linux-gnu -with-arch=$ARCH -without-x -target=$ARCH-linux -host=$ARCH-linux & make & make install 2.1.2.14 Build gtk+ Delete below lines in gtk/Makefile.am and gtk/Makefile.in GDK_PIXBU

20、F_MODULE_FILE=$(top_builddir)/gdk-pixbuf/gdk-pixbuf.loaders ./gtk-update-icon-cache -force -ignore-theme-index -source builtin_icons stock-icons gtkbuiltincache.h cp gtkbuiltincache.h(if need, pls leave your email addr) ./gtk/ export ARCH=arm CC=$ARCH-linux-gcc export LDFLAGS=-L$ROOTFS_DIR/usr/lib -

21、Wl,-rpath=$ROOTFS_DIR/usr/lib -ljpeg ./configure -prefix=$ROOTFS_DIR/usr -with-gdktarget=directfb -without-x -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux CFLAGS=-I$ROOTFS_DIR/usr/include CPPFLAGS=-I$ROOTFS_DIR/usr/include & make & make install 2.1.2.15 Setup Gtk+ Envrionmentcd /tf

22、tpboot/mediabuild cp /usr/share/fonts/ usr/share/ -r cp $ROOTFS_DIR/usr/* /tftpboot/mediabuild -r boot olo, and follow demands should be run on olo mkdir p xxx (the same as $ROOTFS_DIR/usr in your local machine) cd xxx ln s /* . mkdir /etc/gtk-2.0 cd etc/gtk-2.0 gdk-pixbuf-query-loaders gdk-pixbuf.l

23、oaders cd mkdir /etc/pango cd etc/pango/ pango-querymodules pango.modules /bin/gtk-demo 2.1.2.16 Build ICUexport ARCH=arm CC=gcc ./configure -enable-static -disable-shared make cp -r bin bin.linux cp -r data data.linux cp -r tools tools.linux make distclean CC=$ARCH-linux-gcc ./configure -enable-sta

24、tic -enable-shared -host=$ARCH-linux -prefix=$ROOTFS_DIR/usr/ make #will fail: /bin/sh: ./bin/icupkg: cannot execute binary file cp -r bin bin.$ARCH cp -r data data.$ARCH cp -r bin.linux/* bin cp -r data.linux/* data make rm bin/uconv make cp bin/uconv bin.$ARCH cp bin.$ARCH/* bin cp bin.linux/pkgda

25、ta bin rm lib/*so* make install 2.1.2.17 Build libxsltexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux without-crypto -with-libxml -with-libxml-prefix=$ROOTFS_DIR/usr & make & make install 2.1.2.18 Build libsqlitee

26、xport ARCH=arm CC=$ARCH-linux-gcc ./configure -enable-releasemode -prefix=$ROOTFS_DIR/usr -build= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux & make & make install 2.1.2.19 Build curlexport ARCH=arm CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -with-zlib=$ROOTFS_DIR/usr/ -build

27、= i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux & make & make install 2.1.2.20 Build Webkitexport ARCH=arm export LDFLAGS=-L$ROOTFS_DIR/usr/lib -Wl,-rpath=$ROOTFS_DIR/usr/lib CC=$ARCH-linux-gcc ./configure -prefix=$ROOTFS_DIR/usr -with-webkit-target=directfb -without-x -build=i686-pc-linux-gnu -target=$ARCH-linux -host=$ARCH-linux CFLAGS=-I$ROOTFS_DIR/usr/include CPPFLAGS=-I$ROOTFS_DIR/usr/include icu_config=$ROOTFS_DIR/usr/ & make If failed information is about “u_charType_3_6”, modify libJavaScriptCore.la by adding -licui18n to dependency_libs. make install

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1