Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # This script configures, builds and packs the binary package for |
| 4 | # the Cygwin net distribution version of OpenSSL |
| 5 | # |
| 6 | |
| 7 | # Uncomment when debugging |
| 8 | #set -x |
| 9 | |
Dr. Stephen Henson | ff094bc | 2009-11-11 19:05:20 +0000 | [diff] [blame] | 10 | CONFIG_OPTIONS="--prefix=/usr shared zlib no-idea no-rc5" |
Andy Polyakov | 1e024f0 | 2010-08-24 21:51:08 +0000 | [diff] [blame] | 11 | INSTALL_PREFIX=/tmp/install/INSTALL |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 12 | |
| 13 | VERSION= |
Andy Polyakov | 86963f4 | 2012-03-31 11:06:46 +0000 | [diff] [blame] | 14 | SHLIB_VERSION_NUMBER= |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 15 | SUBVERSION=$1 |
| 16 | |
| 17 | function cleanup() |
| 18 | { |
| 19 | rm -rf ${INSTALL_PREFIX}/etc |
| 20 | rm -rf ${INSTALL_PREFIX}/usr |
| 21 | } |
| 22 | |
| 23 | function get_openssl_version() |
| 24 | { |
Nils Larsch | cd202fe | 2005-04-27 08:56:15 +0000 | [diff] [blame] | 25 | eval `grep '^VERSION=' Makefile` |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 26 | if [ -z "${VERSION}" ] |
| 27 | then |
Nils Larsch | cd202fe | 2005-04-27 08:56:15 +0000 | [diff] [blame] | 28 | echo "Error: Couldn't retrieve OpenSSL version from Makefile." |
| 29 | echo " Check value of variable VERSION in Makefile." |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 30 | exit 1 |
| 31 | fi |
Andy Polyakov | 86963f4 | 2012-03-31 11:06:46 +0000 | [diff] [blame] | 32 | eval `grep '^SHLIB_VERSION_NUMBER=' Makefile` |
| 33 | if [ -z "${SHLIB_VERSION_NUMBER}" ] |
| 34 | then |
| 35 | echo "Error: Couldn't retrieve OpenSSL shared lib version from Makefile." |
| 36 | echo " Check value of variable SHLIB_VERSION_NUMBER in Makefile." |
| 37 | exit 1 |
| 38 | fi |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 39 | } |
| 40 | |
| 41 | function base_install() |
| 42 | { |
| 43 | mkdir -p ${INSTALL_PREFIX} |
| 44 | cleanup |
| 45 | make install INSTALL_PREFIX="${INSTALL_PREFIX}" |
| 46 | } |
| 47 | |
| 48 | function doc_install() |
| 49 | { |
Richard Levitte | d1360f6 | 2004-09-28 13:10:16 +0000 | [diff] [blame] | 50 | DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 51 | |
| 52 | mkdir -p ${DOC_DIR} |
| 53 | cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR} |
| 54 | |
| 55 | create_cygwin_readme |
| 56 | } |
| 57 | |
Richard Levitte | 447aa49 | 2005-05-21 16:41:34 +0000 | [diff] [blame] | 58 | function certs_install() |
| 59 | { |
| 60 | CERTS_DIR=${INSTALL_PREFIX}/usr/ssl/certs |
| 61 | |
| 62 | mkdir -p ${CERTS_DIR} |
| 63 | cp -rp certs/* ${CERTS_DIR} |
| 64 | } |
| 65 | |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 66 | function create_cygwin_readme() |
| 67 | { |
Richard Levitte | d1360f6 | 2004-09-28 13:10:16 +0000 | [diff] [blame] | 68 | README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 69 | README_FILE=${README_DIR}/openssl-${VERSION}.README |
| 70 | |
| 71 | mkdir -p ${README_DIR} |
| 72 | cat > ${README_FILE} <<- EOF |
| 73 | The Cygwin version has been built using the following configure: |
| 74 | |
| 75 | ./config ${CONFIG_OPTIONS} |
| 76 | |
Dr. Stephen Henson | ff094bc | 2009-11-11 19:05:20 +0000 | [diff] [blame] | 77 | The IDEA and RC5 algorithms are disabled due to patent and/or |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 78 | licensing issues. |
| 79 | EOF |
| 80 | } |
| 81 | |
| 82 | function create_profile_files() |
| 83 | { |
| 84 | PROFILE_DIR=${INSTALL_PREFIX}/etc/profile.d |
| 85 | |
| 86 | mkdir -p $PROFILE_DIR |
| 87 | cat > ${PROFILE_DIR}/openssl.sh <<- "EOF" |
| 88 | export MANPATH="${MANPATH}:/usr/ssl/man" |
| 89 | EOF |
| 90 | cat > ${PROFILE_DIR}/openssl.csh <<- "EOF" |
| 91 | if ( $?MANPATH ) then |
| 92 | setenv MANPATH "${MANPATH}:/usr/ssl/man" |
| 93 | else |
| 94 | setenv MANPATH ":/usr/ssl/man" |
| 95 | endif |
| 96 | EOF |
| 97 | } |
| 98 | |
| 99 | if [ -z "${SUBVERSION}" ] |
| 100 | then |
| 101 | echo "Usage: $0 subversion" |
| 102 | exit 1 |
| 103 | fi |
| 104 | |
| 105 | if [ ! -f config ] |
| 106 | then |
| 107 | echo "You must start this script in the OpenSSL toplevel source dir." |
| 108 | exit 1 |
| 109 | fi |
| 110 | |
| 111 | ./config ${CONFIG_OPTIONS} |
| 112 | |
| 113 | get_openssl_version |
| 114 | |
Richard Levitte | e20afbb | 2002-11-14 12:39:39 +0000 | [diff] [blame] | 115 | make depend || exit 1 |
| 116 | |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 117 | make || exit 1 |
| 118 | |
| 119 | base_install |
| 120 | |
| 121 | doc_install |
| 122 | |
Richard Levitte | 447aa49 | 2005-05-21 16:41:34 +0000 | [diff] [blame] | 123 | certs_install |
| 124 | |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 125 | create_cygwin_readme |
| 126 | |
| 127 | create_profile_files |
| 128 | |
| 129 | cd ${INSTALL_PREFIX} |
Richard Levitte | d996a9a | 2005-06-23 20:55:38 +0000 | [diff] [blame] | 130 | chmod u+w usr/lib/engines/*.so |
| 131 | strip usr/bin/*.exe usr/bin/*.dll usr/lib/engines/*.so |
| 132 | chmod u-w usr/lib/engines/*.so |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 133 | |
| 134 | # Runtime package |
Andy Polyakov | 86963f4 | 2012-03-31 11:06:46 +0000 | [diff] [blame] | 135 | tar cjf libopenssl${SHLIB_VERSION_NUMBER//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2 \ |
Andy Polyakov | 1e024f0 | 2010-08-24 21:51:08 +0000 | [diff] [blame] | 136 | usr/bin/cyg*dll |
| 137 | # Base package |
| 138 | find etc usr/bin/openssl.exe usr/bin/c_rehash usr/lib/engines usr/share/doc \ |
| 139 | usr/ssl/certs usr/ssl/man/man[157] usr/ssl/misc usr/ssl/openssl.cnf \ |
| 140 | usr/ssl/private \ |
Richard Levitte | 447aa49 | 2005-05-21 16:41:34 +0000 | [diff] [blame] | 141 | -empty -o \! -type d | |
Richard Levitte | 62be003 | 2003-01-13 14:47:52 +0000 | [diff] [blame] | 142 | tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 - |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 143 | # Development package |
Richard Levitte | 447aa49 | 2005-05-21 16:41:34 +0000 | [diff] [blame] | 144 | find usr/include usr/lib/*.a usr/lib/pkgconfig usr/ssl/man/man3 \ |
| 145 | -empty -o \! -type d | |
Richard Levitte | 62be003 | 2003-01-13 14:47:52 +0000 | [diff] [blame] | 146 | tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 - |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 147 | |
Richard Levitte | 62be003 | 2003-01-13 14:47:52 +0000 | [diff] [blame] | 148 | ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2 |
| 149 | ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 |
Andy Polyakov | 86963f4 | 2012-03-31 11:06:46 +0000 | [diff] [blame] | 150 | ls -l libopenssl${SHLIB_VERSION_NUMBER//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2 |
Lutz Jänicke | 8b2f9cd | 2002-04-21 17:54:03 +0000 | [diff] [blame] | 151 | |
| 152 | cleanup |
| 153 | |
| 154 | exit 0 |