#!/bin/bash LYFTP_SRC=ftp://master.iot-yun.club/src/ function msg_banner() { echo "" echo "+-----------------------------------------------------------------------" echo "| $1 " echo "+-----------------------------------------------------------------------" echo "" } function check_result() { if [ $? != 0 ] ; then echo "" echo "+-----------------------------------------------------------------------" echo "| $1 " echo "+-----------------------------------------------------------------------" echo "" exit ; fi } function compile_libgpiod() { PREFIX_PATH=/usr SRC_NAME=libgpiod-1.6.2 PACK_SUFIX=tar.gz IMG_NAME=libgpiod.so if [ -f ${PREFIX_PATH}/lib/${IMG_NAME} ] ; then msg_banner "$SRC_NAME already compile and installed" return 0; fi msg_banner "Start compile $SRC_NAME " if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then #wget https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/$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} ./autogen.sh ./configure --enable-tools=yes --prefix=$PREFIX_PATH make && sudo make install cd - } function compile_cJson() { PREFIX_PATH=/usr SRC_NAME=cJSON-1.7.14 PACK_SUFIX=tar.gz IMG_NAME=libcjson.so if [ -f ${PREFIX_PATH}/lib/${IMG_NAME} ] ; then msg_banner "$SRC_NAME already compile and installed" return 0; fi msg_banner "Start compile $SRC_NAME " if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then # official site: https://github.com/DaveGamble/cJSON wget $LYFTP_SRC/$SRC_NAME.$PACK_SUFIX check_result "ERROR: download ${SRC_NAME} failure" fi tar -xzf ${SRC_NAME}.${PACK_SUFIX} cd ${SRC_NAME} make && sudo make PREFIX=$PREFIX_PATH install cd - } function compile_mosquitto() { PREFIX_PATH=/usr SRC_NAME=mosquitto-2.0.5 PACK_SUFIX=tar.gz IMG_NAME=libmosquitto.so if [ -f ${PREFIX_PATH}/lib/${IMG_NAME} ] ; then msg_banner "$SRC_NAME already compile and installed" return 0; fi # mosquitto depends on openssl msg_banner "Using apt install openssl library now..." sudo apt install -y libssl-dev msg_banner "Start compile $SRC_NAME " if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then wget $LYFTP_SRC/$SRC_NAME.$PACK_SUFIX #wget https://mosquitto.org/files/source/$SRC_NAME.$PACK_SUFIX check_result "ERROR: download ${SRC_NAME} failure" fi tar -xzf ${SRC_NAME}.${PACK_SUFIX} cd ${SRC_NAME} make && sudo make DESTDIR=${PREFIX_PATH} prefix=/ install cd - } compile_libgpiod compile_cJson compile_mosquitto