2008年11月3日 星期一

SDL移植第一章

Cross 環境

作業系統: ubuntu 8.04
Cross_gcc版本:gcc4.2.1
測試版:arm926ej
*************************************************************************************************
原始碼下載網址:

http://www.libsdl.org/
http://www.libsdl.org/projects/
*************************************************************************************************
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.zlib-1.2.3(為製作libpng所需)

$CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR="arm-softfloat-linux-gnu-ar rc" ./configure --prefix=$PREFIX --shared
$make all
$make install
*************************************************************************************************
2.libpng-1.2.19 相依zlib(為製作cairo所需)

$CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ac_cv_lib_z_zlibVersion=yes ./configure --host=$HOST --build=$BUILD --prefix=$PREFIX --enable-shared=yes --enable-static=yes

edit Makefile
DEFAULT_INCLUDES = -I. -I$(srcdir) -I. -I$(PREFIX)/include
LIBS = -L$(PREFIX)/lib -lz -lm

$make all
$make install
*************************************************************************************************
3.jpeg-6b, http://www.ijg.org/files/jpegsrc.v6b.tar.gz

打 patch < ldflags.patch
patch -Np1 -i ldflags.patch

./ltconfig --disable-static --no-verify ltmain.sh arm-softfloat-linux-gnu

$CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-static=yes --enable-shared=yes

修改Makefile
CFLAGS= -O2 -I$(srcdir) -D_REENTRANT

$ make all
$ make install
$ make install-lib
$ make install-headers
*************************************************************************************************
4.tslib-1.0M的東西傳了N久也沒傳上去。
主機端安裝autoconf (automatic configure script builder)
主機端安裝automake
./autogen.sh

修改./etc/ts.conf 設成linux內部module_raw input

$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ac_cv_func_malloc_0_nonnull=yes ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-shared=yes --enable-static=yes --enable-ucb1x00=no --enable-corgi=no --enable-collie=no --enable-h3600=no --enable-mk712=no --enable-arctic2=no

$ make all
$ make install
*************************************************************************************************
5.libmad_0.15.1b
打 patch < add-pkgconfig.patch
patch -Np1 -i add-pkgconfig.patch
$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-fpm=arm -enable-speed --enable-shared

下次要用這一個(測試用)
$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-fpm=arm -enable-speed --enable-shared --enable-fpm=arm

$ make all
$ make install

*************************************************************************************************
6.libid3tag-0.15.1b
$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ac_cv_header_zlib_h=yes ac_cv_lib_z_compress2=yes ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD -enable-speed

edit Makefile
DEFAULT_INCLUDES = -I. -I$(srcdir) -I. -I$(PREFIX)/include
LIBS = -L$(PREFIX)/lib -lz

$ make all
$ make install
*************************************************************************************************
7.alsa-lib-1.0.15

$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --disable-python --enable-shared=yes --enable-static=yes

ps. 這個參數加下去, 好像會使得libasound找不到, 這次先不加
--with-softfloat

$ make all
$ make install
*************************************************************************************************
8.SDL-1.2.13

$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar LDFLAGS=-L/arm_lib_4.2.1/lib CFLAGS="-I/arm_lib_4.2.1/include" ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-directx=no --enable-stdio-redirect=no --disable-alsatest

2008/10/1號 因gnash測試不行故重編!!fb0
$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar LDFLAGS=-L/arm_lib_4.2.1/lib CFLAGS="-I/arm_lib_4.2.1/include" ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --enable-directx=no --enable-stdio-redirect=no --disable-alsatest --disable-video-x11-dpms --disable-video-photon --disable-video-carbon --disable-video-cocoa --enable-video-fbcon --disable-video-directfb --disable-video-ps2gs --disable-video-ggi --disable-video-svga --disable-video-vgl --disable-video-wscons --disable-video-aalib --disable-video-qtopia --disable-video-picogui --disable-video-xbios --disable-video-gem --disable-video-dummy --disable-video-opengl

//注意, SDL-1.2.13編不出來?? 用新的gcc可編成功 arm corss gcc-4.2.1

$ make all
$ make install

*************************************************************************************************
9.SDL_image-1.2.6

$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar LDFLAGS=-L/arm_lib_4.2.1/lib CFLAGS="-I/arm_lib_4.2.1/include" ac_cv_lib_png_png_create_read_struct=yes ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --with-sdl-exec-prefix=$PREFIX --enable-sdltest

//注意, 自我檢測找沒有libpng, 所以會關掉, 用ac_cv_lib_png_png_create_read_struct=yes強開??

$ make all
$ make install

*************************************************************************************************
10.SDL_mixer-1.2.8

$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar LDFLAGS=-L/arm_lib_4.2.1/lib CFLAGS="-I/arm_lib_4.2.1/include" ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --with-sdl-exec-prefix=$PREFIX --enable-sdltest

10/15 第二測試~因為跑sdl測試程式沒有聲音故更改以下設定
$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar LDFLAGS=-L/arm_lib_4.2.1/lib CFLAGS="-I/arm_lib_4.2.1/include" ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --with-sdl-exec-prefix=$PREFIX --disable-sdltest --enable-music-mp3-mad-gpl=yes --enable-music-mp3=no --disable-smpegtest

$ make all
$ make install
*************************************************************************************************
11.freetype-2.3.5 (做時會出現一個錯誤訊息~在CC完後打echo $? 出現0 則ok error mesage :make: Nothing to be done for `unix'.)

打兩個補丁patch -Np1 -i fix-x86_64-build.patch
patch -Np1 -i no-hardcode.patch

$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --without-zlib

$ make all
$ make install
*************************************************************************************************
12.SDL_ttf-2.0.9

$ CC=arm-softfloat-linux-gnu-gcc NM=arm-softfloat-linux-gnu-nm AR=arm-softfloat-linux-gnu-ar LDFLAGS=-L/arm_lib_4.2.1/lib CFLAGS="-I/arm_lib_4.2.1/include" ./configure --prefix=$PREFIX --host=$HOST --build=$BUILD --with-sdl-exec-prefix=$PREFIX --with-freetype-exec-prefix=$PREFIX --enable-sdltest

$ make all
$ make install

*************************************************************************************************

沒有留言: