Tom G. Christensen 6c2766639d A major overhaul to the openssl package
- shared libraries are now built
- sh lib versioning changed to follow redhat
- install location changed. Most of it is now installed in
  /usr/local/[bin|lib|man]
- allow seperate installation of libraries for runtime support of
  legacy applications
2003-10-16 10:27:28 +00:00

177 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
#
# This is a generic build.sh script
# It can be used nearly unmodified with many packages
#
# The concept of "method" registering and the logic that implements it was shamelessly
# stolen from jhlj's Compile.sh script :)
#
# Check the following 4 variables before running the script
topdir=openssl
version=0.9.6k
pkgver=1
source[0]=$topdir-$version.tar.gz
# If there are no patches, simply comment this
patch[0]=openssl-0.9.6k-soversion.patch
patch[1]=openssl-0.9.6k-Configure.patch
# Source function library
. ${BUILDPKG_BASE}/scripts/buildpkg.functions
abbrev_ver=$(echo $version|sed -e 's/\.//g')
# Fill in pkginfo values if necessary
# using pkgname,name,pkgcat,pkgvendor & pkgdesc
pkgname=SBossl$abbrev_ver
name="OpenSSL - Secure Socket Layer"
pkgcat="application"
pkgvendor="http://www.openssl.org"
pkgdesc="Toolkit implementing SSL v2/v3 and TLS v1"
pkgname_lib=SBossl$abbrev_ver"lib"
name_lib="OpenSSL - Secure Socket Layer"
pkgcat_lib="library"
pkgvendor_lib="http://www.openssl.org"
pkgdesc_lib="Toolkit implementing SSL v2/v3 and TLS v1"
# 0.9.6(a-?) is sover 2
# 0.9.7(a-?) is sover 4
baseversion=0.9.6
sover=2
lib_stage=$BUILDPKG_BASE/$topdir/stage.lib
# Define script functions and register them
METHODS=""
reg() {
METHODS="$METHODS $1"
}
reg prep
prep()
{
generic_prep
}
reg build
build()
{
setdir source
./config --prefix=$prefix --openssldir=$prefix/ssl shared
$MAKE_PROG
$MAKE_PROG -C test apps tests
}
reg install
install()
{
setdir source
$MAKE_PROG INSTALL_PREFIX=$stagedir install build-shared
setdir $stagedir$prefix/lib
liblist="libssl libcrypto"
for i in $liblist
do
mv $i.so.$baseversion $i.so.$version
rm -f $i.so.$sover
rm -f $i.so
ln -s $i.so.$version $i.so.$sover
ln -s $i.so.$sover $i.so
done
rmdir $stagedir$prefix/ssl/lib
mv $stagedir$prefix/ssl/man $stagedir$prefix
setdir $stagedir$prefix/man
for j in $(ls -1d man?)
do
cd $j
for x in *
do
mv $x $x"ssl"
done
cd ..
done
}
reg pack
pack()
{
MV=mv
# Split up the stagedir
mkdir -p $lib_stage$prefix
$MV $stagedir$prefix/lib $lib_stage$prefix
# Create runtime package
echo "P $pkgname_lib $name_lib" > $metadir/depend
generic_pack
usedepend=0
$MV $stagedir $stagedir.1
$MV $lib_stage $stagedir
pkgname=$pkgname_lib
name=$name_lib
pkgcat=$pkgcat_lib
pkgvendor=$pkgvendor_lib
pkgdesc=$pkgdesc_lib
distfile=$topdir-lib-$version-$pkgver.sb-$os-$cpu-$pkgdirdesig
generic_pack
$MV $stagedir.1 $stagedir
setdir source
clean stage
}
reg distclean
distclean()
{
# depend is created by build.sh so make sure
# it's removed by distclean
META_CLEAN="$META_CLEAN depend"
clean distclean
pkgname=$pkgname_lib
clean meta
}
###################################################
# No need to look below here
###################################################
reg all
all()
{
for METHOD in $METHODS
do
case $METHOD in
all*|*clean) ;;
*) $METHOD
;;
esac
done
}
reg
usage() {
echo Usage $0 "{"$(echo $METHODS | tr " " "|")"}"
exit 1
}
OK=0
for METHOD in $*
do
METHOD=" $METHOD *"
if [ "${METHODS%$METHOD}" == "$METHODS" ] ; then
usage
fi
OK=1
done
if [ $OK = 0 ] ; then
usage;
fi
for METHOD in $*
do
( $METHOD )
done