guowenxue
2021-08-17 ed4285674b9648e85e45e9aeadcc79bd8898790e
Add 3rdparty local build shell script
4 files modified
2 files added
245 ■■■■■ changed files
3rdparty/build.sh 28 ●●●●● patch | view | raw | blame | history
3rdparty/local/build.sh 43 ●●●●● patch | view | raw | blame | history
3rdparty/local/libevent/build.sh 44 ●●●● patch | view | raw | blame | history
3rdparty/local/libgpiod/build.sh 6 ●●●● patch | view | raw | blame | history
3rdparty/local/mosquitto/build.sh 57 ●●●● patch | view | raw | blame | history
3rdparty/local/paho.mqtt/build.sh 67 ●●●● patch | view | raw | blame | history
3rdparty/build.sh
New file
@@ -0,0 +1,28 @@
#!/bin/bash
ARCH=`uname -m`
function msg_banner()
{
    echo ""
    echo "+-----------------------------------------------------------------------"
    echo "|  $1 "
    echo "+-----------------------------------------------------------------------"
    echo ""
}
echo ${ARCH} | grep "arm" > /dev/null
if [ $? == 0 ] ; then
   msg_banner "Start local compile on RaspberryPi..."
   cd local && bash build.sh
   exit 0;
fi
echo ${ARCH} | grep "x86" > /dev/null
if [ $? == 0 ] ; then
   msg_banner "Start cross compile on x86 server..."
   cd cross && bash build.sh
   exit 0;
fi
3rdparty/local/build.sh
New file
@@ -0,0 +1,43 @@
#!/bin/bash
ARCH=`uname -m`
echo ${ARCH} | grep "arm" > /dev/null
if [ $? != 0 ] ; then
   echo "+---------------------------------------------------+"
   echo "|   ERROR: This folder must compile on RaspberryPi  |";
   echo "+---------------------------------------------------+"
   exit 1;
