2013年9月3日 星期二

Static gtk+-2.17.2 + Directfb cross compile on Ubuntu

In Ubuntu 10.4 Desktop and "root" login

apt-get install build-essential libncurses5-dev

apt-get install autoconf

apt-get install libtool

apt-get install gettext

apt-get install libglib2.0-dev

apt-get install libgtk2.0-dev

cd zlib-1.2.3

//zlib-1.2.3


make clean

export PREFIX=/usr/x11dfb

export LDFLAGS=-L$PREFIX/lib

export CFLAGS="-I$PREFIX/include"

export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

./configure --prefix=$PREFIX

make

make install

cd ..

cd glib-2.24.1


//ps:default static


//glib 2.24.1

make clean

export PREFIX=/usr/x11dfb

export LDFLAGS=-L$PREFIX/lib

export CFLAGS="-g -I$PREFIX/include"

export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

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

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no --cache-file=arm-linux.cache

make

make install

cd ..

cd atk-1.30.0

//atk 1.30.0

make clean

export LDFLAGS=-L$PREFIX/lib

export CFLAGS="-g -I$PREFIX/include"

export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

make

make install

cd ..

cd jpeg-6b

//jpeg6b

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

mkdir $PREFIX/man

mkdir $PREFIX/man/man1

make

make install

make install-lib

cd ..

cd libpng-1.2.33

//libpng expat freetype libxml2

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

make

make install

cd ..

cd expat-2.0.1

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

make

make install

cd ..

cd freetype-2.3.7

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

make

make install

cd ..

cd libxml2-2.6.31

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

make

make install

cd ..

cd fontconfig-2.6.0

//fontconfig-2.6.0

make clean

export LIBXML2_CFLAGS=-I$PREFIX/include/libxml2

export LIBXML2_LIBS="-L$PREFIX/lib -lxml2"

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no --with-freetype-config=$PREFIX/bin/freetype-config

make

make install

cd ..

cd tiff-3.7.4


//tiff-3.7.4

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

make

make install

cd ..

cd DirectFB-1.3.0

//DirectFB-1.3.0

make clean

export PREFIX=/usr/x11dfb

export LDFLAGS=-L$PREFIX/lib

export CFLAGS="-I$PREFIX/include"

export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no --enable-sysfs=no --enable-mmx=no --enable-sse=no --enable-x11=no --enable-multi=no --enable-fbdev=yes --enable-sdl=no --with-gfxdrivers=none --enable-freetype=yes --enable-zlib=yes --enable-png=yes --enable-gif=no --enable-jpeg=no --enable-tiff=no

make

make install

cd ..

cd pixman-0.12.0

//pixman-0.12.0

make clean

export PKG_CONFIG_LIBDIR="$PREFIX/lib/pkgconfig"

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no

make

make install

cd ..

cd cairo-1.8.10

//cairo-1.8.10

export PREFIX=/usr/x11dfb

export LDFLAGS=-L$PREFIX/lib

export CFLAGS="-I$PREFIX/include"

export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no --enable-directfb=yes --without-x --enable-xlib=no --enable-xlib-xrender=no --enable-win32=no --enable-win32-font=no --enable-ft=yes --enable-png=yes --enable-pdf=yes --enable-ps=yes

make

make install

cd ..

cd pango-1.24.5


//pango-1.24.5
//have_cairo=true
//have_cairo_png=true
//have_cairo_ps=true
//have_cairo_pdf=true
//have_cairo_xlib=false
//have_cairo_freetype=true

make clean

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no --without-x --with-included-modules=basic-fc

make

make install

cd ..

cd gtk+-2.17.2

In gdkwindow-directfb.c mark two lines

while (tmp_list)
{
//#ifdef DIRECT_ENABLE_DEBUG
GdkWindowImplDirectFB *wimpl = GDK_WINDOW_IMPL_DIRECTFB (private->impl);
//#endif

modify gtk+-2.17.2/perf/marshalers.c
//void _gtk_marshal_OBJECT__VOID

modify configure
*** Can't link to Pango. Pango is required to build
*** GTK+. For more information see http://www.pango.org" >&2;}
{ (exit 1); exit 1; }; }
to
{ (echo 1); echo 1; }; }

make clean

export PREFIX=/usr/x11dfb

export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"

export CFLAGS="-I$PREFIX/include"

export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

echo gio_can_sniff=yes>arm-linux.cache

echo ac_cv_path_GTK_UPDATE_ICON_CACHE=/usr/bin/gtk-update-icon-cache>>arm-linux.cache

echo ac_cv_path_GDK_PIXBUF_CSOURCE=/usr/bin/gdk-pixbuf-csource>>arm-linux.cache

./configure --prefix=$PREFIX --enable-static=yes --enable-shared=no --with-gdktarget=directfb --without-x --without-libtiff --without-libjpeg --without-libjasper --disable-glibtest --with-included-immodules=am-et,cedilla,cyrillic-translit,inuktitut,ipa,multipress,thai,ti-er,ti-et,viqr --with-included-loaders=ani,bmp,ico,icns,pcx,png,gif,pnm,ras,tga,wbmp,xbm,xpm --cache-file=arm-linux.cache

make

make install



Rember add follows in gtk-demo makefile
FBDEV_OBJS = /usr/ubuntufb/lib/directfb-1.3-0/wm/libdirectfbwm_default.o\
/usr/ubuntufb/lib/directfb-1.3-0/systems/libdirectfb_fbdev.o\
/usr/ubuntufb/lib/directfb-1.3-0/inputdrivers/libdirectfb_linux_input.o\
/usr/ubuntufb/lib/directfb-1.3-0/inputdrivers/libdirectfb_keyboard.o\
/usr/ubuntufb/lib/directfb-1.3-0/inputdrivers/libdirectfb_ps2mouse

gtk-demo$(EXEEXT): $(gtk_demo_OBJECTS) $(gtk_demo_DEPENDENCIES)
@rm -f gtk-demo$(EXEEXT)
$(LINK) $(gtk_demo_LDFLAGS) $(gtk_demo_OBJECTS) $(gtk_demo_LDADD) $(LIBS) $(FBDEV_OBJS)


If want to make more faster, remove follows

gtk+-2.17.2/makefile.in
SRC_SUBDIRS = gdk-pixbuf gdk gtk modules demos tests perf contrib
remove tests perf contrib

gtk+-2.17.2/gtk/makefile.in
SUBDIRS = theme-bits . tests
DIST_SUBDIRS = theme-bits tests
remove . tests and tests

gtk+-2.17.2_f/demos/Makefile.in
PROGRAMS = $(noinst_PROGRAMS)
remove $(noinst_PROGRAMS)

gedit /usr/ubuntufb/etc/directfbrc or gedit userhome/.directfbrc
system=FBDev
fbdev=/dev/fb0
wm=default
mode=800x600
depth=32
pixelformat=ARGB

沒有留言:

張貼留言