Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: build_tools/webports-env.sh

Issue 1804293003: Add support for new pnacl native toolchain driver (Closed) Base URL: https://chromium.googlesource.com/webports.git@master
Patch Set: Fix according to Brad's comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2013 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2013 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # Echo the environment variables need to to build/configure standard 6 # Echo the environment variables need to to build/configure standard
7 # GNU make/automake/configure projects. e.g. CC, CXX, CFLAGS, etc. 7 # GNU make/automake/configure projects. e.g. CC, CXX, CFLAGS, etc.
8 # The values for these variables are calculated based on the following 8 # The values for these variables are calculated based on the following
9 # environment variables: 9 # environment variables:
10 # 10 #
11 # $NACL_ARCH - i386, x86_64, arm or pnacl. Default: x86_64 11 # $NACL_ARCH - i386, x86_64, arm, pnacl or le32. Default: x86_64
12 # $TOOLCHAIN - clang-newlib, glibc or pnacl. Default: pnacl 12 # $TOOLCHAIN - clang-newlib, glibc or pnacl. Default: pnacl
13 # 13 #
14 # You can run a command within the NaCl environment 14 # You can run a command within the NaCl environment
15 # by passing the command line. e.g: 15 # by passing the command line. e.g:
16 # ./webports-env.sh ./configure --host=nacl 16 # ./webports-env.sh ./configure --host=nacl
17 # ./webports-env.sh make 17 # ./webports-env.sh make
18 # 18 #
19 # Alternatively you can see just the essential environment 19 # Alternatively you can see just the essential environment
20 # variables by passing --print. This can by used within 20 # variables by passing --print. This can by used within
21 # a script using: 21 # a script using:
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 71
72 # Default value for NACL_ARCH 72 # Default value for NACL_ARCH
73 NACL_ARCH=${NACL_ARCH:-${DEFAULT_ARCH}} 73 NACL_ARCH=${NACL_ARCH:-${DEFAULT_ARCH}}
74 74
75 # Default Value for TOOLCHAIN 75 # Default Value for TOOLCHAIN
76 TOOLCHAIN=${TOOLCHAIN:-pnacl} 76 TOOLCHAIN=${TOOLCHAIN:-pnacl}
77 77
78 # Check NACL_ARCH 78 # Check NACL_ARCH
79 if [ ${NACL_ARCH} != "i686" -a ${NACL_ARCH} != "x86_64" -a \ 79 if [ ${NACL_ARCH} != "i686" -a ${NACL_ARCH} != "x86_64" -a \
80 ${NACL_ARCH} != "arm" -a ${NACL_ARCH} != "pnacl" -a \ 80 ${NACL_ARCH} != "arm" -a ${NACL_ARCH} != "pnacl" -a \
81 ${NACL_ARCH} != "emscripten" ]; then 81 ${NACL_ARCH} != "emscripten" -a ${NACL_ARCH} != "le32" ]; then
82 echo "Unknown value for NACL_ARCH: '${NACL_ARCH}'" 1>&2 82 echo "Unknown value for NACL_ARCH: '${NACL_ARCH}'" 1>&2
83 exit 1 83 exit 1
84 fi 84 fi
85 85
86 # Check TOOLCHAIN 86 # Check TOOLCHAIN
87 if [ ${TOOLCHAIN} != "pnacl" -a ${TOOLCHAIN} != "glibc" -a \ 87 if [ ${TOOLCHAIN} != "pnacl" -a ${TOOLCHAIN} != "glibc" -a \
88 ${TOOLCHAIN} != "clang-newlib" -a ${TOOLCHAIN} != "emscripten" ]; then 88 ${TOOLCHAIN} != "clang-newlib" -a ${TOOLCHAIN} != "emscripten" ]; then
89 echo "Unknown value for TOOLCHAIN: '${TOOLCHAIN}'" 1>&2 89 echo "Unknown value for TOOLCHAIN: '${TOOLCHAIN}'" 1>&2
90 exit 1 90 exit 1
91 fi 91 fi
92 92
93 if [ "${NACL_ARCH}" = "emscripten" -a -z "${EMSCRIPTEN:-}" ]; then 93 if [ "${NACL_ARCH}" = "emscripten" -a -z "${EMSCRIPTEN:-}" ]; then
94 echo "-------------------------------------------------------------------" 94 echo "-------------------------------------------------------------------"
95 echo "EMSCRIPTEN is unset." 95 echo "EMSCRIPTEN is unset."
96 echo "This environment variable needs to be pointed at some version of" 96 echo "This environment variable needs to be pointed at some version of"
97 echo "the emscripten repository." 97 echo "the emscripten repository."
98 echo "NOTE: set this to an absolute path." 98 echo "NOTE: set this to an absolute path."
99 echo "-------------------------------------------------------------------" 99 echo "-------------------------------------------------------------------"
100 exit 1 100 exit 1
101 fi 101 fi
102 102
103 if [ "${TOOLCHAIN}" = "pnacl" ]; then 103 if [ "${TOOLCHAIN}" = "pnacl" ]; then
104 if [ "${NACL_ARCH}" != "pnacl" ]; then 104 if [ "${NACL_ARCH}" != "pnacl" -a "${NACL_ARCH}" != "le32" ]; then
105 echo "PNaCl does not support the selected architecture: ${NACL_ARCH}" 1>&2 105 echo "PNaCl does not support the selected architecture: ${NACL_ARCH}" 1>&2
106 exit 1 106 exit 1
107 fi 107 fi
108 fi 108 fi
109 109
110 if [ "${TOOLCHAIN}" = "glibc" ]; then 110 if [ "${TOOLCHAIN}" = "glibc" ]; then
111 if [ "${NACL_ARCH}" = "pnacl" ]; then 111 if [ "${NACL_ARCH}" = "pnacl" ]; then
112 echo "PNaCl is not supported by the glibc toolchain" 1>&2 112 echo "PNaCl is not supported by the glibc toolchain" 1>&2
113 exit 1 113 exit 1
114 fi 114 fi
(...skipping 24 matching lines...) Expand all
139 elif [ ${NACL_ARCH} = "emscripten" ]; then 139 elif [ ${NACL_ARCH} = "emscripten" ]; then
140 NACL_CROSS_PREFIX=emscripten 140 NACL_CROSS_PREFIX=emscripten
141 else 141 else
142 NACL_CROSS_PREFIX=${NACL_ARCH}-nacl 142 NACL_CROSS_PREFIX=${NACL_ARCH}-nacl
143 fi 143 fi
144 144
145 export NACL_LIBC 145 export NACL_LIBC
146 export NACL_ARCH 146 export NACL_ARCH
147 export NACL_CROSS_PREFIX 147 export NACL_CROSS_PREFIX
148 148
149 NACL_EXCEPTIONS_FLAG=""
150
149 InitializeNaClGccToolchain() { 151 InitializeNaClGccToolchain() {
150 if [ ${NACL_ARCH} = "arm" ]; then 152 if [ ${NACL_ARCH} = "arm" ]; then
151 local TOOLCHAIN_ARCH="arm" 153 local TOOLCHAIN_ARCH="arm"
152 else 154 else
153 local TOOLCHAIN_ARCH="x86" 155 local TOOLCHAIN_ARCH="x86"
154 fi 156 fi
155 157
156 local TOOLCHAIN_DIR=${OS_SUBDIR}_${TOOLCHAIN_ARCH}_${NACL_LIBC} 158 local TOOLCHAIN_DIR=${OS_SUBDIR}_${TOOLCHAIN_ARCH}_${NACL_LIBC}
157 readonly NACL_TOOLCHAIN_ROOT=${NACL_SDK_ROOT}/toolchain/${TOOLCHAIN_DIR} 159 readonly NACL_TOOLCHAIN_ROOT=${NACL_SDK_ROOT}/toolchain/${TOOLCHAIN_DIR}
158 readonly NACL_BIN_PATH=${NACL_TOOLCHAIN_ROOT}/bin 160 readonly NACL_BIN_PATH=${NACL_TOOLCHAIN_ROOT}/bin
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 local NACL_LIBDIR=x86_64-nacl/lib64 244 local NACL_LIBDIR=x86_64-nacl/lib64
243 else 245 else
244 local NACL_LIBDIR=x86_64-nacl/lib32 246 local NACL_LIBDIR=x86_64-nacl/lib32
245 fi 247 fi
246 else 248 else
247 # TODO(sbc): figure our why we do not have a pnacl-strings 249 # TODO(sbc): figure our why we do not have a pnacl-strings
248 #NACLSTRINGS=${NACL_BIN_PATH}/pnacl-strings 250 #NACLSTRINGS=${NACL_BIN_PATH}/pnacl-strings
249 # until then use the host's strings tool 251 # until then use the host's strings tool
250 # (used only by the cairo package) 252 # (used only by the cairo package)
251 NACLSTRINGS="$(which strings)" 253 NACLSTRINGS="$(which strings)"
254 if [ ${NACL_ARCH} = "le32" ]; then
255 NACLSTRINGS=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-strings
256 NACL_EXCEPTIONS_FLAG="-fcxx-exceptions"
257 fi
252 NACLSTRIP=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-strip 258 NACLSTRIP=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-strip
253 NACL_EXEEXT=".pexe" 259 NACL_EXEEXT=".pexe"
254
255 # pnacl's translator 260 # pnacl's translator
256 TRANSLATOR=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-translate 261 # This should always be pnacl-translate, pnacl-finalize
257 PNACLFINALIZE=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-finalize 262 TRANSLATOR=${NACL_BIN_PATH}/${TOOLCHAIN}-translate
263 PNACLFINALIZE=${NACL_BIN_PATH}/${TOOLCHAIN}-finalize
258 # pnacl's pexe optimizer 264 # pnacl's pexe optimizer
259 PNACL_OPT=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-opt 265 PNACL_OPT=${NACL_BIN_PATH}/${NACL_CROSS_PREFIX}-opt
260 266
261 NACL_SDK_LIBDIR="${NACL_SDK_ROOT}/lib/${TOOLCHAIN}" 267 NACL_SDK_LIBDIR="${NACL_SDK_ROOT}/lib/${TOOLCHAIN}"
262 local NACL_LIBDIR=le32-nacl/lib 268 local NACL_LIBDIR=le32-nacl/lib
263 fi 269 fi
264 270
265 readonly NACL_SDK_LIB=${NACL_TOOLCHAIN_ROOT}/${NACL_LIBDIR} 271 readonly NACL_SDK_LIB=${NACL_TOOLCHAIN_ROOT}/${NACL_LIBDIR}
266 } 272 }
267 273
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 echo "export PATH=${NACL_PREFIX}/bin:\${PATH}:${NACL_BIN_PATH}" 345 echo "export PATH=${NACL_PREFIX}/bin:\${PATH}:${NACL_BIN_PATH}"
340 echo "export CPPFLAGS=\"${NACL_CPPFLAGS}\"" 346 echo "export CPPFLAGS=\"${NACL_CPPFLAGS}\""
341 echo "export ARFLAGS=\"${NACL_ARFLAGS}\"" 347 echo "export ARFLAGS=\"${NACL_ARFLAGS}\""
342 echo "export LDFLAGS=\"${NACL_LDFLAGS}\"" 348 echo "export LDFLAGS=\"${NACL_LDFLAGS}\""
343 else 349 else
344 NaClEnvExport 350 NaClEnvExport
345 exec "$@" 351 exec "$@"
346 fi 352 fi
347 fi 353 fi
348 fi 354 fi
OLDNEW
« no previous file with comments | « build_tools/common.sh ('k') | docs/port_list.md » ('j') | make_all.sh » ('J')

Powered by Google App Engine
This is Rietveld 408576698