author | Mike Hommey <mh+mozilla@glandium.org> |
Mon, 11 Jun 2012 08:23:29 +0200 | |
changeset 96391 | c7e76fae10e569921c485dcf6033a4b80436344c |
parent 96390 | 03098cbeb2ba788908a1019d35f56eb3c94d3fdc |
child 96392 | 6cbd2009a5cdcc43b08beef3a0b2357310ef6dd9 |
push id | 22904 |
push user | emorley@mozilla.com |
push date | Tue, 12 Jun 2012 09:45:09 +0000 |
treeherder | mozilla-central@733994f12c53 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 759115 |
milestone | 16.0a1 |
backs out | a78601d88586dfae6ce4a8b1912413cdb3b57c14 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
aclocal.m4 | file | annotate | diff | comparison | revisions | |
build/autoconf/android.m4 | file | annotate | diff | comparison | revisions | |
configure.in | file | annotate | diff | comparison | revisions | |
js/src/aclocal.m4 | file | annotate | diff | comparison | revisions | |
js/src/build/autoconf/android.m4 | file | annotate | diff | comparison | revisions | |
js/src/configure.in | file | annotate | diff | comparison | revisions |
--- a/aclocal.m4 +++ b/aclocal.m4 @@ -13,17 +13,16 @@ builtin(include, build/autoconf/mozheade builtin(include, build/autoconf/mozcommonheader.m4)dnl builtin(include, build/autoconf/acwinpaths.m4)dnl builtin(include, build/autoconf/lto.m4)dnl builtin(include, build/autoconf/gcc-pr49911.m4)dnl builtin(include, build/autoconf/frameptr.m4)dnl builtin(include, build/autoconf/compiler-opts.m4)dnl builtin(include, build/autoconf/expandlibs.m4)dnl builtin(include, build/autoconf/arch.m4)dnl -builtin(include, build/autoconf/android.m4)dnl MOZ_PROG_CHECKMSYS() # Read the user's .mozconfig script. We can't do this in # configure.in: autoconf puts the argument parsing code above anything # expanded from configure.in, and we need to get the configure options # from .mozconfig in place before that argument parsing code. MOZ_READ_MOZCONFIG(.)
deleted file mode 100644 --- a/build/autoconf/android.m4 +++ /dev/null @@ -1,241 +0,0 @@ -dnl This Source Code Form is subject to the terms of the Mozilla Public -dnl License, v. 2.0. If a copy of the MPL was not distributed with this -dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. - -AC_DEFUN([MOZ_ANDROID_NDK], -[ - -MOZ_ARG_WITH_STRING(android-ndk, -[ --with-android-ndk=DIR - location where the Android NDK can be found], - android_ndk=$withval) - -MOZ_ARG_WITH_STRING(android-toolchain, -[ --with-android-toolchain=DIR - location of the android toolchain], - android_toolchain=$withval) - - -MOZ_ARG_WITH_STRING(android-version, -[ --with-android-version=VER - android platform version, default 5], - android_version=$withval, - android_version=5) - -MOZ_ARG_WITH_STRING(android-platform, -[ --with-android-platform=DIR - location of platform dir], - android_platform=$withval) - -case "$target" in -arm-linux*-android*|*-linuxandroid*) - android_tool_prefix="arm-linux-androideabi" - ;; -i?86-*android*) - android_tool_prefix="i686-android-linux" - ;; -mipsel-*android*) - android_tool_prefix="mipsel-linux-android" - ;; -*) - android_tool_prefix="$target_os" - ;; -esac - -case "$target" in -*-android*|*-linuxandroid*) - if test -z "$android_ndk" ; then - AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.]) - fi - - if test -z "$android_toolchain" ; then - AC_MSG_CHECKING([for android toolchain directory]) - - kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"` - - case "$target_cpu" in - arm) - target_name=arm-linux-androideabi-4.4.3 - ;; - i?86) - target_name=x86-4.4.3 - ;; - mipsel) - target_name=mipsel-linux-android-4.4.3 - ;; - esac - android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86 - - if test -d "$android_toolchain" ; then - AC_MSG_RESULT([$android_toolchain]) - else - AC_MSG_ERROR([not found. You have to specify --with-android-toolchain=/path/to/ndk/toolchain.]) - fi - fi - - if test -z "$android_platform" ; then - AC_MSG_CHECKING([for android platform directory]) - - case "$target_cpu" in - arm) - target_name=arm - ;; - i?86) - target_name=x86 - ;; - mipsel) - target_name=mips - ;; - esac - - android_platform="$android_ndk"/platforms/android-"$android_version"/arch-"$target_name" - - if test -d "$android_platform" ; then - AC_MSG_RESULT([$android_platform]) - else - AC_MSG_ERROR([not found. You have to specify --with-android-platform=/path/to/ndk/platform.]) - fi - fi - - dnl set up compilers - AS="$android_toolchain"/bin/"$android_tool_prefix"-as - CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc - CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++ - CPP="$android_toolchain"/bin/"$android_tool_prefix"-cpp - LD="$android_toolchain"/bin/"$android_tool_prefix"-ld - AR="$android_toolchain"/bin/"$android_tool_prefix"-ar - RANLIB="$android_toolchain"/bin/"$android_tool_prefix"-ranlib - STRIP="$android_toolchain"/bin/"$android_tool_prefix"-strip - OBJCOPY="$android_toolchain"/bin/"$android_tool_prefix"-objcopy - - CPPFLAGS="-isystem $android_platform/usr/include $CPPFLAGS" - CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS" - CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions -Wno-psabi $CXXFLAGS" - ASFLAGS="-isystem $android_platform/usr/include -DANDROID $ASFLAGS" - - dnl Add -llog by default, since we use it all over the place. - dnl Add --allow-shlib-undefined, because libGLESv2 links to an - dnl undefined symbol (present on the hardware, just not in the - dnl NDK.) - LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS" - dnl prevent cross compile section from using these flags as host flags - if test -z "$HOST_CPPFLAGS" ; then - HOST_CPPFLAGS=" " - fi - if test -z "$HOST_CFLAGS" ; then - HOST_CFLAGS=" " - fi - if test -z "$HOST_CXXFLAGS" ; then - HOST_CXXFLAGS=" " - fi - if test -z "$HOST_LDFLAGS" ; then - HOST_LDFLAGS=" " - fi - - ANDROID_NDK="${android_ndk}" - ANDROID_TOOLCHAIN="${android_toolchain}" - ANDROID_PLATFORM="${android_platform}" - ANDROID_VERSION="${android_version}" - - AC_DEFINE(ANDROID) - AC_DEFINE_UNQUOTED(ANDROID_VERSION, $android_version) - AC_SUBST(ANDROID_VERSION) - CROSS_COMPILE=1 - AC_SUBST(ANDROID_NDK) - AC_SUBST(ANDROID_TOOLCHAIN) - AC_SUBST(ANDROID_PLATFORM) - - ;; -esac - -]) - -AC_DEFUN([MOZ_ANDROID_STLPORT], -[ - -if test "$OS_TARGET" = "Android" -a -z "$gonkdir"; then - case "${CPU_ARCH}-${MOZ_ARCH}" in - arm-armv7*) - ANDROID_CPU_ARCH=armeabi-v7a - ;; - arm-*) - ANDROID_CPU_ARCH=armeabi - ;; - x86-*) - ANDROID_CPU_ARCH=x86 - ;; - mips-*) # When target_cpu is mipsel, CPU_ARCH is mips - ANDROID_CPU_ARCH=mips - ;; - esac - - if test -z "$STLPORT_CPPFLAGS$STLPORT_LDFLAGS$STLPORT_LIBS"; then - if test -e "$android_ndk/sources/cxx-stl/stlport/src/iostream.cpp" ; then - if test -e "$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a"; then - STLPORT_LDFLAGS="-L$_objdir/build/stlport -L$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/" - elif test -e "$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a"; then - STLPORT_LDFLAGS="-L$_objdir/build/stlport -L$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/" - else - AC_MSG_ERROR([Couldn't find path to stlport in the android ndk]) - fi - STLPORT_SOURCES="$android_ndk/sources/cxx-stl/stlport" - STLPORT_CPPFLAGS="-I$_objdir/build/stlport -I$android_ndk/sources/cxx-stl/stlport/stlport" - STLPORT_LIBS="-lstlport_static" - elif test "$target" != "arm-android-eabi"; then - dnl fail if we're not building with NDKr4 - AC_MSG_ERROR([Couldn't find path to stlport in the android ndk]) - fi - fi - CXXFLAGS="$CXXFLAGS $STLPORT_CPPFLAGS" - LDFLAGS="$LDFLAGS $STLPORT_LDFLAGS" - LIBS="$LIBS $STLPORT_LIBS" -fi -AC_SUBST([STLPORT_SOURCES]) - -]) - -AC_DEFUN([MOZ_ANDROID_SDK], -[ - -MOZ_ARG_WITH_STRING(android-sdk, -[ --with-android-sdk=DIR - location where the Android SDK can be found (base directory, e.g. .../android/platforms/android-6)], - android_sdk=$withval) - -case "$target" in -*-android*|*-linuxandroid*) - if test -z "$android_sdk" ; then - AC_MSG_ERROR([You must specify --with-android-sdk=/path/to/sdk when targeting Android.]) - else - if ! test -e "$android_sdk"/source.properties ; then - AC_MSG_ERROR([The path in --with-android-sdk isn't valid (source.properties hasn't been found).]) - fi - - # Get the api level from "$android_sdk"/source.properties. - android_api_level=`$AWK -F = changequote(<<, >>)'<<$>>1 == "AndroidVersion.ApiLevel" {print <<$>>2}'changequote([, ]) "$android_sdk"/source.properties` - - if test -z "$android_api_level" ; then - AC_MSG_ERROR([Unexpected error: no AndroidVersion.ApiLevel field has been found in source.properties.]) - fi - - if ! test "$android_api_level" -eq "$android_api_level" ; then - AC_MSG_ERROR([Unexpected error: the found android api value isn't a number! (found $android_api_level)]) - fi - - if test $android_api_level -lt $1 ; then - AC_MSG_ERROR([The given Android SDK provides API level $android_api_level ($1 or higher required).]) - fi - fi - - android_platform_tools="$android_sdk"/../../platform-tools - if test ! -d "$android_platform_tools" ; then - android_platform_tools="$android_sdk"/tools # SDK Tools < r8 - fi - ANDROID_SDK="${android_sdk}" - ANDROID_PLATFORM_TOOLS="${android_platform_tools}" - AC_SUBST(ANDROID_SDK) - AC_SUBST(ANDROID_PLATFORM_TOOLS) - ;; -esac - -])
--- a/configure.in +++ b/configure.in @@ -149,17 +149,62 @@ fi AC_SUBST(L10NBASEDIR) dnl Check for Perl first -- needed for win32 SDK checks MOZ_PATH_PROGS(PERL, $PERL perl5 perl ) if test -z "$PERL" -o "$PERL" = ":"; then AC_MSG_ERROR([perl not found in \$PATH]) fi -MOZ_ANDROID_NDK +dnl ======================================================== +dnl = Android uses a very custom (hacky) toolchain; we need to do this +dnl = here, so that the compiler checks can succeed +dnl ======================================================== + +MOZ_ARG_WITH_STRING(android-ndk, +[ --with-android-ndk=DIR + location where the Android NDK can be found], + android_ndk=$withval) + +MOZ_ARG_WITH_STRING(android-toolchain, +[ --with-android-toolchain=DIR + location of the android toolchain], + android_toolchain=$withval) + + +MOZ_ARG_WITH_STRING(android-version, +[ --with-android-version=VER + android platform version, default 5], + android_version=$withval, + android_version=5) + +MOZ_ARG_WITH_STRING(android-sdk, +[ --with-android-sdk=DIR + location where the Android SDK can be found (base directory, e.g. .../android/platforms/android-6)], + android_sdk=$withval) + +MOZ_ARG_WITH_STRING(android-platform, +[ --with-android-platform=DIR + location of platform dir], + android_platform=$withval) + +case "$target" in +arm-linux*-android*|*-linuxandroid*) + android_tool_prefix="arm-linux-androideabi" + ;; +i?86-*android*) + android_tool_prefix="i686-android-linux" + ;; +mipsel-*android*) + android_tool_prefix="mipsel-linux-android" + ;; +*) + android_tool_prefix="$target_os" + ;; +esac MOZ_ARG_WITH_STRING(gonk, [ --with-gonk=DIR location of gonk dir], gonkdir=$withval) MOZ_ARG_WITH_STRING(gonk-toolchain-prefix, [ --with-gonk-toolchain-prefix=DIR @@ -219,31 +264,168 @@ if test -n "$gonkdir" ; then AC_DEFINE(ANDROID) AC_DEFINE(HAVE_SYS_UIO_H) AC_DEFINE(HAVE_PTHREADS) CROSS_COMPILE=1 MOZ_CHROME_FILE_FORMAT=omni ZLIB_DIR=yes direct_nspr_config=1 else - case "$target" in - *-android*|*-linuxandroid*) - if test -z "$ANDROID_PACKAGE_NAME" ; then - ANDROID_PACKAGE_NAME='org.mozilla.$(MOZ_APP_NAME)' +case "$target" in +*-android*|*-linuxandroid*) + if test -z "$android_ndk" ; then + AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.]) + fi + + if test -z "$android_sdk" ; then + AC_MSG_ERROR([You must specify --with-android-sdk=/path/to/sdk when targeting Android.]) + else + if ! test -e "$android_sdk"/source.properties ; then + AC_MSG_ERROR([The path in --with-android-sdk isn't valid (source.properties hasn't been found).]) + fi + + # Minimum Android SDK API Level we require. + android_min_api_level=13 + + # Get the api level from "$android_sdk"/source.properties. + android_api_level=`$AWK -F = '$1 == "AndroidVersion.ApiLevel" {print $2}' "$android_sdk"/source.properties` + + if test -z "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: no AndroidVersion.ApiLevel field has been found in source.properties.]) + fi + + if ! test "$android_api_level" -eq "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: the found android api value isn't a number! (found $android_api_level)]) + fi + + if test $android_api_level -lt $android_min_api_level ; then + AC_MSG_ERROR([The given Android SDK provides API level $android_api_level ($android_min_api_level or higher required).]) + fi + fi + + android_platform_tools="$android_sdk"/../../platform-tools + if test ! -d "$android_platform_tools" ; then + android_platform_tools="$android_sdk"/tools # SDK Tools < r8 + fi + + if test -z "$android_toolchain" ; then + AC_MSG_CHECKING([for android toolchain directory]) + + kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"` + + case "$target_cpu" in + arm) + target_name=arm-linux-androideabi-4.4.3 + ;; + i?86) + target_name=x86-4.4.3 + ;; + mipsel) + target_name=mipsel-linux-android-4.4.3 + ;; + esac + android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86 + + if test -d "$android_toolchain" ; then + AC_MSG_RESULT([$android_toolchain]) + else + AC_MSG_ERROR([not found. You have to specify --with-android-toolchain=/path/to/ndk/toolchain.]) fi - MOZ_CHROME_FILE_FORMAT=omni - ZLIB_DIR=yes - ;; - *-linux*) - AC_PATH_PROG(OBJCOPY,objcopy) - ;; - esac -fi - + fi + + if test -z "$android_platform" ; then + AC_MSG_CHECKING([for android platform directory]) + + case "$target_cpu" in + arm) + target_name=arm + ;; + i?86) + target_name=x86 + ;; + mipsel) + target_name=mips + ;; + esac + + android_platform="$android_ndk"/platforms/android-"$android_version"/arch-"$target_name" + + if test -d "$android_platform" ; then + AC_MSG_RESULT([$android_platform]) + else + AC_MSG_ERROR([not found. You have to specify --with-android-platform=/path/to/ndk/platform.]) + fi + fi + + dnl set up compilers + AS="$android_toolchain"/bin/"$android_tool_prefix"-as + CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc + CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++ + CPP="$android_toolchain"/bin/"$android_tool_prefix"-cpp + LD="$android_toolchain"/bin/"$android_tool_prefix"-ld + AR="$android_toolchain"/bin/"$android_tool_prefix"-ar + RANLIB="$android_toolchain"/bin/"$android_tool_prefix"-ranlib + STRIP="$android_toolchain"/bin/"$android_tool_prefix"-strip + OBJCOPY="$android_toolchain"/bin/"$android_tool_prefix"-objcopy + + CPPFLAGS="-isystem $android_platform/usr/include $CPPFLAGS" + CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS" + CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions -Wno-psabi $CXXFLAGS" + ASFLAGS="-isystem $android_platform/usr/include -DANDROID $ASFLAGS" + + dnl Add -llog by default, since we use it all over the place. + dnl Add --allow-shlib-undefined, because libGLESv2 links to an + dnl undefined symbol (present on the hardware, just not in the + dnl NDK.) + LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS" + + dnl prevent cross compile section from using these flags as host flags + if test -z "$HOST_CPPFLAGS" ; then + HOST_CPPFLAGS=" " + fi + if test -z "$HOST_CFLAGS" ; then + HOST_CFLAGS=" " + fi + if test -z "$HOST_CXXFLAGS" ; then + HOST_CXXFLAGS=" " + fi + if test -z "$HOST_LDFLAGS" ; then + HOST_LDFLAGS=" " + fi + + ANDROID_NDK="${android_ndk}" + ANDROID_TOOLCHAIN="${android_toolchain}" + ANDROID_PLATFORM="${android_platform}" + ANDROID_SDK="${android_sdk}" + ANDROID_PLATFORM_TOOLS="${android_platform_tools}" + ANDROID_VERSION="${android_version}" + if test -z "$ANDROID_PACKAGE_NAME" ; then + ANDROID_PACKAGE_NAME='org.mozilla.$(MOZ_APP_NAME)' + fi + + AC_DEFINE(ANDROID) + AC_DEFINE_UNQUOTED(ANDROID_VERSION, $android_version) + AC_SUBST(ANDROID_VERSION) + CROSS_COMPILE=1 + MOZ_CHROME_FILE_FORMAT=omni + ZLIB_DIR=yes + ;; +*-linux*) + AC_PATH_PROG(OBJCOPY,objcopy) + ;; +esac + +fi + +AC_SUBST(ANDROID_NDK) +AC_SUBST(ANDROID_TOOLCHAIN) AC_SUBST(ANDROID_SOURCE) +AC_SUBST(ANDROID_PLATFORM) +AC_SUBST(ANDROID_SDK) +AC_SUBST(ANDROID_PLATFORM_TOOLS) AC_SUBST(ANDROID_PACKAGE_NAME) AC_SUBST(OBJCOPY) dnl ======================================================== dnl Checks for compilers. dnl ======================================================== dnl Set CROSS_COMPILE in the environment when running configure dnl to use the cross-compile setup for now @@ -1404,17 +1586,55 @@ if test "$ac_cv_static_assertion_macros_ fi fi # COMPILE_ENVIRONMENT dnl ======================================================== dnl Android libstdc++, placed here so it can use MOZ_ARCH dnl computed above. dnl ======================================================== -MOZ_ANDROID_STLPORT +if test "$OS_TARGET" = "Android"; then + case "${CPU_ARCH}-${MOZ_ARCH}" in + arm-armv7*) + ANDROID_CPU_ARCH=armeabi-v7a + ;; + arm-*) + ANDROID_CPU_ARCH=armeabi + ;; + x86-*) + ANDROID_CPU_ARCH=x86 + ;; + mips-*) # When target_cpu is mipsel, CPU_ARCH is mips + ANDROID_CPU_ARCH=mips + ;; + esac +fi + +if test "$OS_TARGET" = "Android" -a -z "$gonkdir"; then + if test -e "$android_ndk/sources/cxx-stl/stlport/src/iostream.cpp" ; then + if test -e "$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a"; then + STLPORT_LDFLAGS="-L$_objdir/build/stlport -L$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/" + elif test -e "$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a"; then + STLPORT_LDFLAGS="-L$_objdir/build/stlport -L$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/" + else + AC_MSG_ERROR([Couldn't find path to stlport in the android ndk]) + fi + STLPORT_SOURCES="$android_ndk/sources/cxx-stl/stlport" + STLPORT_CPPFLAGS="-I$_objdir/build/stlport -I$android_ndk/sources/cxx-stl/stlport/stlport" + STLPORT_LIBS="-lstlport_static" + elif test "$target" != "arm-android-eabi"; then + dnl fail if we're not building with NDKr4 + AC_MSG_ERROR([Couldn't find path to stlport in the android ndk]) + fi + CXXFLAGS="$CXXFLAGS $STLPORT_CPPFLAGS" + LDFLAGS="$LDFLAGS $STLPORT_LDFLAGS" + LIBS="$LIBS $STLPORT_LIBS" +fi + +AC_SUBST([STLPORT_SOURCES]) dnl ======================================================== dnl Suppress Clang Argument Warnings dnl ======================================================== if test -n "$CLANG_CC"; then _WARNINGS_CFLAGS="-Qunused-arguments ${_WARNINGS_CFLAGS}" CPPFLAGS="-Qunused-arguments ${CPPFLAGS}" fi @@ -4475,32 +4695,16 @@ esac AC_SUBST(MOZ_BUILD_APP) AC_SUBST(MOZ_PHOENIX) AC_SUBST(MOZ_XULRUNNER) AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP) dnl ======================================================== -dnl Check android sdk version depending on mobile target -dnl ======================================================== - -# Minimum Android SDK API Level we require. -case "$MOZ_BUILD_APP" in -mobile/xul) - android_min_api_level=13 - ;; -mobile/android) - android_min_api_level=14 - ;; -esac - -MOZ_ANDROID_SDK($android_min_api_level) - -dnl ======================================================== dnl = dnl = Toolkit Options dnl = dnl ======================================================== MOZ_ARG_HEADER(Toolkit Options) dnl ======================================================== dnl = Select the default toolkit
--- a/js/src/aclocal.m4 +++ b/js/src/aclocal.m4 @@ -12,11 +12,10 @@ builtin(include, build/autoconf/mozheade builtin(include, build/autoconf/mozcommonheader.m4)dnl builtin(include, build/autoconf/acwinpaths.m4)dnl builtin(include, build/autoconf/lto.m4)dnl builtin(include, build/autoconf/gcc-pr49911.m4)dnl builtin(include, build/autoconf/frameptr.m4)dnl builtin(include, build/autoconf/compiler-opts.m4)dnl builtin(include, build/autoconf/expandlibs.m4)dnl builtin(include, build/autoconf/arch.m4)dnl -builtin(include, build/autoconf/android.m4)dn MOZ_PROG_CHECKMSYS()
deleted file mode 100644 --- a/js/src/build/autoconf/android.m4 +++ /dev/null @@ -1,241 +0,0 @@ -dnl This Source Code Form is subject to the terms of the Mozilla Public -dnl License, v. 2.0. If a copy of the MPL was not distributed with this -dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. - -AC_DEFUN([MOZ_ANDROID_NDK], -[ - -MOZ_ARG_WITH_STRING(android-ndk, -[ --with-android-ndk=DIR - location where the Android NDK can be found], - android_ndk=$withval) - -MOZ_ARG_WITH_STRING(android-toolchain, -[ --with-android-toolchain=DIR - location of the android toolchain], - android_toolchain=$withval) - - -MOZ_ARG_WITH_STRING(android-version, -[ --with-android-version=VER - android platform version, default 5], - android_version=$withval, - android_version=5) - -MOZ_ARG_WITH_STRING(android-platform, -[ --with-android-platform=DIR - location of platform dir], - android_platform=$withval) - -case "$target" in -arm-linux*-android*|*-linuxandroid*) - android_tool_prefix="arm-linux-androideabi" - ;; -i?86-*android*) - android_tool_prefix="i686-android-linux" - ;; -mipsel-*android*) - android_tool_prefix="mipsel-linux-android" - ;; -*) - android_tool_prefix="$target_os" - ;; -esac - -case "$target" in -*-android*|*-linuxandroid*) - if test -z "$android_ndk" ; then - AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.]) - fi - - if test -z "$android_toolchain" ; then - AC_MSG_CHECKING([for android toolchain directory]) - - kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"` - - case "$target_cpu" in - arm) - target_name=arm-linux-androideabi-4.4.3 - ;; - i?86) - target_name=x86-4.4.3 - ;; - mipsel) - target_name=mipsel-linux-android-4.4.3 - ;; - esac - android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86 - - if test -d "$android_toolchain" ; then - AC_MSG_RESULT([$android_toolchain]) - else - AC_MSG_ERROR([not found. You have to specify --with-android-toolchain=/path/to/ndk/toolchain.]) - fi - fi - - if test -z "$android_platform" ; then - AC_MSG_CHECKING([for android platform directory]) - - case "$target_cpu" in - arm) - target_name=arm - ;; - i?86) - target_name=x86 - ;; - mipsel) - target_name=mips - ;; - esac - - android_platform="$android_ndk"/platforms/android-"$android_version"/arch-"$target_name" - - if test -d "$android_platform" ; then - AC_MSG_RESULT([$android_platform]) - else - AC_MSG_ERROR([not found. You have to specify --with-android-platform=/path/to/ndk/platform.]) - fi - fi - - dnl set up compilers - AS="$android_toolchain"/bin/"$android_tool_prefix"-as - CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc - CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++ - CPP="$android_toolchain"/bin/"$android_tool_prefix"-cpp - LD="$android_toolchain"/bin/"$android_tool_prefix"-ld - AR="$android_toolchain"/bin/"$android_tool_prefix"-ar - RANLIB="$android_toolchain"/bin/"$android_tool_prefix"-ranlib - STRIP="$android_toolchain"/bin/"$android_tool_prefix"-strip - OBJCOPY="$android_toolchain"/bin/"$android_tool_prefix"-objcopy - - CPPFLAGS="-isystem $android_platform/usr/include $CPPFLAGS" - CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS" - CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions -Wno-psabi $CXXFLAGS" - ASFLAGS="-isystem $android_platform/usr/include -DANDROID $ASFLAGS" - - dnl Add -llog by default, since we use it all over the place. - dnl Add --allow-shlib-undefined, because libGLESv2 links to an - dnl undefined symbol (present on the hardware, just not in the - dnl NDK.) - LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS" - dnl prevent cross compile section from using these flags as host flags - if test -z "$HOST_CPPFLAGS" ; then - HOST_CPPFLAGS=" " - fi - if test -z "$HOST_CFLAGS" ; then - HOST_CFLAGS=" " - fi - if test -z "$HOST_CXXFLAGS" ; then - HOST_CXXFLAGS=" " - fi - if test -z "$HOST_LDFLAGS" ; then - HOST_LDFLAGS=" " - fi - - ANDROID_NDK="${android_ndk}" - ANDROID_TOOLCHAIN="${android_toolchain}" - ANDROID_PLATFORM="${android_platform}" - ANDROID_VERSION="${android_version}" - - AC_DEFINE(ANDROID) - AC_DEFINE_UNQUOTED(ANDROID_VERSION, $android_version) - AC_SUBST(ANDROID_VERSION) - CROSS_COMPILE=1 - AC_SUBST(ANDROID_NDK) - AC_SUBST(ANDROID_TOOLCHAIN) - AC_SUBST(ANDROID_PLATFORM) - - ;; -esac - -]) - -AC_DEFUN([MOZ_ANDROID_STLPORT], -[ - -if test "$OS_TARGET" = "Android" -a -z "$gonkdir"; then - case "${CPU_ARCH}-${MOZ_ARCH}" in - arm-armv7*) - ANDROID_CPU_ARCH=armeabi-v7a - ;; - arm-*) - ANDROID_CPU_ARCH=armeabi - ;; - x86-*) - ANDROID_CPU_ARCH=x86 - ;; - mips-*) # When target_cpu is mipsel, CPU_ARCH is mips - ANDROID_CPU_ARCH=mips - ;; - esac - - if test -z "$STLPORT_CPPFLAGS$STLPORT_LDFLAGS$STLPORT_LIBS"; then - if test -e "$android_ndk/sources/cxx-stl/stlport/src/iostream.cpp" ; then - if test -e "$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a"; then - STLPORT_LDFLAGS="-L$_objdir/build/stlport -L$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/" - elif test -e "$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a"; then - STLPORT_LDFLAGS="-L$_objdir/build/stlport -L$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/" - else - AC_MSG_ERROR([Couldn't find path to stlport in the android ndk]) - fi - STLPORT_SOURCES="$android_ndk/sources/cxx-stl/stlport" - STLPORT_CPPFLAGS="-I$_objdir/build/stlport -I$android_ndk/sources/cxx-stl/stlport/stlport" - STLPORT_LIBS="-lstlport_static" - elif test "$target" != "arm-android-eabi"; then - dnl fail if we're not building with NDKr4 - AC_MSG_ERROR([Couldn't find path to stlport in the android ndk]) - fi - fi - CXXFLAGS="$CXXFLAGS $STLPORT_CPPFLAGS" - LDFLAGS="$LDFLAGS $STLPORT_LDFLAGS" - LIBS="$LIBS $STLPORT_LIBS" -fi -AC_SUBST([STLPORT_SOURCES]) - -]) - -AC_DEFUN([MOZ_ANDROID_SDK], -[ - -MOZ_ARG_WITH_STRING(android-sdk, -[ --with-android-sdk=DIR - location where the Android SDK can be found (base directory, e.g. .../android/platforms/android-6)], - android_sdk=$withval) - -case "$target" in -*-android*|*-linuxandroid*) - if test -z "$android_sdk" ; then - AC_MSG_ERROR([You must specify --with-android-sdk=/path/to/sdk when targeting Android.]) - else - if ! test -e "$android_sdk"/source.properties ; then - AC_MSG_ERROR([The path in --with-android-sdk isn't valid (source.properties hasn't been found).]) - fi - - # Get the api level from "$android_sdk"/source.properties. - android_api_level=`$AWK -F = changequote(<<, >>)'<<$>>1 == "AndroidVersion.ApiLevel" {print <<$>>2}'changequote([, ]) "$android_sdk"/source.properties` - - if test -z "$android_api_level" ; then - AC_MSG_ERROR([Unexpected error: no AndroidVersion.ApiLevel field has been found in source.properties.]) - fi - - if ! test "$android_api_level" -eq "$android_api_level" ; then - AC_MSG_ERROR([Unexpected error: the found android api value isn't a number! (found $android_api_level)]) - fi - - if test $android_api_level -lt $1 ; then - AC_MSG_ERROR([The given Android SDK provides API level $android_api_level ($1 or higher required).]) - fi - fi - - android_platform_tools="$android_sdk"/../../platform-tools - if test ! -d "$android_platform_tools" ; then - android_platform_tools="$android_sdk"/tools # SDK Tools < r8 - fi - ANDROID_SDK="${android_sdk}" - ANDROID_PLATFORM_TOOLS="${android_platform_tools}" - AC_SUBST(ANDROID_SDK) - AC_SUBST(ANDROID_PLATFORM_TOOLS) - ;; -esac - -])
--- a/js/src/configure.in +++ b/js/src/configure.in @@ -141,17 +141,62 @@ MOZ_ARG_ENABLE_BOOL(shared-js, if test "$DISABLE_SHARED_JS" = "1" ; then AC_DEFINE(STATIC_EXPORTABLE_JS_API) else JS_SHARED_LIBRARY=1 fi AC_SUBST(JS_SHARED_LIBRARY) -MOZ_ANDROID_NDK +dnl ======================================================== +dnl = Android uses a very custom (hacky) toolchain; we need to do this +dnl = here, so that the compiler checks can succeed +dnl ======================================================== + +MOZ_ARG_WITH_STRING(android-ndk, +[ --with-android-ndk=DIR + location where the Android NDK can be found], + android_ndk=$withval) + +MOZ_ARG_WITH_STRING(android-toolchain, +[ --with-android-toolchain=DIR + location of the android toolchain], + android_toolchain=$withval) + + +MOZ_ARG_WITH_STRING(android-version, +[ --with-android-version=VER + android platform version, default 5], + android_version=$withval, + android_version=5) + +MOZ_ARG_WITH_STRING(android-sdk, +[ --with-android-sdk=DIR + location where the Android SDK can be found (base directory, e.g. .../android/platforms/android-6)], + android_sdk=$withval) + +MOZ_ARG_WITH_STRING(android-platform, +[ --with-android-platform=DIR + location of platform dir], + android_platform=$withval) + +case "$target" in +arm-linux*-android*|*-linuxandroid*) + android_tool_prefix="arm-linux-androideabi" + ;; +i?86-*android*) + android_tool_prefix="i686-android-linux" + ;; +mipsel-*android*) + android_tool_prefix="mipsel-linux-android" + ;; +*) + android_tool_prefix="$target_os" + ;; +esac MOZ_ARG_WITH_STRING(gonk, [ --with-gonk=DIR location of gonk dir], gonkdir=$withval) MOZ_ARG_WITH_STRING(gonk-toolchain-prefix, [ --with-gonk-toolchain-prefix=DIR @@ -200,21 +245,170 @@ if test -n "$gonkdir" ; then fi if test -z "$HOST_CXXFLAGS" ; then HOST_CXXFLAGS=" " fi if test -z "$HOST_LDFLAGS" ; then HOST_LDFLAGS=" " fi + # save these for libffi's subconfigure, + # which doesn't know how to figure this stuff out on its own + ANDROID_CFLAGS="$CFLAGS" + ANDROID_CPPFLAGS="$CPPFLAGS" + ANDROID_LDFLAGS="$LDFLAGS" + AC_DEFINE(ANDROID) AC_DEFINE(GONK) CROSS_COMPILE=1 +else +case "$target" in +*-android*|*-linuxandroid*) + if test -z "$android_ndk" ; then + AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.]) + fi + + if test -z "$android_sdk" ; then + AC_MSG_ERROR([You must specify --with-android-sdk=/path/to/sdk when targeting Android.]) + fi + + android_platform_tools="$android_sdk"/../../platform-tools + if test ! -d "$android_platform_tools" ; then + android_platform_tools="$android_sdk"/tools # SDK Tools < r8 + else + if ! test -e "$android_sdk"/source.properties ; then + AC_MSG_ERROR([The path in --with-android-sdk isn't valid (source.properties hasn't been found).]) + fi + + # Minimum Android SDK API Level we require. + android_min_api_level=13 + + # Get the api level from "$android_sdk"/source.properties. + android_api_level=`$AWK -F = '$1 == "AndroidVersion.ApiLevel" {print $2}' "$android_sdk"/source.properties` + + if test -z "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: no AndroidVersion.ApiLevel field has been found in source.properties.]) + fi + + if ! test "$android_api_level" -eq "$android_api_level" ; then + AC_MSG_ERROR([Unexpected error: the found android api value isn't a number! (found $android_api_level)]) + fi + + if test $android_api_level -lt $android_min_api_level ; then + AC_MSG_ERROR([The given Android SDK provides API level $android_api_level ($android_min_api_level or higher required).]) + fi + fi + + if test -z "$android_toolchain" ; then + AC_MSG_CHECKING([for android toolchain directory]) + + kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"` + + case "$target_cpu" in + arm) + target_name=arm-linux-androideabi-4.4.3 + ;; + i?86) + target_name=x86-4.4.3 + ;; + mipsel) + target_name=mipsel-linux-android-4.4.3 + ;; + esac + android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86 + + if test -d "$android_toolchain" ; then + AC_MSG_RESULT([$android_toolchain]) + else + AC_MSG_ERROR([not found. You have to specify --with-android-toolchain=/path/to/ndk/toolchain.]) + fi + fi + + if test -z "$android_platform" ; then + AC_MSG_CHECKING([for android platform directory]) + + case "$target_cpu" in + arm) + target_name=arm + ;; + i?86) + target_name=x86 + ;; + mipsel) + target_name=mips + ;; + esac + + android_platform="$android_ndk"/platforms/android-"$android_version"/arch-"$target_name" + + if test -d "$android_platform" ; then + AC_MSG_RESULT([$android_platform]) + else + AC_MSG_ERROR([not found. You have to specify --with-android-platform=/path/to/ndk/platform.]) + fi + fi + + dnl set up compilers + AS="$android_toolchain"/bin/"$android_tool_prefix"-as + CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc + CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++ + CPP="$android_toolchain"/bin/"$android_tool_prefix"-cpp + LD="$android_toolchain"/bin/"$android_tool_prefix"-ld + AR="$android_toolchain"/bin/"$android_tool_prefix"-ar + RANLIB="$android_toolchain"/bin/"$android_tool_prefix"-ranlib + STRIP="$android_toolchain"/bin/"$android_tool_prefix"-strip + + CPPFLAGS="-isystem $android_platform/usr/include $CPPFLAGS" + CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS" + CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions -Wno-psabi $CXXFLAGS" + ASFLAGS="-isystem $android_platform/usr/include -DANDROID $ASFLAGS" + + dnl Add -llog by default, since we use it all over the place. + dnl Add --allow-shlib-undefined, because libGLESv2 links to an + dnl undefined symbol (present on the hardware, just not in the + dnl NDK.) + LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS" + + dnl prevent cross compile section from using these flags as host flags + if test -z "$HOST_CPPFLAGS" ; then + HOST_CPPFLAGS=" " + fi + if test -z "$HOST_CFLAGS" ; then + HOST_CFLAGS=" " + fi + if test -z "$HOST_CXXFLAGS" ; then + HOST_CXXFLAGS=" " + fi + if test -z "$HOST_LDFLAGS" ; then + HOST_LDFLAGS=" " + fi + + ANDROID_NDK="${android_ndk}" + ANDROID_TOOLCHAIN="${android_toolchain}" + ANDROID_PLATFORM="${android_platform}" + ANDROID_SDK="${android_sdk}" + ANDROID_PLATFORM_TOOLS="${android_platform_tools}" + ANDROID_VERSION="${android_version}" + + AC_DEFINE(ANDROID) + AC_DEFINE_UNQUOTED(ANDROID_VERSION, $android_version) + AC_SUBST(ANDROID_VERSION) + CROSS_COMPILE=1 + MOZ_CHROME_FILE_FORMAT=omni + ;; +esac + fi +AC_SUBST(ANDROID_NDK) +AC_SUBST(ANDROID_TOOLCHAIN) +AC_SUBST(ANDROID_PLATFORM) +AC_SUBST(ANDROID_SDK) +AC_SUBST(ANDROID_PLATFORM_TOOLS) + dnl ======================================================== dnl Checks for compilers. dnl ======================================================== dnl Set CROSS_COMPILE in the environment when running configure dnl to use the cross-compile setup for now dnl ======================================================== dnl AR_FLAGS set here so HOST_AR_FLAGS can be set correctly (see bug 538269) @@ -1270,17 +1464,58 @@ if test "$ac_cv_static_assertion_macros_ fi fi # COMPILE_ENVIRONMENT dnl ======================================================== dnl Android libstdc++, placed here so it can use MOZ_ARCH dnl computed above. dnl ======================================================== -MOZ_ANDROID_STLPORT +if test "$OS_TARGET" = "Android"; then + case "${CPU_ARCH}-${MOZ_ARCH}" in + arm-armv7*) + ANDROID_CPU_ARCH=armeabi-v7a + ;; + arm-*) + ANDROID_CPU_ARCH=armeabi + ;; + x86-*) + ANDROID_CPU_ARCH=x86 + ;; + mips-*) # When target_cpu is mipsel, CPU_ARCH is mips + ANDROID_CPU_ARCH=mips + ;; + esac +fi + +if test "$OS_TARGET" = "Android" -a -z "$gonkdir"; then + if test -z "$STLPORT_CPPFLAGS$STLPORT_LDFLAGS$STLPORT_LIBS"; then + if test -e "$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a" ; then + STLPORT_CPPFLAGS="-I$android_ndk/sources/cxx-stl/stlport/stlport" + STLPORT_LDFLAGS="-L$android_ndk/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/" + STLPORT_LIBS="-lstlport_static" + elif test -e "$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH/libstlport_static.a" ; then + STLPORT_CPPFLAGS="-I$android_ndk/sources/cxx-stl/stlport/stlport" + STLPORT_LDFLAGS="-L$android_ndk/tmp/ndk-digit/build/install/sources/cxx-stl/stlport/libs/$ANDROID_CPU_ARCH" + STLPORT_LIBS="-lstlport_static" + elif test "$target" != "arm-android-eabi"; then + dnl fail if we're not building with NDKr4 + AC_MSG_ERROR([Couldn't find path to stlport in the android ndk]) + fi + fi + CXXFLAGS="$CXXFLAGS $STLPORT_CPPFLAGS" + LDFLAGS="$LDFLAGS $STLPORT_LDFLAGS" + LIBS="$LIBS $STLPORT_LIBS" + + # save these for libffi's subconfigure, + # which doesn't know how to figure this stuff out on its own + ANDROID_CFLAGS="$CFLAGS" + ANDROID_CPPFLAGS="$CPPFLAGS" + ANDROID_LDFLAGS="$LDFLAGS" +fi dnl ======================================================== dnl Suppress Clang Argument Warnings dnl ======================================================== if test -n "$CLANG_CC"; then _WARNINGS_CFLAGS="-Qunused-arguments ${_WARNINGS_CFLAGS}" CPPFLAGS="-Qunused-arguments ${CPPFLAGS}" fi