155a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project#!/bin/bash
2d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# See usage() below for the description.
3d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll
4d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollfunction usage() {
5d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  cat <<EOF
66ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy# This script copies the .jar files that each plugin depends on into the plugins libs folder.
76ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy# By default, on Mac & Linux, this script creates symlinks from the libs folder to the jar file.
86ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy# Since Windows does not support symlinks, the jar files are copied.
9d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll#
10d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# Options:
11d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# -f : to copy files rather than creating symlinks on the Mac/Linux platforms.
12d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# -d : print make dependencies instead of running make; doesn't copy files.
13d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# -c : copy files expected after make dependencies (reported by -d) have been built.
14d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll#
15d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# The purpose of -d/-c is to include the workflow in a make file:
16d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# - the make rule should depend on \$(shell create_all_symlinks -d)
17d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# - the rule body should perform   \$(shell create_all_symlinks -c [-f])
18d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael MollEOF
19d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll}
2055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
21e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael# CD to the top android directory
22e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelPROG_DIR=`dirname "$0"`
23e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelcd "${PROG_DIR}/../../../"
24e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
25e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelHOST=`uname`
26d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael MollUSE_COPY=""        # force copy dependent jar files rather than creating symlinks
27d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael MollONLY_SHOW_DEPS=""  # only report make dependencies but don't build them nor copy.
28d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael MollONLY_COPY_DEPS=""  # only copy dependencies built by make; uses -f as needed.
2955a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
3055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectfunction die() {
31d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  echo "Error: $*" >/dev/stderr
32e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  exit 1
3355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project}
3455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
35d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollfunction warn() {
36d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  # Only print something if not in show-deps mode
37d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  if [[ -z $ONLY_SHOW_DEPS ]]; then
38d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    echo "$*"
39d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  fi
40d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll}
41d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll
426ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy## parse arguments
436ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamywhile [ $# -gt 0 ]; do
44d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  case "$1" in
45d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    "-f" )
46d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      USE_COPY="1"
47d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      ;;
48d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    "-d" )
49d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      ONLY_SHOW_DEPS="1"
50d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      ;;
51d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    "-c" )
52d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      ONLY_COPY_DEPS="1"
53d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      ;;
54d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    * )
55d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      usage
56d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll      exit 2
57d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  esac
586ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy  shift
596ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamydone
606ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy
61d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollwarn "## Running $0"
62d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll
63d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollif [[ "${HOST:0:6}" == "CYGWIN" || "$USE_MINGW" == "1" ]]; then
64d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  # This is either Cygwin or Linux/Mingw cross-compiling to Windows.
65d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  PLATFORM="windows-x86"
66d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  if [[ "${HOST:0:6}" == "CYGWIN" ]]; then
67d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    # We can't use symlinks under Cygwin
68d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    USE_COPY="1"
69d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  fi
70d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollelif [[ "$HOST" == "Linux" ]]; then
716ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy  PLATFORM="linux-x86"
72d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollelif [[ "$HOST" == "Darwin" ]]; then
736ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamy  PLATFORM="darwin-x86"
746ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamyelse
75d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  die "Unsupported platform ($HOST). Aborting."
766ca42e8ef3fe648b3345ea2bcb17825d224f39aaSiva Velusamyfi
77e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
78d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollif [[ "$USE_COPY" == "1" ]]; then
79e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  function cpfile { # $1=source $2=dest
80e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    cp -fv $1 $2/
81e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  }
82e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
83e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  function cpdir() { # $1=source $2=dest
84e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    rsync -avW --delete-after $1 $2
85e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  }
86e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelelse
87e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  # computes the "reverse" path, e.g. "a/b/c" => "../../.."
88e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  function back() {
89e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    echo $1 | sed 's@[^/]*@..@g'
90e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  }
91e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
92e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  function cpfile { # $1=source $2=dest
93e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    ln -svf `back $2`/$1 $2/
94e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  }
95e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
96e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  function cpdir() { # $1=source $2=dest
97e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    ln -svf `back $2`/$1 $2
98e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  }
99e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelfi
10055a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
101f1d64e2975451e3bbbcd2e62a03a717308db500aRaphaelDEST="sdk/eclipse/scripts"
10255a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
10355a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectset -e # fail early
10455a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
105e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelLIBS=""
106e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelCP_FILES=""
107e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
1088daea84228bdda8d714f2ab4dfc19a3c2f10271bRaphael Moll
1098e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva Velusamy### BASE ###
1108e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva Velusamy
1118e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva VelusamyBASE_PLUGIN_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.base/libs"
1126837aad30d6c51783ca1dc784ca6bdcc8a3d9f2dSiva VelusamyBASE_PLUGIN_LIBS="common sdkstats sdklib dvlib layoutlib_api sdk_common"
1138e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva VelusamyBASE_PLUGIN_PREBUILTS="\
114871046092b121b919fc2ab5cb804f9037bd739ccTor Norbye    prebuilts/misc/common/kxml2/kxml2-2.3.0.jar \
1158c39e2974c74d0f2a75d94169a74fd496a7e785bXavier Ducrohet    prebuilts/tools/common/commons-compress/commons-compress-1.0.jar \
116c2ee341ce56dbee2e1484e04dfe7383656d97d48Tor Norbye    prebuilts/tools/common/guava-tools/guava-13.0.1.jar \
1178c39e2974c74d0f2a75d94169a74fd496a7e785bXavier Ducrohet    prebuilts/tools/common/http-client/commons-logging-1.1.1.jar \
1188c39e2974c74d0f2a75d94169a74fd496a7e785bXavier Ducrohet    prebuilts/tools/common/http-client/commons-codec-1.4.jar \
1198c39e2974c74d0f2a75d94169a74fd496a7e785bXavier Ducrohet    prebuilts/tools/common/http-client/httpclient-4.1.1.jar \
1208c39e2974c74d0f2a75d94169a74fd496a7e785bXavier Ducrohet    prebuilts/tools/common/http-client/httpcore-4.1.jar \
1218c39e2974c74d0f2a75d94169a74fd496a7e785bXavier Ducrohet    prebuilts/tools/common/http-client/httpmime-4.1.1.jar"
1228e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva Velusamy
1238e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva VelusamyLIBS="$LIBS $BASE_PLUGIN_LIBS"
1248e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva VelusamyCP_FILES="$CP_FILES @:$BASE_PLUGIN_DEST $BASE_PLUGIN_LIBS $BASE_PLUGIN_PREBUILTS"
1258e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva Velusamy
1268daea84228bdda8d714f2ab4dfc19a3c2f10271bRaphael Moll
127e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### ADT ###
128e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
129e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelADT_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.adt/libs"
13081cefe2a26dd6db8a878e30874d12cdcbff0e83bXavier DucrohetADT_LIBS="ant-glob assetstudio lint_api lint_checks ninepatch propertysheet rule_api sdkuilib swtmenubar manifmerger"
131e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelADT_PREBUILTS="\
1327dd444ea0125e50a5e88604afb6de43e80b7c270Tor Norbye    prebuilts/tools/common/freemarker/freemarker-2.3.19.jar \
133faab5914e7cc5e7f4676202ba589bf08c5ae0e42Tor Norbye    prebuilts/tools/common/asm-tools/asm-4.0.jar \
134faab5914e7cc5e7f4676202ba589bf08c5ae0e42Tor Norbye    prebuilts/tools/common/asm-tools/asm-tree-4.0.jar \
13574dc3e0d7d584d039689e57a80cf9868267883fdTor Norbye    prebuilts/tools/common/asm-tools/asm-analysis-4.0.jar \
1368e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva Velusamy    prebuilts/tools/common/lombok-ast/lombok-ast-0.2.jar"
137e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
138e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelLIBS="$LIBS $ADT_LIBS"
139e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelCP_FILES="$CP_FILES @:$ADT_DEST $ADT_LIBS $ADT_PREBUILTS"
140e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
1418daea84228bdda8d714f2ab4dfc19a3c2f10271bRaphael Moll
142e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### DDMS ###
143e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
144e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelDDMS_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.ddms/libs"
14507750e98d91da6a1a906c73e2a2b92e46aedf4cfSiva VelusamyDDMS_LIBS="ddmlib ddmuilib swtmenubar uiautomatorviewer"
146e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
147e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelDDMS_PREBUILTS="\
148c4098aec05ae194292585ca57f7081fd51ba69dfRaphael Moll    prebuilts/tools/common/jfreechart/jcommon-1.0.12.jar \
149c4098aec05ae194292585ca57f7081fd51ba69dfRaphael Moll    prebuilts/tools/common/jfreechart/jfreechart-1.0.9.jar \
150c4098aec05ae194292585ca57f7081fd51ba69dfRaphael Moll    prebuilts/tools/common/jfreechart/jfreechart-1.0.9-swt.jar"
151e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
152e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelLIBS="$LIBS $DDMS_LIBS"
153e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelCP_FILES="$CP_FILES @:$DDMS_DEST $DDMS_LIBS $DDMS_PREBUILTS"
154e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
155e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
156e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### TEST ###
157e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
158e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelTEST_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.tests"
159e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelTEST_LIBS="easymock"
1605bd281519c4d63b3f6ff80a70a77909794f81eedJean-Baptiste QueruTEST_PREBUILTS="prebuilts/misc/common/kxml2/kxml2-2.3.0.jar"
161e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
162e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelLIBS="$LIBS $TEST_LIBS"
163e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelCP_FILES="$CP_FILES @:$TEST_DEST $TEST_LIBS $TEST_PREBUILTS"
164e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
165e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
166e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### BRIDGE ###
167e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
168e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelif [[ $PLATFORM != "windows-x86" ]]; then
169e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  # We can't build enough of the platform on Cygwin to create layoutlib
170e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  BRIDGE_LIBS="layoutlib ninepatch"
171e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
172e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  LIBS="$LIBS $BRIDGE_LIBS"
173e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelfi
174e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
175e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
176e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### HIERARCHYVIEWER ###
177e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
178e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelHV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/libs"
179e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelHV_LIBS="hierarchyviewerlib swtmenubar"
180e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
181e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelLIBS="$LIBS $HV_LIBS"
182e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelCP_FILES="$CP_FILES @:$HV_DEST $HV_LIBS"
183e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
184e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
185e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### TRACEVIEW ###
186e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
187e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelTV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.traceview/libs"
188e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelTV_LIBS="traceview"
189e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
190e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelLIBS="$LIBS $TV_LIBS"
191e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelCP_FILES="$CP_FILES @:$TV_DEST $TV_LIBS"
192e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
1938daea84228bdda8d714f2ab4dfc19a3c2f10271bRaphael Moll
194a618c659fbf9b47e311fe1b9bd678b786d3f58ccSiva Velusamy### MONITOR ###
195a618c659fbf9b47e311fe1b9bd678b786d3f58ccSiva Velusamy
196a618c659fbf9b47e311fe1b9bd678b786d3f58ccSiva VelusamyMONITOR_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.monitor/libs"
197a618c659fbf9b47e311fe1b9bd678b786d3f58ccSiva VelusamyMONITOR_LIBS="sdkuilib"
198a618c659fbf9b47e311fe1b9bd678b786d3f58ccSiva Velusamy
199a618c659fbf9b47e311fe1b9bd678b786d3f58ccSiva VelusamyLIBS="$LIBS $MONITOR_LIBS"
200a618c659fbf9b47e311fe1b9bd678b786d3f58ccSiva VelusamyCP_FILES="$CP_FILES @:$MONITOR_DEST $MONITOR_LIBS"
201e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
2028daea84228bdda8d714f2ab4dfc19a3c2f10271bRaphael Moll
203e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### SDKMANAGER ###
204e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
2058daea84228bdda8d714f2ab4dfc19a3c2f10271bRaphael MollSDKMAN_LIBS="swtmenubar"
206e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
207e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelLIBS="$LIBS $SDKMAN_LIBS"
208e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
2098daea84228bdda8d714f2ab4dfc19a3c2f10271bRaphael Moll
210e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael### GL DEBUGGER ###
211e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
212e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelif [[ $PLATFORM != "windows-x86" ]]; then
213e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  # liblzf doesn't build under cygwin. If necessary, this should be fixed first.
214e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  
215e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  GLD_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.gldebugger/libs"
2168e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva Velusamy  GLD_LIBS="host-libprotobuf-java-2.3.0-lite liblzf"
217e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
218e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  LIBS="$LIBS $GLD_LIBS"
2198e6fabf386fd691fab8891d76a7f96669bbdb2aeSiva Velusamy  CP_FILES="$CP_FILES @:$GLD_DEST $GLD_LIBS"
220e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelfi
221e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
222d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# In the mode to only echo dependencies, output them and we're done
223d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollif [[ -n $ONLY_SHOW_DEPS ]]; then
224d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  echo $LIBS
225d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  exit 0
226f1c02633c459f063e33e97ec34c47e91b1643334Raphaelfi
227f1c02633c459f063e33e97ec34c47e91b1643334Raphael
228d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollif [[ -z $ONLY_COPY_DEPS ]]; then
229d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  # Make sure we have lunch sdk-<something>
230d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  if [[ ! "$TARGET_PRODUCT" ]]; then
231d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    warn "## TARGET_PRODUCT is not set, running build/envsetup.sh"
232d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    . build/envsetup.sh
233d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    warn "## lunch sdk-eng"
234d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll    lunch sdk-eng
235d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  fi
236e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
237d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  # Run make on all libs
238e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
239d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  J="4"
240d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  [[ $(uname) == "Darwin" ]] && J=$(sysctl hw.ncpu | cut -d : -f 2 | tr -d ' ')
241d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  [[ $(uname) == "Linux"  ]] && J=$(cat /proc/cpuinfo | grep processor | wc -l)
242e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
243d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  warn "## Building libs: make -j$J $LIBS"
244d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll  make -j${J} $LIBS
245d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Mollfi
246e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
247d9b2cbd3378a671d924c5ad6c5db5ef96ea6cf3bRaphael Moll# Copy resulting files
248e7e9d05b2ab15c427787d0f97ff13e83c9acae70RaphaelDEST=""
249e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelfor SRC in $CP_FILES; do
250e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  if [[ "${SRC:0:2}" == "@:" ]]; then
251e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    DEST="${SRC:2}"
252e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    mkdir -vp "$DEST"
253e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    continue
254e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  fi
255e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  if [[ ! -f "$SRC" ]]; then
25634dbc5d89b8671491506f778533c1462dfcd3dc7Xavier Ducrohet    ORIG_SRC="$SRC"
257e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    SRC="out/host/$PLATFORM/framework/$SRC.jar"
258e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  fi
259e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  if [[ -f "$SRC" ]]; then
260e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    if [[ ! -d "$DEST" ]]; then
261e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael      die "Invalid cp_file dest directory: $DEST"
262e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    fi
263e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
264e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael    cpfile "$SRC" "$DEST"
265e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  else
26634dbc5d89b8671491506f778533c1462dfcd3dc7Xavier Ducrohet    die "## Unknown source '$ORIG_SRC' to copy in '$DEST'"
267e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  fi
268e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaeldone
269e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
270e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael# OS-specific post operations
271e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael
272e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelif [ "${HOST:0:6}" == "CYGWIN" ]; then
273e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphael  chmod -v a+rx "$ADT_DEST"/*.jar
274e7e9d05b2ab15c427787d0f97ff13e83c9acae70Raphaelfi
27555a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Project
27655a2c71f27d3e0b8344597c7f281e687cb7aeb1bThe Android Open Source Projectecho "### $0 done"
277