SDK: build 'monitor' tool and package it in the SDK.

Fixed with Siva to use the 'ant' builder from Eclipse's baseBuilder jars.

Changed to use:
- the new external/eclipse-basebuilder for the basebuilder jars.
- the rcp deltapack, located prebuilts/eclipse.
- monitor scripts are now in sdk/monitor.
- configuration is now in out/host/eclipse/rcp/build/configuration
  and doesn't change any existing repos.

Requires change I7ab027ff6 from build.git

Change-Id: I72fff09231fc9b3031c10eb42ff821c55af9b5d5
diff --git a/build/product_sdk.mk b/build/product_sdk.mk
index d54710f..7802211 100644
--- a/build/product_sdk.mk
+++ b/build/product_sdk.mk
@@ -35,6 +35,7 @@
 	lint \
 	mksdcard \
 	monkeyrunner \
+	monitor \
 	traceview
 
 # Native host Java libraries that are parts of the SDK.
diff --git a/build/sdk_only_whitelist.mk b/build/sdk_only_whitelist.mk
index 7a07297..3a7d9a3 100644
--- a/build/sdk_only_whitelist.mk
+++ b/build/sdk_only_whitelist.mk
@@ -54,6 +54,7 @@
 	sdk/jarutils \
 	sdk/layoutlib_api \
 	sdk/manifmerger \
+	sdk/monitor \
 	sdk/ninepatch \
 	sdk/rule_api \
 	sdk/lint \
diff --git a/build/tools.darwin.atree b/build/tools.darwin.atree
index b5e852f..d584231 100644
--- a/build/tools.darwin.atree
+++ b/build/tools.darwin.atree
@@ -23,9 +23,8 @@
 ##############################################################################
 
 # RCP Monitor.
-# Not ready yet, fails due to missing "ant" on build servers
-# bin/monitor                                 tools/monitor
-# eclipse/monitor-macosx.cocoa.x86_64/monitor tools/lib/monitor-x86_64
+bin/monitor                                 tools/monitor
+eclipse/monitor-macosx.cocoa.x86_64/monitor tools/lib/monitor-x86_64
 
 # swt
 prebuilts/tools/darwin-x86/swt/swt.jar tools/lib/x86/swt.jar
diff --git a/build/tools.linux.atree b/build/tools.linux.atree
index e9f6b2c..cdba1f2 100644
--- a/build/tools.linux.atree
+++ b/build/tools.linux.atree
@@ -23,10 +23,9 @@
 ##############################################################################
 
 # RCP Monitor.
-# Not ready yet, fails due to missing "ant" on build servers
-# bin/monitor                                 tools/monitor
-# eclipse/monitor-linux.gtk.x86/monitor       tools/lib/monitor-x86
-# eclipse/monitor-linux.gtk.x86_64/monitor    tools/lib/monitor-x86_64
+bin/monitor                                 tools/monitor
+eclipse/monitor-linux.gtk.x86/monitor       tools/lib/monitor-x86
+eclipse/monitor-linux.gtk.x86_64/monitor    tools/lib/monitor-x86_64
 
 
 # swt
diff --git a/build/tools.windows.atree b/build/tools.windows.atree
index bb5befa..66f375a 100755
--- a/build/tools.windows.atree
+++ b/build/tools.windows.atree
@@ -86,12 +86,13 @@
 rm tools/zipalign
 bin/zipalign.exe                            strip tools/zipalign.exe
 
-# RCP Monitor.
-# Not ready yet, fails due to missing "ant" on build servers
-# rm tools/monitor
-# sdk/eclipse/scripts/rcp/monitor.bat               tools/monitor.bat
-# eclipse/monitor-win32.win32.x86/monitor           tools/lib/monitor-x86
-# eclipse/monitor-win32.win32.x86_64/monitor        tools/lib/monitor-x86_64
+# RCP Monitor. Remove linux stuff and replace by Windows files.
+rm tools/monitor
+rm tools/lib/monitor-x86
+rm tools/lib/monitor-x86_64
+sdk/monitor/monitor.bat                           tools/monitor.bat
+eclipse/monitor-win32.win32.x86/monitor           tools/lib/monitor-x86
+eclipse/monitor-win32.win32.x86_64/monitor        tools/lib/monitor-x86_64
 
 
 # Copy the AVD & SDK Manager (aka avd/sdklauncher) to the root of the SDK as
diff --git a/build/windows_sdk_tools.mk b/build/windows_sdk_tools.mk
index 5ddca7d..37a125c 100644
--- a/build/windows_sdk_tools.mk
+++ b/build/windows_sdk_tools.mk
@@ -13,9 +13,9 @@
 	find_java \
 	find_lock \
 	mksdcard \
+	monitor \
 	sdklauncher
 
-# monitor -- disabled due to build break
 
 # Add OpenGLES emulation host libraries if needed.
 ifeq (true,$(BUILD_EMULATOR_OPENGL))
