Port gtk2.12.9 with directfb1.4.17 as backend for arm (21M on board)

I have all the tar packages in netdisk gtk_dfb_arm_src.tar.xz

I download them from below links: 

http://ftp.gnome.org/pub/gnome/sources

glib-2.19.0 :ftp://ftp.gtk.org/pub/glib/2.19/
pango-1.20.2 :http://ftp.gnome.org/pub/gnome/sources/pango/1.20/ 
gtk+-2.12.9 :http://ftp.gnome.org/pub/gnome/sources/gtk+/2.12/

tslib: https://github.com/kergoth/tslib.git
DirectFB-1.4.17 :http://www.directfb.org/downloads/

zlib-1.2.3 :http://www.zlib.net/ 
jpegsrc.v6b :ftp://ftp.gtk.org/pub/gtk/v2.10/dependencies/ (http://sourceforge.net/projects/libjpeg/files/libjpeg/6b/)
freetype-2.3.7 :http://freetype.sourceforge.net/index2.html    

fontconfig-2.6.0 :http://www.fontconfig.org/release/
libxml2-2.6.31 :http://xmlsoft.org/sources/ (/linux/gnome.org/sources/libxml2/2.6)

I test this project in my qemu-mini2440 virtual board.

I write a build.sh file as below to do all the build work, this is also a list or a procedure. I make a directory in /tmp path to build this project, boost building speed and protect my SSD disk.

