Commit 5dd6a678 authored by Michael Wu's avatar Michael Wu
Browse files

Bug 694206 - Add Gonk (B2G) widget backend, r=cjones

parent 335f0043
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ tier_base_dirs = \
	$(NULL)

ifndef LIBXUL_SDK
ifeq ($(OS_TARGET),Android)
ifeq (android,$(MOZ_WIDGET_TOOLKIT))
tier_base_dirs += other-licenses/android
endif

+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ endif
DIRS += pgo

ifdef ENABLE_TESTS
ifeq (Android,$(OS_TARGET))
ifeq (android,$(MOZ_WIDGET_TOOLKIT))
  DIRS += mobile/sutagent/android \
          mobile/sutagent/android/watcher \
          mobile/sutagent/android/ffxcp \
+104 −17
Original line number Diff line number Diff line
@@ -289,6 +289,56 @@ arm-android-eabi)
    ;;
esac

MOZ_ARG_WITH_STRING(gonk,
[  --with-gonk=DIR
               location of gonk dir],
    gonkdir=$withval)

if test -n "$gonkdir" ; then
    kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"`
    gonk_toolchain="$gonkdir"/prebuilt/$kernel_name-x86/toolchain/arm-eabi-4.4.3

    dnl set up compilers
    AS="$gonk_toolchain"/bin/"$android_tool_prefix"-as
    CC="$gonk_toolchain"/bin/"$android_tool_prefix"-gcc
    CXX="$gonk_toolchain"/bin/"$android_tool_prefix"-g++
    CPP="$gonk_toolchain"/bin/"$android_tool_prefix"-cpp
    LD="$gonk_toolchain"/bin/"$android_tool_prefix"-ld
    AR="$gonk_toolchain"/bin/"$android_tool_prefix"-ar
    RANLIB="$gonk_toolchain"/bin/"$android_tool_prefix"-ranlib
    STRIP="$gonk_toolchain"/bin/"$android_tool_prefix"-strip

    STLPORT_CPPFLAGS="-I$gonkdir/ndk/sources/cxx-stl/stlport/stlport/"
    STLPORT_LIBS="-lstlport"

    CPPFLAGS="-DANDROID -I$gonkdir/bionic/libc/include/ -I$gonkdir/bionic/libc/kernel/common -I$gonkdir/bionic/libc/arch-arm/include -I$gonkdir/bionic/libc/kernel/arch-arm -I$gonkdir/bionic/libm/include -I$gonkdir/frameworks/base/opengl/include -I$gonkdir/frameworks/base/native/include -I$gonkdir/hardware/libhardware/include -I$gonkdir/system/core/include -I$gonkdir/bionic -I$gonkdir/frameworks/base/include $STLPORT_CPPFLAGS $CPPFLAGS"
    CFLAGS="-mandroid -fno-short-enums -fno-exceptions $CFLAGS"
    CXXFLAGS="-mandroid -fno-short-enums -fno-exceptions $CXXFLAGS"
    LIBS="$LIBS $STLPORT_LIBS"

    dnl Add -llog by default, since we use it all over the place.
    LDFLAGS="-mandroid -L$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib -Wl,-rpath-link=$gonkdir/out/target/product/$GONK_PRODUCT/obj/lib --sysroot=$gonkdir/out/target/product/$GONK_PRODUCT/obj/ -llog $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

    AC_DEFINE(ANDROID)
    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_ndk" ; then
@@ -419,6 +469,8 @@ case "$target" in
    ;;
esac

fi

AC_SUBST(ANDROID_NDK)
AC_SUBST(ANDROID_TOOLCHAIN)
AC_SUBST(ANDROID_PLATFORM)
@@ -2386,7 +2438,11 @@ ia64*-hpux*)
*-android*|*-linuxandroid*)
    AC_DEFINE(NO_PW_GECOS)
    no_x=yes
    if test -n "$gonkdir"; then
        _PLATFORM_DEFAULT_TOOLKIT=cairo-gonk
    else
        _PLATFORM_DEFAULT_TOOLKIT=cairo-android
    fi
    TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'

    MOZ_GFX_OPTIMIZE_MOBILE=1
@@ -4772,7 +4828,8 @@ MOZ_ARG_HEADER(Toolkit Options)
        -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
        -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa" \
        -o "$_DEFAULT_TOOLKIT" = "cairo-uikit" \
        -o "$_DEFAULT_TOOLKIT" = "cairo-android"
        -o "$_DEFAULT_TOOLKIT" = "cairo-android" \
        -o "$_DEFAULT_TOOLKIT" = "cairo-gonk"
    then
        dnl nglayout only supports building with one toolkit,
        dnl so ignore everything after the first comma (",").
@@ -4895,6 +4952,15 @@ cairo-android)
    MOZ_INSTRUMENT_EVENT_LOOP=1
    ;;

cairo-gonk)
    AC_DEFINE(MOZ_WIDGET_GONK)
    MOZ_WIDGET_TOOLKIT=gonk
    TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
    TK_LIBS='$(MOZ_CAIRO_LIBS)'
    MOZ_WEBGL=1
    MOZ_PDF_PRINTING=1
    ;;

esac

AC_SUBST(MOZ_PDF_PRINTING)
@@ -7175,8 +7241,10 @@ dnl We need to wrap dlopen and related functions on Android because we use
dnl our own linker.
if test "$OS_TARGET" = Android; then
    WRAP_LDFLAGS="${WRAP_LDFLAGS} -L$_objdir/dist/lib -lmozutils"
    if test "$MOZ_WIDGET_TOOLKIT" = android; then
        WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=dlopen,--wrap=dlclose,--wrap=dlerror,--wrap=dlsym,--wrap=dladdr"
    fi