fi
function do_compile
{
    for dir in `ls`
    do
        if [ -f $dir/build*.sh ] ; then
            cd $dir
               ./build*.sh
            cd -
        fi
    done
}
function do_clean
{
    for dir in `ls`
    do
        if [ -f $dir/build*.sh ] ; then
            rm -rf ${dir}/${dir}*
        fi
    done
}
if [[ $# == 1 ]] && [[ $1 == "clean" ]] ; then
    do_clean
    exit;
fi
do_compile
3rdparty/local/libevent/build.sh
@@ -7,11 +7,8 @@
#|           1, Initialize 1.0.0 on 2011.04.12
#+--------------------------------------------------------------------------------------------
PREFIX_PATH=`pwd`/install
if [ -z $CROSSTOOL ] ; then
   CROSSTOOL=/opt/rpi/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
fi
PREFIX_PATH=/usr
LYFTP_SRC=ftp://master.iot-yun.club/src/
function msg_banner()
{
@@ -34,57 +31,36 @@
    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_libevent()
{
    SRC_NAME=libevent-2.0.21-stable
    SRC_NAME=libevent-2.1.11-stable
    PACK_SUFIX=tar.gz
    IMG_NAME=ipt
    if [ -f ${PREFIX_PATH}/${IMG_NAME} ] ; then
    if [ -f ${PREFIX_PATH}/lib/libevent.so ] ; then
        msg_banner "$SRC_NAME already compile and installed"
        return 0;
    fi
    msg_banner "Start cross compile $SRC_NAME "
    msg_banner "Start compile $SRC_NAME "
    if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then
        wget https://github.com/downloads/libevent/libevent/${SRC_NAME}.${PACK_SUFIX}
        #wget https://github.com/downloads/libevent/libevent/${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}
    ./configure --prefix=${PREFIX_PATH} ${CONFIG_CROSS}  --enable-thread-support --enable-openssl --enable-function-sections
    ./configure --prefix=${PREFIX_PATH} --enable-thread-support --enable-openssl --enable-function-sections
    check_result "ERROR: configure ${SRC_NAME} failure"
    make  && make install
    make  && sudo make install
    check_result "ERROR: compile ${SRC_NAME} failure"
    cd -
}
export_cross
compile_libevent
3rdparty/local/libgpiod/build.sh
@@ -7,7 +7,7 @@
#|           1, Initialize 1.0.0 on 2011.04.12
#+--------------------------------------------------------------------------------------------
PREFIX_PATH=/usr
LYFTP_SRC=ftp://master.iot-yun.club/src/
function msg_banner()
@@ -53,9 +53,9 @@
    tar -xzf ${SRC_NAME}.${PACK_SUFIX}
    cd ${SRC_NAME}
    ./autogen.sh && ./configure --enable-tools
    ./autogen.sh && sudo ./configure --prefix=${PREFIX_PATH} --enable-tools
    make && make install
    make && sudo make install
    
    cd -
}
3rdparty/local/mosquitto/build.sh
@@ -7,12 +7,8 @@
#|           1, Initialize 1.0.0 on 2011.04.12
#+--------------------------------------------------------------------------------------------
PREFIX_PATH=`pwd`/install
OPENSSL_PATH=`pwd`/../openssl/install/
if [ -z $CROSSTOOL ] ; then
   CROSSTOOL=/opt/rpi/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
fi
PREFIX_PATH=/usr/
LYFTP_SRC=ftp://master.iot-yun.club/src/
function msg_banner()
{
@@ -35,67 +31,36 @@
    fi
}
function export_cross()
{
    # export cross toolchain
    export CC=${CROSSTOOL}gcc
    export CXX=${CROSSTOOL}g++
    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_mosquitto()
{
    SRC_NAME=mosquitto-1.4.15
    SRC_NAME=mosquitto-2.0.10
    PACK_SUFIX=tar.gz
    if [ -d ${PREFIX_PATH}/lib ] ; then
    if [ -f ${PREFIX_PATH}/lib/libmosquitto.so ] ; then
        msg_banner "$SRC_NAME already compile and installed"
        return 0;
    fi
    msg_banner "Start cross compile $SRC_NAME "
    msg_banner "Start compile $SRC_NAME "
    if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then
        wget https://mosquitto.org/files/source//${SRC_NAME}.${PACK_SUFIX}
        #wget https://mosquitto.org/files/source//${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}
    export CFLAGS=-I${OPENSSL_PATH}/include
    export LDFLAGS=-L${OPENSSL_PATH}/lib
    export DESTDIR=${PREFIX_PATH}
    make WITH_SRV=no WITH_UUID=no
    check_result "ERROR: compile ${SRC_NAME} failure"
    mkdir -p ${PREFIX_PATH}/{lib,bin}
    cp lib/libmosquitto.so.1 ${PREFIX_PATH}/lib
    cp src/mosquitto src/mosquitto_passwd  client/mosquitto_pub  client/mosquitto_sub ${PREFIX_PATH}/bin
    cd -
    sudo make prefix=${PREFIX_PATH} install
}
export_cross
if [ ! -d ${OPENSSL_PATH}/include ] ; then
   cd ../openssl
   ./build.sh
   cd -
fi
sudo apt install -y libssl1.0-dev
compile_mosquitto
3rdparty/local/paho.mqtt/build.sh
@@ -7,12 +7,8 @@
#|           1, Initialize 1.0.0 on 2011.04.12
#+--------------------------------------------------------------------------------------------
PREFIX_PATH=`pwd`/install
OPENSSL_PATH=`pwd`/../openssl/install/
if [ -z $CROSSTOOL ] ; then
   CROSSTOOL=/opt/rpi/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
fi
PREFIX_PATH=/usr
LYFTP_SRC=ftp://master.iot-yun.club/src/
function msg_banner()
{
@@ -35,76 +31,35 @@
    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_paho()
{
    SRC_NAME=paho.mqtt.c-1.2.1
    SRC_NAME=paho.mqtt.c-1.3.9
    PACK_SUFIX=tar.gz
    if [ -f ${PREFIX_PATH}/ethtool ] ; then
    if [ -f ${PREFIX_PATH}/lib/libpaho-mqtt3a.so ] ; then
        msg_banner "$SRC_NAME already compile and installed"
        return 0;
    fi
    msg_banner "Start cross compile $SRC_NAME "
    msg_banner "Start compile $SRC_NAME "
    if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then
        wget https://github.com/eclipse/paho.mqtt.c/archive/v1.2.1.tar.gz -O ${SRC_NAME}.${PACK_SUFIX}
        #wget https://github.com/eclipse/paho.mqtt.c/archive/v1.3.9.tar.gz -O ${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}
    check_result "ERROR: decompress ${SRC_NAME} failure"
    cd ${SRC_NAME}
    export CFLAGS=-I${OPENSSL_PATH}/include
    export LDFLAGS=-L${OPENSSL_PATH}/lib
    mkdir -p ${PREFIX_PATH}/usr/local/{bin,include,lib}
    make && make install DESTDIR=${PREFIX_PATH}
    cp -af build/output/samples/ ${PREFIX_PATH}/
    cd ${PREFIX_PATH}/usr/local/lib
      ln -s libpaho-mqtt3a.so.1.0 libpaho-mqtt3a.so.1
      ln -s libpaho-mqtt3as.so.1.0  libpaho-mqtt3as.so.1
      ln -s libpaho-mqtt3c.so.1.0  libpaho-mqtt3c.so.1
      ln -s  libpaho-mqtt3cs.so.1.0 libpaho-mqtt3cs.so.1
      tar -cf libpaho-mqtt.tar *
      mv libpaho-mqtt.tar ${PREFIX_PATH}
    cd -
    make && sudo make prefix=${PREFIX_PATH} install
    check_result "ERROR: compile ${SRC_NAME} failure"
    cd -
}
export_cross
if [ ! -d ${OPENSSL_PATH}/include ] ; then
   cd ../openssl
   ./build.sh
   cd -
fi
compile_paho