aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse/scripts/create_all_symlinks.sh
diff options
context:
space:
mode:
authorRaphael <raphael@google.com>2011-11-07 13:39:29 -0800
committerRaphael <raphael@google.com>2011-11-08 14:17:09 -0800
commite7e9d05b2ab15c427787d0f97ff13e83c9acae70 (patch)
treea82a88d0cefcfa4631491cc47966cbc6b50acdee /eclipse/scripts/create_all_symlinks.sh
parent38a09054d6e5bb8b9138ae28ebe113130050a066 (diff)
downloadsdk-e7e9d05b2ab15c427787d0f97ff13e83c9acae70.tar.gz
sdk-e7e9d05b2ab15c427787d0f97ff13e83c9acae70.tar.bz2
sdk-e7e9d05b2ab15c427787d0f97ff13e83c9acae70.zip
SDK: simplify create_all_symlinks script.
Merge all scripts into a single one so that we have just one call to make instead of 8 of them. Edits: - Disable things that won't build under cygwin - Added missing lint-api & lint-client. - Fix missing ddms prebuilts. Change-Id: I1dd74cc804438c353e8c9dce82c0513a8c04a3da
Diffstat (limited to 'eclipse/scripts/create_all_symlinks.sh')
-rwxr-xr-xeclipse/scripts/create_all_symlinks.sh195
1 files changed, 173 insertions, 22 deletions
diff --git a/eclipse/scripts/create_all_symlinks.sh b/eclipse/scripts/create_all_symlinks.sh
index 11752d4b0..ccab34271 100755
--- a/eclipse/scripts/create_all_symlinks.sh
+++ b/eclipse/scripts/create_all_symlinks.sh
@@ -1,35 +1,186 @@
#!/bin/bash
-echo "### $0 executing"
+echo "## Running $0"
+# CD to the top android directory
+PROG_DIR=`dirname "$0"`
+cd "${PROG_DIR}/../../../"
+
+HOST=`uname`
function die() {
- echo "Error: $*"
- exit 1
+ echo "Error: $*"
+ exit 1
}
-# CD to the top android directory
-D=`dirname "$0"`
-cd "$D/../../../"
+if [ "${HOST:0:6}" == "CYGWIN" ]; then
+ PLATFORM="windows-x86"
+
+ # We can't use symlinks under Cygwin
+ function cpfile { # $1=source $2=dest
+ cp -fv $1 $2/
+ }
+
+ function cpdir() { # $1=source $2=dest
+ rsync -avW --delete-after $1 $2
+ }
+else
+ if [ "$HOST" == "Linux" ]; then
+ PLATFORM="linux-x86"
+ elif [ "$HOST" == "Darwin" ]; then
+ PLATFORM="darwin-x86"
+ else
+ echo "Unsupported platform ($HOST). Aborting."
+ exit 1
+ fi
+
+ # For all other systems which support symlinks
+
+ # computes the "reverse" path, e.g. "a/b/c" => "../../.."
+ function back() {
+ echo $1 | sed 's@[^/]*@..@g'
+ }
+
+ function cpfile { # $1=source $2=dest
+ ln -svf `back $2`/$1 $2/
+ }
+
+ function cpdir() { # $1=source $2=dest
+ ln -svf `back $2`/$1 $2
+ }
+fi
DEST="sdk/eclipse/scripts"
set -e # fail early
-echo ; echo "### ADT ###" ; echo
-$DEST/create_adt_symlinks.sh "$*"
-echo ; echo "### DDMS ###" ; echo
-$DEST/create_ddms_symlinks.sh "$*"
-echo ; echo "### TEST ###" ; echo
-$DEST/create_test_symlinks.sh "$*"
-echo ; echo "### BRIDGE ###" ; echo
-$DEST/create_bridge_symlinks.sh "$*"
-echo ; echo "### HIERARCHYVIEWER ###" ; echo
-$DEST/create_hierarchyviewer_symlinks.sh "$*"
-echo ; echo "### TRACEVIEW ###" ; echo
-$DEST/create_traceview_symlinks.sh "$*"
-echo ; echo "### SDKMANAGER ###" ; echo
-$DEST/create_sdkman_symlinks.sh "$*"
-echo ; echo "### GL DEBUGGER ###" ; echo
-$DEST/create_gldebugger_symlinks.sh "$*"
+LIBS=""
+CP_FILES=""
+
+### ADT ###
+
+ADT_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.adt/libs"
+ADT_LIBS="sdkstats androidprefs common layoutlib_api lint_api lint_checks ide_common rule_api ninepatch sdklib sdkuilib assetstudio"
+ADT_PREBUILTS="\
+ prebuilt/common/kxml2/kxml2-2.3.0.jar \
+ prebuilt/common/commons-compress/commons-compress-1.0.jar \
+ prebuilt/common/http-client/httpclient-4.1.1.jar \
+ prebuilt/common/http-client/httpcore-4.1.jar \
+ prebuilt/common/http-client/httpmime-4.1.1.jar \
+ prebuilt/common/http-client/commons-logging-1.1.1.jar \
+ prebuilt/common/http-client/commons-codec-1.4.jar"
+
+LIBS="$LIBS $ADT_LIBS"
+CP_FILES="$CP_FILES @:$ADT_DEST $ADT_LIBS $ADT_PREBUILTS"
+
+
+### DDMS ###
+
+DDMS_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.ddms/libs"
+DDMS_LIBS="ddmlib ddmuilib swtmenubar"
+
+DDMS_PREBUILTS="\
+ prebuilt/common/jfreechart/jcommon-1.0.12.jar \
+ prebuilt/common/jfreechart/jfreechart-1.0.9.jar \
+ prebuilt/common/jfreechart/jfreechart-1.0.9-swt.jar"
+
+LIBS="$LIBS $DDMS_LIBS"
+CP_FILES="$CP_FILES @:$DDMS_DEST $DDMS_LIBS $DDMS_PREBUILTS"
+
+
+### TEST ###
+
+TEST_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.tests"
+TEST_LIBS="easymock"
+TEST_PREBUILTS="prebuilt/common/kxml2/kxml2-2.3.0.jar"
+
+LIBS="$LIBS $TEST_LIBS"
+CP_FILES="$CP_FILES @:$TEST_DEST $TEST_LIBS $TEST_PREBUILTS"
+
+
+### BRIDGE ###
+
+if [[ $PLATFORM != "windows-x86" ]]; then
+ # We can't build enough of the platform on Cygwin to create layoutlib
+ BRIDGE_LIBS="layoutlib ninepatch"
+
+ LIBS="$LIBS $BRIDGE_LIBS"
+fi
+
+
+
+### HIERARCHYVIEWER ###
+
+HV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/libs"
+HV_LIBS="hierarchyviewerlib swtmenubar"
+
+LIBS="$LIBS $HV_LIBS"
+CP_FILES="$CP_FILES @:$HV_DEST $HV_LIBS"
+
+
+### TRACEVIEW ###
+
+TV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.traceview/libs"
+TV_LIBS="traceview"
+
+LIBS="$LIBS $TV_LIBS"
+CP_FILES="$CP_FILES @:$TV_DEST $TV_LIBS"
+
+
+### SDKMANAGER ###
+
+SDMAN_LIBS="swtmenubar"
+
+LIBS="$LIBS $SDKMAN_LIBS"
+
+
+### GL DEBUGGER ###
+
+if [[ $PLATFORM != "windows-x86" ]]; then
+ # liblzf doesn't build under cygwin. If necessary, this should be fixed first.
+
+ GLD_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.gldebugger/libs"
+ GLD_LIBS="host-libprotobuf-java-2.3.0-lite liblzf sdklib"
+
+ LIBS="$LIBS $GLD_LIBS"
+ CP_FILES="$CP_FILES @:$GLD_DEST $GLD_LIBS"
+fi
+
+# Run make on all libs
+
+J="4"
+[[ $(uname) == "Darwin" ]] && J=$(sysctl hw.ncpu | cut -d : -f 2 | tr -d ' ')
+[[ $(uname) == "Linux" ]] && J=$(cat /proc/cpuinfo | grep processor | wc -l)
+
+echo "## Building libs: make -j$J $LIBS"
+make -j${J} $LIBS
+
+# Copy resulting files
+
+DEST=""
+for SRC in $CP_FILES; do
+ if [[ "${SRC:0:2}" == "@:" ]]; then
+ DEST="${SRC:2}"
+ mkdir -vp "$DEST"
+ continue
+ fi
+ if [[ ! -f "$SRC" ]]; then
+ SRC="out/host/$PLATFORM/framework/$SRC.jar"
+ fi
+ if [[ -f "$SRC" ]]; then
+ if [[ ! -d "$DEST" ]]; then
+ die "Invalid cp_file dest directory: $DEST"
+ fi
+
+ cpfile "$SRC" "$DEST"
+ else
+ die "## Unknown file '$SRC' to copy in '$DEST'"
+ fi
+done
+
+# OS-specific post operations
+
+if [ "${HOST:0:6}" == "CYGWIN" ]; then
+ chmod -v a+rx "$ADT_DEST"/*.jar
+fi
echo "### $0 done"