aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile.android
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Allow BUILD_HOST_static to build statically-linked emulator"Andrew Hsieh2012-04-281-0/+4
|\
| * Allow BUILD_HOST_static to build statically-linked emulatorAndrew Hsieh2012-04-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Statically linked emulator is easy to setup in sandboxed environment. With this and BUILD_HOST_static in build/ (seperate CL), statically-linked SDK tools can be built with the following command BUILD_HOST_static=1 make PRODUCT-sdk-aapt adb aidl dexdump fastboot \ llvm-rs-cc dmtracedump emulator emulator-arm emulator-x86 \ etc1tool hprof-conv mksdcard sqlite3 zipalign No need to build HW GL libraries (libOpenglRender, libGLES_CM_translator, libGLES_V2_translator and libEGL_translator) because statically-linked emulator doesn't support audio and graphics. (eg. -no-window) Change-Id: I209287a00f66295b8b8135451025428f03776a1a
* | Fix standalone emulator build.Jesse Hall2012-04-261-0/+3
|/ | | | | | | | | | - Allow building with OpenGL ES acceleration disabled, avoiding a dependency on stuff outside the QEMU project. - Allow the standalone configure.sh to provide the include/lib path for the OpenGL ES libraries. - Update the default OpenGL ES include path for standalone builds. Change-Id: I03f4627af4c271783b65a116ceb5934385c68cdc
* Publish and use libOpenglRender interface headerJesse Hall2012-04-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The emulator opengles.c file duplicated the function declarations from libOpenglRenderer's render_api.h instead of including it directly. This led to multiple bugs since the declarations didn't actually match, but there was no way for the compiler or dynamic loader to check this. This change makes opengles.c include render_api.h to get function pointer prototypes, and changes the prototypes/implementation as necessary to make both sides actually match. It should be much more difficult to introduce interface mismatch bugs now. Two bugs this change would have prevented: (a) The interface mismatch caused by inconsistent branching which led to GPU acceleration crashing on Windows. With this change, we would have caught the problem at compile time. (b) The emulator verbose log has always been printing "Can't start OpenGLES renderer?" even when the renderer started fine. This is because the renderer was returning a bool (true == success) but the emulator's declaration said it returned int, and the emulator assumed 0 meant success. This difference in return type should now be caught at compile time. Change-Id: I5b3c70c9a40854332d67e37333acd6edb6ad01f6
* Re-enable Linux 64-bit emulatorAndrew Hsieh2012-03-231-6/+6
| | | | | | | Restore rules in Makefiles for Linux 64-bit emulator, now that all the dependencies are merged (toolchain, lib64*.{a,so}, etc) Change-Id: I25ecc53837ad9f10ceafb89d9e1d7a3124ce2d71
* Revert to previous prebuilt toolchain until new ones are available in AOSPAndrew Hsieh2012-03-171-6/+6
| | | | | | | | | | The new prebuilt toolchains prebuilts/tools/gcc-sdk points to aren't available in AOSP yet (*). Without it, 64-bit emulator can't be built. Revert to previous prebuilt toochain and disable 64-bit emulator for now. (*) This git auto-sync to AOSP in short-time Change-Id: I7301bcbcbc1d4505d34ad69b562d0b9e5968093a
* 64-bit emulatorAndrew Hsieh2012-03-131-21/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch to allow emulator searches for emulator64-${ARCH} first on 64-bit OS. If none is found, the original behavior which searchs for 32-bit emulator-${ARCH} is performed as usual. 64-bit emulator (which still emulates Android built in 32-bit) offers up to 20% speedup compared to its 32-bit counterpart. Details: android/main-emulator.c 1) search emulator64 based on the OS 2) dlopen lib64OpenglRender in 64-bit Makefile.* 1) Rules to build 64-bit executable emulator64-{x86,arm} and libraries emulator64-{libui,libqemu,target-i386,target-arm,libelff,common} 2) remove -Wa,-32 3) Changes prebuit toolchain path android-configure.h android/build/common.h 1) no longer force 32-bit build (because now prebuilts/tools/gcc-sdk/gcc can now handle 64-bit 2) set ANDROID_PREBUILTS to correctly locate ccache android/config/*/config-host.h 1) Detect HOST_X86_64 and HOST_X86_64/HOST_I386 Misc 64-bit porting clean-up 1) use %zx to print variable of type size_t in hex 2) use %zu to print variable of type size_t in dec 3) Initialize query_parm to NULL 4) use PRIu64 to replace PDUd64 5) use PRId64/PRIu64/PRIX64 to print 64-bit 6) drop PRUx64 because PRIx64 does the same 7) cast pointer arith to intptr_t before casting to int 8) fixed 1ULL<<63 Change-Id: Ife62a20063a6ec38d4a9b23977e840af1fce149a
* Revert "Reference new location of SDK toolchain"Jean-Baptiste Queru2012-01-111-5/+1
| | | | This reverts commit 6e8d9298782ce4d5a7d506638ced4de0396735f9.
* Reference new location of SDK toolchainJean-Baptiste Queru2012-01-111-1/+5
| | | | Change-Id: Id28db802a5401141a5ec1052de81dbee5033577f
* Reference the new prebuilt ccache location.Ying Wang2012-01-091-1/+1
| | | | Change-Id: Id990e37b9d8803aa5a23c365076c4044ef4719af
* Improve emulator under MacOS LionAl Sutton2012-01-041-3/+4
| | | | | | Lion/XCode4 needs to be explicitly told the dynamic library lookup symbols in the precompiled libSDL are resolved at runtime
* Fix build on MacOS 10.7 / XCode 4Al Sutton2011-12-211-0/+5
| | | | | | | | | Force the inclusion of the dynamic linker libraries used by the prebuilt libSDL. I did look at turning the switch on to build libSDL from source, but libSDL-1.2 isn't buildable under 10.7/XCode 4, and they've moved on to 1.3 now, so that would have been a dead end; Change-Id: Idf75bb46e855929543395811d4d56e1f7dfa3785
* Fix build under MacOS 10.7 / XCode 4Al Sutton2011-12-211-2/+2
| | | | | | | | | | | This is change of a check in the emulator build file so it only applies a rule when it's being run on 10.6 instead of what it currently does, which is apply the run to any build running on 10.5 and above. This is needed because it's the part of the emulator build which requires the 10.4 SDK, which, of course, isn't available under XCode 4; Change-Id: I4748cc4ac50c966a7add04e000aa665d4738ba62
* Implemented Mac camera emulationVladimir Chtchetkine2011-10-121-1/+1
| | | | Change-Id: I01609e8bfcdd8ee5ef876344d0a334ecd69a2b7a
* Implements camera service in emulatorVladimir Chtchetkine2011-09-121-0/+1
| | | | | | | | | | | | This is fully functional camera service implementation, that works (tested) on both, Linux and Windows. Fixed little/big endian bugs in the coverter code. Moved preview frames to use RGB32 instead of RGB565: RGB32 conversions are simpler and faster in the guest. Made "payload size send" a separate routine Change-Id: I96954f4c2cb4e4ef4dd6a20e41897d79c5037bae
* Add hw.gpu.enabled hardware propertyDavid 'Digit' Turner2011-08-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new hardware property to enable GPU emulation (named hw.gpu.enabled). It is currently disabled by default. It also modifies the UI code to display the GL output properly inside the UI window. And sets the kernel parameter qemu.gles to either 0 or 1 to indicate to the guest system's GLES libraries whether to use GPU emulation or fallback to the software renderer. A future patch will also add auto-detection of desktop GL capabilities. For example, if the emulator is started on a headless server without an X11/GL display, hw.gpu.enabled will be forced to 'no', forcing the guest to use the software renderer. Another patch will allow to change the property from the command-line for debugging purpose. NOTE: If you want to test GPU emulation, change the default value of the property in android/avd/hardware-properties.ini from 'no' to 'yes'. You will need to run a ToT master AOSP tree with the following pending patches applied: https://review.source.android.com/25797 https://review.source.android.com/25154 https://review.source.android.com/25759 Change-Id: I1fa3512be24395244fd5068f2bf59ad54db5c7d5
* hw-config-defs.h: Remove from source tree + auto-generateDavid 'Digit' Turner2011-07-051-3/+5
| | | | | | | | | | | This patch modifies the emulator's build system to place the auto-generated file android/avd/hw-config-defs.h into the build directory. Before that, the file was placed in the source tree. + Fix the standalone build system to properly deal with generated source file dependencies + LOCAL_C_INCLUDES Change-Id: I4e77cd20bf4ca21f79d5dd19f27724bd8be53a79
* Fix -audio <name> and -no-audio processing.David 'Digit' Turner2011-06-271-0/+1
| | | | | | | | | Turns out that the string passed to putenv() must not be modified :-/ We provide our own win32 implementation for emulator-ui that doesn't embed the os-win32.c QEMU-specific file. Change-Id: I7260fbc37d23a5340dab589dfde577ef5eb10005
* win32: do not use -mno-cygwin when buildingDavid 'Digit' Turner2011-06-231-1/+1
| | | | | | | This option is no longer necessary, nor is it supported by recent versions of Cygwin and/or i586-mingw32msvc-gcc. Change-Id: Ie34481b60bfc3c1ced3e1ba09c4c935a7867e96d
* qemu-timer.c: upstream integrateDavid 'Digit' Turner2011-06-011-3/+3
| | | | Change-Id: I6856ded73b4dcd10fe4831697c8518f958aeffbb
* os-posix.c + os-win32.c and dependenciesDavid 'Digit' Turner2011-06-011-2/+5
| | | | | | + Generate qemu-options.def instead of qemu-options.h Change-Id: I043e6b0c1c58e5cc2e96d05465f39b42f9054b5a
* Add 'emulator' launcher program.David 'Digit' Turner2011-05-021-0/+13
| | | | | | | | | | | | | | | | | | | | | | | This patch renames the current ARM-specific emulator binary to 'emulator-arm' and introduces a new tiny (less than 20KB) 'emulator' launcher program. The role of 'emulator' is to launch either 'emulator-arm' or 'emulator-x86' based on the target AVD or platform build being used. This program will be replaced in the future by what is currently known as 'emulator-ui', but is a good placeholder until this work is completed. + Move some utility functions from android/avd/info.[hc] to android/avd/util.[hc] so that 'emulator' can use them directly. IMPORTANT: For platform builds, the target architecture is detected automatically by parsing the build.prop file. For SDK AVDs however, there is no easy way to determine the target architecture, so the patch adds a new hw.cpu.arch property which can have value 'arm' or 'x86' Change-Id: I0084c196695a75c8b9230ba716b3cd2e12610ded
* Fix windows build when USE_CCACHE is defined.David 'Digit' Turner2011-03-121-0/+1
| | | | | | | This avoids a problem where the Makefile force the use of the non-existing prebuilt/windows/ccache/ccache. Change-Id: Icad0fb91a211787bbe73b169aa4e8046de349679
* Fix the standalone emulator build.David 'Digit' Turner2011-03-021-1/+3
| | | | | | The previous commit broke it due to the way it handled LOCAL_AR. Change-Id: I3458f9306b3fca9771d868673ae89f4d995aeec3
* Avoid redefining HOST_CC/CXX when building the emulator.David 'Digit' Turner2011-03-021-4/+5
| | | | | | | | | HOST_CC and HOST_CXX are defined/controlled by the build system. We don't want to redefine them here because this forces, on Linux, the use of the 32-bit host toolchain for all other host modules built after external/qemu. Change-Id: Ic9dc32b56f5e8d28559b5375178768726ad5cdcc
* Build arm and x86 binaries at the same time.David 'Digit' Turner2011-02-241-1195/+76
| | | | | | | | | | | | This patch modifies the way we build the emulator's various programs. It reduces the number of static libraries generated, and better segregates between common, ui, qemu and target-specific code. Note that we build both the arm and x86 binaries at the same time in all build scenarios for now. This is done to catch build regressions as soon as possible. Change-Id: I6240705041e137e32f207e1e2444c614c52aaf05
* Remove android/main-ui.cDavid 'Digit' Turner2011-02-231-1/+1
| | | | | | | | | | | | The differences between android/main.c and android/main-ui.c are now minimal, so remove the latter source file by moving the corresponding code into android/main-common.c Also add a -snapshot-no-time-update core option to implement the emulator-ui -no-snapshot-update-time option. We're probably going to clean this up a little in the future, but this is enough for now. Change-Id: I868bb4e47c3d106ae7436ee3f5b2c0ff5fb6ea5c
* Revert "Build arm and x86 binaries at the same time."Xavier Ducrohet2011-02-091-60/+1201
| | | | | | This fails to build on MacOS X This reverts commit a39b10bd2574825a815d6ad854499dd127cfa9cb.
* Build arm and x86 binaries at the same time.David 'Digit' Turner2011-02-101-1201/+60
| | | | Change-Id: I105c5a097c988cb964b47b40b71c7a08af0d9210
* Rename qemu-android to qemu-android-$(TARGET_ARCH)David 'Digit' Turner2011-02-091-2/+1
| | | | | | | This makes it easier to distinguish between the ARM and x86 versions of the program. Change-Id: Id6991e4c4b14c560d1732da05e253c678ca392d9
* x86: Add x86 support. Rebase the change (20906/1) due to a minor conflict.Jun Nakajima2011-02-021-30/+107
| | | | | | | Change-Id: Ic73cca0fc6c6e5cf74f63daa6080d00aa7c392bb Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com> Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com> Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
* Simplify UI-only sources.David 'Digit' Turner2011-02-021-4/+1
| | | | | | | | | | Get rid of console-ui.c, qemu-timer-ui.c and modify vl-android-ui.c to use a generic Looper object instead of a crummy event loop. We still need to implement qemu_set_fd_handler for two sources under android/protocol/ but this will be cleaned up later. Change-Id: Icd0762675ca2f54e720a9cec40f96caea500b52f
* Move framebuffer.h to android/David 'Digit' Turner2011-02-021-3/+3
| | | | | | | The QFrameBuffer is no used by QEMU-specific code anymore so it's more logical to move it here. Change-Id: Id49ff53dd49648000e7543652d66f7c03881a8cb
* Move core-connection.c from to android/protocol/David 'Digit' Turner2011-02-021-1/+1
| | | | Change-Id: I1f04ed1f00fccdea043f4a4fbf5ba745b36bbcc7
* Move common main routines from into android-common.[hc]David 'Digit' Turner2011-02-021-0/+2
| | | | | | This is a first step towards cleaning-up our initialization/startup code. Change-Id: I2d4fbc5c2cd0181fb39a1a97a15650945038c3b9
* Add cache-util.c to built sources for PPCMarcus Comstedt2011-02-011-1/+2
| | | | | | | The file cache-utils.c contains code that is referenced in a build for a PowerPC host. Change-Id: I284481d4015de8d7fc230014faf9a1ead61c222c
* Refactor attach-UI serviceVladimir Chtchetkine2011-01-311-0/+2
| | | | Change-Id: Ia68ceb57ee5b5a66fa76b837fe3b990eb12e7188
* Refactor the framebuffer serviceVladimir Chtchetkine2011-01-311-2/+2
| | | | Change-Id: I8ac4580af65b8d58976c97b77b309dd202e75003
* Refactored user-events protocolVladimir Chtchetkine2011-01-281-2/+2
| | | | Change-Id: I08afb96ef17a52c3795f5029acfc244a93ab57c7
* Refactored ui-core-control and core-ui-control protocolsVladimir Chtchetkine2011-01-281-5/+6
| | | | | | | Also cleaned the code up from obsolete ui-core-protocol.* and core-ui-protocol.* Change-Id: I194bec669d25b68a10c32b2be50bc9da50c52ebb
* Implement UI control service and clientVladimir Chtchetkine2011-01-251-0/+2
| | | | Change-Id: Iecc1b5bb9ddcdaf9f22c500a5195718db3f25354
* Implement user event transmission between the UI and the coreVladimir Chtchetkine2011-01-191-0/+1
| | | | Change-Id: I503aa691cada5250b76167a923d4a226d20ee41d
* Refining main-ui.c to better separate UI and core related initializationVladimir Chtchetkine2011-01-131-2/+2
| | | | | | | | | | | The main reason for this is to clarify initialization for UI that starts core, and UI that attaches to an existing core. In this CL I did: - Removed -initdata option that seems obsolete (doesn't affect anything in the code) - Passed through -timezone option that doesn't affect anything in the UI, and is needed only in the core. - Removed dependency on AVD info from the core (core needed only virtual device name) Change-Id: Ie631249848a1b5b8d837c0c7b201a40ee7e4a367
* Fix Darwin build.David 'Digit' Turner2011-01-061-1/+1
| | | | | | | The reason for the build breakage is still mysterious though. Were the system headers updated during the last system update ?!? Change-Id: Ib0ea2b54bf7ffad907752c3a82fb4bbe686425a5
* upstream: integrate block changesDavid 'Digit' Turner2011-01-021-1/+10
| | | | | | | | This large patch upgrades the block support code to the upstream version available in ba5e7f82169f32ab8163c707d97c799ca09f8924 dated 2010-08-08 Change-Id: I8b24df0c287e72f6620650a4d6a62e1bb315453e
* upstream: Move bottom-half handlers to async.cDavid 'Digit' Turner2011-01-021-0/+1
| | | | Change-Id: Ibd4321edb2abe349d32483a60fdb94a282f22240
* Add -audio-test-out option to the core.David 'Digit' Turner2011-01-021-0/+2
| | | | | | | | | | | | | This option can be used to quickly check audio output (without having to boot a full AVD and launch a sound-playing application). Usage: emulator <other-options> -qemu -audio-test-out qemu-android <other-options> -audio-test-out This simply generates an ugly saw signal, but that's enough for us. Change-Id: I060300b4000b9705d181c6262de8d4d13c749e69
* Resubmit framebuffer service implementationVladimir Chtchetkine2010-12-201-0/+2
| | | | Change-Id: I184e27a1e8d88835bc9f0502eccfa3f64a7aaf9e
* Implement core display deriving it from android displayVladimir Chtchetkine2010-12-141-0/+1
| | | | | | | Core display is a framebuffer client that receives framebuffer updates and dispatches them to the UI attached to the core. Change-Id: Iff1e0609cbe66240031e3670934a6796a9ae3b15
* Submit mergedVladimir Chtchetkine2010-12-061-0/+1
| | | | | | | | | | | | | | Squashed commit of the following: commit aeefab810c6331e2f96e81f20e4408b39dd3a2ca Author: Vladimir Chtchetkine <vchtchetkine@google.com> Date: Thu Dec 2 07:40:34 2010 -0800 Implement -attach-core UI option Change-Id: I4168e2d707cab1b4873ee16d86d5126c1a316abf Change-Id: I2da1ef5d53641f3c60d83d8d5ddf3aff34b0c6c7