(2016.4.1更新)
GTKのGUIアプリを作ろうと思って、Armadillo-440のGUIサンプルアプリ"functester"を流用することを考えました。
参考)
ここでは、ATDE3での手順を説明してます。ATDE5での手順は下記を参考ください。
Armadillo-440:GTKのGUIサンプリアプリ(functester)を単独でビルドする(ATDE5版)
動作確認にあたって、ソースコードの ~/atmark-dist/vendors/AtmarkTechno/Armadillo-440/functester を単独でビルドできると便利なので、その方法を検討しましたところ、 Makefileの修正で実現できましたので、その方法を下記に説明します。 (ちなみに、functesterディレクトリ内で単にmakeするとエラーになります。)
ポイントは、下記の2点でした。
・コンパイラにarm-linux-gnueabi-gccを指定。
Armadillo実践開発ガイド第2部 6.1.2.1. プレフィックスより抜粋。
作業用PC上でARM向けにクロスコンパイルする際にはarm-linux-gnueabi-gccを使用します。
このコマンド名の前に付いているarm-linux-gnueabi-の部分を、プレフィックス(前頭詞)といいます。
・pkgconfigのパスの指定。
Armadillo実践開発ガイド第2部 図6.18 dispcsv2のためのMakefileより抜粋。
指定されたCROSS(=アーキテクチャ名)からPKGCONFIG_LIBDIRを作っています。
これが、目的のクロス環境pkgconfig情報があるパスになります。
このPKGCONFIG_LIBDIRが定義された状態でpkg-configコマンドを実行すると、
CFLAGS用のオプション(-I<dir>のヘッダファイルパス)や、LIBS(ライブラリ名)を教えてくれるのです。
1.任意のディレクトリにfunctesterをコピーする
(以降、functesterをホームディレクトリにコピーする場合で説明します。)
[atde ~]$ cp -r ~/atmark-dist/vendors/AtmarkTechno/Armadillo-440/functester ~/
2.コピーしたfunctesterディレクトリ内のMakefileを変更する
[atde ~]$ cd functester
[atde ~/functester]$ gedit Makefile
で、エディタでMakefileを開いて、
CFLAGS += $(shell pkg-config --cflags gtk+-2.0)
LDFLAGS += $(shell pkg-config --libs gtk+-2.0)
CFLAGS += -O2 -Wall
の箇所を
CROSS := arm-linux-gnueabi
CROSS_PREFIX := $(CROSS)-
PKGCONFIG_LIBDIR := PKG_CONFIG_PATH=/usr/$(CROSS)/lib/pkgconfig
CC = $(CROSS_PREFIX)gcc
CFLAGS += -O2 -Wall -Wextra -I../common
CFLAGS += `$(PKGCONFIG_LIBDIR) pkg-config --cflags gtk+-2.0`
LDFLAGS += `$(PKGCONFIG_LIBDIR) pkg-config --libs gtk+-2.0`
に変更します。
CROSS := arm-linux-gnueabi
の箇所がコンパイラのプレフィックスの指定で、
PKGCONFIG_LIBDIR := PKG_CONFIG_PATH=/usr/$(CROSS)/lib/pkgconfig
の箇所がpkgconfigのパスの指定になっています。
上記の変更により、
[atde ~/functester]$ make
で、functesterが単独でビルドできました。