Make Crankshaft configurable at compile-time.

Add a flag in Android.mk to enable crankshaft in V8.

Note that Crankshaft and snapshotting cannot currently be used
at the same time. For now, leave Crankshaft disabled by default.

Change-Id: I84fcc02882e1b16cd0bc783d778ffbcc4531c868
diff --git a/Android.libv8.mk b/Android.libv8.mk
index 3eb42e2..7f7cb22 100644
--- a/Android.libv8.mk
+++ b/Android.libv8.mk
@@ -78,12 +78,12 @@
 	-DV8_NATIVE_REGEXP \
 	-fvisibility=hidden
 
-ifeq ($(TARGET_ARCH),arm)
-	LOCAL_CFLAGS += -DARM -DV8_TARGET_ARCH_ARM
+ifeq ($(ENABLE_V8_CRANKSHAFT),true)
+	LOCAL_CFLAGS += -DENABLE_VMSTATE_TRACKING -DENABLE_LOGGING_AND_PROFILING
 endif
 
-ifeq ($(ENABLE_V8_LOGGING_AND_PROFILING),true)
-	LOCAL_CFLAGS += -DENABLE_LOGGING_AND_PROFILING
+ifeq ($(TARGET_ARCH),arm)
+	LOCAL_CFLAGS += -DARM -DV8_TARGET_ARCH_ARM
 endif
 
 ifeq ($(DEBUG_V8),true)
diff --git a/Android.mk b/Android.mk
index c69a2cc..1c9ceb5 100644
--- a/Android.mk
+++ b/Android.mk
@@ -30,6 +30,13 @@
 # Build libv8 and v8shell
 ifeq ($(TARGET_ARCH),arm)
     ENABLE_V8_SNAPSHOT = true
+    ENABLE_V8_CRANKSHAFT = false
+    ifeq ($(ENABLE_V8_CRANKSHAFT),true)
+        ifeq ($(ENABLE_V8_SNAPSHOT),true)
+            # Snapshotting and crankshaft do not work well together right now.
+            $(error Cannot build V8 with both crankshaft and snapshotting)
+        endif
+    endif
     include $(BASE_PATH)/Android.mksnapshot.mk
     include $(BASE_PATH)/Android.libv8.mk
     include $(BASE_PATH)/Android.v8shell.mk
diff --git a/Android.v8common.mk b/Android.v8common.mk
index 4a35d36..92501d3 100644
--- a/Android.v8common.mk
+++ b/Android.v8common.mk
@@ -12,6 +12,7 @@
 	src/builtins.cc \
 	src/cached-powers.cc \
 	src/checks.cc \
+	src/circular-queue.cc \
 	src/code-stubs.cc \
 	src/codegen.cc \
 	src/compilation-cache.cc \
@@ -63,6 +64,7 @@
 	src/preparse-data.cc \
 	src/preparser.cc \
 	src/property.cc \
+	src/profile-generator.cc \
 	src/regexp-macro-assembler.cc \
 	src/regexp-macro-assembler-irregexp.cc \
 	src/regexp-stack.cc \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 7a097df..49ab2c1 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -49,6 +49,10 @@
 $(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mksnapshot_intermediates)
 
 
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libv8_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/bin/mksnapshot)
+$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mksnapshot_intermediates)
+
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
 # ************************************************