123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- #!/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
|