#!/bin/sh
|
|
#+--------------------------------------------------------------------------------------------
|
#|Description: This shell script used to download openssl source code and cross compile it.
|
#| Author: GuoWenxue <guowenxue@gmail.com>
|
#| ChangeLog:
|
#| 1, Initialize 1.0.0 on 2013.03.22
|
#+--------------------------------------------------------------------------------------------
|
. ../scripts/funcs.sh
|
clear_crossenv
|
. ../scripts/envs.sh
|
|
if [ -z $ARCH ]; then
|
ARCH=
|
fi
|
|
APP_NAME=openssl
|
DIR_NAME="openssl-1.0.1c"
|
PACK_SUFIX="tar.gz"
|
DL_ADDR="http://www.openssl.org/source/$DIR_NAME.$PACK_SUFIX"
|
|
LINK_STATIC=YES
|
|
select_arch
|
if [ -z $CROSS -a "x86" != "$ARCH" ] ; then
|
CROSS="/opt/buildroot-2012.08/${ARCH}/usr/bin/arm-linux-"
|
fi
|
set_crosstool $CROSS
|
|
if [ "x86" != "$ARCH" ] ; then
|
CONFIG_CROSS=--host=arm-linux
|
fi
|
|
PREFIX_PATH=/apps/${ARCH}/${APP_NAME}
|
|
if [ "$LINK_STATIC" == "YES" ] ; then
|
export LDFLAGS=-static
|
fi
|
|
# Download and decompress source code packet
|
download $DL_ADDR
|
decompress_packet $DIR_NAME $PACK_SUFIX
|
|
echo "+------------------------------------------------------------------+"
|
echo "| Platform: $DIR_NAME for $ARCH "
|
echo "| Compiler: ${CROSS}gcc "
|
echo "+------------------------------------------------------------------+"
|
mkdir -p $PREFIX_PATH
|
|
cd $DIR_NAME
|
set -x
|
|
#Modify the compiler
|
FILE=Makefile
|
line=`sed -n '/^CC= cc/=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|CC = ${CROSS}gcc|" $FILE
|
fi
|
|
line=`sed -n '/^AR=/=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|AR = ${CROSS}ar \$(ARFLAGS) r|" $FILE
|
fi
|
|
line=`sed -n '/^RANLIB= /=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|RANLIB = ${CROSS}ranlib|" $FILE
|
fi
|
|
#Support build shared library
|
line=`sed -n '/^OPTIONS= /=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|OPTIONS=no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-md2 no-rc5 no-rfc3779 no-sctp enalbe-shared no-store no-zlib no-zlib-dynamic static-engine|" $FILE
|
fi
|
|
|
line=`sed -n '/^SHLIB_EXT=/=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|SHLIB_EXT=.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)|" $FILE
|
fi
|
|
line=`sed -n '/^SHLIB_TARGET/=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|SHLIB_TARGET=linux-shared|" $FILE
|
fi
|
|
line=`sed -n '/^build_all:/=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|build_all: build_libs build_apps build_tests build_tools build-shared|" $FILE
|
fi
|
|
#Modify install path
|
line=`sed -n '/^INSTALLTOP=/=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|INSTALLTOP = $PREFIX_PATH|" $FILE
|
fi
|
|
line=`sed -n '/^OPENSSLDIR=/=' $FILE`
|
if [ -n "$line" ] ; then
|
sed -i -e ${line}s"|.*|OPENSSLDIR = $PREFIX_PATH|" $FILE
|
fi
|
|
make && make install
|
cp -af *.so* $PREFIX_PATH/lib
|
$STRIP $PREFIX_PATH/bin/*
|
|
if [ -n "$INST_PATH" -a -d "$INST_PATH" ] ; then
|
cp $PREFIX_PATH/lib/*.so* $INST_PATH
|
fi
|
set +x
|
|
echo "+------------------------------------------------------------------+"
|
echo "| Install Prefix: $PREFIX_PATH"
|
echo "| Install Path: $INST_PATH"
|
echo "+------------------------------------------------------------------+"
|
cd -
|