2008年11月9日 星期日

Openmoko 手機軟體開發GTK+

Openmoko 手機軟體開發GTK+在Openmoko的軟體 需使用Pre-Built Toolchain來編譯 本篇是使用 GTK+ 開發環境
下載預先編譯好的 Toolchain
$cd ~/freerunner
$ wget http://downloads.openmoko.org/toolchains/openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2
切換至 ‘/’ (根目錄) 後直接解壓即可完成安裝
$ cd /
$ sudo tar jxvf ~/freerunner/openmoko-i686-arm-linux-gnueabitoolchain.tar.bz2
由 pre-built toolchain 裡取得第一個範例
$ cd ~/freerunner
$ cp -r /usr/local/openmoko/source/openmoko-sample2 ./
設定環境變數(Pre-built toolchain 裡己經寫好環境變數設定,可以直接引用。)
$ . /usr/local/openmoko/arm/setup-env
使用 pre-built toolchain 提供的 om-conf 來建立所須的設定檔
$ om-conf openmoko-sample2
未正確設定環境變數將無法執行 om-conf
Host 端可能需要額外的工具套件、請先行安裝補齊
$sudo apt-get install gnome-common
主要的程式放置於 openmoko-sample2/src 目錄下
使用 openmoko-sample2 裡的 autogen.sh 來產生 Makefile
$ cd openmoko-sample2
$ ./autogen.sh
編譯後打包成 Openmoko 所需的 ipk 格式
$ make
$ cd ..
$ om-make-ipkg openmoko-sample2
• 取得 ipk 套件後以 scp 方式安裝至手機
• 再 ssh 到手機上後以 ipkg 指令安裝套件
$ scp openmoko-sample2_0.1_armv4t.ipk root@192.168.0.202:
$ ssh root@192.168.0.202 opkg install openmoko-sample2_0.1_armv4t.ipk
安裝 Library 至 Toolchain這邊是使用 opkg-target 安裝套件至 pre-built toolchain $ cd /usr/lib
$ sudo ln -s libcurl.so.3 libcurl.so.4
$ sudo su -
# . /usr/local/openmoko/arm/environment-setup
# opkg-target update
# opkg-target install libevas-dev
# opkg-target install libetk-dev
# opkg-target install libts-dev
# exit
$
安裝完後~可以做個實驗!首先~下載這個lots-gameread-only的專案
$ svn checkout http://lots-game.googlecode.com/svn/trunk/lots-gameread-only
修改src/Makefile.am的內容~紅色的部份
INCLUDES = -I$(top_srcdir)
AM_CPPFLAGS = \
-DPKGDATADIR=\"$(pkgdatadir)\" \
-DTERMINAL_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
-DDATADIR=\""$(datadir)"\" -D_GNU_SOURCE
AM_CFLAGS = -Wall -pedantic -std=c99 @DEPENDENCIES_CFLAGS@
# add the name of your application
bin_PROGRAMS = game
# add the sources to compile for your application
game_SOURCES = \
game.c \
gs_read.c
game_LDADD = @DEPENDENCIES_LIBS@
MAINTAINERCLEANFILES = config.h.in Makefile.in
接著修改 configure.ac 紅色的部份
AC_PREREQ(2.53)
AC_INIT(lots-game, 0.0.1, http://www.openmoko.org/)
AM_INIT_AUTOMAKE()
AC_CONFIG_SRCDIR(src/game.c)
AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
...
dnl i18n support
GETTEXT_PACKAGE=AC_PACKAGE_NAME
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
...
PKG_CHECK_MODULES(DEPENDENCIES, evas etk)
AC_SUBST(DEPENDENCIES)
AC_OUTPUT([
Makefile
src/Makefile
data/Makefile
po/Makefile.in
])
最後把 lots-game 編譯成ipk檔..就能放到手機內安裝..
$ ./autogen.sh --host=arm-linux
$ make
$ cd..
$ om-make-ipkg lots-gameread-read-only 
會產生一個 lots-gameread-read-only_0.1_armv4t.ipk

沒有留言:

張貼留言