Fix android.gypi to provide correct include and library paths when using standalone...
authorulan@chromium.org <ulan@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 3 Sep 2012 11:27:09 +0000 (11:27 +0000)
committerulan@chromium.org <ulan@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 3 Sep 2012 11:27:09 +0000 (11:27 +0000)
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10910062

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

Makefile.android
build/android.gypi

index aabd98c..a8d7fe1 100644 (file)
@@ -59,7 +59,7 @@ else
 endif
 
 TOOLCHAIN_PATH = ${ANDROID_NDK_ROOT}/toolchains/${TOOLCHAIN_ARCH}/prebuilt
-ANDROID_TOOLCHAIN ?= ${TOOLCHAIN_PATH}/${TOOLCHAIN_DIR}/bin
+ANDROID_TOOLCHAIN ?= ${TOOLCHAIN_PATH}/${TOOLCHAIN_DIR}
 ifeq ($(wildcard $(ANDROID_TOOLCHAIN)),)
   $(error Cannot find Android toolchain in "${ANDROID_TOOLCHAIN}")
 endif
@@ -70,12 +70,12 @@ DEFINES += host_os=${HOST_OS}
 .SECONDEXPANSION:
 $(ANDROID_BUILDS): $(OUTDIR)/Makefile.$$(basename $$@)
        @$(MAKE) -C "$(OUTDIR)" -f Makefile.$(basename $@) \
-                   CXX="$(ANDROID_TOOLCHAIN)/*-g++" \
-                   AR="$(ANDROID_TOOLCHAIN)/*-ar" \
-                   RANLIB="$(ANDROID_TOOLCHAIN)/*-ranlib" \
-                   CC="$(ANDROID_TOOLCHAIN)/*-gcc" \
-                   LD="$(ANDROID_TOOLCHAIN)/*-ld" \
-                   LINK="$(ANDROID_TOOLCHAIN)/*-g++" \
+                   CXX="$(ANDROID_TOOLCHAIN)/bin/*-g++" \
+                   AR="$(ANDROID_TOOLCHAIN)/bin/*-ar" \
+                   RANLIB="$(ANDROID_TOOLCHAIN)/bin/*-ranlib" \
+                   CC="$(ANDROID_TOOLCHAIN)/bin/*-gcc" \
+                   LD="$(ANDROID_TOOLCHAIN)/bin/*-ld" \
+                   LINK="$(ANDROID_TOOLCHAIN)/bin/*-g++" \
                    BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
                                python -c "print raw_input().capitalize()") \
                    builddir="$(shell pwd)/$(OUTDIR)/$@"
@@ -85,8 +85,8 @@ ANDROID_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ANDROID_ARCHES))
 $(ANDROID_MAKEFILES):
        @GYP_GENERATORS=make-android \
        GYP_DEFINES="${DEFINES}" \
-       CC="${ANDROID_TOOLCHAIN}/*-gcc" \
-       CXX="${ANDROID_TOOLCHAIN}/*-g++" \
+       CC="${ANDROID_TOOLCHAIN}/bin/*-gcc" \
+       CXX="${ANDROID_TOOLCHAIN}/bin/*-g++" \
        build/gyp/gyp --generator-output="${OUTDIR}" build/all.gyp \
                      -Ibuild/standalone.gypi --depth=. -Ibuild/android.gypi \
                      -S.${ARCH} ${GYPFLAGS}