@@ -28,5 +28,6 @@
 
 # Define the list of tool-dependent modules requisites needed
 # for the Windows SDK. These will be built using HOST_OS=linux.
-WIN_SDK_BUILD_PREREQ :=
+WIN_SDK_BUILD_PREREQ := \
+	monitor
 
diff --git a/eclipse/scripts/rcp/Android.mk b/eclipse/scripts/rcp/Android.mk
deleted file mode 100644
index 0fab0ed..0000000
--- a/eclipse/scripts/rcp/Android.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2012 The Android Open Source Project
-
-#LOCAL_PATH := $(call my-dir)
-#include $(CLEAR_VARS)
-#
-#LOCAL_MODULE := monitor
-#LOCAL_MODULE_CLASS := EXECUTABLES
-#LOCAL_MODULE_TAGS := optional
-#LOCAL_IS_HOST_MODULE := true
-#include $(BUILD_SYSTEM)/base_rules.mk
-#
-#RCP_MONITOR_DIR := $(TOPDIR)out/host/eclipse/rcp/build/I.RcpBuild
-#
-#define mk-rcp-monitor-atree-file
-#    srczip=$(RCP_MONITOR_DIR)/RcpBuild-$(1).$(2).zip && \
-#    dstdir=$(HOST_OUT)/eclipse/monitor-$(1).$(2) && \
-#    rm -rf $(V) $$dstdir && \
-#    mkdir -p $$dstdir && \
-#    unzip -q $$srczip -d $$dstdir
-#endef
-#
-## The RCP monitor. It is referenced by build/target/products/sdk.mk
-#$(LOCAL_BUILT_MODULE) : $(TOPDIR)sdk/eclipse/scripts/rcp/monitor \
-#			$(TOPDIR)sdk/eclipse/scripts/rcp/build.xml \
-#			$(TOPDIR)sdk/eclipse/scripts/rcp/build.properties \
-#			$(shell $(TOPDIR)sdk/eclipse/scripts/create_all_symlinks.sh -d)
-#	@mkdir -p $(dir $@)
-#	$(hide)$(TOPDIR)sdk/eclipse/scripts/create_all_symlinks.sh -c
-#	$(hide)cd $(TOPDIR)sdk/eclipse/scripts/rcp && ant -DbuildFor=$(HOST_OS)
-#	$(hide)cp $(V) $(TOPDIR)sdk/eclipse/scripts/rcp/monitor $@
-#	$(hide)if [[ $(HOST_OS) == "linux" ]]; then \
-#		$(call mk-rcp-monitor-atree-file,linux.gtk,x86)    ; \
-#		$(call mk-rcp-monitor-atree-file,linux.gtk,x86_64) ; \
-#	fi
-#	$(hide)if [[ $(HOST_OS) == "darwin" ]]; then \
-#		$(call mk-rcp-monitor-atree-file,macosx.cocoa,x86_64) ; \
-#	fi
-#	$(hide)if [[ $(HOST_OS) == "windows" ]]; then \
-#		$(call mk-rcp-monitor-atree-file,win32.win32,x86)    ; \
-#		$(call mk-rcp-monitor-atree-file,win32.win32,x86_64) ; \
-#	fi
diff --git a/monitor/Android.mk b/monitor/Android.mk
new file mode 100644
index 0000000..040ff44
--- /dev/null
+++ b/monitor/Android.mk
@@ -0,0 +1,46 @@
+# Copyright 2012 The Android Open Source Project
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := monitor
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_TAGS := optional
+LOCAL_IS_HOST_MODULE := true
+include $(BUILD_SYSTEM)/base_rules.mk
+
+RCP_MONITOR_DIR := $(TOPDIR)out/host/eclipse/rcp/build/I.RcpBuild
+
+define mk-rcp-monitor-atree-file
+    srczip=$(RCP_MONITOR_DIR)/RcpBuild-$(1).$(2).zip && \
+    dstdir=$(HOST_OUT)/eclipse/monitor-$(1).$(2) && \
+    rm -rf $(V) $$dstdir && \
+    mkdir -p $$dstdir && \
+    unzip -q $$srczip -d $$dstdir
+endef
+
+# The RCP monitor. It is referenced by build/target/products/sdk.mk
+$(LOCAL_BUILT_MODULE) : $(TOPDIR)sdk/monitor/monitor \
+			$(TOPDIR)sdk/monitor/build.xml \
+			$(TOPDIR)sdk/monitor/build.properties \
+			$(shell $(TOPDIR)sdk/eclipse/scripts/create_all_symlinks.sh -d)
+	@mkdir -p $(dir $@)
+	$(hide)$(TOPDIR)sdk/eclipse/scripts/create_all_symlinks.sh -c
+	$(hide)cd $(TOPDIR)sdk/monitor && \
+		java -jar ../../external/eclipse-basebuilder/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar \
+			org.eclipse.equinox.launcher.Main \
+			-application org.eclipse.ant.core.antRunner \
+			-configuration ../../out/host/eclipse/rcp/build/configuration \
+			-DbuildFor=$(HOST_OS)
+	$(hide)$(ACP) -fpt $(V) $(TOPDIR)sdk/monitor/monitor $@
+	$(hide)if [[ $(HOST_OS) == "linux" ]]; then \
+		$(call mk-rcp-monitor-atree-file,linux.gtk,x86)    ; \
+		$(call mk-rcp-monitor-atree-file,linux.gtk,x86_64) ; \
+	fi
+	$(hide)if [[ $(HOST_OS) == "darwin" ]]; then \
+		$(call mk-rcp-monitor-atree-file,macosx.cocoa,x86_64) ; \
+	fi
+	$(hide)if [[ $(HOST_OS) == "windows" ]]; then \
+		$(call mk-rcp-monitor-atree-file,win32.win32,x86)    ; \
+		$(call mk-rcp-monitor-atree-file,win32.win32,x86_64) ; \
+	fi
diff --git a/eclipse/scripts/rcp/HOWTO-BUILD b/monitor/HOWTO-BUILD
similarity index 92%
rename from eclipse/scripts/rcp/HOWTO-BUILD
rename to monitor/HOWTO-BUILD
index 3eb695f..38d1c23 100644
--- a/eclipse/scripts/rcp/HOWTO-BUILD
+++ b/monitor/HOWTO-BUILD
@@ -2,7 +2,7 @@
 
 $ lunch sdk-eng
 $ ./sdk/eclipse/scripts/create_all_symlinks.sh
