From 0ddf523e8f2854ff1d426a2d8f18fb7c9d06e4c0 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Fri, 21 Aug 2020 12:47:36 +0800 Subject: [PATCH] Add curl dhcpd dnsmasq dropbear build shell script --- 3rdparty/dropbear/S20_dropbear | 4 3rdparty/dhcpd/build.sh | 99 ++++++++++++++ 3rdparty/curl/build.sh | 97 +++++++++++++ 3rdparty/dnsmasq/build.sh | 93 +++++++++++++ 3rdparty/dropbear/build.sh | 124 +++++++++++++++++ 5 files changed, 417 insertions(+), 0 deletions(-) diff --git a/3rdparty/curl/build.sh b/3rdparty/curl/build.sh new file mode 100755 index 0000000..77c2174 --- /dev/null +++ b/3rdparty/curl/build.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +#+-------------------------------------------------------------------------------------------- +#|Description: This shell script used download and compile curl for ARM +#| Author: GuoWenxue <guowenxue@gmail.com> +#| ChangeLog: +#| 1, Initialize 1.0.0 on 2011.04.12 +#+-------------------------------------------------------------------------------------------- + +PREFIX_PATH=`pwd`/../install/ + +LYFTP_SRC=ftp://master.iot-yun.club/src/ + +CROSSTOOL=/opt/xtools/arm920t/bin/arm-linux- + +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_curl() +{ + SRC_NAME=curl-7.65.3 + PACK_SUFIX=tar.bz2 + + if [ -f ${PREFIX_PATH}/bin/curl ] ; then + msg_banner "$SRC_NAME already compile and installed" + return 0; + fi + + msg_banner "Start donwload $SRC_NAME " + if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then + #wget https://github.com/curl/curl/releases/download/curl-7_65_3/${SRC_NAME}.${PACK_SUFIX} + wget ${LYFTP_SRC}/${SRC_NAME}.${PACK_SUFIX} + check_result "ERROR: download ${SRC_NAME} failure" + fi + + tar -xjf ${SRC_NAME}.${PACK_SUFIX} + cd ${SRC_NAME} + + msg_banner "Start cross compile $SRC_NAME " + + ./configure --prefix=${PREFIX_PATH} ${CONFIG_CROSS} --enable-static + + check_result "ERROR: configure ${SRC_NAME} failure" + + make && make install + check_result "ERROR: compile ${SRC_NAME} failure" + + + ${STRIP} ${PREFIX_PATH}/bin/curl + + cd - +} + +export_cross + +compile_curl + + diff --git a/3rdparty/dhcpd/build.sh b/3rdparty/dhcpd/build.sh new file mode 100755 index 0000000..b2b3683 --- /dev/null +++ b/3rdparty/dhcpd/build.sh @@ -0,0 +1,99 @@ +#!/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 + +LYFTP_SRC=ftp://master.iot-yun.club/src/ + +CROSSTOOL=/opt/xtools/arm920t/bin/arm-linux- + +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 + msg_banner "$SRC_NAME already compile and installed" + 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} + wget $LYFTP_SRC/$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/3rdparty/dnsmasq/build.sh b/3rdparty/dnsmasq/build.sh new file mode 100755 index 0000000..f57f26c --- /dev/null +++ b/3rdparty/dnsmasq/build.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +#+-------------------------------------------------------------------------------------------- +#|Description: This shell script used download and compile dnsmasq for ARM +#| Author: GuoWenxue <guowenxue@gmail.com> +#| ChangeLog: +#| 1, Initialize 1.0.0 on 2011.04.12 +#+-------------------------------------------------------------------------------------------- + +PREFIX_PATH=`pwd`/../install/bin + +LYFTP_SRC=ftp://master.iot-yun.club/src/ + +CROSSTOOL=/opt/xtools/arm920t/bin/arm-linux- + +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_dnsmasq() +{ + SRC_NAME=dnsmasq-2.79 + PACK_SUFIX=tar.gz + + if [ -f ${PREFIX_PATH}/dnsmasq ] ; then + msg_banner "$SRC_NAME already compile and installed" + return 0; + fi + + msg_banner "Start donwload $SRC_NAME " + if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then + #wget http://www.thekelleys.org.uk/dnsmasq/${SRC_NAME}.${PACK_SUFIX} + wget $LYFTP_SRC/$SRC_NAME.$PACK_SUFIX + check_result "ERROR: download ${SRC_NAME} failure" + fi + + tar -xzf ${SRC_NAME}.${PACK_SUFIX} + cd ${SRC_NAME} + + msg_banner "Start cross compile $SRC_NAME " + + make + check_result "ERROR: compile ${SRC_NAME} failure" + + ${STRIP} src/dnsmasq + cp src/dnsmasq ../ + cp src/dnsmasq ${PREFIX_PATH} + + cd - +} + +export_cross + +compile_dnsmasq + + diff --git a/3rdparty/dropbear/S20_dropbear b/3rdparty/dropbear/S20_dropbear new file mode 100755 index 0000000..01e677b --- /dev/null +++ b/3rdparty/dropbear/S20_dropbear @@ -0,0 +1,4 @@ +#!/bin/sh + +mkdir -p /etc/dropbear/ +dropbear -R diff --git a/3rdparty/dropbear/build.sh b/3rdparty/dropbear/build.sh new file mode 100755 index 0000000..fc96b08 --- /dev/null +++ b/3rdparty/dropbear/build.sh @@ -0,0 +1,124 @@ +#!/bin/bash + +#+-------------------------------------------------------------------------------------------- +#|Description: This shell script used download and compile dropbear for ARM +#| Author: GuoWenxue <guowenxue@gmail.com> +#| ChangeLog: +#| 1, Initialize 1.0.0 on 2011.04.12 +#+-------------------------------------------------------------------------------------------- + +PREFIX_PATH=`pwd`/../install/ + +LYFTP_SRC=ftp://master.iot-yun.club/src/ + +CROSSTOOL=/opt/xtools/arm920t/bin/arm-linux- + +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_x86() +{ + # compile for X86 and generate Key + msg_banner "Start compile $SRC_NAME for X86" + make distclean + ./configure && make + ./dropbearkey -t rsa -f ${PREFIX_PATH}/dropbear_rsa_host_key + chmod 644 ${PREFIX_PATH}/dropbear_rsa_host_key + make distclean +} + +function compile_dropbear() +{ + SRC_NAME=dropbear-2019.78 + PACK_SUFIX=tar.bz2 + + if [ -f ${PREFIX_PATH}/bin/dropbear ] ; then + msg_banner "$SRC_NAME already compile and installed" + return 0; + fi + + msg_banner "Start donwload $SRC_NAME " + if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then + #wget http://matt.ucc.asn.au/dropbear/releases/${SRC_NAME}.${PACK_SUFIX} + wget $LYFTP_SRC/$SRC_NAME.$PACK_SUFIX + check_result "ERROR: download ${SRC_NAME} failure" + fi + + tar -xjf ${SRC_NAME}.${PACK_SUFIX} + cd ${SRC_NAME} + + msg_banner "Start cross compile $SRC_NAME " + + ./configure --prefix=${PREFIX_PATH} ${CONFIG_CROSS} --disable-zlib + check_result "ERROR: configure ${SRC_NAME} failure" + + make + check_result "ERROR: compile ${SRC_NAME} failure" + + ${STRIP} dbclient dropbear + cp dropbear .. + cp dbclient ../ssh + cp dbclient ${PREFIX_PATH}/bin/ssh + cp dropbear ${PREFIX_PATH}/bin/ + + cd - +} + +function install_script() +{ + init_script=S20_dropbear +cat << EOF > ${init_script} +#!/bin/sh + +mkdir -p /etc/dropbear/ +dropbear -R +EOF + + chmod 755 ${init_script} + +} + +export_cross + +compile_dropbear + +install_script + -- Gitblit v1.9.1