diff options
Diffstat (limited to 'openssl/util/cygwin.sh')
-rwxr-xr-x | openssl/util/cygwin.sh | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/openssl/util/cygwin.sh b/openssl/util/cygwin.sh new file mode 100755 index 0000000..cfdb04d --- /dev/null +++ b/openssl/util/cygwin.sh @@ -0,0 +1,154 @@ +#!/bin/bash +# +# This script configures, builds and packs the binary package for +# the Cygwin net distribution version of OpenSSL +# + +# Uncomment when debugging +#set -x + +CONFIG_OPTIONS="--prefix=/usr shared zlib no-idea no-rc5" +INSTALL_PREFIX=/tmp/install/INSTALL + +VERSION= +SHLIB_VERSION_NUMBER= +SUBVERSION=$1 + +function cleanup() +{ + rm -rf ${INSTALL_PREFIX}/etc + rm -rf ${INSTALL_PREFIX}/usr +} + +function get_openssl_version() +{ + eval `grep '^VERSION=' Makefile` + if [ -z "${VERSION}" ] + then + echo "Error: Couldn't retrieve OpenSSL version from Makefile." + echo " Check value of variable VERSION in Makefile." + exit 1 + fi + eval `grep '^SHLIB_VERSION_NUMBER=' Makefile` + if [ -z "${SHLIB_VERSION_NUMBER}" ] + then + echo "Error: Couldn't retrieve OpenSSL shared lib version from Makefile." + echo " Check value of variable SHLIB_VERSION_NUMBER in Makefile." + exit 1 + fi +} + +function base_install() +{ + mkdir -p ${INSTALL_PREFIX} + cleanup + make install INSTALL_PREFIX="${INSTALL_PREFIX}" +} + +function doc_install() +{ + DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl + + mkdir -p ${DOC_DIR} + cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR} + + create_cygwin_readme +} + +function certs_install() +{ + CERTS_DIR=${INSTALL_PREFIX}/usr/ssl/certs + + mkdir -p ${CERTS_DIR} + cp -rp certs/* ${CERTS_DIR} +} + +function create_cygwin_readme() +{ + README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin + README_FILE=${README_DIR}/openssl-${VERSION}.README + + mkdir -p ${README_DIR} + cat > ${README_FILE} <<- EOF + The Cygwin version has been built using the following configure: + + ./config ${CONFIG_OPTIONS} + + The IDEA and RC5 algorithms are disabled due to patent and/or + licensing issues. + EOF +} + +function create_profile_files() +{ + PROFILE_DIR=${INSTALL_PREFIX}/etc/profile.d + + mkdir -p $PROFILE_DIR + cat > ${PROFILE_DIR}/openssl.sh <<- "EOF" + export MANPATH="${MANPATH}:/usr/ssl/man" + EOF + cat > ${PROFILE_DIR}/openssl.csh <<- "EOF" + if ( $?MANPATH ) then + setenv MANPATH "${MANPATH}:/usr/ssl/man" + else + setenv MANPATH ":/usr/ssl/man" + endif + EOF +} + +if [ -z "${SUBVERSION}" ] +then + echo "Usage: $0 subversion" + exit 1 +fi + +if [ ! -f config ] +then + echo "You must start this script in the OpenSSL toplevel source dir." + exit 1 +fi + +./config ${CONFIG_OPTIONS} + +get_openssl_version + +make depend || exit 1 + +make || exit 1 + +base_install + +doc_install + +certs_install + +create_cygwin_readme + +create_profile_files + +cd ${INSTALL_PREFIX} +chmod u+w usr/lib/engines/*.so +strip usr/bin/*.exe usr/bin/*.dll usr/lib/engines/*.so +chmod u-w usr/lib/engines/*.so + +# Runtime package +tar cjf libopenssl${SHLIB_VERSION_NUMBER//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2 \ + usr/bin/cyg*dll +# Base package +find etc usr/bin/openssl.exe usr/bin/c_rehash usr/lib/engines usr/share/doc \ + usr/ssl/certs usr/ssl/man/man[157] usr/ssl/misc usr/ssl/openssl.cnf \ + usr/ssl/private \ + -empty -o \! -type d | +tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 - +# Development package +find usr/include usr/lib/*.a usr/lib/pkgconfig usr/ssl/man/man3 \ + -empty -o \! -type d | +tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 - + +ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2 +ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 +ls -l libopenssl${SHLIB_VERSION_NUMBER//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2 + +cleanup + +exit 0 |