SpiderMonkey 38 upgrade: 02/35
Update files for building SpiderMonkey. Add a script for starting the tracelogger, as well as some instructions, to be detailed in the wiki. This was SVN commit r18656.
This commit is contained in:
parent
add6b0206c
commit
7e6a960e83
@ -43,7 +43,7 @@ ENET_VERSION="enet-1.3.13"
|
|||||||
MINIUPNPC_VERSION="miniupnpc-1.9.20151026"
|
MINIUPNPC_VERSION="miniupnpc-1.9.20151026"
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
# Bundled with the game:
|
# Bundled with the game:
|
||||||
# * SpiderMonkey 31
|
# * SpiderMonkey 38
|
||||||
# * NVTT
|
# * NVTT
|
||||||
# * FCollada
|
# * FCollada
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
@ -627,9 +627,9 @@ popd > /dev/null
|
|||||||
# be customized, so we build and install them from bundled sources
|
# be customized, so we build and install them from bundled sources
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
echo -e "Building Spidermonkey..."
|
echo -e "Building Spidermonkey..."
|
||||||
LIB_VERSION="mozjs-31.2.0"
|
LIB_VERSION="mozjs-38.2.1"
|
||||||
LIB_ARCHIVE="$LIB_VERSION.rc0.tar.bz2"
|
LIB_ARCHIVE="$LIB_VERSION.rc0.tar.bz2"
|
||||||
LIB_DIRECTORY="mozjs31"
|
LIB_DIRECTORY="mozjs-38.0.0"
|
||||||
|
|
||||||
pushd ../source/spidermonkey/ > /dev/null
|
pushd ../source/spidermonkey/ > /dev/null
|
||||||
|
|
||||||
@ -643,8 +643,6 @@ then
|
|||||||
rm -f lib/*.a
|
rm -f lib/*.a
|
||||||
rm -rf $LIB_DIRECTORY $INCLUDE_DIR_DEBUG $INCLUDE_DIR_RELEASE
|
rm -rf $LIB_DIRECTORY $INCLUDE_DIR_DEBUG $INCLUDE_DIR_RELEASE
|
||||||
tar -xf $LIB_ARCHIVE
|
tar -xf $LIB_ARCHIVE
|
||||||
# rename the extracted directory to something shorter
|
|
||||||
mv $LIB_VERSION $LIB_DIRECTORY
|
|
||||||
|
|
||||||
# Apply patches
|
# Apply patches
|
||||||
pushd $LIB_DIRECTORY
|
pushd $LIB_DIRECTORY
|
||||||
@ -653,10 +651,11 @@ then
|
|||||||
|
|
||||||
pushd $LIB_DIRECTORY/js/src
|
pushd $LIB_DIRECTORY/js/src
|
||||||
# We want separate debug/release versions of the library, so change their install name in the Makefile
|
# We want separate debug/release versions of the library, so change their install name in the Makefile
|
||||||
perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1mozjs31-ps-debug/' Makefile.in
|
perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs38-ps-debug'\''/' moz.build
|
||||||
perl -i.bak -pe 's/js_static/mozjs31-ps-debug/g' shell/Makefile.in
|
|
||||||
|
|
||||||
CONF_OPTS="--target=$ARCH-apple-darwin --prefix=${INSTALL_DIR} --with-system-nspr --with-nspr-prefix=${NSPR_DIR} --with-system-zlib=${ZLIB_DIR} --enable-gcgenerational --disable-tests --disable-shared-js" # --enable-trace-logging"
|
CONF_OPTS="--target=$ARCH-apple-darwin --prefix=${INSTALL_DIR} --with-system-nspr --with-nspr-prefix=${NSPR_DIR} --with-system-zlib=${ZLIB_DIR} --disable-tests --disable-shared-js"
|
||||||
|
# Change the default location where the tracelogger should store its output, which is /tmp/ on OSX.
|
||||||
|
TLCXXFLAGS='-DTRACE_LOG_DIR="\"../../source/tools/tracelogger/\""'
|
||||||
# Uncomment this line for 32-bit 10.5 cross compile:
|
# Uncomment this line for 32-bit 10.5 cross compile:
|
||||||
#CONF_OPTS="$CONF_OPTS --target=i386-apple-darwin9.0.0"
|
#CONF_OPTS="$CONF_OPTS --target=i386-apple-darwin9.0.0"
|
||||||
if [[ $MIN_OSX_VERSION && ${MIN_OSX_VERSION-_} ]]; then
|
if [[ $MIN_OSX_VERSION && ${MIN_OSX_VERSION-_} ]]; then
|
||||||
@ -668,27 +667,24 @@ then
|
|||||||
|
|
||||||
mkdir -p build-debug
|
mkdir -p build-debug
|
||||||
pushd build-debug
|
pushd build-debug
|
||||||
(CC="clang" CXX="clang++" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-debug --disable-optimize --enable-js-diagnostics --enable-gczeal && make ${JOBS}) || die "Spidermonkey build failed"
|
(CC="clang" CXX="clang++" CXXFLAGS="${TLCXXFLAGS}" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-debug --disable-optimize --enable-js-diagnostics --enable-gczeal && make ${JOBS}) || die "Spidermonkey build failed"
|
||||||
# js-config.h is different for debug and release builds, so we need different include directories for both
|
# js-config.h is different for debug and release builds, so we need different include directories for both
|
||||||
mkdir -p $INCLUDE_DIR_DEBUG
|
mkdir -p $INCLUDE_DIR_DEBUG
|
||||||
cp -R -L dist/include/* $INCLUDE_DIR_DEBUG/
|
cp -R -L dist/include/* $INCLUDE_DIR_DEBUG/
|
||||||
cp dist/lib/*.a $INSTALL_DIR/lib
|
cp dist/lib/*.a $INSTALL_DIR/lib
|
||||||
popd
|
popd
|
||||||
mv Makefile.in.bak Makefile.in
|
mv moz.build.bak moz.build
|
||||||
mv shell/Makefile.in.bak shell/Makefile.in
|
|
||||||
|
|
||||||
perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1mozjs31-ps-release/' Makefile.in
|
perl -i.bak -pe 's/(^STATIC_LIBRARY_NAME\s+=).*/$1'\''mozjs38-ps-release'\''/' moz.build
|
||||||
perl -i.bak -pe 's/js_static/mozjs31-ps-release/g' shell/Makefile.in
|
|
||||||
mkdir -p build-release
|
mkdir -p build-release
|
||||||
pushd build-release
|
pushd build-release
|
||||||
(CC="clang" CXX="clang++" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-optimize && make ${JOBS}) || die "Spidermonkey build failed"
|
(CC="clang" CXX="clang++" CXXFLAGS="${TLCXXFLAGS}" AR=ar CROSS_COMPILE=1 ../configure $CONF_OPTS --enable-optimize && make ${JOBS}) || die "Spidermonkey build failed"
|
||||||
# js-config.h is different for debug and release builds, so we need different include directories for both
|
# js-config.h is different for debug and release builds, so we need different include directories for both
|
||||||
mkdir -p $INCLUDE_DIR_RELEASE
|
mkdir -p $INCLUDE_DIR_RELEASE
|
||||||
cp -R -L dist/include/* $INCLUDE_DIR_RELEASE/
|
cp -R -L dist/include/* $INCLUDE_DIR_RELEASE/
|
||||||
cp dist/lib/*.a $INSTALL_DIR/lib
|
cp dist/lib/*.a $INSTALL_DIR/lib
|
||||||
popd
|
popd
|
||||||
mv Makefile.in.bak Makefile.in
|
mv moz.build.bak moz.build
|
||||||
mv shell/Makefile.in.bak shell/Makefile.in
|
|
||||||
|
|
||||||
popd
|
popd
|
||||||
touch .already-built
|
touch .already-built
|
||||||
|
21
source/tools/tracelogger/tracelogger_options.sh
Normal file
21
source/tools/tracelogger/tracelogger_options.sh
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Source this script with `. tl-options.sh` in order to set up environment variables for the
|
||||||
|
# SpiderMonkey tracelogger.
|
||||||
|
# Once the variables are set, run ./pyrogenesis in binaries/system with the options you need and
|
||||||
|
# the tracelogging data will be saved to source/tools/tracelogger/
|
||||||
|
|
||||||
|
# After the run, use this tool: https://github.com/h4writer/tracelogger to display the data.
|
||||||
|
# The last tested version of the tool is 1c67e97e794b5039d0cae95f72ea0c76e4aa4696,
|
||||||
|
# it can be used if more recent versions cause trouble.
|
||||||
|
|
||||||
|
# Use semicolons to separate values on Windows.
|
||||||
|
# If that produces bogus output, you can try with commas instead.
|
||||||
|
if [ "${OS}" = "Windows_NT" ]
|
||||||
|
then
|
||||||
|
export TLLOG="Defaults;IonCompiler"
|
||||||
|
export TLOPTIONS="EnableMainThread;EnableOffThread;EnableGraph"
|
||||||
|
else
|
||||||
|
export TLLOG=Defaults,IonCompiler
|
||||||
|
export TLOPTIONS=EnableMainThread,EnableOffThread,EnableGraph
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user