昨日に引き続き、stlportだけではいろいろ足りないという方の為に、
今回はstlportにboostを乗せてしまいます。

はじめに断っておきますが、Androidのlibc++は、例外とrttiをサポートして
いませんので、-fnoexceptionsと-fnorttiのオプションが必ず付くように
なっています。
boostを有効にすることによって、-fexceptionsと-frttiで、これを打ち消さなくては
なりません。
このへんは十分検証しきれていませんので、あくまでビルドは出来ます
という程度にお考え下さい。

まずはstlportの、
stlport/stl/config/user_config.hの_STLP_USE_BOOST_SUPPORTを
有効にします。

そして、昨日の例だと、BOOSTのtarボール内のboostディレクトリを丸ごと
android-ndk-r3/apps/hogehoge/project/jni/stlport/stlport/boost
としてコピーします。
ちなみに使用したのは、boost_1_42_0.tar.bz2というファイル名になります。

boost側も若干修正が必要ですが、私は強引に通してしまったところが
あり、ちょっとまだ検証しきれていのでいませんので、内容に関しては
またいつか書くかもしれませんし、書かないかもしれません、、

最後に、Android.mkを書く際に、LOCAL_CFLAGSは以下のようになります。

LOCAL_CFLAGS += -I$(LOCAL_PATH)/stlport/stlport \
-mandroid --sysroot=build/platforms/android-5/arch-arm \
-fuse-cxa-atexit -fvisibility=hidden \
-D__SGI_STL_INTERNAL_PAIR_H \
-D__SGI_STL_PORT \
-D_GNU_SOURCE \
-fexceptions -frtti

stlport以外のライブラリ等からstlportを使う際にも、3行目と6行目以外は
必要かもしれません。

最後の行は、-fexceptionsと-frttiです。
最初に書いたとおり、-fnoを打ち消します。