개발

boost 라이브러리 안드로이드용 arm 및 x86 빌드

다크슈나이더 2014. 1. 13. 10:48


*우분투 LST 에서만 테스트 되었음.

user-config.jam 파일.


import os ;  

  

if [ os.name ] = CYGWIN || [ os.name ] = NT  

{  

    androidPlatform = windows ;  

}  

else if [ os.name ] = LINUX  

{  

    androidPlatform = linux-x86_64 ;  

}  

else if [ os.name ] = MACOSX  

{  

    androidPlatform = darwin-x86 ;  

}  



modules.poke : NO_BZIP2 : 1 ;  

ANDROID_NDK = ../.. ;  

using gcc : arm :  

$(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.6/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-g++ :  

<compileflags>--sysroot=$(ANDROID_NDK)/platforms/android-9/arch-arm  

<compileflags>-mthumb  

<compileflags>-Os  

<compileflags>-fno-strict-aliasing  

<compileflags>-O2  

<compileflags>-DNDEBUG  

<compileflags>-g  

<compileflags>-lstdc++  

<compileflags>-I$(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/4.6/include  

<compileflags>-I$(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include  

<compileflags>-D__GLIBC__  

<compileflags>-DBOOST_NO_INTRINSIC_WCHAR_T  

<compileflags>-DBOOST_FILESYSTEM_VERSION=2  

<archiver>$(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.6/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-ar  

<ranlib>$(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.6/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-ranlib  

;  



using gcc : x86 :

$(ANDROID_NDK)/toolchains/x86-4.6/prebuilt/$(androidPlatform)/bin/i686-linux-android-g++ :

<archiver>$(ANDROID_NDK)/toolchains/x86-4.6/prebuilt/$(androidPlatform)/bin/i686-linux-android-ar

<ranlib>$(ANDROID_NDK)/toolchains/x86-4.6/prebuilt/$(androidPlatform)/bin/i686-linux-android-ranlib

<compileflags>--sysroot=$(ANDROID_NDK)/platforms/android-9/arch-x86

<compileflags>-fexceptions

<compileflags>-frtti

<compileflags>-fpic

<compileflags>-ffunction-sections

<compileflags>-funwind-tables

<compileflags>-fomit-frame-pointer

<compileflags>-fstrict-aliasing

<compileflags>-funswitch-loops

<compileflags>-finline-limit=300

<compileflags>-Wa,--noexecstack

<compileflags>-DANDROID

<compileflags>-D__ANDROID__

<compileflags>-DNDEBUG

<compileflags>-O2

<compileflags>-g

<architecture>x86

<compileflags>-I$(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/4.6/include

<compileflags>-I$(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include

<compileflags>-fvisibility=hidden

<compileflags>-fvisibility-inlines-hidden

<compileflags>-fdata-sections

<cxxflags>-D_REENTRANT

<cxxflags>-D_GLIBCXX__PTHREADS

;



//ARM 빌드.

b2 --without-python --without-serialization threading=multi link=static runtime-link=static toolset=gcc-arm target-os=linux threadapi=pthread --stagedir=stage_arm


//X86 빌드.

b2 --without-python --without-serialization threading=multi link=static runtime-link=static toolset=gcc-x86 target-os=linux threadapi=pthread --stagedir=stage_x86