#!/bin/bash
#
# 注释说明
function script_mini::run(){
local SCRIPT_NAME=${BASH_SOURCE[0]##*/}
local SCRIPT_PATH=$(cd ${BASH_SOURCE[0]%/*} 2>/dev/null 1>/dev/null; pwd)
local LIGHTTPD_MINI_PATH=$(cd ${SCRIPT_PATH}/..; pwd)
echo "LIGHTTPD_MINI_PATH=${LIGHTTPD_MINI_PATH}"
function lighttpd_mini::build(){
echo "LIGHTTPD_MINI_PATH=${LIGHTTPD_MINI_PATH}"
local WORK_PATH=${LIGHTTPD_MINI_PATH}/.workspace
function wget_tar(){
[[ ! " ${@} " =~ " --quite " ]] && local isinfo="1>&2" || local isinfo="1>/dev/null 2>/dev/null"
[[ ! " ${@} " =~ " --cont " ]] && eval wget -N -P $1/resource $2 ${isinfo}
[[ ! " ${@} " =~ " --cont " ]] && eval tar -zxvf ${1}/resource/${2##*/} -C ${1} ${isinfo}
echo ${1}/${2##*/} | sed -e 's/\.tar.gz//'
}
function lighttpd_mini::build::zlib(){
local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3
cd $(wget_tar ${BUILD_PATH} http://www.zlib.net/zlib-1.2.13.tar.gz)
./configure --prefix=${INSTL_PATH} --static
make -j; make install -j
}
function lighttpd_mini::build::bzip2(){
local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3
cd $(wget_tar ${BUILD_PATH} https://jaist.dl.sourceforge.net/project/bzip2/bzip2-1.0.6.tar.gz)
make install PREFIX=${INSTL_PATH} -j
}
function lighttpd_mini::build::pcre(){
local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3
cd $(wget_tar ${BUILD_PATH} https://netix.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz)
./configure --prefix=${INSTL_PATH} CC=gcc CXX=g++ \
--enable-static=yse --enable-shared=no
make -j; make install -j;
}
function lighttpd_mini::build::openssl(){
local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3
cd $(wget_tar ${BUILD_PATH} https://www.openssl.org/source/openssl-1.1.1.tar.gz)
./config --prefix=${INSTL_PATH} no-shared --release
make -j; make install_sw -j
}
function lighttpd_mini::build::lighttpd(){
local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3
cd $(wget_tar ${BUILD_PATH} http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.39.tar.gz)
./configure --prefix=${INSTL_PATH} \
--enable-static=yse --enable-shared=no \
PCRECONFIG=${D3th_PATH}/bin/pcre-config \
PCRE_LIB=${D3th_PATH}/lib/libpcre.a \
SSL_LIB=${D3th_PATH}/lib/libssl.a \
Z_LIB=${D3th_PATH}/lib/libz.a \
BZ_LIB=${D3th_PATH}/lib/libbz2.a
make -j; make install -j
cp -rfd ./doc/config ${INSTL_PATH}
}
function lighttpd_mini::build::php(){
local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3
cd $(wget_tar ${BUILD_PATH} http://cn2.php.net/distributions/php-7.3.29.tar.gz)
./configure --prefix=${INSTL_PATH} \
--enable-fpm \
--disable-phpdbg \
--with-zlib-dir=${D3th_PATH} \
--with-bz2-dir=${D3th_PATH} \
--with-openssl-dir=${D3th_PATH}
make -j; make install -j
}
lighttpd_mini::build::zlib "${WORK_PATH}/build" "${WORK_PATH}/3th"
lighttpd_mini::build::bzip2 "${WORK_PATH}/build" "${WORK_PATH}/3th"
lighttpd_mini::build::pcre "${WORK_PATH}/build" "${WORK_PATH}/3th"
lighttpd_mini::build::openssl "${WORK_PATH}/build" "${WORK_PATH}/3th"
lighttpd_mini::build::lighttpd "${WORK_PATH}/build" "${WORK_PATH}/lighttpd" "${WORK_PATH}/3th"
lighttpd_mini::build::php "${WORK_PATH}/build" "${WORK_PATH}/php" "${WORK_PATH}/3th"
strip ${WORK_PATH}/lighttpd/*/* ${WORK_PATH}/lighttpd/*/*/* 2>/dev/null
strip ${WORK_PATH}/php/*/* ${WORK_PATH}/php/*/*/* 2>/dev/null
}
lighttpd_mini::build
return
}
script_mini::run $@