mirror of
https://github.com/matrix-construct/construct
synced 2024-12-28 00:14:07 +01:00
76 lines
1.5 KiB
Bash
Executable file
76 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
BRANCH=$1
|
|
if [ -z $BRANCH ]; then
|
|
BRANCH="master"
|
|
fi
|
|
|
|
CONFIG_OPTIONS=$2
|
|
if [ -z $CONFIG_OPTIONS ]; then
|
|
CONFIG_OPTIONS="--enable-optimize"
|
|
fi
|
|
|
|
JOBS=$3
|
|
if [ -z $JOBS ]; then
|
|
JOBS=4
|
|
fi
|
|
|
|
run ()
|
|
{
|
|
COMMAND=$1
|
|
# check for empty commands
|
|
if test -z "$COMMAND" ; then
|
|
echo -e "\033[1;5;31mERROR\033[0m No command specified!"
|
|
return 1
|
|
fi
|
|
|
|
shift;
|
|
OPTIONS="$@"
|
|
# print a message
|
|
if test -n "$OPTIONS" ; then
|
|
echo -ne "\033[1m$COMMAND $OPTIONS\033[0m ... "
|
|
else
|
|
echo -ne "\033[1m$COMMAND\033[0m ... "
|
|
fi
|
|
|
|
# run or die
|
|
$COMMAND $OPTIONS ; RESULT=$?
|
|
if test $RESULT -ne 0 ; then
|
|
echo -e "\033[1;5;31mERROR\033[0m $COMMAND failed. (exit code = $RESULT)"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "\033[0;32myes\033[0m"
|
|
return 0
|
|
}
|
|
|
|
|
|
echo "*** Building SpiderMonkey... "
|
|
|
|
USERDIR=$PWD # Save current dir and return to it later
|
|
|
|
run git submodule update --init --remote gecko-dev
|
|
run cd gecko-dev
|
|
#run git fetch --depth=1 origin esr45
|
|
#run git checkout FETCH_HEAD
|
|
|
|
run cd js/src
|
|
run autoconf2.13
|
|
mkdir build_OPT.OBJ
|
|
ALREADY_EXISTS=$?
|
|
run cd build_OPT.OBJ
|
|
|
|
# If configure is rerun make will rebuild the entire engine every time
|
|
# this script is run, which is every time charybdis gets ./configure. This
|
|
# may actually be the best behavior in production but right now this test
|
|
# prevents rebuilds
|
|
if test $ALREADY_EXISTS -eq 0; then
|
|
run ../configure $CONFIG_OPTIONS
|
|
fi
|
|
|
|
#run ../configure --enable-debug
|
|
# run ../configure --disable-shared-js --enable-debug # --enable-replace-malloc
|
|
|
|
run make -j $JOBS
|
|
|
|
run cd $USERDIR # Return to user's original directory
|