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

Side by Side Diff: ports/python-static/build.sh

Issue 710193003: Reduce the number of times we build a host copy of python. (Closed) Base URL: https://chromium.googlesource.com/external/naclports.git@master
Patch Set: Created 6 years, 1 month 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 # Copyright (c) 2014 The Native Client Authors. All rights reserved. 1 # Copyright (c) 2014 The Native Client Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 EXECUTABLES=python${NACL_EXEEXT} 5 EXECUTABLES=python${NACL_EXEEXT}
6 6
7 # Currently this package only builds on linux. 7 # Currently this package only builds on linux.
8 # The build relies on certain host binaries and python's configure 8 # The build relies on certain host binaries and python's configure
9 # requires us to set --build= as well as --host=. 9 # requires us to set --build= as well as --host=.
10 # 10 #
11 # The module downloader is patterned after the Bochs image downloading step. 11 # The module downloader is patterned after the Bochs image downloading step.
12 12
13 ConfigureStep() { 13 ConfigureStep() {
14 SetupCrossEnvironment 14 SetupCrossEnvironment
15 export CROSS_COMPILE=true 15 export CROSS_COMPILE=true
16 # We pre-seed configure with certain results that it cannot determine 16 # We pre-seed configure with certain results that it cannot determine
17 # since we are doing a cross compile. The $CONFIG_SITE file is sourced 17 # since we are doing a cross compile. The $CONFIG_SITE file is sourced
18 # by configure early on. 18 # by configure early on.
19 export CONFIG_SITE=${START_DIR}/config.site 19 export CONFIG_SITE=${START_DIR}/config.site
20 # Disable ipv6 since configure claims it requires a working getaddrinfo 20 # Disable ipv6 since configure claims it requires a working getaddrinfo
21 # which we do not provide. TODO(sbc): remove this once nacl_io supports 21 # which we do not provide. TODO(sbc): remove this once nacl_io supports
22 # getaddrinfo. 22 # getaddrinfo.
23 EXTRA_CONFIGURE_ARGS="--disable-ipv6" 23 EXTRA_CONFIGURE_ARGS="--disable-ipv6"
24 EXTRA_CONFIGURE_ARGS+=" --with-suffix=${NACL_EXEEXT}" 24 EXTRA_CONFIGURE_ARGS+=" --with-suffix=${NACL_EXEEXT}"
25 EXTRA_CONFIGURE_ARGS+=" --build=i686-linux-gnu --disable-shared --enable-stati c" 25 EXTRA_CONFIGURE_ARGS+=" --build=i686-linux-gnu --disable-shared --enable-stati c"
26 export SO=.a 26 export SO=.a
27 export MAKEFLAGS="PGEN=${NACL_HOST_PYROOT}/../python-host/build-nacl-host/Pars er/pgen" 27 export MAKEFLAGS="PGEN=${NACL_HOST_PYBUILD}/Parser/pgen"
28 export LIBS="-ltermcap" 28 export LIBS="-ltermcap"
29 export DYNLOADFILE=dynload_ppapi.o 29 export DYNLOADFILE=dynload_ppapi.o
30 export MACHDEP=ppapi 30 export MACHDEP=ppapi
31 export LINKCC=${NACLCXX} 31 export LINKCC=${NACLCXX}
32 if [ "${NACL_LIBC}" = "newlib" ]; then 32 if [ "${NACL_LIBC}" = "newlib" ]; then
33 LIBS+=" -lglibc-compat -lc" 33 LIBS+=" -lglibc-compat -lc"
34 fi 34 fi
35 LogExecute cp ${START_DIR}/dynload_ppapi.c ${SRC_DIR}/Python/ 35 LogExecute cp ${START_DIR}/dynload_ppapi.c ${SRC_DIR}/Python/
36 # This next step is costly, but it sets the environment variables correctly. 36 # This next step is costly, but it sets the environment variables correctly.
37 DefaultConfigureStep 37 DefaultConfigureStep
(...skipping 18 matching lines...) Expand all
56 PY_LINK_LINE+=" -lglibc-compat" 56 PY_LINK_LINE+=" -lglibc-compat"
57 fi 57 fi
58 echo ${PY_LINK_LINE} >> Modules/Setup.local 58 echo ${PY_LINK_LINE} >> Modules/Setup.local
59 # At this point we use the existing environment variables from 59 # At this point we use the existing environment variables from
60 # DefaultConfigureStep to build our destination Python modules 60 # DefaultConfigureStep to build our destination Python modules
61 } 61 }
62 62
63 BuildStep() { 63 BuildStep() {
64 SetupCrossEnvironment 64 SetupCrossEnvironment
65 export CROSS_COMPILE=true 65 export CROSS_COMPILE=true
66 export MAKEFLAGS="PGEN=${NACL_HOST_PYROOT}/../python-host/build-nacl-host/Pars er/pgen" 66 export MAKEFLAGS="PGEN=${NACL_HOST_PYBUILD}/Parser/pgen"
67 DefaultBuildStep 67 DefaultBuildStep
68 ChangeDir ${BUILD_DIR} 68 ChangeDir ${BUILD_DIR}
69 Banner "Rebuilding libpython2.7.a" 69 Banner "Rebuilding libpython2.7.a"
70 ${AR} cr libpython2.7.a ${DEST_PYTHON_OBJS}/*/*.o 70 ${AR} cr libpython2.7.a ${DEST_PYTHON_OBJS}/*/*.o
71 ${RANLIB} libpython2.7.a 71 ${RANLIB} libpython2.7.a
72 # To avoid rebuilding python.nexe with the new libpython2.7.a and duplicating 72 # To avoid rebuilding python.nexe with the new libpython2.7.a and duplicating
73 # symbols 73 # symbols
74 LogExecute touch python${NACL_EXEEXT} 74 LogExecute touch python${NACL_EXEEXT}
75 # The modules get built with SO=so, but they need to be SO=a inside the 75 # The modules get built with SO=so, but they need to be SO=a inside the
76 # destination filesystem. 76 # destination filesystem.
77 for fn in $(find ${NACL_DEST_PYROOT}/${SITE_PACKAGES} -name "*.so"); do 77 for fn in $(find ${NACL_DEST_PYROOT}/${SITE_PACKAGES} -name "*.so"); do
78 LogExecute touch ${fn%%so}a 78 LogExecute touch ${fn%%so}a
79 LogExecute rm -v ${fn} 79 LogExecute rm -v ${fn}
80 done 80 done
81 } 81 }
OLDNEW
« README.rst ('K') | « ports/python-host/pkg_info ('k') | ports/python-static/nacl.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698