久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    交叉編譯 Webkit (基于 GTK DFB )

     lifei_szdz 2012-05-10

    交叉編譯 Webkit (基于 GTK + DFB )

    最近為了將 webkit移植到arm上奮戰(zhàn)了2個(gè)多星期,才終于將近20個(gè)庫全部編譯成功。在這個(gè)過程中碰到了無數(shù)困難,而且網(wǎng)上的很多文章都有問題,即使能將 gtk勉強(qiáng)編譯成功,也無法使用,故在此將一些信息與需要的人分享。
    首先有些說明,為了將webkit裁剪的小些,編譯中很多功能都disable了,比如多線程。如果需要的人,可以仔細(xì)檢查每一個(gè) configure的選項(xiàng),將需要的功能enable。
    其次,此文中需要注意的是pango和gtk的install,本文中提到的olo是intel的arm的機(jī)頂盒,感興趣的同志可以找我:P。 因此directFB就有一些我們自己開發(fā)的東西,所以編譯過程就不放上來了。
    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

    r29711

     2.Prepare Working environment

    2.1.1     Source cross.sh

    You 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/pkgconfig:$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 "$ROOTFS_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/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 "$ROOTFS_DIR/usr/man" ]; then mkdir -p $ROOTFS_DIR/usr/man; fi;

    2.1.2     Build each components in dependency order

    All the components (libraries) need to build have internal dependency, we’d better build it as ordered below.

    2.1.2.1     Build zlib

    export ARCH=arm

    export CC=$ARCH-linux-gcc

    ./configure --prefix=$ROOTFS_DIR/usr --shared && make && make install

    2.1.2.2     Build libpng

    export 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=$ARCH-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 tiff

    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" && make && make install

    2.1.2.4     Build libtool

    export ARCH=arm

    CC=$ARCH-linux-gcc

    ./configure \

    --prefix=$ROOTFS_DIR/usr --build= i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux && make && make install

    2.1.2.5     Build Jpegb

    1.                                    

    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 Makefile, change the “LIBTOOL=./libtool” to “LIBTOOL=$(ROOTFS_DIR)/usr/bin/libtool”; make sure the “l(fā)ibtool” is in the PATH of local machine.

    make&&make install

    2.1.2.6     Build Freetype

    export 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" \

    LDFLAGS=-L$ROOTFS_DIR/usr/lib \

    LIBS=-lz && make && make install

    2.1.2.7     Build libxml

    export 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" \

    LDFLAGS=-L$ROOTFS_DIR/usr/lib \

    LIBS=-lz && make && make install

    2.1.2.8     Build fontconfig

    export 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-config && make && make install

    2.1.2.9     Build Olo DirectFB

    None

    2.1.2.10     Build glib

    export 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 ac_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 atk

    export ARCH=arm

    CC=$ARCH-linux-gcc

    ./configure \

    --prefix=$ROOTFS_DIR/usr --build= i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux && make && make install

    2.1.2.12     Build cairo

    export 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 --enable-freetype --enable-pdf --enable-ps --build= i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux && make && make install

    2.1.2.13     Build pango

    Change 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/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_PIXBUF_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 -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+ Envrionment

    cd /tftpboot/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.loaders

    cd –

    mkdir /etc/pango

    cd etc/pango/

    pango-querymodules >pango.modules

    /bin/gtk-demo

    2.1.2.16     Build ICU

    export 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-static --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/pkgdata bin

    rm lib/*so*

    make install

    2.1.2.17     Build libxslt

    export 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 libsqlite

    export 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 curl

    export ARCH=arm

    CC=$ARCH-linux-gcc ./configure \

    --prefix=$ROOTFS_DIR/usr --with-zlib=$ROOTFS_DIR/usr/ --build= i686-pc-linux-gnu --target=$ARCH-linux --host=$ARCH-linux && make && make install

    2.1.2.20     Build Webkit

    export 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

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲天堂av日韩精品| 国产初高中生视频在线观看| 丰满少妇被猛男猛烈进入久久| 搡女人真爽免费视频大全| 夜夜高潮夜夜爽国产伦精品| 中文字幕亚洲国产精品| 国产在线午夜不卡精品影院| 天天影视网色香欲综合网| 国产精品久久久久无码AV| 国产午夜A理论毛片| 7777精品久久久大香线蕉| 人妻蜜臀久久av不卡| 韩国V欧美V亚洲V日本V| 人妻少妇精品视频专区| 丰满少妇人妻HD高清大乳| 日本高清视频网站www| 成人片黄网站色大片免费观看 | 国产又爽又黄无码无遮挡在线观看 | 国产按头口爆吞精在线视频| 国产精品 视频一区 二区三区| 国产精品中文字幕观看| 少妇午夜啪爽嗷嗷叫视频| 少妇高潮喷水正在播放| 欧美午夜成人片在线观看| 欧美牲交a欧美牲交aⅴ图片| 国内精品伊人久久久久影院对白| 色爱综合另类图片av| 私人毛片免费高清影视院| 精品女同一区二区三区免费站| 日韩人妻系列无码专区| 久久精品一本到99热免费| 中文字幕亚洲一区二区三区| 亚洲中文字幕在线二页| 无码国产精品一区二区免费模式 | 久久国产精品成人影院| 欧美人成精品网站播放| 久久精品夜夜夜夜夜久久| 野外做受三级视频| 国产激情艳情在线看视频| 精品无码AV无码专区| 久久亚洲精品中文字幕波多野结衣|