diff --git a/scripts/eosio_build.sh b/scripts/eosio_build.sh index a97ceaa5058..32395919051 100755 --- a/scripts/eosio_build.sh +++ b/scripts/eosio_build.sh @@ -30,62 +30,21 @@ # https://github.com/EOSIO/eos/blob/master/LICENSE ########################################################################## -VERSION=2.2 # Build script version +VERSION=2.3 # Build script version + +# defaults for command-line arguments CMAKE_BUILD_TYPE=Release DOXYGEN=false ENABLE_COVERAGE_TESTING=false CORE_SYMBOL_NAME="SYS" -START_MAKE=true +NONINTERACTIVE=0 +PREFIX=$HOME TIME_BEGIN=$( date -u +%s ) txtbld=$(tput bold) bldred=${txtbld}$(tput setaf 1) txtrst=$(tput sgr0) -export SRC_LOCATION=${HOME}/src -export OPT_LOCATION=${HOME}/opt -export VAR_LOCATION=${HOME}/var -export ETC_LOCATION=${HOME}/etc -export BIN_LOCATION=${HOME}/bin -export DATA_LOCATION=${HOME}/data -export CMAKE_VERSION_MAJOR=3 -export CMAKE_VERSION_MINOR=13 -export CMAKE_VERSION_PATCH=2 -export CMAKE_VERSION=${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH} -export MONGODB_VERSION=3.6.3 -export MONGODB_ROOT=${OPT_LOCATION}/mongodb-${MONGODB_VERSION} -export MONGODB_CONF=${ETC_LOCATION}/mongod.conf -export MONGODB_LOG_LOCATION=${VAR_LOCATION}/log/mongodb -export MONGODB_LINK_LOCATION=${OPT_LOCATION}/mongodb -export MONGODB_DATA_LOCATION=${DATA_LOCATION}/mongodb -export MONGO_C_DRIVER_VERSION=1.13.0 -export MONGO_C_DRIVER_ROOT=${SRC_LOCATION}/mongo-c-driver-${MONGO_C_DRIVER_VERSION} -export MONGO_CXX_DRIVER_VERSION=3.4.0 -export MONGO_CXX_DRIVER_ROOT=${SRC_LOCATION}/mongo-cxx-driver-r${MONGO_CXX_DRIVER_VERSION} -export BOOST_VERSION_MAJOR=1 -export BOOST_VERSION_MINOR=67 -export BOOST_VERSION_PATCH=0 -export BOOST_VERSION=${BOOST_VERSION_MAJOR}_${BOOST_VERSION_MINOR}_${BOOST_VERSION_PATCH} -export BOOST_ROOT=${SRC_LOCATION}/boost_${BOOST_VERSION} -export BOOST_LINK_LOCATION=${OPT_LOCATION}/boost -export LLVM_VERSION=release_40 -export LLVM_ROOT=${OPT_LOCATION}/llvm -export LLVM_DIR=${LLVM_ROOT}/lib/cmake/llvm -export DOXYGEN_VERSION=1_8_14 -export DOXYGEN_ROOT=${SRC_LOCATION}/doxygen-${DOXYGEN_VERSION} -export TINI_VERSION=0.18.0 -export DISK_MIN=5 - -# Setup directories -mkdir -p $SRC_LOCATION -mkdir -p $OPT_LOCATION -mkdir -p $VAR_LOCATION -mkdir -p $BIN_LOCATION -mkdir -p $VAR_LOCATION/log -mkdir -p $ETC_LOCATION -mkdir -p $MONGODB_LOG_LOCATION -mkdir -p $MONGODB_DATA_LOCATION - SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" REPO_ROOT="${SCRIPT_DIR}/.." BUILD_DIR="${REPO_ROOT}/build" @@ -101,14 +60,21 @@ fi function usage() { - printf "Usage: %s \\n[Build Option -o ] \\n[CodeCoverage -c] \\n[Doxygen -d] \\n[CoreSymbolName -s <1-7 characters>] \\n[Avoid Compiling -a]\\n[Noninteractive -y]\\n\\n" "$0" 1>&2 + cat >&2 < (default: Release) + -p DIR Prefix directory for dependencies & EOS install (default: $HOME) + -b DIR Use pre-built boost in DIR + -c Enable Code Coverage + -d Generate Doxygen + -s NAME Core Symbol Name <1-7 characters> (default: SYS) + -y Noninteractive mode (this script) +EOT exit 1 } -NONINTERACTIVE=0 - if [ $# -ne 0 ]; then - while getopts ":cdo:s:ahy" opt; do + while getopts ":cdo:s:p:b:hy" opt; do case "${opt}" in o ) options=( "Debug" "Release" "RelWithDebInfo" "MinSizeRel" ) @@ -134,10 +100,13 @@ if [ $# -ne 0 ]; then else CORE_SYMBOL_NAME="${OPTARG}" fi - ;; - a) - START_MAKE=false - ;; + ;; + b) + BOOST_ARG=$OPTARG + ;; + p) + PREFIX=$OPTARG + ;; h) usage exit 1 @@ -170,6 +139,42 @@ if [ ! -d "${REPO_ROOT}/.git" ]; then exit 1 fi +export CMAKE_VERSION_MAJOR=3 +export CMAKE_VERSION_MINOR=13 +export CMAKE_VERSION_PATCH=2 +export CMAKE_VERSION=${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH} + +export SRC_LOCATION=$PREFIX/src +export OPT_LOCATION=$PREFIX/opt +export VAR_LOCATION=$PREFIX/var +export ETC_LOCATION=$PREFIX/etc +export BIN_LOCATION=$PREFIX/bin +export DATA_LOCATION=$PREFIX/data + +export MONGODB_VERSION=3.6.3 +export MONGODB_ROOT=${OPT_LOCATION}/mongodb-${MONGODB_VERSION} +export MONGODB_CONF=${ETC_LOCATION}/mongod.conf +export MONGODB_LOG_LOCATION=${VAR_LOCATION}/log/mongodb +export MONGODB_LINK_LOCATION=${OPT_LOCATION}/mongodb +export MONGODB_DATA_LOCATION=${DATA_LOCATION}/mongodb +export MONGO_C_DRIVER_VERSION=1.13.0 +export MONGO_C_DRIVER_ROOT=${SRC_LOCATION}/mongo-c-driver-${MONGO_C_DRIVER_VERSION} +export MONGO_CXX_DRIVER_VERSION=3.4.0 +export MONGO_CXX_DRIVER_ROOT=${SRC_LOCATION}/mongo-cxx-driver-r${MONGO_CXX_DRIVER_VERSION} +export BOOST_VERSION_MAJOR=1 +export BOOST_VERSION_MINOR=67 +export BOOST_VERSION_PATCH=0 +export BOOST_VERSION=${BOOST_VERSION_MAJOR}_${BOOST_VERSION_MINOR}_${BOOST_VERSION_PATCH} +export BOOST_ROOT=${BOOST_ARG:-${SRC_LOCATION}/boost_${BOOST_VERSION}} +export BOOST_LINK_LOCATION=${OPT_LOCATION}/boost +export LLVM_VERSION=release_40 +export LLVM_ROOT=${OPT_LOCATION}/llvm +export LLVM_DIR=${LLVM_ROOT}/lib/cmake/llvm +export DOXYGEN_VERSION=1_8_14 +export DOXYGEN_ROOT=${SRC_LOCATION}/doxygen-${DOXYGEN_VERSION} +export TINI_VERSION=0.18.0 +export DISK_MIN=5 + cd $REPO_ROOT STALE_SUBMODS=$(( $(git submodule status --recursive | grep -c "^[+\-]") )) @@ -179,6 +184,16 @@ if [ $STALE_SUBMODS -gt 0 ]; then exit 1 fi +# Setup directories +mkdir -p $SRC_LOCATION +mkdir -p $OPT_LOCATION +mkdir -p $VAR_LOCATION +mkdir -p $BIN_LOCATION +mkdir -p $VAR_LOCATION/log +mkdir -p $ETC_LOCATION +mkdir -p $MONGODB_LOG_LOCATION +mkdir -p $MONGODB_DATA_LOCATION + printf "\\nBeginning build version: %s\\n" "${VERSION}" printf "%s\\n" "$( date -u )" printf "User: %s\\n" "$( whoami )" @@ -193,7 +208,7 @@ export CMAKE=$(command -v cmake 2>/dev/null) if [ "$ARCH" == "Linux" ]; then # Check if cmake is already installed or not and use source install location - if [ -z $CMAKE ]; then export CMAKE=$HOME/bin/cmake; fi + if [ -z $CMAKE ]; then export CMAKE=$PREFIX/bin/cmake; fi export OS_NAME=$( cat /etc/os-release | grep ^NAME | cut -d'=' -f2 | sed 's/\"//gI' ) OPENSSL_ROOT_DIR=/usr/include/openssl if [ ! -e /etc/os-release ]; then @@ -256,7 +271,7 @@ if [ "$ARCH" == "Darwin" ]; then export OS_NAME=MacOSX # opt/gettext: cleos requires Intl, which requires gettext; it's keg only though and we don't want to force linking: https://github.com/EOSIO/eos/issues/2240#issuecomment-396309884 # HOME/lib/cmake: mongo_db_plugin.cpp:25:10: fatal error: 'bsoncxx/builder/basic/kvp.hpp' file not found - LOCAL_CMAKE_FLAGS="-DCMAKE_PREFIX_PATH=/usr/local/opt/gettext;$HOME/lib/cmake ${LOCAL_CMAKE_FLAGS}" + LOCAL_CMAKE_FLAGS="-DCMAKE_PREFIX_PATH=/usr/local/opt/gettext;$HOME/lib/cmake ${LOCAL_CMAKE_FLAGS}" FILE="${REPO_ROOT}/scripts/eosio_build_darwin.sh" CXX_COMPILER=clang++ C_COMPILER=clang @@ -283,6 +298,7 @@ $CMAKE -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -DCMAKE_CXX_COMPILER="${CXX_COMP -DCMAKE_C_COMPILER="${C_COMPILER}" -DCORE_SYMBOL_NAME="${CORE_SYMBOL_NAME}" \ -DOPENSSL_ROOT_DIR="${OPENSSL_ROOT_DIR}" -DBUILD_MONGO_DB_PLUGIN=true \ -DENABLE_COVERAGE_TESTING="${ENABLE_COVERAGE_TESTING}" -DBUILD_DOXYGEN="${DOXYGEN}" \ + -DCMAKE_PREFIX_PATH=$PREFIX \ -DCMAKE_INSTALL_PREFIX=$OPT_LOCATION/eosio $LOCAL_CMAKE_FLAGS "${REPO_ROOT}" if [ $? -ne 0 ]; then exit -1; fi make -j"${JOBS}" @@ -306,7 +322,7 @@ printf "======================================================================== printf "(Optional) Testing Instructions:\\n" print_instructions printf "${BIN_LOCATION}/mongod --dbpath ${MONGODB_DATA_LOCATION} -f ${MONGODB_CONF} --logpath ${MONGODB_LOG_LOCATION}/mongod.log &\\n" -printf "cd ./build && PATH=\$PATH:$HOME/opt/mongodb/bin make test\\n" # PATH is set as currently 'mongo' binary is required for the mongodb test +printf "cd ./build && PATH=\$PATH:$MONGODB_LINK_LOCATION/bin make test\\n" # PATH is set as currently 'mongo' binary is required for the mongodb test printf "${txtrst}==============================================================================================\\n" printf "For more information:\\n" printf "EOSIO website: https://eos.io\\n" @@ -314,4 +330,3 @@ printf "EOSIO Telegram channel @ https://t.me/EOSProject\\n" printf "EOSIO resources: https://eos.io/resources/\\n" printf "EOSIO Stack Exchange: https://eosio.stackexchange.com\\n" printf "EOSIO wiki: https://github.com/EOSIO/eos/wiki\\n\\n\\n" - diff --git a/scripts/eosio_build_amazon.sh b/scripts/eosio_build_amazon.sh index ff655496a7b..1fb2af1ebc9 100755 --- a/scripts/eosio_build_amazon.sh +++ b/scripts/eosio_build_amazon.sh @@ -9,16 +9,16 @@ DISK_TOTAL=$(( DISK_TOTAL_KB / 1048576 )) DISK_AVAIL=$(( DISK_AVAIL_KB / 1048576 )) if [[ "${OS_NAME}" == "Amazon Linux AMI" ]]; then # Amazonlinux1 - DEP_ARRAY=( + DEP_ARRAY=( sudo procps util-linux which gcc72 gcc72-c++ autoconf automake libtool make doxygen graphviz \ bzip2 bzip2-devel openssl-devel gmp gmp-devel libstdc++72 python27 python27-devel python36 python36-devel \ libedit-devel ncurses-devel swig wget file libcurl-devel libusb1-devel ) else # Amazonlinux2 - DEP_ARRAY=( + DEP_ARRAY=( git procps-ng util-linux gcc gcc-c++ autoconf automake libtool make bzip2 \ bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel libusbx-devel \ - python3 python3-devel python-devel libedit-devel doxygen graphviz + python3 python3-devel python-devel libedit-devel doxygen graphviz ) fi @@ -125,7 +125,7 @@ if [ ! -e $CMAKE ]; then curl -LO https://cmake.org/files/v$CMAKE_VERSION_MAJOR.$CMAKE_VERSION_MINOR/cmake-$CMAKE_VERSION.tar.gz \ && tar -xzf cmake-$CMAKE_VERSION.tar.gz \ && cd cmake-$CMAKE_VERSION \ - && ./bootstrap --prefix=$HOME \ + && ./bootstrap --prefix=$PREFIX \ && make -j"${JOBS}" \ && make install \ && cd .. \ @@ -142,7 +142,7 @@ printf "\\n" printf "Checking Boost library (${BOOST_VERSION}) installation...\\n" -BOOSTVERSION=$( grep "#define BOOST_VERSION" "$HOME/opt/boost/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) +BOOSTVERSION=$( grep "#define BOOST_VERSION" "$BOOST_ROOT/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) if [ "${BOOSTVERSION}" != "${BOOST_VERSION_MAJOR}0${BOOST_VERSION_MINOR}0${BOOST_VERSION_PATCH}" ]; then printf "Installing Boost library...\\n" curl -LO https://dl.bintray.com/boostorg/release/${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}.${BOOST_VERSION_PATCH}/source/boost_$BOOST_VERSION.tar.bz2 \ @@ -193,7 +193,7 @@ if [ ! -d $MONGO_C_DRIVER_ROOT ]; then && cd mongo-c-driver-$MONGO_C_DRIVER_VERSION \ && mkdir -p cmake-build \ && cd cmake-build \ - && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ + && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ && make -j"${JOBS}" \ && make install \ && cd ../.. \ @@ -210,7 +210,7 @@ if [ ! -d $MONGO_CXX_DRIVER_ROOT ]; then curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r$MONGO_CXX_DRIVER_VERSION.tar.gz -o mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION.tar.gz \ && tar -xzf mongo-cxx-driver-r${MONGO_CXX_DRIVER_VERSION}.tar.gz \ && cd mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION/build \ - && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME .. \ + && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. \ && make -j"${JOBS}" VERBOSE=1 \ && make install \ && cd ../.. \ diff --git a/scripts/eosio_build_centos.sh b/scripts/eosio_build_centos.sh index 621001d0a97..3988aef50a4 100755 --- a/scripts/eosio_build_centos.sh +++ b/scripts/eosio_build_centos.sh @@ -21,7 +21,7 @@ printf "CPU speed: ${CPU_SPEED}Mhz\\n" printf "CPU cores: ${CPU_CORE}\\n" printf "Physical Memory: ${MEM_MEG}Mgb\\n" printf "Disk install: ${DISK_INSTALL}\\n" -printf "Disk space total: ${DISK_TOTAL%.*}G\\n" +printf "Disk space total: ${DISK_TOTAL%.*}G\\n" printf "Disk space available: ${DISK_AVAIL%.*}G\\n" printf "Concurrent Jobs (make -j): ${JOBS}\\n" @@ -118,7 +118,7 @@ fi printf "\\n" -DEP_ARRAY=( +DEP_ARRAY=( git autoconf automake libtool make bzip2 doxygen graphviz \ bzip2-devel openssl-devel gmp-devel \ ocaml libicu-devel python python-devel rh-python36 \ @@ -175,7 +175,7 @@ if [ ! -e $CMAKE ]; then curl -LO https://cmake.org/files/v$CMAKE_VERSION_MAJOR.$CMAKE_VERSION_MINOR/cmake-$CMAKE_VERSION.tar.gz \ && tar -xzf cmake-$CMAKE_VERSION.tar.gz \ && cd cmake-$CMAKE_VERSION \ - && ./bootstrap --prefix=$HOME \ + && ./bootstrap --prefix=$PREFIX \ && make -j"${JOBS}" \ && make install \ && cd .. \ @@ -193,7 +193,7 @@ printf "\\n" export CPATH="${CPATH}:${PYTHON3PATH}/root/usr/include/python3.6m" # m on the end causes problems with boost finding python3 printf "Checking Boost library (${BOOST_VERSION}) installation...\\n" -BOOSTVERSION=$( grep "#define BOOST_VERSION" "$HOME/opt/boost/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) +BOOSTVERSION=$( grep "#define BOOST_VERSION" "$BOOST_ROOT/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) if [ "${BOOSTVERSION}" != "${BOOST_VERSION_MAJOR}0${BOOST_VERSION_MINOR}0${BOOST_VERSION_PATCH}" ]; then printf "Installing Boost library...\\n" curl -LO https://dl.bintray.com/boostorg/release/${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}.${BOOST_VERSION_PATCH}/source/boost_$BOOST_VERSION.tar.bz2 \ @@ -234,7 +234,7 @@ if [ ! -d $MONGODB_ROOT ]; then printf " - MongoDB successfully installed @ ${MONGODB_ROOT} (Symlinked to ${MONGODB_LINK_LOCATION}).\\n" else printf " - MongoDB found with correct version @ ${MONGODB_ROOT} (Symlinked to ${MONGODB_LINK_LOCATION}).\\n" -fi +fi if [ $? -ne 0 ]; then exit -1; fi printf "Checking MongoDB C driver installation...\\n" if [ ! -d $MONGO_C_DRIVER_ROOT ]; then @@ -244,7 +244,7 @@ if [ ! -d $MONGO_C_DRIVER_ROOT ]; then && cd mongo-c-driver-$MONGO_C_DRIVER_VERSION \ && mkdir -p cmake-build \ && cd cmake-build \ - && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ + && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ && make -j"${JOBS}" \ && make install \ && cd ../.. \ @@ -261,7 +261,7 @@ if [ ! -d $MONGO_CXX_DRIVER_ROOT ]; then curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r$MONGO_CXX_DRIVER_VERSION.tar.gz -o mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION.tar.gz \ && tar -xzf mongo-cxx-driver-r${MONGO_CXX_DRIVER_VERSION}.tar.gz \ && cd mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION/build \ - && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME .. \ + && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. \ && make -j"${JOBS}" VERBOSE=1 \ && make install \ && cd ../.. \ diff --git a/scripts/eosio_build_darwin.sh b/scripts/eosio_build_darwin.sh index 224b0839f1d..947dbb848c6 100755 --- a/scripts/eosio_build_darwin.sh +++ b/scripts/eosio_build_darwin.sh @@ -164,7 +164,7 @@ printf "\\n" export CPATH="$(python-config --includes | awk '{print $1}' | cut -dI -f2):$CPATH" # Boost has trouble finding pyconfig.h printf "Checking Boost library (${BOOST_VERSION}) installation...\\n" -BOOSTVERSION=$( grep "#define BOOST_VERSION" "$HOME/opt/boost/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) +BOOSTVERSION=$( grep "#define BOOST_VERSION" "$BOOST_ROOT/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) if [ "${BOOSTVERSION}" != "${BOOST_VERSION_MAJOR}0${BOOST_VERSION_MINOR}0${BOOST_VERSION_PATCH}" ]; then printf "Installing Boost library...\\n" curl -LO https://dl.bintray.com/boostorg/release/$BOOST_VERSION_MAJOR.$BOOST_VERSION_MINOR.$BOOST_VERSION_PATCH/source/boost_$BOOST_VERSION.tar.bz2 \ @@ -216,7 +216,7 @@ if [ ! -d $MONGO_C_DRIVER_ROOT ]; then && cd mongo-c-driver-$MONGO_C_DRIVER_VERSION \ && mkdir -p cmake-build \ && cd cmake-build \ - && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ + && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ && make -j"${JOBS}" \ && make install \ && cd ../.. \ @@ -228,12 +228,12 @@ else fi if [ $? -ne 0 ]; then exit -1; fi printf "Checking MongoDB C++ driver installation...\\n" -if [ "$(grep "Version:" $HOME/lib/pkgconfig/libmongocxx-static.pc 2>/dev/null | tr -s ' ' | awk '{print $2}')" != $MONGO_CXX_DRIVER_VERSION ]; then +if [ "$(grep "Version:" $PREFIX/lib/pkgconfig/libmongocxx-static.pc 2>/dev/null | tr -s ' ' | awk '{print $2}')" != $MONGO_CXX_DRIVER_VERSION ]; then printf "Installing MongoDB C++ driver...\\n" curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r$MONGO_CXX_DRIVER_VERSION.tar.gz -o mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION.tar.gz \ && tar -xzf mongo-cxx-driver-r${MONGO_CXX_DRIVER_VERSION}.tar.gz \ && cd mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION/build \ - && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME .. \ + && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. \ && make -j"${JOBS}" VERBOSE=1 \ && make install \ && cd ../.. \ diff --git a/scripts/eosio_build_fedora.sh b/scripts/eosio_build_fedora.sh index c27f47658d3..b1429b01931 100755 --- a/scripts/eosio_build_fedora.sh +++ b/scripts/eosio_build_fedora.sh @@ -41,7 +41,7 @@ printf "Disk space total: ${DISK_TOTAL%.*}G\\n" printf "Disk space available: ${DISK_AVAIL%.*}G\\n" # llvm is symlinked from /usr/lib64/llvm4.0 into user's home -DEP_ARRAY=( +DEP_ARRAY=( git sudo procps-ng which gcc gcc-c++ autoconf automake libtool make \ bzip2-devel wget bzip2 compat-openssl10 graphviz doxygen \ openssl-devel gmp-devel libstdc++-devel python2 python2-devel python3 python3-devel \ @@ -116,7 +116,7 @@ if [ ! -e $CMAKE ]; then curl -LO https://cmake.org/files/v$CMAKE_VERSION_MAJOR.$CMAKE_VERSION_MINOR/cmake-$CMAKE_VERSION.tar.gz \ && tar -xzf cmake-$CMAKE_VERSION.tar.gz \ && cd cmake-$CMAKE_VERSION \ - && ./bootstrap --prefix=$HOME \ + && ./bootstrap --prefix=$PREFIX \ && make -j"${JOBS}" \ && make install \ && cd .. \ @@ -133,7 +133,7 @@ printf "\\n" printf "Checking Boost library (${BOOST_VERSION}) installation...\\n" -BOOSTVERSION=$( grep "#define BOOST_VERSION" "$HOME/opt/boost/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) +BOOSTVERSION=$( grep "#define BOOST_VERSION" "$BOOST_ROOT/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) if [ "${BOOSTVERSION}" != "${BOOST_VERSION_MAJOR}0${BOOST_VERSION_MINOR}0${BOOST_VERSION_PATCH}" ]; then printf "Installing Boost library...\\n" curl -LO https://dl.bintray.com/boostorg/release/${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}.${BOOST_VERSION_PATCH}/source/boost_$BOOST_VERSION.tar.bz2 \ @@ -184,7 +184,7 @@ if [ ! -d $MONGO_C_DRIVER_ROOT ]; then && cd mongo-c-driver-$MONGO_C_DRIVER_VERSION \ && mkdir -p cmake-build \ && cd cmake-build \ - && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ + && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ && make -j"${JOBS}" \ && make install \ && cd ../.. \ @@ -201,7 +201,7 @@ if [ ! -d $MONGO_CXX_DRIVER_ROOT ]; then curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r$MONGO_CXX_DRIVER_VERSION.tar.gz -o mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION.tar.gz \ && tar -xzf mongo-cxx-driver-r${MONGO_CXX_DRIVER_VERSION}.tar.gz \ && cd mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION/build \ - && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME .. \ + && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. \ && make -j"${JOBS}" VERBOSE=1 \ && make install \ && cd ../.. \ @@ -233,4 +233,4 @@ printf "\\n" function print_instructions() { return 0 -} \ No newline at end of file +} diff --git a/scripts/eosio_build_ubuntu.sh b/scripts/eosio_build_ubuntu.sh index 5561b14a450..a62d264394b 100755 --- a/scripts/eosio_build_ubuntu.sh +++ b/scripts/eosio_build_ubuntu.sh @@ -111,7 +111,7 @@ for (( i=0; i<${#DEP_ARRAY[@]}; i++ )); do done if [ "${COUNT}" -gt 1 ]; then printf "\\nThe following dependencies are required to install EOSIO:\\n" - printf "${DISPLAY}\\n\\n" + printf "${DISPLAY}\\n\\n" if [ $ANSWER != 1 ]; then read -p "Do you wish to install these packages? (y/n) " ANSWER; fi case $ANSWER in 1 | [Yy]* ) @@ -125,7 +125,7 @@ if [ "${COUNT}" -gt 1 ]; then [Nn]* ) echo "User aborting installation of required dependencies, Exiting now."; exit;; * ) echo "Please type 'y' for yes or 'n' for no."; exit;; esac -else +else printf " - No required APT dependencies to install.\\n" fi @@ -139,7 +139,7 @@ if [ ! -e $CMAKE ]; then curl -LO https://cmake.org/files/v$CMAKE_VERSION_MAJOR.$CMAKE_VERSION_MINOR/cmake-$CMAKE_VERSION.tar.gz \ && tar -xzf cmake-$CMAKE_VERSION.tar.gz \ && cd cmake-$CMAKE_VERSION \ - && ./bootstrap --prefix=$HOME \ + && ./bootstrap --prefix=$PREFIX \ && make -j"${JOBS}" \ && make install \ && cd .. \ @@ -156,7 +156,7 @@ printf "\\n" printf "Checking Boost library (${BOOST_VERSION}) installation...\\n" -BOOSTVERSION=$( grep "#define BOOST_VERSION" "$HOME/opt/boost/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) +BOOSTVERSION=$( grep "#define BOOST_VERSION" "$BOOST_ROOT/include/boost/version.hpp" 2>/dev/null | tail -1 | tr -s ' ' | cut -d\ -f3 ) if [ "${BOOSTVERSION}" != "${BOOST_VERSION_MAJOR}0${BOOST_VERSION_MINOR}0${BOOST_VERSION_PATCH}" ]; then printf "Installing Boost library...\\n" curl -LO https://dl.bintray.com/boostorg/release/${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}.${BOOST_VERSION_PATCH}/source/boost_$BOOST_VERSION.tar.bz2 \ @@ -207,7 +207,7 @@ if [ ! -d $MONGO_C_DRIVER_ROOT ]; then && cd mongo-c-driver-$MONGO_C_DRIVER_VERSION \ && mkdir -p cmake-build \ && cd cmake-build \ - && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ + && $CMAKE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON .. \ && make -j"${JOBS}" \ && make install \ && cd ../.. \ @@ -224,7 +224,7 @@ if [ ! -d $MONGO_CXX_DRIVER_ROOT ]; then curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r$MONGO_CXX_DRIVER_VERSION.tar.gz -o mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION.tar.gz \ && tar -xzf mongo-cxx-driver-r${MONGO_CXX_DRIVER_VERSION}.tar.gz \ && cd mongo-cxx-driver-r$MONGO_CXX_DRIVER_VERSION/build \ - && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME .. \ + && $CMAKE -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .. \ && make -j"${JOBS}" VERBOSE=1 \ && make install \ && cd ../.. \ diff --git a/scripts/eosio_install.sh b/scripts/eosio_install.sh index a858fd63430..ee2aba76e4f 100755 --- a/scripts/eosio_install.sh +++ b/scripts/eosio_install.sh @@ -6,19 +6,19 @@ # Copyright (c) 2017, Respective Authors all rights reserved. # # After June 1, 2018 this software is available under the following terms: -# +# # The MIT License -# +# # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: -# +# # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. -# +# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -34,16 +34,6 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" REPO_ROOT="${SCRIPT_DIR}/.." BUILD_DIR="${REPO_ROOT}/build" -OPT_LOCATION=$HOME/opt -BIN_LOCATION=$HOME/bin -LIB_LOCATION=$HOME/lib -mkdir -p $LIB_LOCATION - -CMAKE_BUILD_TYPE=Release -TIME_BEGIN=$( date -u +%s ) -INSTALL_PREFIX=$OPT_LOCATION/eosio -VERSION=1.2 - txtbld=$(tput bold) bldred=${txtbld}$(tput setaf 1) txtrst=$(tput sgr0) @@ -58,11 +48,13 @@ if ! pushd "${BUILD_DIR}" &> /dev/null;then exit 1; fi +CMAKE_INSTALL_PREFIX=$(grep ^CMAKE_INSTALL_PREFIX: CMakeCache.txt | sed 's/.*=//') + if ! make install; then printf "\\nMAKE installing EOSIO has exited with the above error.\\n\\n" exit -1 fi -popd &> /dev/null +popd &> /dev/null printf "\n${bldred} ___ ___ ___ ___\n" printf " / /\\ / /\\ / /\\ ___ / /\\ \n" @@ -77,7 +69,7 @@ printf " \\ \\::/ \\ \\::/ /__/:/ \\__\\/ \\ \\:: printf " \\__\\/ \\__\\/ \\__\\/ \\__\\/ \n\n${txtrst}" printf "==============================================================================================\\n" -printf "EOSIO has been installed into ${OPT_LOCATION}/eosio/bin!\\n" +printf "EOSIO has been installed into ${CMAKE_INSTALL_PREFIX}/bin!\\n" printf "If you need to, you can uninstall using: ./scripts/full_uninstaller.sh (it will leave your data directory).\\n" printf "==============================================================================================\\n\\n"