#!/bin/bash 
 | 
  
 | 
#+-------------------------------------------------------------------------------------------- 
 | 
#|Description:  This shell script used download and compile cJSON for RaspberryPi 
 | 
#|     Author:  GuoWenxue <guowenxue@gmail.com> 
 | 
#|  ChangeLog: 
 | 
#|           1, Initialize 1.0.0 on 2022.04.10 
 | 
#+-------------------------------------------------------------------------------------------- 
 | 
  
 | 
JOBS=`cat /proc/cpuinfo |grep "processor"|wc -l` 
 | 
  
 | 
PRJ_PATH=`pwd` 
 | 
LIBS_PATH=$PRJ_PATH/../install 
 | 
  
 | 
LYFTP_SRC=ftp://master.iot-yun.club/src/ 
 | 
CROSSTOOL=arm-linux-gnueabihf- 
 | 
  
 | 
# display in red 
 | 
function pr_error() { 
 | 
    echo -e "\033[40;31m --E-- $1 \033[0m" 
 | 
} 
 | 
  
 | 
# display in yellow 
 | 
function pr_warn() { 
 | 
    echo -e "\033[40;33m --W-- $1 \033[0m" 
 | 
} 
 | 
  
 | 
# display in green 
 | 
function pr_info() { 
 | 
    echo -e "\033[40;32m --I-- $1 \033[0m" 
 | 
} 
 | 
  
 | 
  
 | 
function msg_banner() 
 | 
{ 
 | 
    echo "" 
 | 
    echo "+-----------------------------------------------------------------------" 
 | 
    echo -e "|\033[40;33m  $1 \033[0m" 
 | 
    echo "+-----------------------------------------------------------------------" 
 | 
    echo "" 
 | 
} 
 | 
  
 | 
function check_result() 
 | 
{ 
 | 
    if [ $? != 0 ] ; then 
 | 
        pr_error $1 
 | 
    fi   
 | 
} 
 | 
  
 | 
  
 | 
function compile_cjson() 
 | 
{ 
 | 
    SRC_NAME=cJSON-1.7.15 
 | 
    PACK_SUFIX=tar.gz 
 | 
  
 | 
    if [ -f ${LIBS_PATH}/lib/libcjson.so ] ; 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://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} 
 | 
    check_result "ERROR: decompress ${SRC_NAME} failure" 
 | 
  
 | 
    cd ${SRC_NAME} 
 | 
  
 | 
    sed -i "s|^CC =.*|CC = ${CROSSTOOL}gcc -std=c89|" Makefile 
 | 
  
 | 
    make && make PREFIX=${LIBS_PATH} install 
 | 
} 
 | 
  
 | 
  
 | 
compile_cjson 
 |