blob: 963efa49a576a519346786ba2221a21dee2895b2 [file] [log] [blame]
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +01001#!/bin/bash
2#
3# Copyright (C) 2015 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17if [ ! -d art ]; then
18 echo "Script needs to be run at the root of the android tree"
19 exit 1
20fi
21
Fredrik Roubertad9c4a32016-11-11 19:28:18 -080022# Logic for setting out_dir from build/make/core/envsetup.mk:
23if [[ -z $OUT_DIR ]]; then
24 if [[ -z $OUT_DIR_COMMON_BASE ]]; then
25 out_dir=out
26 else
27 out_dir=${OUT_DIR_COMMON_BASE}/${PWD##*/}
28 fi
29else
30 out_dir=${OUT_DIR}
31fi
32
Nicolas Geoffray4b29f382015-10-07 09:28:52 +010033java_libraries_dir=${out_dir}/target/common/obj/JAVA_LIBRARIES
Tobias Thiererb3ec0892016-08-03 16:13:04 +010034common_targets="vogar core-tests apache-harmony-jdwp-tests-hostdex jsr166-tests mockito-target ${out_dir}/host/linux-x86/bin/jack"
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010035mode="target"
36j_arg="-j$(nproc)"
Roland Levillainb8b93562015-08-20 17:49:56 +010037showcommands=
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010038make_command=
39
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010040while true; do
41 if [[ "$1" == "--host" ]]; then
42 mode="host"
43 shift
44 elif [[ "$1" == "--target" ]]; then
45 mode="target"
46 shift
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010047 elif [[ "$1" == -j* ]]; then
Nicolas Geoffray667b99e2015-05-29 12:17:06 +010048 j_arg=$1
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010049 shift
Roland Levillainb8b93562015-08-20 17:49:56 +010050 elif [[ "$1" == "--showcommands" ]]; then
51 showcommands="showcommands"
52 shift
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010053 elif [[ "$1" == "" ]]; then
54 break
Andreas Gampe0dcee912017-02-01 22:07:45 -080055 else
56 echo "Unknown options $@"
57 exit 1
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010058 fi
59done
60
61if [[ $mode == "host" ]]; then
Nicolas Geoffrayf8137452016-04-28 11:58:03 +010062 make_command="make $j_arg $showcommands build-art-host-tests $common_targets"
63 make_command+=" ${out_dir}/host/linux-x86/lib/libjavacoretests.so "
64 make_command+=" ${out_dir}/host/linux-x86/lib64/libjavacoretests.so"
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010065elif [[ $mode == "target" ]]; then
Nicolas Geoffrayf8137452016-04-28 11:58:03 +010066 make_command="make $j_arg $showcommands build-art-target-tests $common_targets"
Nicolas Geoffrayb3dab272016-06-13 15:28:38 +010067 make_command+=" libjavacrypto libjavacoretests libnetd_client linker toybox toolbox sh"
Nicolas Geoffrayf8137452016-04-28 11:58:03 +010068 make_command+=" ${out_dir}/host/linux-x86/bin/adb libstdc++ "
69 make_command+=" ${out_dir}/target/product/${TARGET_PRODUCT}/system/etc/public.libraries.txt"
Nicolas Geoffrayfbeca752015-05-29 10:54:12 +010070fi
71
Nicolas Geoffrayaadc9862015-09-29 14:56:31 +010072echo "Executing $make_command"
73$make_command