Created
July 11, 2012 18:42
-
-
Save qrtt1/3092282 to your computer and use it in GitHub Desktop.
ndk-path-helper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
PREFIX=./OUTPUT | |
ADDITIONAL_CONFIGURE_FLAG= | |
MY_NDK_LIB=/Users/qrtt1/app/NDKs/android-ndk-r8/platforms/android-9/arch-mips/usr/lib | |
MY_NDK_INCLUDE=/Users/qrtt1/app/NDKs/android-ndk-r8/platforms/android-9/arch-mips/usr/include | |
MY_NDK_CC_PREFIX=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/mipsel-linux-android-4.4.3/prebuilt/darwin-x86/bin/mipsel-linux-android- | |
MY_NDK_CC=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/mipsel-linux-android-4.4.3/prebuilt/darwin-x86/bin/mipsel-linux-android-gcc | |
MY_NDK_LIBGCC=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/mipsel-linux-android-4.4.3/prebuilt/darwin-x86/lib/gcc/mipsel-linux-android/4.4.3/libgcc.a | |
export CC=$MY_NDK_CC | |
export CFLAGS="-I$MY_NDK_INCLUDE -g -std=c99 -O3 -fpic -DANDROID -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " | |
export LDFLAGS="-Wl,-rpath-link=$MY_NDK_LIB -L$MY_NDK_LIB -nostdlib -lc -lm -ldl -llog" | |
export CPP="$MY_NDK_CC -I$MY_NDK_INCLUDE -E" | |
./configure \ | |
--disable-gtktest \ | |
--host=mips \ | |
--disable-frontend \ | |
--disable-decoder \ | |
--enable-shared=libmp3lame \ | |
--prefix=`pwd`/android | |
make install | |
"$MY_NDK_CC_PREFIX"ld -rpath-link=$MY_NDK_LIB -L$MY_NDK_LIB -soname libmp3lame.so \ | |
-shared -nostdlib -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o libmp3lame.so \ | |
libmp3lame/*.o \ | |
-lc -lm -lz -ldl -llog --warn-once --dynamic-linker=/system/bin/linker \ | |
$MY_NDK_LIBGCC |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
from os.path import join | |
def main(ndk_home, arch, api_level): | |
env = {} | |
for root, dirs, files in os.walk(ndk_home): | |
for file in files: | |
if "toolchains" in root and "gcc" in file and "bin" in root and len(file) > len("gcc") and file.endswith("gcc") and arch in root: | |
path_to_gcc = os.path.join(root, file) | |
path_to_gcc_prefix = path_to_gcc[0:len(path_to_gcc) - len("gcc")] | |
env['MY_NDK_CC'] = path_to_gcc | |
env['MY_NDK_CC_PREFIX'] = path_to_gcc_prefix | |
if arch in root and "libgcc.a" in file and file.endswith("libgcc.a"): | |
short_prefix = path_to_gcc_prefix[:-1].split('/')[-1] | |
# x86 case | |
if "86" in arch and "86" not in short_prefix: | |
continue | |
if not env.has_key('MY_NDK_LIBGCC') and short_prefix in root: | |
env['MY_NDK_LIBGCC'] = os.path.join(root, file) | |
for dir in dirs: | |
if "platforms" in root and "/usr" in root and "lib" in dir and arch in root and api_level in root: | |
env['MY_NDK_LIB'] = os.path.join(root, dir) | |
if "platforms" in root and "/usr" in root and "include" in dir and arch in root and api_level in root: | |
env['MY_NDK_INCLUDE'] = os.path.join(root, dir) | |
for k, v in env.iteritems(): | |
print "%s=%s" % (k, v) | |
if __name__ == "__main__": | |
print "cc for arm" | |
main("/Users/qrtt1/app/android-ndk-r6b", "arm", "android-8") | |
print "cc for mips" | |
main("/Users/qrtt1/app/NDKs/android-ndk-r8", "mips", "android-9") | |
print "cc for i686" | |
main("/Users/qrtt1/app/NDKs/android-ndk-r8", "x86", "android-9") | |
""" | |
qty:android-ndk-r6b qrtt1$ python my_ndk_tool.py | |
cc for arm | |
MY_NDK_LIB=/Users/qrtt1/app/android-ndk-r6b/platforms/android-8/arch-arm/usr/lib | |
MY_NDK_INCLUDE=/Users/qrtt1/app/android-ndk-r6b/platforms/android-8/arch-arm/usr/include | |
MY_NDK_CC_PREFIX=/Users/qrtt1/app/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi- | |
MY_NDK_CC=/Users/qrtt1/app/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-gcc | |
MY_NDK_LIBGCC=/Users/qrtt1/app/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a | |
cc for mips | |
MY_NDK_LIB=/Users/qrtt1/app/NDKs/android-ndk-r8/platforms/android-9/arch-mips/usr/lib | |
MY_NDK_INCLUDE=/Users/qrtt1/app/NDKs/android-ndk-r8/platforms/android-9/arch-mips/usr/include | |
MY_NDK_CC_PREFIX=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/mipsel-linux-android-4.4.3/prebuilt/darwin-x86/bin/mipsel-linux-android- | |
MY_NDK_CC=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/mipsel-linux-android-4.4.3/prebuilt/darwin-x86/bin/mipsel-linux-android-gcc | |
MY_NDK_LIBGCC=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/mipsel-linux-android-4.4.3/prebuilt/darwin-x86/lib/gcc/mipsel-linux-android/4.4.3/libgcc.a | |
cc for i686 | |
MY_NDK_LIB=/Users/qrtt1/app/NDKs/android-ndk-r8/platforms/android-9/arch-x86/usr/lib | |
MY_NDK_INCLUDE=/Users/qrtt1/app/NDKs/android-ndk-r8/platforms/android-9/arch-x86/usr/include | |
MY_NDK_CC_PREFIX=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux- | |
MY_NDK_CC=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/x86-4.4.3/prebuilt/darwin-x86/bin/i686-android-linux-gcc | |
MY_NDK_LIBGCC=/Users/qrtt1/app/NDKs/android-ndk-r8/toolchains/x86-4.4.3/prebuilt/darwin-x86/lib/gcc/i686-android-linux/4.4.3/libgcc.a | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment