| The Android Open Source Project | 55a2c71 | 2009-03-03 19:29:09 -0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| Raphael | e7e9d05 | 2011-11-07 13:39:29 -0800 | [diff] [blame] | 3 | echo "## Running $0" |
| 4 | # CD to the top android directory |
| 5 | PROG_DIR=`dirname "$0"` |
| 6 | cd "${PROG_DIR}/../../../" |
| 7 | |
| 8 | HOST=`uname` |
| The Android Open Source Project | 55a2c71 | 2009-03-03 19:29:09 -0800 | [diff] [blame] | 9 | |
| 10 | function die() { |
| Raphael | e7e9d05 | 2011-11-07 13:39:29 -0800 | [diff] [blame] | 11 | echo "Error: $*" |
| 12 | exit 1 |
| The Android Open Source Project | 55a2c71 | 2009-03-03 19:29:09 -0800 | [diff] [blame] | 13 | } |
| 14 | |
| Raphael | e7e9d05 | 2011-11-07 13:39:29 -0800 | [diff] [blame] | 15 | if [ "${HOST:0:6}" == "CYGWIN" ]; then |
| 16 | PLATFORM="windows-x86" |
| 17 | |
| 18 | # We can't use symlinks under Cygwin |
| 19 | function cpfile { # $1=source $2=dest |
| 20 | cp -fv $1 $2/ |
| 21 | } |
| 22 | |
| 23 | function cpdir() { # $1=source $2=dest |
| 24 | rsync -avW --delete-after $1 $2 |
| 25 | } |
| 26 | else |
| 27 | if [ "$HOST" == "Linux" ]; then |
| 28 | PLATFORM="linux-x86" |
| 29 | elif [ "$HOST" == "Darwin" ]; then |
| 30 | PLATFORM="darwin-x86" |
| 31 | else |
| 32 | echo "Unsupported platform ($HOST). Aborting." |
| 33 | exit 1 |
| 34 | fi |
| 35 | |
| 36 | # For all other systems which support symlinks |
| 37 | |
| 38 | # computes the "reverse" path, e.g. "a/b/c" => "../../.." |
| 39 | function back() { |
| 40 | echo $1 | sed 's@[^/]*@..@g' |
| 41 | } |
| 42 | |
| 43 | function cpfile { # $1=source $2=dest |
| 44 | ln -svf `back $2`/$1 $2/ |
| 45 | } |
| 46 | |
| 47 | function cpdir() { # $1=source $2=dest |
| 48 | ln -svf `back $2`/$1 $2 |
| 49 | } |
| 50 | fi |
| The Android Open Source Project | 55a2c71 | 2009-03-03 19:29:09 -0800 | [diff] [blame] | 51 | |
| Raphael | f1d64e2 | 2009-11-18 11:27:35 -0800 | [diff] [blame] | 52 | DEST="sdk/eclipse/scripts" |
| The Android Open Source Project | 55a2c71 | 2009-03-03 19:29:09 -0800 | [diff] [blame] | 53 | |
| 54 | set -e # fail early |
| 55 | |
| Raphael | e7e9d05 | 2011-11-07 13:39:29 -0800 | [diff] [blame] | 56 | LIBS="" |
| 57 | CP_FILES="" |
| 58 | |
| 59 | ### ADT ### |
| 60 | |
| 61 | ADT_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.adt/libs" |
| 62 | ADT_LIBS="sdkstats androidprefs common layoutlib_api lint_api lint_checks ide_common rule_api ninepatch sdklib sdkuilib assetstudio" |
| 63 | ADT_PREBUILTS="\ |
| 64 | prebuilt/common/kxml2/kxml2-2.3.0.jar \ |
| 65 | prebuilt/common/commons-compress/commons-compress-1.0.jar \ |
| 66 | prebuilt/common/http-client/httpclient-4.1.1.jar \ |
| 67 | prebuilt/common/http-client/httpcore-4.1.jar \ |
| 68 | prebuilt/common/http-client/httpmime-4.1.1.jar \ |
| 69 | prebuilt/common/http-client/commons-logging-1.1.1.jar \ |
| 70 | prebuilt/common/http-client/commons-codec-1.4.jar" |
| 71 | |
| 72 | LIBS="$LIBS $ADT_LIBS" |
| 73 | CP_FILES="$CP_FILES @:$ADT_DEST $ADT_LIBS $ADT_PREBUILTS" |
| 74 | |
| 75 | |
| 76 | ### DDMS ### |
| 77 | |
| 78 | DDMS_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.ddms/libs" |
| 79 | DDMS_LIBS="ddmlib ddmuilib swtmenubar" |
| 80 | |
| 81 | DDMS_PREBUILTS="\ |
| 82 | prebuilt/common/jfreechart/jcommon-1.0.12.jar \ |
| 83 | prebuilt/common/jfreechart/jfreechart-1.0.9.jar \ |
| 84 | prebuilt/common/jfreechart/jfreechart-1.0.9-swt.jar" |
| 85 | |
| 86 | LIBS="$LIBS $DDMS_LIBS" |
| 87 | CP_FILES="$CP_FILES @:$DDMS_DEST $DDMS_LIBS $DDMS_PREBUILTS" |
| 88 | |
| 89 | |
| 90 | ### TEST ### |
| 91 | |
| 92 | TEST_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.tests" |
| 93 | TEST_LIBS="easymock" |
| 94 | TEST_PREBUILTS="prebuilt/common/kxml2/kxml2-2.3.0.jar" |
| 95 | |
| 96 | LIBS="$LIBS $TEST_LIBS" |
| 97 | CP_FILES="$CP_FILES @:$TEST_DEST $TEST_LIBS $TEST_PREBUILTS" |
| 98 | |
| 99 | |
| 100 | ### BRIDGE ### |
| 101 | |
| 102 | if [[ $PLATFORM != "windows-x86" ]]; then |
| 103 | # We can't build enough of the platform on Cygwin to create layoutlib |
| 104 | BRIDGE_LIBS="layoutlib ninepatch" |
| 105 | |
| 106 | LIBS="$LIBS $BRIDGE_LIBS" |
| 107 | fi |
| 108 | |
| 109 | |
| 110 | |
| 111 | ### HIERARCHYVIEWER ### |
| 112 | |
| 113 | HV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/libs" |
| 114 | HV_LIBS="hierarchyviewerlib swtmenubar" |
| 115 | |
| 116 | LIBS="$LIBS $HV_LIBS" |
| 117 | CP_FILES="$CP_FILES @:$HV_DEST $HV_LIBS" |
| 118 | |
| 119 | |
| 120 | ### TRACEVIEW ### |
| 121 | |
| 122 | TV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.traceview/libs" |
| 123 | TV_LIBS="traceview" |
| 124 | |
| 125 | LIBS="$LIBS $TV_LIBS" |
| 126 | CP_FILES="$CP_FILES @:$TV_DEST $TV_LIBS" |
| 127 | |
| 128 | |
| 129 | ### SDKMANAGER ### |
| 130 | |
| 131 | SDMAN_LIBS="swtmenubar" |
| 132 | |
| 133 | LIBS="$LIBS $SDKMAN_LIBS" |
| 134 | |
| 135 | |
| 136 | ### GL DEBUGGER ### |
| 137 | |
| 138 | if [[ $PLATFORM != "windows-x86" ]]; then |
| 139 | # liblzf doesn't build under cygwin. If necessary, this should be fixed first. |
| 140 | |
| 141 | GLD_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.gldebugger/libs" |
| Siva Velusamy | c527b7e | 2011-11-13 11:47:12 -0800 | [diff] [blame] | 142 | GLD_LIBS="host-libprotobuf-java-2.3.0-lite liblzf sdklib ddmlib" |
| Raphael | e7e9d05 | 2011-11-07 13:39:29 -0800 | [diff] [blame] | 143 | |
| 144 | LIBS="$LIBS $GLD_LIBS" |
| 145 | CP_FILES="$CP_FILES @:$GLD_DEST $GLD_LIBS" |
| 146 | fi |
| 147 | |
| Raphael | f1c0263 | 2011-11-23 09:09:03 -0800 | [diff] [blame] | 148 | # Make sure we have lunch sdk-<something> |
| 149 | if [[ ! "$TARGET_PRODUCT" ]]; then |
| 150 | echo "## TARGET_PRODUCT is not set, running build/envsetup.sh" |
| 151 | . build/envsetup.sh |
| 152 | echo "## lunch sdk-eng" |
| 153 | lunch sdk-eng |
| 154 | fi |
| 155 | |
| Raphael | e7e9d05 | 2011-11-07 13:39:29 -0800 | [diff] [blame] | 156 | # Run make on all libs |
| 157 | |
| 158 | J="4" |
| 159 | [[ $(uname) == "Darwin" ]] && J=$(sysctl hw.ncpu | cut -d : -f 2 | tr -d ' ') |
| 160 | [[ $(uname) == "Linux" ]] && J=$(cat /proc/cpuinfo | grep processor | wc -l) |
| 161 | |
| 162 | echo "## Building libs: make -j$J $LIBS" |
| 163 | make -j${J} $LIBS |
| 164 | |
| 165 | # Copy resulting files |
| 166 | |
| 167 | DEST="" |
| 168 | for SRC in $CP_FILES; do |
| 169 | if [[ "${SRC:0:2}" == "@:" ]]; then |
| 170 | DEST="${SRC:2}" |
| 171 | mkdir -vp "$DEST" |
| 172 | continue |
| 173 | fi |
| 174 | if [[ ! -f "$SRC" ]]; then |
| 175 | SRC="out/host/$PLATFORM/framework/$SRC.jar" |
| 176 | fi |
| 177 | if [[ -f "$SRC" ]]; then |
| 178 | if [[ ! -d "$DEST" ]]; then |
| 179 | die "Invalid cp_file dest directory: $DEST" |
| 180 | fi |
| 181 | |
| 182 | cpfile "$SRC" "$DEST" |
| 183 | else |
| 184 | die "## Unknown file '$SRC' to copy in '$DEST'" |
| 185 | fi |
| 186 | done |
| 187 | |
| 188 | # OS-specific post operations |
| 189 | |
| 190 | if [ "${HOST:0:6}" == "CYGWIN" ]; then |
| 191 | chmod -v a+rx "$ADT_DEST"/*.jar |
| 192 | fi |
| The Android Open Source Project | 55a2c71 | 2009-03-03 19:29:09 -0800 | [diff] [blame] | 193 | |
| 194 | echo "### $0 done" |