diff options
Diffstat (limited to 'Makefile.android')
-rw-r--r-- | Makefile.android | 140 |
1 files changed, 122 insertions, 18 deletions
diff --git a/Makefile.android b/Makefile.android index a844a6b..0cc5ed5 100644 --- a/Makefile.android +++ b/Makefile.android @@ -9,10 +9,12 @@ CONFIG_DIRS := \ CONFIG_INCLUDES := $(CONFIG_DIRS:%=-I%) -MY_CFLAGS := $(CONFIG_INCLUDES) -O2 -g \ - -fno-PIC \ - -falign-functions=0 \ - -fomit-frame-pointer \ +MY_OPTIM := -O2 -g -fno-PIC -falign-functions=0 -fomit-frame-pointer +ifeq ($(BUILD_DEBUG_EMULATOR),true) + MY_OPTIM := -O0 -g +endif + +MY_CFLAGS := $(CONFIG_INCLUDES) $(MY_OPTIM) # Overwrite configuration for debug builds. # @@ -121,7 +123,6 @@ LOCAL_CFLAGS += $(TCG_CFLAGS) \ LOCAL_SRC_FILES := \ tcg/tcg.c \ - tcg/tcg-dyngen.c \ tcg/tcg-runtime.c \ include $(BUILD_HOST_STATIC_LIBRARY) @@ -144,6 +145,11 @@ LOCAL_CFLAGS += $(ZLIB_CFLAGS) -I$(LOCAL_PATH)/$(ZLIB_DIR) HW_SOURCES := \ android_arm.c \ arm_pic.c \ + bt.c \ + bt-hci.c \ + bt-hid.c \ + bt-l2cap.c \ + bt-sdp.c \ cdrom.c \ dma.c \ irq.c \ @@ -160,14 +166,18 @@ HW_SOURCES := \ goldfish_timer.c \ goldfish_trace.c \ goldfish_tty.c \ + msmouse.c \ pci.c \ + qdev.c \ scsi-disk.c \ smc91c111.c \ + sysbus.c \ usb-hid.c \ usb-hub.c \ usb-msd.c \ usb-ohci.c \ usb.c \ + watchdog.c \ LOCAL_SRC_FILES += $(HW_SOURCES:%=hw/%) @@ -243,6 +253,7 @@ AUDIO_LDLIBS := ifeq ($(HOST_OS),darwin) CONFIG_COREAUDIO ?= yes + AUDIO_CFLAGS += -DHOST_BSD=1 endif ifeq ($(HOST_OS),windows) @@ -344,9 +355,9 @@ LOCAL_STATIC_LIBRARIES := emulator-hw emulator-arm emulator-tcg LOCAL_LDLIBS := $(MY_LDLIBS) # don't remove the -fno-strict-aliasing, or you'll break things -# (e.g. slirp2/network support) +# (e.g. slirp-android/network support) # -LOCAL_CFLAGS := -fno-PIC -fomit-frame-pointer -Wno-sign-compare \ +LOCAL_CFLAGS := -fno-PIC -Wno-sign-compare \ -fno-strict-aliasing -g -W -Wall -Wno-unused-parameter LOCAL_CFLAGS := $(MY_CFLAGS) $(LOCAL_CFLAGS) @@ -370,6 +381,9 @@ LOCAL_CFLAGS += -I$(LOCAL_PATH)/ \ $(TCG_CFLAGS) \ $(HW_CFLAGS) \ +# Needed by the upstream code +LOCAL_CFLAGS += -DNEED_CPU_H + # include telephony stuff # TELEPHONY_SOURCES := android_modem.c modem_driver.c gsm.c sim_card.c sysdeps_qemu.c sms.c remote_call.c @@ -392,14 +406,14 @@ endif # !QEMU_AUDIO_LIB LOCAL_CFLAGS += $(AUDIO_CFLAGS) LOCAL_LDLIBS += $(AUDIO_LDLIBS) -# include slirp2 code, i.e. the user-level networking stuff +# include slirp-android code, i.e. the user-level networking stuff # SLIRP_SOURCES := bootp.c cksum.c debug.c if.c ip_icmp.c ip_input.c ip_output.c \ mbuf.c misc.c sbuf.c slirp.c socket.c tcp_input.c tcp_output.c \ tcp_subr.c tcp_timer.c tftp.c udp.c -LOCAL_SRC_FILES += $(SLIRP_SOURCES:%=slirp2/%) -LOCAL_CFLAGS += -I$(LOCAL_PATH)/slirp2 +LOCAL_SRC_FILES += $(SLIRP_SOURCES:%=slirp-android/%) +LOCAL_CFLAGS += -I$(LOCAL_PATH)/slirp-android # socket proxy support # @@ -441,16 +455,37 @@ endif # include other sources # -VL_SOURCES := vl.c osdep.c cutils.c \ +VL_SOURCES := vl-android.c osdep.c cutils.c \ block.c readline.c monitor.c console.c loader.c sockets.c \ - block-qcow.c aes.c d3des.c block-cloop.c block-dmg.c block-vvfat.c \ - block-qcow2.c block-cow.c \ + aes.c d3des.c \ + block/qcow.c \ + block/qcow2.c \ + block/qcow2-refcount.c \ + block/qcow2-snapshot.c \ + block/qcow2-cluster.c \ + block/cloop.c \ + block/dmg.c \ + block/vvfat.c \ + buffered_file.c \ cbuffer.c \ - gdbstub.c usb-linux.c \ - vnc.c disas.c arm-dis.c \ + gdbstub.c \ + vnc-android.c disas.c arm-dis.c \ shaper.c charpipe.c loadpng.c \ framebuffer.c \ tcpdump.c \ + qemu-char-android.c \ + qemu-malloc.c \ + qemu-option.c \ + savevm.c \ + net-android.c \ + acl.c \ + aio-android.c \ + dma-helpers.c \ + qemu-sockets-android.c \ + keymaps.c \ + bt-host.c \ + bt-vhci.c \ + module.c \ android/boot-properties.c \ android/charmap.c \ android/cmdline-option.c \ @@ -486,13 +521,23 @@ VL_SOURCES += hw/arm_boot.c \ hw/android_arm.c \ ifeq ($(HOST_OS),windows) - VL_SOURCES += block-raw-win32.c + VL_SOURCES += block/raw-win32.c \ + migration-dummy-android.c \ + iolooper-select.c else - VL_SOURCES += block-raw-posix.c + VL_SOURCES += block/raw-posix.c \ + migration.c \ + migration-exec.c \ + migration-tcp-android.c \ + iolooper-select.c endif ifeq ($(HOST_OS),linux) + VL_SOURCES += usb-linux.c \ + qemu-thread.c LOCAL_LDLIBS += -lX11 +else + VL_SOURCES += usb-dummy-android.c endif ifeq ($(HOST_ARCH),x86) @@ -506,7 +551,7 @@ ifeq ($(HOST_ARCH),ppc) endif ifeq ($(HOST_OS),windows) - #VL_SOURCES += tap-win32.c + VL_SOURCES += tap-win32.c LOCAL_LDLIBS += -mno-cygwin -mwindows -mconsole endif @@ -542,6 +587,65 @@ $(ANDROID_ICON_PATH)/$(ANDROID_ICON_OBJ): $(ANDROID_ICON_PATH)/android_icon.rc LOCAL_PREBUILT_OBJ_FILES += images/$(ANDROID_ICON_OBJ) endif +# qemu-options.h is generated from qemu-options.hx with the "hxtool" shell script +# +intermediates := $(call intermediates-dir-for,EXECUTABLES,$(LOCAL_MODULE),true) + +QEMU_OPTIONS_H := $(intermediates)/qemu-options.h +$(QEMU_OPTIONS_H): PRIVATE_PATH := $(LOCAL_PATH) +$(QEMU_OPTIONS_H): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/hxtool -h < $< > $@ +$(QEMU_OPTIONS_H): $(LOCAL_PATH)/qemu-options.hx $(LOCAL_PATH)/hxtool + $(transform-generated-source) + +$(intermediates)/vl-android.o: $(QEMU_OPTIONS_H) + +LOCAL_GENERATED_SOURCES += $(QEMU_OPTIONS_H) + +# qemu-monitor.h is generated from qemu-monitor.hx with the "hxtool" shell script +# +intermediates := $(call intermediates-dir-for,EXECUTABLES,$(LOCAL_MODULE),true) + +QEMU_MONITOR_H := $(intermediates)/qemu-monitor.h +$(QEMU_MONITOR_H): PRIVATE_PATH := $(LOCAL_PATH) +$(QEMU_MONITOR_H): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/hxtool -h < $< > $@ +$(QEMU_MONITOR_H): $(LOCAL_PATH)/qemu-monitor.hx $(LOCAL_PATH)/hxtool + $(transform-generated-source) + +$(intermediates)/vl-android.o: $(QEMU_MONITOR_H) + +LOCAL_GENERATED_SOURCES += $(QEMU_MONITOR_H) + + +# gdbstub-xml.c contains C-compilable arrays corresponding to the content +# of $(LOCAL_PATH)/gdb-xml/, and is generated with the 'feature_to_c.sh' script. +# +ifeq ($(QEMU_TARGET_XML_SOURCES),) + QEMU_TARGET_XML_SOURCES := arm-core arm-neon arm-vfp arm-vfp3 + QEMU_TARGET_XML_SOURCES := $(QEMU_TARGET_XML_SOURCES:%=$(LOCAL_PATH)/gdb-xml/%.xml) +endif + +QEMU_GDBSTUB_XML_C := $(intermediates)/gdbstub-xml.c +$(QEMU_GDBSTUB_XML_C): PRIVATE_PATH := $(LOCAL_PATH) +$(QEMU_GDBSTUB_XML_C): PRIVATE_SOURCES := $(TARGET_XML_SOURCES) +$(QEMU_GDBSTUB_XML_C): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PATH)/feature_to_c.sh $@ $(QEMU_TARGET_XML_SOURCES) +$(QEMU_GDBSTUB_XML_C): $(QEMU_TARGET_XML_SOURCES) $(LOCAL_PATH)/feature_to_c.sh + $(hide) rm -f $@ + $(transform-generated-source) + +$(intermediates)/vl-android.o: $(QEMU_GDBSTUB_XML_C) + +LOCAL_GENERATED_SOURCES += $(QEMU_GDBSTUB_XML_C) + + +# this is already done by the Android build system, but is done for the +# benefit of the stand-alone one. +# +ifeq ($(BUILD_STANDALONE_EMULATOR),true) + LOCAL_CFLAGS += -I$(intermediates) +endif + + + # other flags LOCAL_CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE LOCAL_LDLIBS += -lm -lpthread |