diff --git a/host/cros_workon_make b/host/cros_workon_make
index 9a469ae..b9d5673 100755
--- a/host/cros_workon_make
+++ b/host/cros_workon_make
@@ -1,147 +1,8 @@
-#!/bin/bash
-
+#!/bin/sh
 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
-#
-# Simple wrapper script to build a cros_workon package incrementally.
-# You must already be cros_workon'ing the package in question.
 
-. /usr/share/misc/shflags || exit 1
-
-GCLIENT_ROOT="/mnt/host/source"
-DEFAULT_BOARD="$(cat "${GCLIENT_ROOT}"/src/scripts/.default_board 2>/dev/null)"
-
-info() { echo "INFO: $*"; }
-warn() { echo "WARN: $*"; }
-error() { echo "ERROR: $*"; }
-die() { error "$@"; exit 1; }
-
-DEFINE_string board "${DEFAULT_BOARD}" \
-    "Board for which to build the package."
-DEFINE_boolean test "${FLAGS_FALSE}" \
-  "Compile and run tests as well."
-DEFINE_boolean reconf "${FLAGS_FALSE}" \
-  "Re-run configure and prepare steps."
-DEFINE_boolean install "${FLAGS_FALSE}" \
-  "Incrementally build and install your package."
-DEFINE_boolean scrub "${FLAGS_FALSE}" \
-  "Blow away all in-tree files not managed by git."
-
-set -e
-# Parse command line.
-FLAGS "$@" || exit 1
-eval set -- "${FLAGS_ARGV}"
-
-if [ $# -lt 1 ]; then
-  echo "Usage: ${0} [OPTIONS] <package (read: ebuild) basename> [target args]"
-  exit 1
-fi
-
-if [ -z "${FLAGS_board}" ]; then
-  die "--board is required"
-fi
-
-if [ -n "${FLAGS_board}" ]; then
-  EBUILDCMD=ebuild-"${FLAGS_board}"
-  EMERGECMD=emerge-"${FLAGS_board}"
-  EQUERYCMD=equery-"${FLAGS_board}"
-  BOARD="${FLAGS_board}"
-fi
-
-pkg="${1}"
-shift
-if [ "${pkg}" = "." ]; then
-  if ! pkg=$(git config workon.pkg); then
-    die "workon.pkg not set in git config for this project"
-  fi
-fi
-
-unstable_suffix="9999"
-workon_name="${pkg}-${unstable_suffix}"
-pkgfile=
-
-# Find the ebuild file, ensure the caller is workon'ing the package.
-if ! pkgfile=$("${EQUERYCMD}" which "${workon_name}" 2> /dev/null); then
-  BOARD_KEYWORD="$(portageq-${FLAGS_board} envvar ARCH)"
-  if ACCEPT_KEYWORDS="~${BOARD_KEYWORD}" "${EQUERYCMD}" which "${workon_name}" \
-      > /dev/null 2>&1; then
-    die "run 'cros_workon --board ${BOARD} start ${pkg}' first!" 1>&2
-  fi
-  die "error looking up package ${pkg}"
-fi
-
-if [ "${FLAGS_scrub}" = "${FLAGS_TRUE}" ]; then
-  warn "--scrub will destroy ALL FILES unknown to git!"
-  read -p "Are you sure you want to do this? [y|N]" resp
-  if egrep -qi "^y(es)?$" <(echo -n "${resp}"); then
-    eval $(${EBUILDCMD} $(${EQUERYCMD} which ${workon_name}) info)
-    srcdir=$(readlink -m ${CROS_WORKON_SRCDIR})
-    project_path=${srcdir#${GCLIENT_ROOT}/}
-    if ! (cd "${GCLIENT_ROOT}/${project_path}" && git clean -dxf); then
-      die "Could not scrub source directory"
-    fi
-  else
-    info "Not scrubbing; exiting gracefully"
-  fi
-  exit 0
-fi
-
-# Find the portage work directory for this package.
-workpath=$(\
-    echo "${pkgfile}" | \
-        awk -F '/' '{ print $(NF-2) "/" $(NF-1) }')-"${unstable_suffix}"
-workpath="/build/${BOARD}/tmp/portage/${workpath}"
-
-# Export vars that the ebuild env needs from us.
-export SANDBOX_WRITE=~/trunk
-export CROS_WORKON_INPLACE=1
-export CROS_WORKON_MAKE_COMPILE_ARGS="$*"
-
-# The ebuild commands we run rely on portage automatically running earlier
-# phases for us.  Append in case there is something already in the env.
-FEATURES+=" -noauto"
-export FEATURES
-
-# Vars that we want to pass through for the user.
-PASS_THROUGH_VARS=(
-  # cros-workon.eclass vars.
-  CROS_WORKON_MAKE_COMPILE_ARGS
-  # Common test vars.
-  GTEST_ARGS
-  # Platform eclass vars.
-  P2_TEST_FILTER
-  P2_VMODULE
-)
-
-# Determine if we're going to do tests, set up commands appropriately.
-to_do="compile"
-if [ "${FLAGS_test}" = "${FLAGS_TRUE}" ]; then
-  to_do="test"
-  FEATURES+=" test"
-  rm -f "${workpath}/.tested"
-fi
-
-workdir="${workpath}/work/${workon_name}"
-if [ ! -h "${workdir}" ]; then
-  warn "Cleaning up stale workdir: ${workdir}"
-  FLAGS_reconf="${FLAGS_TRUE}"  # To force symlinking in the user's src dir.
-fi
-
-if [ "${FLAGS_install}" = "${FLAGS_TRUE}" ]; then
-  exec "${EMERGECMD}" --nodeps "${pkg}"
-fi
-
-clean=
-if [ "${FLAGS_reconf}" = "${FLAGS_TRUE}" ]; then
-  clean="clean"
-else
-  rm -f "${workpath}/.compiled"
-  envf="${workpath}/temp/environment"
-  for v in ${PASS_THROUGH_VARS[@]}; do
-    # We delete it independently in case the var wasn't set initially.
-    sed -i -e "/^declare .. ${v}=/d" "${envf}"
-    printf 'declare -x %s="%s"\n' "${v}" "${!v}" >> "${envf}"
-  done
-fi
-exec "${EBUILDCMD}" "${pkgfile}" ${clean} "${to_do}"
+# Compatibility hack to keep things in $PATH for users until we're ready to
+# deprecate this tool entirely.
+exec /mnt/host/source/src/scripts/cros_workon_make "$@"
