blob: b5aaa6bdba387db67869285c6574b8ab3a9f03d4 [file] [log] [blame]
Klaus Aehligc7f5f512016-06-23 13:30:42 +00001#!/bin/sh
Lukacs Berki6eaaf942015-10-27 13:04:58 +00002
3# Copyright 2015 The Bazel Authors. All rights reserved.
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
Philipp Wollermanna5afe952016-06-21 14:58:09 +000017set -eu
18
Lukacs Berki6eaaf942015-10-27 13:04:58 +000019# This script is used to create the directory tree embedded into the Bazel
20# binary that is used as the default source for the @bazel_tools repository.
21# It shuffles around files compiled in other rules, then zips them up.
22
23OUTPUT="${PWD}/$1"
24shift
25
Han-Wen Nienhuyse5a70e22015-10-27 18:13:44 +000026TMP_DIR=${TMPDIR:-/tmp}
Lukacs Berki6eaaf942015-10-27 13:04:58 +000027PACKAGE_DIR="$(mktemp -d ${TMP_DIR%%/}/bazel.XXXXXXXX)"
28mkdir -p "${PACKAGE_DIR}"
29trap "rm -fr \"${PACKAGE_DIR}\"" EXIT
30
31for i in $*; do
Cal Peyser1d8ccbb2016-06-17 18:49:31 +000032
Lukacs Berki9b1e3a22015-11-18 09:55:46 +000033 case "$i" in
Damien Martin-Guillerez0ad9f5e2016-04-20 13:58:08 +000034 *tools/jdk/BUILD*) OUTPUT_PATH=tools/jdk/BUILD ;;
John Cater58a8f072017-03-23 16:55:41 +000035 *tools/platforms/platforms.BUILD) OUTPUT_PATH=platforms/BUILD ;;
John Cater5dc81a22017-04-10 15:59:57 +000036 *tools/platforms/*) OUTPUT_PATH=platforms/${i##*/} ;;
xingao8df71b52017-04-03 15:25:18 +000037 *JavaBuilder*_deploy.jar) OUTPUT_PATH=tools/jdk/${i##*/} ;;
Damien Martin-Guillerez39e5a462016-12-20 10:58:17 +000038 *JacocoCoverage*_deploy.jar) OUTPUT_PATH=tools/jdk/JacocoCoverage_deploy.jar ;;
Liam Miller-Cushone4880eb2016-05-05 22:35:18 +000039 *turbine_deploy.jar) OUTPUT_PATH=tools/jdk/turbine_deploy.jar ;;
Liam Miller-Cushon4a404de2017-05-10 11:27:39 -040040 *javac-9-dev-r4023-2.jar) OUTPUT_PATH=third_party/java/jdk/langtools/javac-9-dev-r4023-2.jar ;;
Damien Martin-Guillerez70b00192016-04-20 22:14:57 +000041 *javac7.jar) OUTPUT_PATH=third_party/java/jdk/langtools/javac7.jar ;;
xingao202d5912017-06-01 19:23:29 +020042 *SingleJar_deploy.jar) OUTPUT_PATH=tools/jdk/singlejar/SingleJar_deploy.jar ;;
Lukacs Berki9b1e3a22015-11-18 09:55:46 +000043 *GenClass_deploy.jar) OUTPUT_PATH=tools/jdk/GenClass_deploy.jar ;;
Kush Chakraborty4baedc72017-03-08 15:30:59 +000044 *ExperimentalRunner_deploy.jar) OUTPUT_PATH=tools/jdk/ExperimentalTestRunner_deploy.jar ;;
Damien Martin-Guillerezeea8efa2016-01-13 09:08:48 +000045 *Runner_deploy.jar) OUTPUT_PATH=tools/jdk/TestRunner_deploy.jar ;;
xingao202d5912017-06-01 19:23:29 +020046 *singlejar) OUTPUT_PATH=tools/jdk/singlejar/singlejar ;;
Lukacs Berkib35e25d2016-02-10 16:44:54 +000047 *ijar.exe) OUTPUT_PATH=tools/jdk/ijar/ijar.exe ;;
48 *ijar) OUTPUT_PATH=tools/jdk/ijar/ijar ;;
Damien Martin-Guillerez1bab6b12016-02-17 15:27:32 +000049 *zipper.exe) OUTPUT_PATH=tools/zip/zipper/zipper.exe ;;
50 *zipper) OUTPUT_PATH=tools/zip/zipper/zipper ;;
Damien Martin-Guillerez3d796fe2016-01-11 10:07:57 +000051 *src/objc_tools/*) OUTPUT_PATH=tools/objc/precomp_${i##*/} ;;
52 *xcode*StdRedirect.dylib) OUTPUT_PATH=tools/objc/StdRedirect.dylib ;;
Chris Parsonsbebbbe52016-09-26 20:33:50 +000053 *xcode*make_hashed_objlist.py) OUTPUT_PATH=tools/objc/make_hashed_objlist.py ;;
Damien Martin-Guillerez3d796fe2016-01-11 10:07:57 +000054 *xcode*realpath) OUTPUT_PATH=tools/objc/realpath ;;
Chris Parsons197543a2016-05-27 18:17:00 +000055 *xcode*xcode-locator) OUTPUT_PATH=tools/objc/xcode-locator ;;
Chris Parsonsbebbbe52016-09-26 20:33:50 +000056 *src/tools/xcode/*.sh) OUTPUT_PATH=tools/objc/${i##*/} ;;
Damien Martin-Guillerez3d796fe2016-01-11 10:07:57 +000057 *src/tools/xcode/*) OUTPUT_PATH=tools/objc/${i##*/}.sh ;;
Philipp Wollermann95048272017-03-17 15:11:58 +000058 *external/openjdk_*/file/*.tar.gz) OUTPUT_PATH=jdk.tar.gz ;;
59 *external/openjdk_*/file/*.zip) OUTPUT_PATH=jdk.zip ;;
Lukacs Berki9b1e3a22015-11-18 09:55:46 +000060 *) OUTPUT_PATH=$(echo $i | sed 's_^.*bazel-out/[^/]*/bin/__') ;;
61 esac
62
Lukacs Berki6eaaf942015-10-27 13:04:58 +000063 mkdir -p "${PACKAGE_DIR}/$(dirname "${OUTPUT_PATH}")"
64 cp "$i" "${PACKAGE_DIR}/${OUTPUT_PATH}"
Klaus Aehlig1f3e3ae2016-11-23 13:02:13 +000065 chmod u+w "${PACKAGE_DIR}/${OUTPUT_PATH}"
Lukacs Berki6eaaf942015-10-27 13:04:58 +000066done
67
Philipp Wollermann95048272017-03-17 15:11:58 +000068if [ -f ${PACKAGE_DIR}/jdk.tar.gz ]; then
69 tar xz -C ${PACKAGE_DIR} -f ${PACKAGE_DIR}/jdk.tar.gz
70 rm ${PACKAGE_DIR}/jdk.tar.gz
71 mv ${PACKAGE_DIR}/zulu* ${PACKAGE_DIR}/jdk
72fi
73
74if [ -f ${PACKAGE_DIR}/jdk.zip ]; then
75 unzip -d ${PACKAGE_DIR} ${PACKAGE_DIR}/jdk.zip > /dev/null
76 rm ${PACKAGE_DIR}/jdk.zip
77 mv ${PACKAGE_DIR}/zulu* ${PACKAGE_DIR}/jdk
78fi
79
Liam Miller-Cushon4a404de2017-05-10 11:27:39 -040080if [ ! -f ${PACKAGE_DIR}/third_party/java/jdk/langtools/javac-9-dev-r4023-2.jar ]; then
Damien Martin-Guillerez70b00192016-04-20 22:14:57 +000081 cp ${PACKAGE_DIR}/third_party/java/jdk/langtools/javac7.jar \
Liam Miller-Cushon4a404de2017-05-10 11:27:39 -040082 ${PACKAGE_DIR}/third_party/java/jdk/langtools/javac-9-dev-r4023-2.jar
Damien Martin-Guillerez70b00192016-04-20 22:14:57 +000083fi
84
Kristina Chodorow734e7f72016-01-29 15:04:31 +000085cat > "${PACKAGE_DIR}/WORKSPACE" <<EOF
86workspace(name = "bazel_tools")
87EOF
Lukacs Berki6eaaf942015-10-27 13:04:58 +000088mkdir -p "${PACKAGE_DIR}/tools/defaults"
89touch "${PACKAGE_DIR}/tools/defaults/BUILD"
90for i in $(find "${PACKAGE_DIR}" -name BUILD.tools); do
91 mv "$i" "$(dirname "$i")/BUILD"
92done
Googler6aa2b712016-06-24 22:13:27 +000093find "${PACKAGE_DIR}" -exec touch -t 198001010000.00 '{}' '+'
Lukacs Berkic4e74d12015-11-10 15:28:00 +000094(cd "${PACKAGE_DIR}" && find . -type f | sort | zip -qDX@ "${OUTPUT}")