INSTALL_PREFIX is a confusing name, as there's also --prefix. Instead, tag along with the rest of the open source world and adopt the Makefile variable DESTDIR to designate the desired staging directory. The Configure option --install_prefix is removed, the only way to designate a staging directory is with the Makefile variable (this is also implemented for VMS' descrip.mms et al). Reviewed-by: Rich Salz <rsalz@openssl.org>
		
			
				
	
	
		
			155 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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"
 | 
						|
DESTDIR=/tmp/install/INSTALL
 | 
						|
 | 
						|
VERSION=
 | 
						|
SHLIB_VERSION_NUMBER=
 | 
						|
SUBVERSION=$1
 | 
						|
 | 
						|
function cleanup()
 | 
						|
{
 | 
						|
  rm -rf ${DESTDIR}/etc
 | 
						|
  rm -rf ${DESTDIR}/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 ${DESTDIR}
 | 
						|
  cleanup
 | 
						|
  make install DESTDIR="${DESTDIR}"
 | 
						|
}
 | 
						|
 | 
						|
function doc_install()
 | 
						|
{
 | 
						|
  DOC_DIR=${DESTDIR}/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=${DESTDIR}/usr/ssl/certs
 | 
						|
 | 
						|
  mkdir -p ${CERTS_DIR}
 | 
						|
  cp -rp certs/* ${CERTS_DIR}
 | 
						|
}
 | 
						|
 | 
						|
function create_cygwin_readme()
 | 
						|
{
 | 
						|
  README_DIR=${DESTDIR}/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=${DESTDIR}/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 ${DESTDIR}
 | 
						|
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
 |