#!/bin/sh
export SRCDIR=$(pwd) export PREFIX=/opt/gtk_dfb_arm export PATH=$PATH:$PREFIX/bin export C_INCLUDE_PATH=$PREFIX/include export LD_LIBRARY_PATH=$PREFIX/lib export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig export LDFLAGS=-L$LD_LIBRARY_PATH export CFLAGS=-I$PREFIX/include export MK="make -j4" export MK_INS="make install" # http://downloads.sourceforge.net/project/giflib/giflib-5.1.0.tar.bz2 # http://downloads.sourceforge.net/project/libpng/libpng12/1.2.44/libpng-1.2.44.tar.xz # http://ftp.gnome.org/pub/gnome/sources/atk/1.12/atk-1.12.2.tar.bz2 # http://cairographics.org/releases/cairo-1.12.18.tar.xz # http://cairographics.org/releases/pixman-0.18.4.tar.gz # http://linux.thai.net/pub/thailinux/software/libthai/libthai-0.1.21.tar.xz # http://linux.thai.net/pub/thailinux/software/libthai/libdatrie-0.2.8.tar.xz tar xf atk-1.12.2.tar.bz2 tar xf cairo-1.12.18.tar.xz tar xf DirectFB-1.4.17.tar.gz tar xf fontconfig-2.6.0.tar.gz tar xf freetype-2.3.7.tar.gz tar xf giflib-5.1.0.tar.bz2 tar xf glib-2.19.0.tar.gz tar xf gtk+-2.12.9.tar.gz tar xf jpegsrc.v6b.tar.gz tar xf libdatrie-0.2.8.tar.xz tar xf libpng-1.2.44.tar.gz tar xf libthai-0.1.21.tar.xz tar xf libxml2-2.6.30.tar.gz tar xf pango-1.20.2.tar.gz tar xf pixman-0.18.4.tar.gz tar xf tslib.tar.xz tar xf zlib-1.2.3.tar.gz sudo mkdir -p $PREFIX sudo chmod a+rw $PREFIX # tslib cd $SRCDIR/tslib ./autogen.sh echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache $MK $MK_INS # giflib cd $SRCDIR/giflib-5.1.0 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX $MK $MK_INS # libjpeg cd $SRCDIR/jpeg-6b CC=arm-linux-gcc AR="arm-linux-ar rc" AR2=arm-linux-ranlib ./configure --host=arm-linux --prefix=$PREFIX mkdir $PREFIX/man mkdir $PREFIX/man/man1 $MK $MK_INS $MK_INS-lib # zlib cd $SRCDIR/zlib-1.2.3 CC=arm-linux-gcc ./configure --prefix=$PREFIX -shared $MK $MK_INS #libpng-1.2.44 cd $SRCDIR/libpng-1.2.44 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX $MK $MK_INS #freetype2 cd $SRCDIR/freetype-2.3.7 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX $MK $MK_INS # DirectFB-1.4.17 cd $SRCDIR/DirectFB-1.4.17 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --with-gfxdrivers=none --enable-png --enable-jpeg --enable-gif --enable-zlib --enable-sdl=no --disable-x11 --with-inputdrivers=all --enable-debug --enable-trace --with-tests $MK $MK_INS #glib-2.19.0 cd $SRCDIR/glib-2.19.0 echo ac_cv_type_long_long=yes>arm-linux.cache echo glib_cv_stack_grows=no>>arm-linux.cache echo glib_cv_uscore=no>>arm-linux.cache echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache echo ac_cv_func_posix_getgrgid_r=yes>>arm-linux.cache CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache --enable-debug=no $MK $MK_INS #atk-1.12.2 cd $SRCDIR/atk-1.12.2 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX $MK $MK_INS #libxml2-2.6.30 cd $SRCDIR/libxml2-2.6.30 echo ac_cv_type_long_long=yes>arm-linux.cache CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache $MK $MK_INS #build pass at archlinux 32bit, fail on opensuse 64bit #fontconfig-2.6.0 cd $SRCDIR/fontconfig-2.6.0 export LIBXML2_CFLAGS=-I$PREFIX/include/libxml2 export LIBXML2_LIBS="-L$PREFIX/lib -lxml2" CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --with-freetype-config=$PREFIX/bin/freetype-config --with-arch=arm --enable-libxml2 --enable-shared $MK $MK_INS cp fontconfig $PREFIX/include -r #pixman-0.18.4 cd $SRCDIR/pixman-0.18.4 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --disable-gtk $MK $MK_INS #cairo-1.12.18 #cairo 1.12 , need pixman>=0.16 cd $SRCDIR/cairo-1.12.18 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --without-x --disable-xlib --disable-xlib-xrender --enable-directfb --enable-freetype --disable-win32 --enable-pdf --enable-ps --disable-svg --enable-png --enable-ft --disable-xcb-shm --disable-xcb $MK $MK_INS #libdatrie-0.2.8 cd $SRCDIR/libdatrie-0.2.8 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX $MK $MK_INS #libthai-0.1.21 cd $SRCDIR/libthai-0.1.21 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX $MK $MK_INS #pango-1.20.2 cd $SRCDIR/pango-1.20.2 echo have_cairo=true>>arm-linux.cache echo have_cairo_png=true>>arm-linux.cache echo have_cairo_ps=true>>arm-linux.cache echo have_cairo_pdf=true>>arm-linux.cache echo have_cairo_freetype=true>>arm-linux.cache export CAIRO_CFLAGS="-fno-strict-aliasing -I$PREFIX/include/cairo -I$PREFIX/include/fontconfig -I$PREFIX/include -I$PREFIX/include/pixman-1 -I$PREFIX/include/freetype2 -I$PREFIX/include/libpng12" export CAIRO_LIBS="-L$PREFIX/lib -lcairo" export GLIB_CFLAGS="-I$PREFIX/include -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include" export GLIB_LIBS="-L$PREFIX/lib -lgobject-2.0 -lgmodule-2.0 -lglib-2.0" export FONTCONFIG_CFLAGS="-I$PREFIX/include/fontconfig -I$PREFIX/include" export FONTCONFIG_LIBS="-L$PREFIX/lib -lfontconfig" export FREETYPE_CFLAGS="-I$PREFIX/include/freetype2 -I$PREFIX/include" export FREETYPE_LIBS="-L$PREFIX/lib -lfreetype -lz" export FREETYPE_CONFIG="${PREFIX}/bin/freetype-config" export CAIRO_PREFIX=$prefix CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache --without-x $MK $MK_INS #gtk+-2.12.9 cd $SRCDIR/gtk+-2.12.9 export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib" export CPPFLAGS="-I$PREFIX/include" CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --with-gdktarget=directfb --without-x --without-libtiff --disable-cups $MK $MK_INS

 

