|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Check prerequisites for using the Duktape makefile. Exit with an error
|
|
|
|
# and a useful error message for missing prerequisites.
|
|
|
|
#
|
|
|
|
|
|
|
|
ERRORS=0
|
|
|
|
WARNINGS=0
|
|
|
|
|
|
|
|
uname -a | grep -ni linux >/dev/null
|
|
|
|
RET=$?
|
|
|
|
if [ "x$RET" != "x0" ]; then
|
|
|
|
echo "*** Based on uname, you're not running on Linux. Duktape developer"
|
|
|
|
echo " makefile is intended for Linux only; YMMV on other platforms."
|
|
|
|
echo ""
|
|
|
|
sleep 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
NODEJS_VERSION=`nodejs -v 2>/dev/null`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing NodeJS:"
|
|
|
|
echo " $ sudo apt-get install nodejs nodejs-legacy npm # may also be 'node'"
|
|
|
|
echo ""
|
|
|
|
ERRORS=1
|
|
|
|
fi
|
|
|
|
#echo "NodeJS version: $NODEJS_VERSION"
|
|
|
|
|
|
|
|
# some tools like uglifyjs require 'node', not 'nodejs'
|
|
|
|
NODE_VERSION=`node -v 2>/dev/null`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing NodeJS legacy ('node' command):"
|
|
|
|
echo " $ sudo apt-get install nodejs-legacy"
|
|
|
|
echo ""
|
|
|
|
ERRORS=1
|
|
|
|
fi
|
|
|
|
#echo "NodeJS 'node' version: $NODE_VERSION"
|
|
|
|
|
|
|
|
GIT_VERSION=`git --version 2>/dev/null`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing git:"
|
|
|
|
echo " $ sudo apt-get install git"
|
|
|
|
echo ""
|
|
|
|
ERRORS=1
|
|
|
|
fi
|
|
|
|
#echo "Git version: $GIT_VERSION"
|
|
|
|
|
|
|
|
UNZIP_VERSION=`unzip -v 2>/dev/null`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing unzip:"
|
|
|
|
echo " $ sudo apt-get install unzip"
|
|
|
|
echo ""
|
|
|
|
ERRORS=1
|
|
|
|
fi
|
|
|
|
#echo "UNZIP_VERSION: $UNZIP_VERSION"
|
|
|
|
|
|
|
|
PERL_VERSION=`perl -version 2>/dev/null`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing perl:"
|
|
|
|
echo " $ sudo apt-get install perl"
|
|
|
|
echo ""
|
|
|
|
ERRORS=1
|
|
|
|
fi
|
|
|
|
#echo "PERL_VERSION: $PERL_VERSION"
|
|
|
|
|
|
|
|
JAVA_VERSION=`java -version 2>&1`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing java:"
|
|
|
|
echo " $ sudo apt-get install openjdk-7-jre"
|
|
|
|
echo ""
|
|
|
|
ERRORS=1
|
|
|
|
fi
|
|
|
|
#echo "JAVA_VERSION: $JAVA_VERSION"
|
|
|
|
|
|
|
|
CLANG_VERSION=`clang -v 2>&1`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing clang (affects emscripten tests):"
|
|
|
|
echo " $ sudo apt-get install clang"
|
|
|
|
echo ""
|
|
|
|
WARNINGS=1
|
|
|
|
fi
|
|
|
|
|
|
|
|
LLVM_LINK_VERSION=`llvm-link --version 2>&1` # exit code will be 1
|
|
|
|
which llvm-link 2>/dev/null >/dev/null
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing llvm (affects emscripten tests):"
|
|
|
|
echo " $ sudo apt-get install llvm"
|
|
|
|
echo ""
|
|
|
|
WARNINGS=1
|
|
|
|
fi
|
|
|
|
|
|
|
|
python -c 'from bs4 import BeautifulSoup, Tag' 2>/dev/null
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing BeautifulSoup (affects website build)"
|
|
|
|
echo " $ sudo apt-get install python-bs4"
|
|
|
|
echo ""
|
|
|
|
WARNINGS=1
|
|
|
|
fi
|
|
|
|
|
|
|
|
SOURCE_HIGHLIGHT_VERSION=`source-highlight --version`
|
|
|
|
if [ $? != 0 ]; then
|
|
|
|
echo "*** Missing source-highlight (affects website build)"
|
|
|
|
echo " $ sudo apt-get install source-highlight"
|
|
|
|
echo ""
|
|
|
|
WARNINGS=1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "x$ERRORS" != "x0" ]; then
|
|
|
|
echo "*** Errors found in system setup, see error messages above!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "x$WARNINGS" != "x0" ]; then
|
|
|
|
echo "*** Warnings found in system setup, see warnings above"
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# 'tidy' is intentionally not checked as it only relates to website development
|
|
|
|
# and is not mandatory to website build.
|
|
|
|
|
|
|
|
exit 0
|