diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2014-01-16 08:50:24 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-01-16 08:53:32 +0100 |
commit | 6d09104ad3c048a17749bce5de7b370439e52574 (patch) | |
tree | a5284d36b592c9cd557f99bfbbbfb69160452024 /obj | |
parent | 57ef959aa3e785658d68c91a7e7ba78cc5dc75f6 (diff) | |
download | libssh-6d09104ad3c048a17749bce5de7b370439e52574.tar.gz libssh-6d09104ad3c048a17749bce5de7b370439e52574.tar.xz libssh-6d09104ad3c048a17749bce5de7b370439e52574.zip |
Rename build directory to obj.
Some buildsystem use build in the pathname and so we will filter out
e.g. docs generation.
Diffstat (limited to 'obj')
-rwxr-xr-x | obj/build_make.sh | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/obj/build_make.sh b/obj/build_make.sh new file mode 100755 index 00000000..2f2e4a6c --- /dev/null +++ b/obj/build_make.sh @@ -0,0 +1,197 @@ +#!/bin/bash +# +# Last Change: 2008-06-18 14:13:46 +# +# Script to build libssh on UNIX. +# +# Copyright (c) 2006-2007 Andreas Schneider <asn@cryptomilk.org> +# + +SOURCE_DIR=".." + +LANG=C +export LANG + +SCRIPT="$0" +COUNT=0 +while [ -L "${SCRIPT}" ] +do + SCRIPT=$(readlink ${SCRIPT}) + COUNT=$(expr ${COUNT} + 1) + if [ ${COUNT} -gt 100 ]; then + echo "Too many symbolic links" + exit 1 + fi +done +BUILDDIR=$(dirname ${SCRIPT}) + +cleanup_and_exit () { + if test "$1" = 0 -o -z "$1" ; then + exit 0 + else + exit $1 + fi +} + +function configure() { + if [ -n "${CMAKEDIR}" ]; then + ${CMAKEDIR}/bin/cmake "$@" ${SOURCE_DIR} || cleanup_and_exit $? + else + cmake "$@" ${SOURCE_DIR} || cleanup_and_exit $? + fi +} + +function compile() { + if [ -f /proc/cpuinfo ]; then + CPUCOUNT=$(grep -c processor /proc/cpuinfo) + elif test `uname` = "SunOS" ; then + CPUCOUNT=$(psrinfo -p) + else + CPUCOUNT="1" + fi + + if [ "${CPUCOUNT}" -gt "1" ]; then + ${MAKE} -j${CPUCOUNT} $1 || cleanup_and_exit $? + else + ${MAKE} $1 || exit $? + fi +} + +function clean_build_dir() { + find ! -path "*.svn*" ! -name "*.bat" ! -name "*.sh" ! -name "." -print0 | xargs -0 rm -rf +} + +function usage () { +echo "Usage: `basename $0` [--prefix /install_prefix|--build [debug|final]|--clean|--verbose|--libsuffix (32|64)|--help|--clang|--cmakedir /directory|--make +(gmake|make)|--ccompiler (gcc|cc)|--withstaticlib|--unittesting|--clientunittesting|--withssh1|--withserver]" + cleanup_and_exit +} + +cd ${BUILDDIR} + +# the default CMake options: +OPTIONS="--graphviz=${BUILDDIR}/libssh.dot" + +# the default 'make' utility: +MAKE="make" + +while test -n "$1"; do + PARAM="$1" + ARG="$2" + shift + case ${PARAM} in + *-*=*) + ARG=${PARAM#*=} + PARAM=${PARAM%%=*} + set -- "----noarg=${PARAM}" "$@" + esac + case ${PARAM} in + *-help|-h) + #echo_help + usage + cleanup_and_exit + ;; + *-build) + DOMAKE="1" + BUILD_TYPE="${ARG}" + test -n "${BUILD_TYPE}" && shift + ;; + *-clean) + clean_build_dir + cleanup_and_exit + ;; + *-clang) + OPTIONS="${OPTIONS} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++" + ;; + *-verbose) + DOVERBOSE="1" + ;; + *-memtest) + OPTIONS="${OPTIONS} -DMEM_NULL_TESTS=ON" + ;; + *-libsuffix) + OPTIONS="${OPTIONS} -DLIB_SUFFIX=${ARG}" + shift + ;; + *-prefix) + OPTIONS="${OPTIONS} -DCMAKE_INSTALL_PREFIX=${ARG}" + shift + ;; + *-sysconfdir) + OPTIONS="${OPTIONS} -DSYSCONF_INSTALL_DIR=${ARG}" + shift + ;; + *-cmakedir) + CMAKEDIR="${ARG}" + shift + ;; + *-make) + MAKE="${ARG}" + shift + ;; + *-ccompiler) + OPTIONS="${OPTIONS} -DCMAKE_C_COMPILER=${ARG}" + shift + ;; + *-withstaticlib) + OPTIONS="${OPTIONS} -DWITH_STATIC_LIB=ON" + ;; + *-unittesting) + OPTIONS="${OPTIONS} -DWITH_TESTING=ON" + ;; + *-clientunittesting) + OPTIONS="${OPTIONS} -DWITH_CLIENT_TESTING=ON" + ;; + *-withssh1) + OPTIONS="${OPTIONS} -DWITH_SSH1=ON" + ;; + *-withserver) + OPTIONS="${OPTIONS} -DWITH_SERVER=ON" + ;; + ----noarg) + echo "$ARG does not take an argument" + cleanup_and_exit + ;; + -*) + echo Unknown Option "$PARAM". Exit. + cleanup_and_exit 1 + ;; + *) + usage + ;; + esac +done + +if [ "${DOMAKE}" == "1" ]; then + OPTIONS="${OPTIONS} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}" +fi + +if [ -n "${DOVERBOSE}" ]; then + OPTIONS="${OPTIONS} -DCMAKE_VERBOSE_MAKEFILE=1" +else + OPTIONS="${OPTIONS} -DCMAKE_VERBOSE_MAKEFILE=0" +fi + +test -f "${BUILDDIR}/.build.log" && rm -f ${BUILDDIR}/.build.log +touch ${BUILDDIR}/.build.log +# log everything from here to .build.log +exec 1> >(exec -a 'build logging tee' tee -a ${BUILDDIR}/.build.log) 2>&1 +echo "${HOST} started build at $(date)." +echo + +configure ${OPTIONS} "$@" + +if [ -n "${DOMAKE}" ]; then + test -n "${DOVERBOSE}" && compile VERBOSE=1 || compile +fi + +DOT=$(which dot 2>/dev/null) +if [ -n "${DOT}" ]; then + ${DOT} -Tpng -o${BUILDDIR}/libssh.png ${BUILDDIR}/libssh.dot + ${DOT} -Tsvg -o${BUILDDIR}/libssh.svg ${BUILDDIR}/libssh.dot +fi + +exec >&0 2>&0 # so that the logging tee finishes +sleep 1 # wait till tee terminates + +cleanup_and_exit 0 |