cygwin.sh 2.5 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
#!/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 no-idea no-rc5 no-mdc2"
INSTALL_PREFIX=/tmp/install

VERSION=
SUBVERSION=$1

function cleanup()
{
  rm -rf ${INSTALL_PREFIX}/etc
  rm -rf ${INSTALL_PREFIX}/usr
}

function get_openssl_version()
{
  eval `grep '^VERSION=' Makefile.ssl`
  if [ -z "${VERSION}" ]
  then
    echo "Error: Couldn't retrieve OpenSSL version from Makefile.ssl."
    echo "       Check value of variable VERSION in Makefile.ssl."
    exit 1
  fi
}

function base_install()
{
  mkdir -p ${INSTALL_PREFIX}
  cleanup
  make install INSTALL_PREFIX="${INSTALL_PREFIX}"
}

function doc_install()
{
42
  DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl
43 44 45 46 47 48 49 50 51

  mkdir -p ${DOC_DIR}
  cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR}

  create_cygwin_readme
}

function create_cygwin_readme()
{
52
  README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
  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, RC5 and MDC2 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

R
Richard Levitte 已提交
99 100
make depend || exit 1

101 102 103 104 105 106 107 108 109 110 111 112 113 114
make || exit 1

base_install

doc_install

create_cygwin_readme

create_profile_files

cd ${INSTALL_PREFIX}
strip usr/bin/*.exe usr/bin/*.dll

# Runtime package
115 116
find etc usr/bin 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 |
117
tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
118 119
# Development package
find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d |
120
tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 -
121

122 123
ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2
ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2
124 125 126 127

cleanup

exit 0