fi

dnl ========================================================
dnl = Use malloc wrapper lib
@@ -8856,6 +8924,7 @@ if test "$MOZ_TREE_FREETYPE"; then
   AC_OUTPUT_SUBDIRS(modules/freetype2)
fi

if test -z "$direct_nspr_config"; then
    dnl ========================================================
    dnl = Setup a nice relatively clean build environment for
    dnl = sub-configures.
@@ -8870,6 +8939,7 @@ HOST_CC="$_SUBDIR_HOST_CC"
    HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
    HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
    RC=
fi

unset MAKEFILES
unset CONFIG_FILES
@@ -8918,6 +8988,23 @@ if test -z "$MOZ_NATIVE_NSPR"; then
    rm -f config/autoconf.mk.bak
fi

if test -n "$direct_nspr_config"; then
    dnl ========================================================
    dnl = Setup a nice relatively clean build environment for
    dnl = sub-configures.
    dnl ========================================================
    CC="$_SUBDIR_CC"
    CXX="$_SUBDIR_CXX"
    CFLAGS="$_SUBDIR_CFLAGS"
    CPPFLAGS="$_SUBDIR_CPPFLAGS"
    CXXFLAGS="$_SUBDIR_CXXFLAGS"
    LDFLAGS="$_SUBDIR_LDFLAGS"
    HOST_CC="$_SUBDIR_HOST_CC"
    HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
    HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
    RC=
fi

# Run the SpiderMonkey 'configure' script.
dist=$MOZ_BUILD_ROOT/dist
ac_configure_args="$_SUBDIR_CONFIG_ARGS"
+10 −10
Original line number Diff line number Diff line
@@ -57,10 +57,10 @@
#ifdef MOZ_ENABLE_DBUS
#include "nsDBusHandlerApp.h"
#endif 
#if defined(ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
#include "nsExternalSharingAppService.h"
#endif
#if defined(ANDROID)
#if defined(MOZ_WIDGET_ANDROID)
#include "nsExternalURLHandlerService.h"
#endif

@@ -118,10 +118,10 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(PlatformLocalHandlerApp_t)
#ifdef MOZ_ENABLE_DBUS
NS_GENERIC_FACTORY_CONSTRUCTOR(nsDBusHandlerApp)
#endif 
#if defined(ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsExternalSharingAppService)
#endif
#if defined(ANDROID)
#if defined(MOZ_WIDGET_ANDROID)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsExternalURLHandlerService)
#endif

@@ -148,10 +148,10 @@ NS_DEFINE_NAMED_CID(NS_LOCALHANDLERAPP_CID);
#ifdef MOZ_ENABLE_DBUS
NS_DEFINE_NAMED_CID(NS_DBUSHANDLERAPP_CID);
#endif
#if defined(ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
NS_DEFINE_NAMED_CID(NS_EXTERNALSHARINGAPPSERVICE_CID);
#endif
#if defined(ANDROID)
#if defined(MOZ_WIDGET_ANDROID)
NS_DEFINE_NAMED_CID(NS_EXTERNALURLHANDLERSERVICE_CID);
#endif
NS_DEFINE_NAMED_CID(NS_SHENTRY_CID);
@@ -178,10 +178,10 @@ const mozilla::Module::CIDEntry kDocShellCIDs[] = {
#ifdef MOZ_ENABLE_DBUS
  { &kNS_DBUSHANDLERAPP_CID, false, NULL, nsDBusHandlerAppConstructor },
#endif
#if defined(ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
  { &kNS_EXTERNALSHARINGAPPSERVICE_CID, false, NULL, nsExternalSharingAppServiceConstructor },
#endif
#if defined(ANDROID)
#if defined(MOZ_WIDGET_ANDROID)
  { &kNS_EXTERNALURLHANDLERSERVICE_CID, false, NULL, nsExternalURLHandlerServiceConstructor },
#endif
  { &kNS_SHENTRY_CID, false, NULL, nsSHEntryConstructor },
@@ -227,10 +227,10 @@ const mozilla::Module::ContractIDEntry kDocShellContracts[] = {
#ifdef MOZ_ENABLE_DBUS
  { NS_DBUSHANDLERAPP_CONTRACTID, &kNS_DBUSHANDLERAPP_CID },
#endif
#if defined(ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
#if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_ENABLE_MEEGOTOUCHSHARE)
  { NS_EXTERNALSHARINGAPPSERVICE_CONTRACTID, &kNS_EXTERNALSHARINGAPPSERVICE_CID },
#endif
#if defined(ANDROID)
#if defined(MOZ_WIDGET_ANDROID)
  { NS_EXTERNALURLHANDLERSERVICE_CONTRACTID, &kNS_EXTERNALURLHANDLERSERVICE_CID },
#endif
  { NS_SHENTRY_CONTRACTID, &kNS_SHENTRY_CID },
+2 −2
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@

#include "nsDeviceMotion.h"

#if defined(ANDROID)
#if defined(MOZ_WIDGET_ANDROID)
#include "APKOpen.h"
#endif

@@ -272,7 +272,7 @@ ContentChild::Init(MessageLoop* aIOLoop,
#ifdef MOZ_CRASHREPORTER
    SendPCrashReporterConstructor(CrashReporter::CurrentThreadId(),
                                  XRE_GetProcessType());
#if defined(ANDROID)
#if defined(MOZ_WIDGET_ANDROID)
    PCrashReporterChild* crashreporter = ManagedPCrashReporterChild()[0];

    InfallibleTArray<Mapping> mappings;
Loading