From 445a254629a2b342b9e7d43ae125045d2df48f7d Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Fri, 02 Aug 2019 11:45:47 +0800 Subject: [PATCH] add appweb dhcpd iptables build shell script --- ok335xD/3rdparty/iptables/build.sh | 95 +++++++++++++ ok335xD/3rdparty/dhcpd/build.sh | 97 +++++++++++++ ok335xD/3rdparty/appweb/build.sh | 186 ++++++++++++++++++++++++++ 3 files changed, 378 insertions(+), 0 deletions(-) diff --git a/ok335xD/3rdparty/appweb/build.sh b/ok335xD/3rdparty/appweb/build.sh new file mode 100755 index 0000000..64a21e0 --- /dev/null +++ b/ok335xD/3rdparty/appweb/build.sh @@ -0,0 +1,186 @@ +#!/bin/bash + +#+-------------------------------------------------------------------------------------------- +#|Description: This shell script used download and compile appweb for ARM +#| Author: GuoWenxue <guowenxue@gmail.com> +#| ChangeLog: +#| 1, Initialize 1.0.0 on 2011.04.12 +#+-------------------------------------------------------------------------------------------- + +PRJ_PATH=`pwd` +PREFIX_PATH=`pwd`/appweb + +mkdir -p $PREFIX_PATH/{bin,modules} + +if [ -z $CROSSTOOL ] ; then + CROSSTOOL=/opt/crosstool/cortex-a7/bin/arm-linux-gnueabi- +fi + +function msg_banner() +{ + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" +} + +function check_result() +{ + if [ $? != 0 ] ; then + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" + exit ; + fi +} + +function export_cross() +{ + # export cross toolchain + export CC=${CROSSTOOL}gcc + export AS=${CROSSTOOL}as + export AR=${CROSSTOOL}ar + export LD=${CROSSTOOL}ld + export NM=${CROSSTOOL}nm + export RANLIB=${CROSSTOOL}ranlib + export OBJDUMP=${CROSSTOOL}objdump + export STRIP=${CROSSTOOL}strip + + # export cross configure + export CONFIG_CROSS=" --build=i686-pc-linux --host=arm-linux " + + # Clear LDFLAGS and CFLAGS + export LDFLAGS= + export CFLAGS= +} + +PHP_SRC_NAME=php-5.4.10 +function compile_php() +{ + SRC_NAME=${PHP_SRC_NAME} + PACK_SUFIX=tar.bz2 + + if [ -f ${PREFIX_PATH}/modules/libphp5.so ] ; then + return 0; + fi + + msg_banner "Start cross compile $SRC_NAME " + + if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then + wget http://museum.php.net/php5/${SRC_NAME}.${PACK_SUFIX} + check_result "ERROR: download ${SRC_NAME} failure" + fi + + tar -xjf ${SRC_NAME}.${PACK_SUFIX} + cd ${SRC_NAME} + + sed -i -e "s/uint _res/uint/g" main/php_output.h + line=`sed -n '/Your system seems to lack POSIX threads/=' configure` + sed -i -e ${line}s'|.*|{ echo "configure: error: Your system seems to lack POSIX threads." 1>\&2;}|' configure + + ./configure --prefix=${PREFIX_PATH} ${CONFIG_CROSS} --disable-rpath --disable-cli --enable-bcmath \ + --enable-calendar --enable-maintainer-zts -enable-embed=shared --enable-force-cgi-redirect --disable-ftp \ + --enable-inline-optimization --disable-magic-quotes --enable-memory-limit --disable-safe-mode \ + --enable-sockets --enable-track-vars --enable-trans-sid -enable-wddx --sysconfdir=/apps/appWeb/etc --with-pic \ + --with-db --with-regex=system --with-pear --without-zlib --without-iconv --disable-dom --disable-libxml \ + --disable-simplexml --disable-xml --disable-wddx --disable-xmlreader --without-xmlrpc --disable-xmlwriter \ + --with-config-file-path=/apps/appweb + check_result "ERROR: configure ${SRC_NAME} failure" + + export LDFLAGS+="-lpthread -ldl" + make && make install + check_result "ERROR: compile ${SRC_NAME} failure" + + # install and clear PHP + ${STRIP} ${PREFIX_PATH}/lib/libphp5.so + cp -rf $PREFIX_PATH/lib/libphp5.so $PREFIX_PATH/modules + rm -rf ${PREFIX_PATH}/bin/* + rm -rf $PREFIX_PATH/include + rm -rf $PREFIX_PATH/lib + rm -rf $PREFIX_PATH/php + + cd - +} + + + +function compile_appweb() +{ + SRC_NAME=appweb-3.4.2 + PACK_SUFIX=-0-src.tgz + + if [ -f ${PREFIX_PATH}/bin/appweb ] ; then + return 0; + fi + + msg_banner "Start cross compile $SRC_NAME " + + if [ ! -f ${SRC_NAME}${PACK_SUFIX} ] ; then + wget https://embedthis.com/software/${SRC_NAME}${PACK_SUFIX} + check_result "ERROR: download ${SRC_NAME} failure" + fi + + tar -xzf ${SRC_NAME}${PACK_SUFIX} + cd ${SRC_NAME} + + ./configure --prefix=${PREFIX_PATH} ${CONFIG_CROSS} --type=RELEASE --static --port=80 --enable-assert \ + --enable-complete-cross --enable-legacy-api --enable-log --enable-multi-thread --enable-samples \ + --enable-test --enable-send --enable-upload --enable-file --enable-regex --with-php=${PRJ_PATH}/${PHP_SRC_NAME} + check_result "ERROR: configure ${SRC_NAME} failure" + + make TRACE=1 + check_result "ERROR: compile ${SRC_NAME} failure" + + + cp bin/arm-unknown-linux/appweb $PREFIX_PATH/bin + cp modules/arm-unknown-linux/* $PREFIX_PATH/modules + $STRIP $PREFIX_PATH/bin/* + cp -rf test/{appweb.conf,groups.db,mime.types,users.db} $PREFIX_PATH + + cd - +} + +function install_appweb() +{ + msg_banner "Start install webserver appweb " + + cd ${PRJ_PATH} + + # install web page + rm -rf $PREFIX_PATH/web + cp -rf web $PREFIX_PATH + + sed -i -e "s|^Listen 4100|Listen 80|g" $PREFIX_PATH/appweb.conf + sed -i -e 's|^LoadModulePath "../modules"|LoadModulePath "./modules"|g' $PREFIX_PATH/appweb.conf + + set -x + + cat << EOF > run.sh +#!/bin/sh +APPWEB_PATH=/apps/appweb +export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:\${APPWEB_PATH}/modules +cd \${APPWEB_PATH} +./bin/appweb --config appweb.conf & +EOF + + chmod 755 run.sh + mv run.sh $PREFIX_PATH/ + + tar -czf appweb_cortexa8.tar.gz `basename $PREFIX_PATH` + ls -l appweb_cortexa8.tar.gz +} + + +export_cross + +compile_php + +compile_appweb + +install_appweb + + + diff --git a/ok335xD/3rdparty/dhcpd/build.sh b/ok335xD/3rdparty/dhcpd/build.sh new file mode 100755 index 0000000..7bc30c5 --- /dev/null +++ b/ok335xD/3rdparty/dhcpd/build.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +#+-------------------------------------------------------------------------------------------- +#|Description: This shell script used download and compile dhcpd for ARM +#| Author: GuoWenxue <guowenxue@gmail.com> +#| ChangeLog: +#| 1, Initialize 1.0.0 on 2011.04.12 +#+-------------------------------------------------------------------------------------------- + +PREFIX_PATH=`pwd`/../install/bin + +if [ -z $CROSSTOOL ] ; then + CROSSTOOL=/opt/crosstool/cortex-a7/bin/arm-linux-gnueabi- +fi + +function msg_banner() +{ + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" +} + +function check_result() +{ + if [ $? != 0 ] ; then + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" + exit ; + fi +} + +function export_cross() +{ + # export cross toolchain + export CC=${CROSSTOOL}gcc + export AS=${CROSSTOOL}as + export AR=${CROSSTOOL}ar + export LD=${CROSSTOOL}ld + export NM=${CROSSTOOL}nm + export RANLIB=${CROSSTOOL}ranlib + export OBJDUMP=${CROSSTOOL}objdump + export STRIP=${CROSSTOOL}strip + + # export cross configure + export CONFIG_CROSS=" --build=i686-pc-linux --host=arm-linux " + + # Clear LDFLAGS and CFLAGS + export LDFLAGS= + export CFLAGS= +} + +function compile_dhcpd() +{ + IMG_NAME=dhcpd + SRC_NAME=dhcp-4.0.3 + PACK_SUFIX=tar.gz + + if [ -f ${PREFIX_PATH}/${IMG_NAME} ] ; then + return 0; + fi + + msg_banner "Start cross compile $SRC_NAME " + + if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then + wget ftp://ftp.isc.org/isc/dhcp/${SRC_NAME}.${PACK_SUFIX} + check_result "ERROR: download ${SRC_NAME} failure" + fi + + tar -xzf ${SRC_NAME}.${PACK_SUFIX} + cd ${SRC_NAME} + + echo "ac_cv_file__dev_random=yes" > arm-linux.cache + ./configure --prefix=${PREFIX_PATH} ${CONFIG_CROSS} --cache-file=arm-linux.cache -with-srv-lease-file=/tmp/dhcpd.leases \ + --with-srv-pid-file=/var/run/dhcpd.pid --with-relay-pid-file=/var/run/dhcrelay.pid + check_result "ERROR: configure ${SRC_NAME} failure" + + make + check_result "ERROR: compile ${SRC_NAME} failure" + + ${STRIP} server/${IMG_NAME} + cp server/${IMG_NAME} ${PREFIX_PATH} ../ + cp client/dhclient ${PREFIX_PATH} ../ + + cd - +} + + +export_cross + +compile_dhcpd + + diff --git a/ok335xD/3rdparty/iptables/build.sh b/ok335xD/3rdparty/iptables/build.sh new file mode 100755 index 0000000..075af85 --- /dev/null +++ b/ok335xD/3rdparty/iptables/build.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +#+-------------------------------------------------------------------------------------------- +#|Description: This shell script used download and compile iptables for ARM +#| Author: GuoWenxue <guowenxue@gmail.com> +#| ChangeLog: +#| 1, Initialize 1.0.0 on 2011.04.12 +#+-------------------------------------------------------------------------------------------- + +PREFIX_PATH=`pwd`/../install/bin + +if [ -z $CROSSTOOL ] ; then + CROSSTOOL=/opt/crosstool/cortex-a7/bin/arm-linux-gnueabi- +fi + +function msg_banner() +{ + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" +} + +function check_result() +{ + if [ $? != 0 ] ; then + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" + exit ; + fi +} + +function export_cross() +{ + # export cross toolchain + export CC=${CROSSTOOL}gcc + export AS=${CROSSTOOL}as + export AR=${CROSSTOOL}ar + export LD=${CROSSTOOL}ld + export NM=${CROSSTOOL}nm + export RANLIB=${CROSSTOOL}ranlib + export OBJDUMP=${CROSSTOOL}objdump + export STRIP=${CROSSTOOL}strip + + # export cross configure + export CONFIG_CROSS=" --build=i686-pc-linux --host=arm-linux " + + # Clear LDFLAGS and CFLAGS + export LDFLAGS= + export CFLAGS= +} + +function compile_iptables() +{ + SRC_NAME=iptables-1.4.21 + PACK_SUFIX=tar.bz2 + IMG_NAME=iptables + + if [ -f ${PREFIX_PATH}/${IMG_NAME} ] ; then + return 0; + fi + + msg_banner "Start cross compile $SRC_NAME " + + if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then + wget http://www.netfilter.org/projects/iptables/files/${SRC_NAME}.${PACK_SUFIX} + check_result "ERROR: download ${SRC_NAME} failure" + fi + + tar -xjf ${SRC_NAME}.${PACK_SUFIX} + cd ${SRC_NAME} + + ./configure --prefix=${PREFIX_PATH} ${CONFIG_CROSS} --enable-static --disable-shared --disable-ipv6 --disable-largefile + check_result "ERROR: configure ${SRC_NAME} failure" + + make + check_result "ERROR: compile ${SRC_NAME} failure" + + ${STRIP} iptables/xtables-multi + cp iptables/xtables-multi ${PREFIX_PATH}/${IMG_NAME} + cp iptables/xtables-multi ../${IMG_NAME} + + cd - +} + + +export_cross + +compile_iptables + + -- Gitblit v1.9.1