mv /opt/gtk_dfb_arm to root filesystem /opt/opt/gtk_dfb_arm

then add .directfbrc to root filesystem $HOME/.directfbrc content as below

# .directfbrc
system=fbdev fbdev=/dev/fb0 mode=240x320 depth=16 pixelformat=RGB16 # print info,warining,error,once # quiet=info # for send text output at remote with: "socat - udp4-listen:8088,fork" #Send all messages via UDP to the specified host and port. ## log-udp=192.168.1.110:8088 # debug ## debug

 

The /etc/profile in root filesystem 

#!/bin/sh
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none

# gtk-directfb
export GUILIB=/opt/gtk_dfb_arm
export PATH=$PATH:$GUILIB/bin

 

Use direct test to test dfb functioning correct. use "dfbtest_window_cursor" test a very nice cursor show in board's screen.

/# dfbtest_window_cursor

 If use "--input-drivers=" not have keyboard, will error when open gtk-demo(DirectFBError [gdk_display_open: GetDisplayLayer]: Requested ID not found!), so better to let it =all

(-) [Main Thread       0.935] (  970) Fusion/Skirmish:                    fusion_skirmish_dismiss( 0x48f38, 'Layer Context' )
(-) [Main Thread       0.936] (  970) IDirectFB:          IDirectFB_GetInputDevice( 0x48c20, 0 )
(#) DirectFBError [gdk_display_open: GetDisplayLayer]: Requested ID not found!

(gtk-demo:970): Gtk-WARNING **: cannot open display:

 Then, let's test gtk-demo

/# gtk-demo&

WOW! It shows!

But the fonts have been missed, whatever, I succeed.Well done!

The gtk-demo message, I have some issue:

(gtk-demo:979): GLib-WARNING **: getpwuid_r(): failed due to unknown user id (0)
commandline read: gtk-demo

   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.4.17 |~~~~~~~~~~~~~~~~~~~~~~~~~~
        (c) 2001-2012  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2015-01-07 03:05) [ DEBUG ][ TRACE ]
