Changeset 5620


Ignore:
Timestamp:
Jul 5, 2017 4:01:33 AM (2 years ago)
Author:
riza
Message:

Fix #1968: Failure in configure-android when specifying --use-ndk-cflags with
Android NDK r13 or later.

Location:
pjproject/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/configure-android

    r5499 r5620  
    2727  echo "                   Each grepped flag that satisfies the criteria will" 
    2828  echo "                   be ignored. Default:" 
    29   echo "                   IGNORE_CFLAGS=\"\-M\|\-f*stack\|\-f*alias\"" 
     29  echo "                   IGNORE_CFLAGS=\"\-M\|\-f*stack\|\-f*alias\|\-\<g\>\"" 
    3030  echo "                   Only used when --use-ndk-cflags is specified." 
    3131  echo "" 
     
    5959  shift 
    6060  ADD_CFLAGS="1" 
     61  ADD_NDK_TOOLCHAIN="0" 
     62  ADD_NDK_TARGET="0" 
    6163  if test "x${IGNORE_CFLAGS}" = "x"; then 
    62     IGNORE_CFLAGS="\-M\|\-f*stack\|\-f*alias" 
     64    IGNORE_CFLAGS="\-M\|\-f*stack\|\-f*alias\|\-\<g\>" 
    6365  fi 
    6466   
     
    7476    exit 1 
    7577  fi 
     78 
     79  echo "=====" 
     80  echo "NDK_OUT : ${NDK_OUT}" 
     81  echo "=====" 
    7682 
    7783  for i in $NDK_OUT; do 
     
    8591      NDK_CXXFLAGS="${NDK_CXXFLAGS} $i" 
    8692    fi 
    87  
    8893    # Parse NDK CFLAGS 
    8994    if test "x${NDK_CC}" != "x" -a "x`echo $i|grep 'dummy'`" = "x" -a "${ADD_CFLAGS}" = "1"; then 
    9095      if test "$i" = "-c"; then ADD_CFLAGS="0"; else 
    9196        if test "x`echo $i|grep ${IGNORE_CFLAGS}`" = "x"; then 
     97          if test "${ADD_NDK_TOOLCHAIN}" = "0" -a "x`echo $i|grep '\-gcc-toolchain'`" != "x"; then 
     98            ADD_NDK_TOOLCHAIN="1" 
     99          elif test "${ADD_NDK_TARGET}" = "0" -a "x`echo $i|grep '\-target'`" != "x"; then           
     100            ADD_NDK_TARGET="1" 
     101          elif test "${ADD_NDK_TOOLCHAIN}" = "1"; then 
     102            NDK_TOOLCHAIN="$i" 
     103            ADD_NDK_TOOLCHAIN="2" 
     104          elif test "${ADD_NDK_TARGET}" = "1"; then 
     105            NDK_TARGET="$i" 
     106            ADD_NDK_TARGET="2" 
     107          fi 
    92108          NDK_CFLAGS="${NDK_CFLAGS} $i" 
    93109        fi 
    94110      fi 
    95111    fi 
    96  
    97     # Find gcc toolchain 
    98     if test "x${NDK_CC}" = "x" -a "x`echo $i | grep 'gcc'`" != "x"; then 
    99       NDK_CC=$i 
     112    # Find gcc or clang toolchain 
     113    if test "x${NDK_CC}" = "x"; then 
     114      if test "x`echo $i | grep 'gcc'`" != "x" -o "x`echo $i | grep 'clang'`" != "x"; then 
     115        NDK_CC=$i 
     116      fi 
    100117    fi 
    101118    # Find g++ toolchain 
     
    104121    fi 
    105122  done 
     123 
     124  echo "NDK_CC : ${NDK_CC}" 
    106125 
    107126  # Get target host from NDK toolchain dir name 
     
    117136  fi 
    118137 
     138  # Set the binutils 
     139  if test "x${NDK_TOOLCHAIN}" = "x"; then 
     140    export AR=`echo ${NDK_CXX}|sed 's/-g++/-ar/'`; 
     141    export RANLIB=`echo ${NDK_CXX}|sed 's/-g++/-ranlib/'`; 
     142    export LDFLAGS="${LDFLAGS} --sysroot=${ANDROID_SYSROOT}" 
     143  else 
     144    #export AR="${NDK_TOOLCHAIN}/bin/${NDK_TARGET}-ar" 
     145    #export RANLIB="${NDK_TOOLCHAIN}/bin/${NDK_TARGET}-ranlib" 
     146    TARGET_HOST="arm-linux-androideabi" 
     147    export LDFLAGS="${LDFLAGS} --sysroot=${ANDROID_SYSROOT} -target ${NDK_TARGET} -gcc-toolchain ${NDK_TOOLCHAIN}" 
     148  fi   
     149 
    119150  export TARGET_ABI="${TARGET_ABI}" 
    120151  export CC="${NDK_CC}" 
    121152  export CXX="${NDK_CXX}" 
    122   export AR=`echo ${NDK_CXX}|sed 's/-g++/-ar/'`; 
    123   export RANLIB=`echo ${NDK_CXX}|sed 's/-g++/-ranlib/'`; 
    124  
    125   export LDFLAGS="${LDFLAGS} --sysroot=${ANDROID_SYSROOT}" 
     153 
    126154  export LIBS="${LIBS} -lc -lgcc -ldl" 
    127155  export CFLAGS="${NDK_CFLAGS} ${CFLAGS}" 
     
    173201# Note: STL for pjsua2 sample app is specified in pjsip-apps/src/swig/java/android/jni/Application.mk 
    174202 
    175 # gnustl 
    176 STDCPP_TC_VER=`ls -d ${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/[0-9]* | sort -gr | head -1` 
    177 STDCPP_CFLAGS="-I${STDCPP_TC_VER}/include -I${STDCPP_TC_VER}/libs/${TARGET_ABI}/include" 
    178 STDCPP_LIBS="-lgnustl_static" 
    179 STDCPP_LDFLAGS="-L${STDCPP_TC_VER}/libs/${TARGET_ABI}/" 
     203if test "x${NDK_TOOLCHAIN}" = "x"; then 
     204  # gnustl 
     205  STDCPP_TC_VER=`ls -d ${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/[0-9]* | sort -gr | head -1` 
     206  STDCPP_CFLAGS="-I${STDCPP_TC_VER}/include -I${STDCPP_TC_VER}/libs/${TARGET_ABI}/include" 
     207  STDCPP_LIBS="-lgnustl_static" 
     208  STDCPP_LDFLAGS="-L${STDCPP_TC_VER}/libs/${TARGET_ABI}/" 
     209else 
     210  # llvm 
     211  STDCPP_TC="${ANDROID_NDK_ROOT}/sources/cxx-stl/llvm-libc++" 
     212  STDCPP_CFLAGS="-I${STDCPP_TC}/include" 
     213  STDCPP_LIBS="-lc++_static -lc++abi" 
     214  STDCPP_LDFLAGS="-L${STDCPP_TC}/libs/${TARGET_ABI}/" 
     215fi 
    180216 
    181217# stlport 
  • pjproject/trunk/pjsip-apps/build/Samples.mak

    r4815 r5620  
    5151PJSUA2_SAMPLES := pjsua2_demo 
    5252 
     53ifeq ($(findstring android,$(TARGET_NAME)),) 
    5354EXES := $(foreach file, $(SAMPLES), $(file)$(HOST_EXE)) 
    5455PJSUA2_EXES := $(foreach file, $(PJSUA2_SAMPLES), $(file)$(HOST_EXE)) 
     56endif 
    5557 
    5658.PHONY: $(EXES) 
Note: See TracChangeset for help on using the changeset viewer.