step 6: GTK 移植

52、 fixesproto-4.0 = #18

tar jxf ../soft/fixesproto-4.0.tar.bz2
cd fixesproto-4.0
./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
make install

53、 xineramaproto-1.1.2 = #22

tar jxf ../soft/xineramaproto-1.1.2.tar.bz2
cd xineramaproto-1.1.2
./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
make install

54、 libXinerama-1.0.2

tar jxf ../soft/libXinerama-1.0.2.tar.bz2
cd libXinerama-1.0.2
./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes --enable-malloc0returnsnull
make all; make install

55、 libXfixes-4.0.3

tar jxf ../soft/libXfixes-4.0.3.tar.bz2
cd libXfixes-4.0.3
./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes
make all; make install

56、 libgpg-error-1.0

tar zxf ../soft/libgpg-error-1.0.tar.gz
cd libgpg-error-1.0
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/libgpg-error/libgpg-error-1.0/pkgconfig.patch
./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes
make all; make install

57、 libgcrypt-1.2.3

tar zxf ../soft/libgcrypt-1.2.3.tar.gz
cd libgcrypt-1.2.3

./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes --with-gpg-error-prefix=$PREFIX
#vi tests/Makefile
#修改line:127: 改为 LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
#        $(AM_LDFLAGS) $(LDFLAGS) -L${PREFIX}/lib -lgpg-error -o $@

make all; make install

58、 libXcomposite-0.4.0

tar jxf ../soft/libXcomposite-0.4.0.tar.bz2
cd libXcomposite-0.4.0
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/xorg-lib/libxcomposite/change-include-order.patch

./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes

make all; make install

59、 atk-1.20.0

tar jxf ../soft/atk-1.20.0.tar.bz2
cd atk-1.20.0
./configure --build=$BUILD --host=$HOST --prefix=$PREFIX --disable-glibtest --enable-static=yes --enable-shared=yes --disable-glibtest
make all; make install

60、 libXcursor-X11R7.2-1.1.8

tar jxf ../soft/libXcursor-X11R7.2-1.1.8.tar.bz2
cd libXcursor-X11R7.2-1.1.8
./configure --build=$BUILD --host=$HOST --prefix=$PREFIX --disable-glibtest --enable-static=yes --enable-shared=yes
make all; make install

61、 libXdamage-1.1.1

tar jxf ../soft/libXdamage-1.1.1.tar.bz2
cd libXdamage-1.1.1
./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes
make all; make install

62、 gtk+-2.12.7 可以考虑去掉 LD_LIBRARY_PATH 宏

tar jxf ../soft/gtk+-2.12.7.tar.bz2
cd gtk+-2.12.7

patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/xsettings.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/run-iconcache.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/disable-print.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/hardcoded_libtool.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/no-demos.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/filesystem-volumes.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/filechooser-props.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/filechooser-default.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/filechooser-sizefix.patch

patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/menu-deactivate.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/hardcoded_libtool.patch

cd gtk
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/cellrenderer-cairo.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/entry-cairo.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/toggle-font.diff

patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/range-no-redraw.patch
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/combo-arrow-size.patch

cd ../gdk/x11
patch -Np1 -i ${XROOT}/soft/patches/pinky-3.1.1/meta/packages/gtk+/gtk+-2.12.7/scrolled-placement.patch #需要输入gdkxsettings.c

cd gtk+-2.12.7

#修改 configure 添加
    #ac_cv_lib_jpeg_jpeg_destroy_decompress=yes
    #ac_cv_func_XOpenDisplay=yes
    #ac_cv_func_XextFindDisplay=yes
    #ac_cv_lib_jpeg_jpeg_simple_progression=yes
    #ac_cv_func_XRenderQueryExtension=yes
#改32579: { (exit 1); exit 1; }; }  为 }


BASE_DEPENDENCIES_CFLAGS="-I$PREFIX/include -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include/glib-2.0 -I$PREFIX/include/pango-1.0 -I$PREFIX/include/cairo -I$PREFIX/include/atk-1.0"
BASE_DEPENDENCIES_LIBS="-L$PREFIX/lib $PREFIX/lib/libglib-2.0.so $PREFIX/lib/libgobject-2.0.so $PREFIX/lib/libgmodule-2.0.so $PREFIX/lib/libfontconfig.so $PREFIX/lib/libxml2.so"
GLIB_CFLAGS="-I$PREFIX/include -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include/glib-2.0"
GLIB_LIBS="-L$PREFIX/lib $PREFIX/lib/libglib-2.0.so $PREFIX/lib/libgobject-2.0.so $PREFIX/lib/libgmodule-2.0.so $PREFIX/lib/libfontconfig.so $PREFIX/lib/libxml2.so"
PANGO_CFLAGS="-I$PREFIX/include/pango-1.0"
PANGO_LIBS="-L$PREFIX/lib $PREFIX/lib/libpango-1.0.so $PREFIX/lib/libpangoft2-1.0.so $PREFIX/lib/libpangocairo-1.0.so"
GDK_DEP_CFLAGS="-pthread -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include/pango-1.0 -I$PREFIX/include/cairo -I$PREFIX/include -D_REENTRANT -D_GNU_SOURCE "
GDK_DEP_LIBS="-L$PREFIX/lib -lpthread -ldl -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lpng12  -lXdmcp -lXau -lm"
GDK_PIXBUF_DEP_CFLAGS="-pthread -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include "
GDK_PIXBUF_DEP_LIBS="-L$PREFIX/lib -lgmodule-2.0 -ldl -lgobject-2.0 -lglib-2.0 -lpng12  -lXdmcp -lXau -lm"