index c084b63..d2d1a35 100644 (file)
   'variables': {
     # Location of Android NDK.
     'variables': {
-      'variables': {
-        'android_ndk_root%': '<!(/bin/echo -n $ANDROID_NDK_ROOT)',
-
-        # Switch between different build types, currently only '0' is
-        # supported.
-        'android_build_type%': 0,
-      },
-      'android_ndk_root%': '<(android_ndk_root)',
-      'android_ndk_sysroot': '<(android_ndk_root)/platforms/android-9/arch-<(android_target_arch)',
-      'android_build_type%': '<(android_build_type)',
+      'android_ndk_root%': '<!(/bin/echo -n $ANDROID_NDK_ROOT)',
+      'android_toolchain%': '<!(/bin/echo -n $ANDROID_TOOLCHAIN)',
+      # Switch between different build types, currently only '0' is
+      # supported.
+      'android_build_type%': 0,
     },
-    'android_ndk_root%': '<(android_ndk_root)',
-    'android_ndk_sysroot': '<(android_ndk_sysroot)',
-    'android_ndk_include': '<(android_ndk_sysroot)/usr/include',
-    'android_ndk_lib': '<(android_ndk_sysroot)/usr/lib',
+    'conditions': [
+      ['android_ndk_root==""', {
+        'variables': {
+          'android_sysroot': '<(android_toolchain)/sysroot/',
+          'android_stlport': '<(android_toolchain)/sources/cxx-stl/stlport/',
+        },
+        'android_include': '<(android_sysroot)/usr/include',
+        'android_lib': '<(android_sysroot)/usr/lib',
+        'android_stlport_include': '<(android_stlport)/stlport',
+        'android_stlport_libs': '<(android_stlport)/libs',
+      }, {
+        'variables': {
+          'android_sysroot': '<(android_ndk_root)/platforms/android-9/arch-<(android_target_arch)',
+          'android_stlport': '<(android_ndk_root)/sources/cxx-stl/stlport/',
+        },
+        'android_include': '<(android_sysroot)/usr/include',
+        'android_lib': '<(android_sysroot)/usr/lib',
+        'android_stlport_include': '<(android_stlport)/stlport',
+        'android_stlport_libs': '<(android_stlport)/libs',
+      }],
+    ],
     # Enable to use the system stlport, otherwise statically
     # link the NDK one?
     'use_system_stlport%': '<(android_build_type)',
     'android_stlport_library': 'stlport_static',
     # Copy it out one scope.
     'android_build_type%': '<(android_build_type)',
-
     'OS': 'android',
   },  # variables
   'target_defaults': {
           '-Wno-error=non-virtual-dtor',  # TODO(michaelbai): Fix warnings.
           # Note: This include is in cflags to ensure that it comes after
           # all of the includes.
-          '-I<(android_ndk_include)',
+          '-I<(android_include)',
         ],
         'defines': [
           'ANDROID',
         'conditions': [
           ['android_build_type==0', {
             'ldflags': [
-              '-Wl,-rpath-link=<(android_ndk_lib)',
-              '-L<(android_ndk_lib)',
+              '-Wl,-rpath-link=<(android_lib)',
+              '-L<(android_lib)',
             ],
           }],
           ['target_arch == "arm"', {
           # The include ordering here is important; change with caution.
           ['use_system_stlport==0', {
             'cflags': [
-              '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport',
+              '-I<(android_stlport_include)',
             ],
             'conditions': [
               ['target_arch=="arm" and armv7==1', {
                 'ldflags': [
-                  '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi-v7a',
+                  '-L<(android_stlport_libs)/armeabi-v7a',
                 ],
               }],
               ['target_arch=="arm" and armv7==0', {
                 'ldflags': [
-                  '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi',
+                  '-L<(android_stlport_libs)/armeabi',
                 ],
               }],
               ['target_arch=="ia32"', {
                 'ldflags': [
-                  '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/x86',
+                  '-L<(android_stlport_libs)/x86',
                 ],
               }],
             ],
               '-Wl,--gc-sections',
               '-Wl,-z,nocopyreloc',
               # crtbegin_dynamic.o should be the last item in ldflags.
-              '<(android_ndk_lib)/crtbegin_dynamic.o',
+              '<(android_lib)/crtbegin_dynamic.o',
             ],
             'libraries': [
               # crtend_android.o needs to be the last item in libraries.
               # Do not add any libraries after this!
-              '<(android_ndk_lib)/crtend_android.o',
+              '<(android_lib)/crtend_android.o',
             ],
           }],
           ['_type=="shared_library"', {
       }],
     ],  # target_conditions
   },  # target_defaults
-}
\ No newline at end of file
+}