#!/bin/sh #+-------------------------------------------------------------------------------------------- #|Description: This shell script used to download openssl source code and cross compile it. #| Author: GuoWenxue #| 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 -