[ -n "$OPENSSL_HELPER" ] && return || readonly OPENSSL_HELPER=1 #openssl vars OPENSSL_BUILD_FAILED=0 OPENSSL_GIT=${OPENSSL_GIT:-git://git.openssl.org/openssl.git} BASE_ARCH=${ARCH:-$(uname -m)} export OPENSSL_SRCDIR=${SRCDIR}/openssl export OPENSSL_BUILDDIR=${BUILDDIR}/openssl OPENSSL_BRANCH=${OPENSSL_BRANCH:-OpenSSL_1_0_1h} export OPENSSL_BUILD=${OPENSSL_BUILD:-0} openssl_usage() { echo -e "\tOPENSSL_BUILD:\t build custom openssl, default: ${OPENSSL_BUILD}" echo -e "\tOPENSSL_GIT:\t git url to OpenSSL, default ${OPENSSL_GIT}" echo -e "\tOPENSSL_BRANCH:\t git branch to OpenSSL, default ${OPENSSL_BRANCH}" } build_openssl() { export OPENSSL_INSTALLDIR=${OPENSSL_INSTALLDIR:-${ROOT_DIR}/installed/${BASE_ARCH}/openssl-${OPENSSL_BRANCH}} echo "Building ${OPENSSL_BRANCH}" [[ -n ${ARCH} ]] && export OPENSSL_BUILD=1 [[ ${OPENSSL_BUILD} -ne 1 ]] && return export CONFIGURE_FLAGS="${CONFIGURE_FLAGS} --with-openssl-path=${OPENSSL_INSTALLDIR}" [[ -f ${OPENSSL_INSTALLDIR}/lib/libcrypto.a ]] && return if [[ -n ${ARCH} ]]; then openssl_build_arch="linux-generic32" # Cross compiling if [[ ${ARCH} == *64* ]]; then openssl_build_arch="linux-generic64" fi fi if [[ ${M32_ON_64} -eq 1 ]]; then openssl_build_arch="linux-generic32" i386_m32="-m32" fi openssl_fetch openssl_new_builddir pushd ${OPENSSL_BUILDDIR} > /dev/null if [[ -n ${ARCH} ]]; then CROSS_OPTS="--cross-compile-prefix=${compiler_prefix}-" fi ./Configure ${openssl_build_arch} ${CROSS_OPTS} --prefix="${OPENSSL_INSTALLDIR}" shared ${i386_m32} >> ${OPENSSL_SRCDIR}/log-build.log 2>&1 make >> ${OPENSSL_SRCDIR}/log-build.log 2>&1 || { OPENSSL_BUILD_FAILED=1; tail -n 40 ${OPENSSL_SRCDIR}/log-build.log; exit 1; } make install >> ${OPENSSL_SRCDIR}/log-build.log 2>&1 || { OPENSSL_BUILD_FAILED=1; tail -n 40 ${OPENSSL_SRCDIR}/log-build.log; exit 1; } popd > /dev/null } openssl_cleanup(){ [[ ${OPENSSL_BUILD_FAILED} -eq 1 ]] && return rm -rf ${OPENSSL_BUILDDIR} rm -f ${ROOT_DIR}/log-openssl_clone.log } openssl_fetch() { if [[ -d ${OPENSSL_SRCDIR} ]]; then pushd ${OPENSSL_SRCDIR} > /dev/null git remote update popd > /dev/null else git clone ${OPENSSL_GIT} ${OPENSSL_SRCDIR} >> ${ROOT_DIR}/log-openssl_clone.log 2>&1 fi } openssl_new_builddir() { rm -rf ${OPENSSL_BUILDDIR} git clone --quiet --depth=1 -b ${OPENSSL_BRANCH} file:///${OPENSSL_SRCDIR} ${OPENSSL_BUILDDIR} >> ${ROOT_DIR}/log-openssl_clone.log 2>&1 } ## vim: set ft=sh sw=4 sts=4 et foldmethod=syntax : ##