(*) Direct/Memcpy: Using libc memcpy()
(*) Direct/Thread: Started 'VT Switcher' (-1) [CRITICAL OTHER/OTHER 0/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (-1) [DEFAULT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/FBDev: Found 's3c2410fb' (ID 0) with frame buffer at 0x33940000, 150k (MMIO 0x00000000, 0k)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver 
(*) Direct/Thread: Started 'PS/2 Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: IMPS/2 Mouse (1) 1.0 (directfb.org)
(*) Direct/Thread: Started 'PS/2 Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: IMPS/2 Mouse (2) 1.0 (directfb.org)
(*) Direct/Thread: Started 'Keyboard Input' (-1) [INPUT OTHER/OTHER 0/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) FBDev/Mode: Setting 240x320 RGB16
(*) FBDev/Mode: Switched to 240x320 (virtual 240x320) at 16 bit (RGB16), pitch 480
(*) FBDev/Mode: Setting 240x320 RGB16
(*) FBDev/Mode: Switched to 240x320 (virtual 240x320) at 16 bit (RGB16), pitch 480
(*) Direct/Thread: Started 'EventBufferFeed' (987) [MESSAGING OTHER/OTHER 0/0] <8388608>...

(gtk-demo:979): GdkPixbuf-WARNING **: Cannot open pixbuf loader module file '/opt/gtk_dfb_arm/etc/gtk-2.0/gdk-pixbuf.loaders': No such file or directory

(gtk-demo:979): Pango-CRITICAL **: No fonts found:
This probably means that the fontconfig
library is not correctly configured. You may need to
edit the fonts.conf configuration file. More information
about fontconfig can be found in the fontconfig(3) manual
page and on http://fontconfig.org  

(gtk-demo:979): Pango-CRITICAL **: No modules found:
No builtin or dynamically loaded modules were found.
PangoFc will not work correctly.
This probably means there was an error in the creation of:
  '/opt/gtk_dfb_arm/etc/pango/pango.modules'
You should create this file by running:
  pango-querymodules > '/opt/gtk_dfb_arm/etc/pango/pango.modules'

(gtk-demo:979): Pango-WARNING **: failed to find shape engine, expect ugly output. engine-type='PangoRenderFc', script='latin'

To fix the items, should make some new files in board

/ # gdk-pixbuf-query-loaders > '/opt/gtk_dfb_arm/etc/gtk-2.0/gdk-pixbuf.loaders'
/ # pango-querymodules > '/opt/gtk_dfb_arm/etc/pango/pango.modules'

and copy my "wenquanyi" fonts(wenquanyi) to board,

# mkdir -p /path/to/rootfs/fonts/
# cp -r /usr/share/fonts/wenquanyi /path/to/rootfs/fonts/

then modify the font.conf file on board,

<!-- $PREFIX/etc/fonts/font.conf -->
<?xml version="1.0"?>                                                                                                          
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">                                                                                       
<!-- /etc/fonts/fonts.conf file to configure system font access -->                                                            
<fontconfig>

<!-- Font directory list -->

        <dir>/opt/gtk_dfb_arm/fonts</dir>

 Test fonts on board using fc-list, fc-list will make cache in the $PREFIX/var directory, this makes application run faster(save time to search fonts).

/ # fc-list 
WenQuanYi Micro Hei Mono Light,文泉驛等寬微米黑,文泉驿等宽微米黑:style=Light
WenQuanYi Bitmap Song:style=Bold
WenQuanYi Micro Hei Mono,文泉驛等寬微米黑,文泉驿等宽微米黑:style=Regular
WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑:style=Regular
WenQuanYi Micro Hei,文泉驛微米黑,文泉驿微米黑:style=Regular
WenQuanYi Bitmap Song:style=Regular
WenQuanYi Micro Hei Light,文泉驛微米黑,文泉驿微米黑:style=Light
WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑:style=Regular
WenQuanYi Zen Hei Sharp,文泉驛點陣正黑,文泉驿点阵正黑:style=Regular

 

Make a hello gtk window and test again.

#include<gtk/gtk.h>

int main(int argc,char *argv[])
{
        GtkWidget    *window;
        GtkWidget       *btn;

        gtk_init(&argc,&argv);

        window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

        btn =gtk_button_new_with_label("Hello World! Your's Kozmers.");
        gtk_container_add(GTK_CONTAINER(window),btn);


        gtk_widget_show_all(window);

        g_signal_connect(btn,"clicked",gtk_main_quit,NULL);

        gtk_main();

        return 0;
}

 

$ arm-linux-gcc -o hellogtk hello.c -L$PREFIX/lib -lts -Wl,--rpath-link $PREFIX/lib `pkg-config --cflags --libs gtk+-2.0`

To let tslib functioned with hellogtk, should add "-L$PREFIX/lib -lts" even the directfb lib has dynamically load tslib, but it cannot share it to the application hellogtk, so, every application using directfb want to use tslib should add  "-L$PREFIX/lib -lts" again when compile. This is very important.

 

Now, run my hello, hehe, "Hello World!" shows up. Well done. All finished. Thanks!

                           

 

Gtk running needs a lot memory, it's neccessory that set  "mem=xxM" in the kernel boot command line like this: (less memory will cause "Segmentation fault" even when use "dfbinfo" to test directfb start status)

noinitrd console=ttySAC0 init=/linuxrc root=/dev/mtdblock3 rw mem=64M

To optimize the size of all the libraries, I made another build process configuration list. This only produces 22M size gtk supported files (includes bin/,lib/ and etc/; without include/,man/ and share/)

#!/bin/sh
export SRCDIR=$(pwd)
export MAINDIR=gtk_dfb_arm
export PREFIX=/opt/$MAINDIR
export PATH=$PATH:$PREFIX/bin
export C_INCLUDE_PATH=$PREFIX/include
export LD_LIBRARY_PATH=$PREFIX/lib
export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig
export LDFLAGS=-L$LD_LIBRARY_PATH
export CFLAGS=-I$PREFIX/include
export MK="make -j4"
export MK_INS="make install"

# http://downloads.sourceforge.net/project/giflib/giflib-5.1.0.tar.bz2
# http://downloads.sourceforge.net/project/libpng/libpng12/1.2.44/libpng-1.2.44.tar.xz
# http://ftp.gnome.org/pub/gnome/sources/atk/1.12/atk-1.12.2.tar.bz2
# http://cairographics.org/releases/cairo-1.12.18.tar.xz
# http://cairographics.org/releases/pixman-0.18.4.tar.gz
# http://linux.thai.net/pub/thailinux/software/libthai/libthai-0.1.21.tar.xz
# http://linux.thai.net/pub/thailinux/software/libthai/libdatrie-0.2.8.tar.xz


tar xf atk-1.12.2.tar.bz2
tar xf cairo-1.12.18.tar.xz
tar xf DirectFB-1.4.17.tar.gz
tar xf fontconfig-2.6.0.tar.gz
tar xf freetype-2.3.7.tar.gz
tar xf giflib-5.1.0.tar.bz2
tar xf glib-2.19.0.tar.gz
tar xf gtk+-2.12.9.tar.gz
tar xf jpegsrc.v6b.tar.gz
tar xf libdatrie-0.2.8.tar.xz
tar xf libpng-1.2.44.tar.gz
tar xf libpng-1.6.16.tar.xz
tar xf libthai-0.1.21.tar.xz
tar xf libxml2-2.6.30.tar.gz
tar xf pango-1.20.2.tar.gz
tar xf pixman-0.18.4.tar.gz
tar xf tslib-1.4.tar.gz
tar xf zlib-1.2.3.tar.gz

sudo mkdir -p $PREFIX
sudo chmod a+rw $PREFIX




stty -echo
# tslib-1.4
cd $SRCDIR/tslib
./autogen.sh

echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache
$MK
$MK_INS

# giflib
cd $SRCDIR/giflib-5.1.0
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX
$MK
$MK_INS

# libjpeg
cd $SRCDIR/jpeg-6b
CC=arm-linux-gcc AR="arm-linux-ar rc" AR2=arm-linux-ranlib ./configure --host=arm-linux --prefix=$PREFIX
mkdir $PREFIX/man
mkdir $PREFIX/man/man1
$MK
$MK_INS
$MK_INS-lib


# zlib
cd $SRCDIR/zlib-1.2.3
CC=arm-linux-gcc ./configure --prefix=$PREFIX -shared
$MK
$MK_INS

#libpng-1.2.44 
cd $SRCDIR/libpng-1.2.44
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX
$MK
$MK_INS


#libpng-1.6.16 
cd $SRCDIR/libpng-1.6.16
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX
$MK
$MK_INS


#freetype2
cd $SRCDIR/freetype-2.3.7
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX \
--without-fsspec --without-fsref --without-quickdraw-toolbox --without-quickdraw-carbon
--without-ats
$MK
$MK_INS

cd $SRCDIR/DirectFB-1.4.17
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX \
--enable-png --enable-jpeg --enable-gif --enable-zlib \
--enable-sdl=no --disable-x11 \
--with-inputdrivers=tslib,keyboard --with-gfxdrivers=none \
--disable-debug-support --disable-network \
--disable-mmx --disable-sse --disable-devmem --enable-fbdev \
--disable-vnc --disable-sysfs --disable-linotype --disable-video4linux \
--without-setsockopt
$MK
$MK_INS


#glib-2.19.0
cd $SRCDIR/glib-2.19.0
echo ac_cv_type_long_long=yes>arm-linux.cache
echo glib_cv_stack_grows=no>>arm-linux.cache
echo glib_cv_uscore=no>>arm-linux.cache
echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache
echo ac_cv_func_posix_getgrgid_r=yes>>arm-linux.cache
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache --enable-debug=no
$MK
$MK_INS

#atk-1.12.2
cd $SRCDIR/atk-1.12.2
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX
$MK
$MK_INS

#libxml2-2.6.30
cd $SRCDIR/libxml2-2.6.30
echo ac_cv_type_long_long=yes>arm-linux.cache
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX \
--cache-file=arm-linux.cache \
--disable-ipv6 --without-c14n --without-catalog --without-debug \
--without-fexceptions --without-ftp --without-history --without-http \
--without-iso8859x --without-push  \
--without-shemas --without-schematron --with-zilib
$MK
$MK_INS

#fontconfig-2.6.0
cd $SRCDIR/fontconfig-2.6.0
export LIBXML2_CFLAGS=-I$PREFIX/include/libxml2
export LIBXML2_LIBS="-L$PREFIX/lib -lxml2"
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX \
--with-freetype-config=$PREFIX/bin/freetype-config --with-arch=arm  \
--enable-libxml2 --disable-docs --without-expat
$MK
$MK_INS
cp fontconfig $PREFIX/include -r

#pixman-0.18.4
cd $SRCDIR/pixman-0.18.4
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX \
--disable-gtk --disable-mmx --disable-sse2 --disable-vmx
$MK
$MK_INS


#cairo-1.12.18
#cairo 1.12 , need pixman>=0.16
cd $SRCDIR/cairo-1.12.18
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX \
--without-x --disable-xlib --disable-xlib-xrender \
--disable-xcb-shm --disable-xcb \
 --disable-win32 --disable-win32-font --disable-quartz --disable-quartz-font \
--enable-directfb --enable-freetype \
--enable-png --enable-ft \
--disable-gtk-doc-html --disable-trace\
--disable-valgrind --disable-egl --disable-glx --disable-wgl \
--enable-pdf --enable-ps --disable-svg --disable-full-testing
$MK
$MK_INS

#libdatrie-0.2.8
cd $SRCDIR/libdatrie-0.2.8
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX
$MK
$MK_INS

#libthai-0.1.21
cd $SRCDIR/libthai-0.1.21
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX
$MK
$MK_INS

 
#pango-1.20.2
cd $SRCDIR/pango-1.20.2
echo have_cairo=true>>arm-linux.cache
echo have_cairo_png=true>>arm-linux.cache
echo have_cairo_ps=true>>arm-linux.cache
echo have_cairo_pdf=true>>arm-linux.cache
echo have_cairo_freetype=true>>arm-linux.cache
export CAIRO_CFLAGS="-fno-strict-aliasing -I$PREFIX/include/cairo -I$PREFIX/include/fontconfig -I$PREFIX/include -I$PREFIX/include/pixman-1 -I$PREFIX/include/freetype2 -I$PREFIX/include/libpng12"
export CAIRO_LIBS="-L$PREFIX/lib -lcairo"
export GLIB_CFLAGS="-I$PREFIX/include -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include"
export GLIB_LIBS="-L$PREFIX/lib -lgobject-2.0 -lgmodule-2.0 -lglib-2.0"
export FONTCONFIG_CFLAGS="-I$PREFIX/include/fontconfig -I$PREFIX/include"
export FONTCONFIG_LIBS="-L$PREFIX/lib -lfontconfig"
export FREETYPE_CFLAGS="-I$PREFIX/include/freetype2 -I$PREFIX/include"
export FREETYPE_LIBS="-L$PREFIX/lib -lfreetype -lz"
export FREETYPE_CONFIG="${PREFIX}/bin/freetype-config"
export CAIRO_PREFIX=$prefix
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX  \
--cache-file=arm-linux.cache --without-x
$MK
$MK_INS

#gtk+-2.12.9
cd $SRCDIR/gtk+-2.12.9
export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"
export CPPFLAGS="-I$PREFIX/include"
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX \
--with-gdktarget=directfb --without-x --without-libtiff --disable-cups \
--disable-xkb --disable-xinerama --disable-glibtest \
--without-xinput --without-html-dir
$MK
$MK_INS


stty echo

cp -r $PREFIX /tmp/
rm `find /tmp/$MAINDIR -name "*.la"`
rm `find /tmp/$MAINDIR -name "*.a"`

rm /tmp/$MAINDIR/include /tmp/$MAINDIR/man /tmp/$MAINDIR/share
du -hd1 /tmp/$MAINDIR

 

  2.0M gtk_dfb_arm/bin
  19M gtk_dfb_arm/lib
  148K gtk_dfb_arm/etc
  21M gtk_dfb_arm

 

posted @ 2015-01-06 15:01  Kozmers  阅读(775)  评论(0编辑  收藏  举报