blob: ccab34271cf4bca509685ed8172ec527c018c3c3 [file] [log] [blame]
The Android Open Source Project55a2c712009-03-03 19:29:09 -08001#!/bin/bash
2
Raphaele7e9d052011-11-07 13:39:29 -08003echo "## Running $0"
4# CD to the top android directory
5PROG_DIR=`dirname "$0"`
6cd "${PROG_DIR}/../../../"
7
8HOST=`uname`
The Android Open Source Project55a2c712009-03-03 19:29:09 -08009
10function die() {
Raphaele7e9d052011-11-07 13:39:29 -080011 echo "Error: $*"
12 exit 1
The Android Open Source Project55a2c712009-03-03 19:29:09 -080013}
14
Raphaele7e9d052011-11-07 13:39:29 -080015if [ "${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 }
26else
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 }
50fi
The Android Open Source Project55a2c712009-03-03 19:29:09 -080051
Raphaelf1d64e22009-11-18 11:27:35 -080052DEST="sdk/eclipse/scripts"
The Android Open Source Project55a2c712009-03-03 19:29:09 -080053
54set -e # fail early
55
Raphaele7e9d052011-11-07 13:39:29 -080056LIBS=""
57CP_FILES=""
58
59### ADT ###
60
61ADT_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.adt/libs"
62ADT_LIBS="sdkstats androidprefs common layoutlib_api lint_api lint_checks ide_common rule_api ninepatch sdklib sdkuilib assetstudio"
63ADT_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
72LIBS="$LIBS $ADT_LIBS"
73CP_FILES="$CP_FILES @:$ADT_DEST $ADT_LIBS $ADT_PREBUILTS"
74
75
76### DDMS ###
77
78DDMS_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.ddms/libs"
79DDMS_LIBS="ddmlib ddmuilib swtmenubar"
80
81DDMS_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
86LIBS="$LIBS $DDMS_LIBS"
87CP_FILES="$CP_FILES @:$DDMS_DEST $DDMS_LIBS $DDMS_PREBUILTS"
88
89
90### TEST ###
91
92TEST_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.tests"
93TEST_LIBS="easymock"
94TEST_PREBUILTS="prebuilt/common/kxml2/kxml2-2.3.0.jar"
95
96LIBS="$LIBS $TEST_LIBS"
97CP_FILES="$CP_FILES @:$TEST_DEST $TEST_LIBS $TEST_PREBUILTS"
98
99
100### BRIDGE ###
101
102if [[ $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"
107fi
108
109
110
111### HIERARCHYVIEWER ###
112
113HV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.hierarchyviewer/libs"
114HV_LIBS="hierarchyviewerlib swtmenubar"
115
116LIBS="$LIBS $HV_LIBS"
117CP_FILES="$CP_FILES @:$HV_DEST $HV_LIBS"
118
119
120### TRACEVIEW ###
121
122TV_DEST="sdk/eclipse/plugins/com.android.ide.eclipse.traceview/libs"
123TV_LIBS="traceview"
124
125LIBS="$LIBS $TV_LIBS"
126CP_FILES="$CP_FILES @:$TV_DEST $TV_LIBS"
127
128
129### SDKMANAGER ###
130
131SDMAN_LIBS="swtmenubar"
132
133LIBS="$LIBS $SDKMAN_LIBS"
134
135
136### GL DEBUGGER ###
137
138if [[ $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"
142 GLD_LIBS="host-libprotobuf-java-2.3.0-lite liblzf sdklib"
143
144 LIBS="$LIBS $GLD_LIBS"
145 CP_FILES="$CP_FILES @:$GLD_DEST $GLD_LIBS"
146fi
147
148# Run make on all libs
149
150J="4"
151[[ $(uname) == "Darwin" ]] && J=$(sysctl hw.ncpu | cut -d : -f 2 | tr -d ' ')
152[[ $(uname) == "Linux" ]] && J=$(cat /proc/cpuinfo | grep processor | wc -l)
153
154echo "## Building libs: make -j$J $LIBS"
155make -j${J} $LIBS
156
157# Copy resulting files
158
159DEST=""
160for SRC in $CP_FILES; do
161 if [[ "${SRC:0:2}" == "@:" ]]; then
162 DEST="${SRC:2}"
163 mkdir -vp "$DEST"
164 continue
165 fi
166 if [[ ! -f "$SRC" ]]; then
167 SRC="out/host/$PLATFORM/framework/$SRC.jar"
168 fi
169 if [[ -f "$SRC" ]]; then
170 if [[ ! -d "$DEST" ]]; then
171 die "Invalid cp_file dest directory: $DEST"
172 fi
173
174 cpfile "$SRC" "$DEST"
175 else
176 die "## Unknown file '$SRC' to copy in '$DEST'"
177 fi
178done
179
180# OS-specific post operations
181
182if [ "${HOST:0:6}" == "CYGWIN" ]; then
183 chmod -v a+rx "$ADT_DEST"/*.jar
184fi
The Android Open Source Project55a2c712009-03-03 19:29:09 -0800185
186echo "### $0 done"