summaryrefslogtreecommitdiff
path: root/tools/make-v8.sh
blob: 62cabc70a6eac7908bd641186472f5aa364aa06a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh

set -xe

BUILD_ARCH_TYPE=$1
V8_BUILD_OPTIONS=$2

cd deps/v8 || exit
find . -type d -name .git -print0 | xargs -0 rm -rf
../../tools/v8/fetch_deps.py .

ARCH=$(arch)
if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then
  TARGET_ARCH=$ARCH
  if [ "$ARCH" = "ppc64le" ]; then
    TARGET_ARCH="ppc64"
  fi
  # set paths manually for now to use locally installed gn
  export BUILD_TOOLS=/home/iojs/build-tools
  export LD_LIBRARY_PATH="$BUILD_TOOLS:$LD_LIBRARY_PATH"
  rm -f "$BUILD_TOOLS/g++"
  rm -f "$BUILD_TOOLS/gcc"
  # V8's build config looks for binaries called `gcc` and `g++` if not using
  # clang. Ensure that `gcc` and `g++` point to the compilers we want to
  # invoke, creating symbolic links placed at the front of PATH, if needed.
  # Avoid linking to ccache symbolic links as ccache decides which binary
  # to run based on the name of the link (i.e. `gcc`/`g++` in our case).
  # shellcheck disable=SC2154
  if [ "$CC" != "" ] && [ "$CC" != "gcc" ]; then
    CC_PATH=$(command -v "$CC" gcc | grep -v ccache | head -n 1)
    ln -s "$CC_PATH" "$BUILD_TOOLS/gcc"
  fi
  # shellcheck disable=SC2154
  if [ "$CXX" != "" ] && [ "$CXX" != "g++" ]; then
    CXX_PATH=$(command -v "$CXX" g++ | grep -v ccache | head -n 1)
    ln -s "$CXX_PATH" "$BUILD_TOOLS/g++"
  fi
  export PATH="$BUILD_TOOLS:$PATH"
  # Propagate ccache to gn.
  case "$CXX" in
    *ccache*) CC_WRAPPER="cc_wrapper=\"ccache\"" ;;
    *) ;;
  esac

  g++ --version
  gcc --version
  export PKG_CONFIG_PATH=$BUILD_TOOLS/pkg-config
  gn gen -v "out.gn/$BUILD_ARCH_TYPE" --args="is_component_build=false is_debug=false use_goma=false goma_dir=\"None\" use_custom_libcxx=false v8_target_cpu=\"$TARGET_ARCH\" target_cpu=\"$TARGET_ARCH\" v8_enable_backtrace=true $CC_WRAPPER"
  ninja -v -C "out.gn/$BUILD_ARCH_TYPE" d8 cctest inspector-test
else
  DEPOT_TOOLS_DIR="$(cd _depot_tools && pwd)"
  # shellcheck disable=SC2086
  PATH="$DEPOT_TOOLS_DIR":$PATH tools/dev/v8gen.py "$BUILD_ARCH_TYPE" --no-goma $V8_BUILD_OPTIONS
  PATH="$DEPOT_TOOLS_DIR":$PATH ninja -C "out.gn/$BUILD_ARCH_TYPE/" d8 cctest inspector-test
fi