mirror of
https://github.com/matrix-construct/construct
synced 2024-12-02 11:42:41 +01:00
77 lines
1.5 KiB
Bash
77 lines
1.5 KiB
Bash
|
#!/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
|