2008年11月4日 星期二

第一章 libX11 移植




*******************************************************************************************************************
部份原始碼下載網址:

http://xorg.freedesktop.org/releases/X11R7.3/src/

ftp://ftp.qtopia.org.cn/mirror/ftp.x.org/pub/

http://altruistic.lbl.gov/mirrors/gnome/platform/2.20/2.20.0/sources/

http://mirror.hentges.net/SonkeiSourceMirror/raw/git/anongit.freedesktop.org.git.xorg.proto.calibrateproto/master/git/
*******************************************************************************************************************
Patch下載:

至http://www.pokylinux.org/ 下載 pinky-3.1.1
在/pinky-3.1.1/meta/packages 各目錄中有所屬的patch可用(請自行參考服用)
svn co http://svn.o-hand.com/repos/poky/trunk poky
*******************************************************************************************************************
Cross 環境

作業系統: ubuntu 8.04
Cross_gcc版本:gcc4.2.1
測試版:arm926ej
*******************************************************************************************************************
Cross環境設定

$export PREFIX=/mnt/sd/arm_lib_4.2.1
$export LD_LIBRARY_PATH=$PREFIX/lib
$export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig
$export HOST=arm-softfloat-linux-gnu
$export BUILD=i686-linux
*******************************************************************************************************************
1.inputproto-1.4.2.1

$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
$make install
*******************************************************************************************************************
2.kbproto-1.0.3

$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
$make install
*******************************************************************************************************************
4.xproto-7.0.10

$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
$make install
*******************************************************************************************************************
5.xextproto-7.0.2

$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
$make install
*******************************************************************************************************************
6.xcmiscproto-1.1.2

$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
$make install
*******************************************************************************************************************
7.xf86bigfontproto-1.1.2

$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
$make instal
*******************************************************************************************************************
8.xtrans-X11R7.2-1.0.3

打 patch -Np1 -i fix-missing-includepath.patch
$ CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD
$ make install
*******************************************************************************************************************
9.libXau-1.0.3

相依 Xproto
$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-static=yes --enable-shared=yes --enable-malloc0returnsnull
$make all
*******************************************************************************************************************
10.libXdmcp-1.0.2

$CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-static=yes --enable-shared=yes --enable-malloc0returnsnull
$make all
$make install
*******************************************************************************************************************
11.util-macros-1.1.5

打 patch -Np1 -i unbreak_cross_compile.patch

$CC=arm-softfloat-linux-gnu-gcc ./configure --build=$BUILD --host=$HOST --prefix=$PREFIX
$make install
*******************************************************************************************************************
12.libX11-1.1.2

打 patch -Np1 -i include_fix.patch
patch -Np1 -i x11_disable_makekeys.patch

CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-static=yes --enable-shared=yes --enable-malloc0returnsnull --without-xcb --with-keysymdef=$PREFIX/include/X11/keysymdef.h



修改./src/Makefile 註解掉下面的東西(注意!! 這個是configure產生的, 除非妳改過, 不然每次configure都要改)

ks_tables.h: $(KEYSYMDEF) $(top_builddir)/src/util/makekeys$(EXEEXT)
1246 # $(top_builddir)/src/util/makekeys < $(KEYSYMDEF) > ks_tables_h
1247# mv ks_tables_h $@

把先前做好的ks_tables.h放在./src 下面(注意!! 如果下make clean預設會把他清掉, 需要再次確定)
作法, 不cross做一次然後拿這個出來cross或是cross作好makekeys 放進目標板中 執行makekeys <> ks_tables_h

$make all
$make install