-$ cd sdk/eclipse/scripts/rcp
+$ cd sdk/monitor
 $ ant
 
 This will build the RCP for all the platforms in the folder:
diff --git a/eclipse/scripts/rcp/build.properties b/monitor/build.properties
similarity index 100%
rename from eclipse/scripts/rcp/build.properties
rename to monitor/build.properties
diff --git a/eclipse/scripts/rcp/build.xml b/monitor/build.xml
similarity index 96%
rename from eclipse/scripts/rcp/build.xml
rename to monitor/build.xml
index 90ca80d..fabd3ba 100644
--- a/eclipse/scripts/rcp/build.xml
+++ b/monitor/build.xml
@@ -1,6 +1,6 @@
 <project name="com.android.eclipse.rcp.build" default="build">
     <!-- Root of Android Source Tree -->
-    <property name="ANDROID_SRC" location="../../../../" />
+    <property name="ANDROID_SRC" location="../../" />
 
     <!-- Host Eclipse used for building the RCP -->
     <property name="basebuilder" value="${ANDROID_SRC}/external/eclipse-basebuilder/basebuilder-3.6.2/org.eclipse.releng.basebuilder/" />
@@ -80,6 +80,8 @@
             <arg value="${pde.build.dir}/scripts/productBuild/productBuild.xml" />
             <arg value="-data" />
             <arg value="${buildDir}/workspace" />
+            <arg value="-configuration" />
+            <arg value="${buildDir}/configuration" />
             <arg value="-Dtimestamp=${timestamp}" />
             <arg value="-DeclipseLocation=${baseBuilder}" />
             <arg value="-DbuildDirectory=${buildDir}" />
diff --git a/eclipse/scripts/rcp/monitor b/monitor/monitor
similarity index 86%
rename from eclipse/scripts/rcp/monitor
rename to monitor/monitor
index be4a1cd..53a2bb5 100755
--- a/eclipse/scripts/rcp/monitor
+++ b/monitor/monitor
@@ -32,7 +32,13 @@
 
 javaCmd="java"
 
-vmarch=`${javaCmd} -jar tools/lib/archquery.jar`
+vmarch=`${javaCmd} -jar lib/archquery.jar`
 
-exec tools/lib/monitor-${vmarch}/monitor
+app=lib/monitor-${vmarch}/monitor
+if [[ "Darwin" == `uname` ]]; then
+  app=${app}.app/Contents/MacOS/monitor
+fi
+
+
+exec $app
 
diff --git a/eclipse/scripts/rcp/monitor.bat b/monitor/monitor.bat
similarity index 78%
rename from eclipse/scripts/rcp/monitor.bat
rename to monitor/monitor.bat
index bc69849..9bcc4e0 100755
--- a/eclipse/scripts/rcp/monitor.bat
+++ b/monitor/monitor.bat
@@ -20,8 +20,13 @@
 rem issues with directories containing whitespaces.

 cd /d %~dp0

 

-:QueryArch

-for /f %%a in ('%java_exe% -jar tools\lib\archquery.jar') do set vmarch=%%a

+rem Check we have a valid Java.exe in the path.

+set java_exe=

+call lib\find_java.bat

+if not defined java_exe goto :EOF

 

-call tools\lib\monitor-%vmarch%\monitor

+:QueryArch

+for /f %%a in ('%java_exe% -jar lib\archquery.jar') do set vmarch=%%a

+

+start lib\monitor-%vmarch%\monitor