Replace soong script with a symlink

bootstrap.bash creates a soong script in the output directory using
build/soong/soong.in.  This requires a manual rebootstrap any time
soong.in changes.  Instead, have bootstrap.bash symlink
build/soong/soong.bash to soong in the output directory, and create
a file called .soong.bootstrap in the output directory that contains
the variables that bootstrap.bash sets.

Change-Id: I5e6e54c2e8bdde876941e2e082f9ba177c757cbf
diff --git a/bootstrap.bash b/bootstrap.bash
index 0aa073c..ca0c062 100755
--- a/bootstrap.bash
+++ b/bootstrap.bash
@@ -27,8 +27,8 @@
 if [[ $# -eq 0 ]]; then
     sed -e "s|@@SrcDir@@|${SRCDIR}|" \
         -e "s|@@PrebuiltOS@@|${PREBUILTOS}|" \
-        ${SRCDIR}/build/soong/soong.in > soong
-    chmod 0770 soong
+        ${SRCDIR}/build/soong/soong.bootstrap.in > .soong.bootstrap
+    ln -sf ${SRCDIR}/build/soong/soong.bash soong
 fi
 
 ${SRCDIR}/build/blueprint/bootstrap.bash "$@"
diff --git a/soong.in b/soong.bash
old mode 100644
new mode 100755
similarity index 62%
rename from soong.in
rename to soong.bash
index 51882db..fc330d0
--- a/soong.in
+++ b/soong.bash
@@ -3,10 +3,18 @@
 # Determine the build directory location based on the location of this script.
 BPBUILD="${BASH_SOURCE[0]}"
 BUILDDIR=`dirname "${BASH_SOURCE[0]}"`
+BOOTSTRAP=${BUILDDIR}/.soong.bootstrap
 
-# The source directory path and operating system will get substituted in by
-# the bootstrap script.
-SRCDIR_IN=@@SrcDir@@
+# The source directory path and operating system will get written to
+# .soong.bootstrap by the bootstrap script.
+
+if [ ! -f ${BUILDDIR}/${BOOTSTRAP} ]; then
+    echo "Error: soong script must be located in a directory created by bootstrap.bash"
+    exit 1
+fi
+
+source ${BUILDDIR}/.soong.bootstrap
+
 if [[ ${SRCDIR_IN:0:1} == '/' ]]; then
     # SRCDIR_IN is an absolute path
     SRCDIR=${SRCDIR_IN}
@@ -15,8 +23,6 @@
     SRCDIR=${BUILDDIR}/${SRCDIR_IN}
 fi
 
-PREBUILTOS=@@PrebuiltOS@@
-
 # Let Blueprint know that the Ninja we're using performs multiple passes that
 # can regenerate the build manifest.
 export BLUEPRINT_NINJA_HAS_MULTIPASS=1
diff --git a/soong.bootstrap.in b/soong.bootstrap.in
new file mode 100644
index 0000000..5d74567
--- /dev/null
+++ b/soong.bootstrap.in
@@ -0,0 +1,2 @@
+SRCDIR_IN=@@SrcDir@@
+PREBUILTOS=@@PrebuiltOS@@