GDK_PIXBUF_EXTRA_CFLAGS="-pthread -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include "
GDK_PIXBUF_EXTRA_LIBS="-L$PREFIX/lib -lgmodule-2.0 -ldl -lgobject-2.0 -lglib-2.0 -lpng12  -lXdmcp -lXau -lm"


GTK_DEP_CFLAGS="-pthread -I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include/pango-1.0 -I$PREFIX/include/cairo -I$PREFIX/include -D_REENTRANT -D_GNU_SOURCE -I$PREFIX/include/atk-1.0 "
GTK_DEP_LIBS="-L$PREFIX/lib -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lcairo  -lXdmcp -lXau-lpng12 -lm "
GDK_EXTRA_CFLAGS=""
GDK_EXTRA_LIBS="-L$PREFIX/lib -lz -lxml2 -lfreetype -lX11 -lXext -lXrender -lexpat -lcairo -lXdmcp -lXau"
X_CFLAGS="-I$PREFIX/include -I$PREFIX/lib/glib-2.0/include -I$PREFIX/include/glib-2.0 -I$PREFIX/include/pango-1.0 -I$PREFIX/include/cairo -I$PREFIX/include/atk-1.0"
X_LIBS="-L$PREFIX/lib -lz -lxml2 -lfreetype -lX11 -lXext -lXrender -lexpat -lcairo -lXdmcp -lXau"
INCROOT=$PREFIX/include
USRLIBDIR=$PREFIX/lib
LIBDIR=$PREFIX/lib

ac_cv_lib_jpeg_jpeg_destroy_decompress=yes ac_cv_func_XOpenDisplay=yes ac_cv_func_XextFindDisplay=yes ac_cv_lib_jpeg_jpeg_simple_progression=yes ac_cv_func_XRenderQueryExtension=yes ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes --without-libtiff --disable-xkb --disable-glibtest --with-gdktarget=x11 --with-xinput=yes --enable-display-migration --enable-pangocairo --x-libraries=${PREFIX}/libs --x-includes=${PREFIX}/includes --disable-cups --without-libjpeg

make all; make install

63、 libglade-2.6.3 //用于执行 glade或者 anjuta 作的UI界面或者代码

LD_LIBRARY_PATH=
tar zxf ../soft/libglade-2.6.3.tar.gz
cd libglade-2.6.3
./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes --disable-gtktest
make all; make install

step 7: 测试

  1. 准备好测试用的开发版和对应的 Linux 平台;

  2. 在 Linux 平台上部署库文件;
    即: 基础库 、XServer库 和 GTK库。
    其路径为工具栏的库位置:/usr/local/arm_4.2.1/tools/arm-linux/lib, 上面各编译安装位置: $XROOT/lib;

  3. 添加字体;
    拷贝本PC机上的 /usr/share/fonts/X11/ 目录下所有子目录拷贝到 $XROOT/fonts, [#38-xorg-server-1.3.0.0 配置中配置了此目录为X11的字体目录]或者有XFREE86.ORG提供的字体包。

  4. 启动XServer;
    执行Xfbdev,看看 XServer 的画面是否出现,mouse是否可以使用。

  5. fc-cache -f -v 把字体的cache载入内存,fc-list 确定字体是否有成功载入;
    cache的存放位置为 $fonts/var/cache/fontconfig

  6. 确认 $XROOT/lib/xserver/SecurityPolicy 文件存在;
    确认 $XROOT/etc/gtk-2.0/gdk-pixbuf.loaders 文件存在 { 通过 $XROOT/bin/gdk-pixbuf-query-loaders > gdk-pixbuf.loaders 来生成}
    确认 $XROOT/etc/pango/pango.modules 文件存在 { 通过 $XROOT/bin/pango-querymodules > pango.modules 来生成。此文件会把pango+modules的相关资料调入$XROOT/lib/pango/1.6.0/modules中}

  7. 测试步骤:

Xfbdev &
export DISPLAY=:0.0
gtk-demo

TinyX移植步骤之一,请访问: https://www.softool.cn/blog-138.html


来源:
https://blog.csdn.net/linuxarmsummary/article/details/22326719