Merge changes I1df53a25,Ib89767c4,I4aa88bfb,I1f769355 * changes: disabled ccache for OSX debug builds _WIN32 and_WIN64 are defined automatically by MinGW 4.8.3 Enable building Win64 binaries and running unit tests Use our prebuilt Mingw64 toolchain to build Win32 binaries.
diff --git a/Makefile.android b/Makefile.android index 600be7c..e509206 100644 --- a/Makefile.android +++ b/Makefile.android
@@ -10,9 +10,8 @@ # This defines EMULATOR_BUILD_64BITS to indicate that 64-bit binaries # must be generated by the build system. For now, only do it for -# Linux and Darwin, since we the sources do not compile with Mingw-w64 -# yet due to differing procedure call ABI conventions. -EMULATOR_BUILD_64BITS := $(strip $(filter linux darwin,$(HOST_OS))) +# Windows, Linux and Darwin. +EMULATOR_BUILD_64BITS := $(strip $(filter linux darwin windows,$(HOST_OS))) # Disable 64-bit build for Darwin platform builds. ifeq ($(HOST_OS),darwin) @@ -78,18 +77,9 @@ ifeq ($(HOST_OS),windows) # we need Win32 features that are available since Windows 2000 Professional/Server (NT 5.0) MY_CFLAGS += -DWINVER=0x501 - MY_CFLAGS += -D_WIN32 # LARGEADDRESSAWARE gives more address space to 32-bit process MY_LDFLAGS32 += -Xlinker --large-address-aware - ifneq ($(HOST_IS_64_BIT),) - # Microsoft 64-bit compiler define both _WIN32 and _WIN64 - MY_CFLAGS += -D_WIN64 - # amd64-mingw32msvc- toolchain still name it vfw32. May change it once amd64-mingw32msvc- - # is stabilized - MY_LDLIBS += -lvfw32 - else - MY_LDLIBS += -lvfw32 - endif + MY_LDLIBS += -lvfw32 endif ifeq ($(HOST_ARCH),ppc)
diff --git a/android-configure.sh b/android-configure.sh index 42fe51d..3e13cc2 100755 --- a/android-configure.sh +++ b/android-configure.sh
@@ -237,9 +237,16 @@ fi fi # IN_ANDROID_BUILD = no -if [ -n "$CCACHE" -a -f "$CCACHE" ] ; then - CC="$CCACHE $CC" - log "Prebuilt : CCACHE=$CCACHE" +if [ -n "$CCACHE" -a -f "$CCACHE" ]; then + if [ "$HOST_OS" == "darwin" -a "$OPTION_DEBUG" == "yes" ]; then + # http://llvm.org/bugs/show_bug.cgi?id=20297 + # ccache works for mingw/gdb, therefore probably works for gcc/gdb + log "Prebuilt : CCACHE disabled for OSX debug builds" + CCACHE= + else + CC="$CCACHE $CC" + log "Prebuilt : CCACHE=$CCACHE" + fi else log "Prebuilt : CCACHE can't be found" CCACHE=
diff --git a/android-rebuild.sh b/android-rebuild.sh index 8b54f09..8ca2c2a 100755 --- a/android-rebuild.sh +++ b/android-rebuild.sh
@@ -75,12 +75,9 @@ run make -j$HOST_NUM_CPUS OBJS_DIR="$OUT_DIR" || panic "Could not build sources, please run 'make' to see why." -RUN_64BIT_TESTS=true - TEST_SHELL= EXE_SUFFIX= if [ "$MINGW" ]; then - RUN_64BIT_TESTS= TEST_SHELL=wine EXE_SUFFIX=.exe @@ -100,13 +97,11 @@ run $TEST_SHELL $OUT_DIR/$UNIT_TEST$EXE_SUFFIX || FAILURES="$FAILURES $UNIT_TEST" done - if [ "$RUN_64BIT_TESTS" ]; then - echo "Running 64-bit unit test suite." - for UNIT_TEST in emulator64_unittests emugl64_common_host_unittests; do - echo " - $UNIT_TEST" - run $TEST_SHELL $OUT_DIR/$UNIT_TEST$EXE_SUFFIX || FAILURES="$FAILURES $UNIT_TEST" - done - fi + echo "Running 64-bit unit test suite." + for UNIT_TEST in emulator64_unittests emugl64_common_host_unittests; do + echo " - $UNIT_TEST" + run $TEST_SHELL $OUT_DIR/$UNIT_TEST$EXE_SUFFIX || FAILURES="$FAILURES $UNIT_TEST" + done if [ "$FAILURES" ]; then panic "Unit test failures: $FAILURES"
diff --git a/android/build/common.sh b/android/build/common.sh index 992b769..b859862 100644 --- a/android/build/common.sh +++ b/android/build/common.sh
@@ -16,6 +16,7 @@ # It contains common definitions. # PROGNAME=`basename $0` +PROGDIR=`dirname $0` ## Logging support ## @@ -203,27 +204,25 @@ echo "Sorry, but mingw compilation is only supported on Linux !" exit 1 fi - # Do we have the binaries installed - log "Mingw64 : Checking for mingw64 installation" - MINGW64_PREFIX=x86_64-w64-mingw32 - find_program MINGW64_CC $MINGW64_PREFIX-gcc - if [ -n "$MINGW64_CC" ]; then - MINGW_CC=$MINGW64_CC - MINGW_PREFIX=$MINGW64_PREFIX - else - log "Mingw : Checking for mingw32 installation" - MINGW32_PREFIX=i586-mingw32msvc - find_program MINGW32_CC $MINGW32_PREFIX-gcc - if [ -z "$MINGW32_CC" ] ; then - echo "ERROR: It looks like neither $MINGW64_PREFIX-cc nor $MINGW32_PREFIX-gcc" - echo "are in your path. Please install the mingw32 package !" - exit 1 - fi - MINGW_CC=$MINGW32_CC - MINGW_PREFIX=$MINGW32_PREFIX - FORCE_32BIT=no + # Do we have our prebuilt mingw64 toolchain? + log "Mingw : Looking for prebuilt mingw64 toolchain." + MINGW_DIR=$PROGDIR/../../prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8 + MINGW_CC= + if [ -d "$MINGW_DIR" ]; then + MINGW_PREFIX=$MINGW_DIR/bin/x86_64-w64-mingw32 + find_program MINGW_CC "$MINGW_PREFIX-gcc" fi - log2 "Mingw : Found $MINGW32_CC" + if [ -z "$MINGW_CC" ]; then + log "Mingw : Looking for mingw64 toolchain." + MINGW_PREFIX=x86_64-w64-mingw32 + find_program MINGW_CC $MINGW_PREFIX-gcc + fi + if [ -z "$MINGW_CC" ]; then + echo "ERROR: It looks like no Mingw64 toolchain is available!" + echo "Please install x86_64-w64-mingw32 package !" + exit 1 + fi + log2 "Mingw : Found $MINGW_CC" CC=$MINGW_CC LD=$MINGW_CC AR=$MINGW_PREFIX-ar