| New file | 
 |  |  | 
 |  |  | #!/bin/bash | 
 |  |  |  | 
 |  |  | #+-------------------------------------------------------------------------------------------- | 
 |  |  | #|Description:  This shell script used download and compile JSON library cJSON 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/buildroot/cortex-a5/bin/arm-linux- | 
 |  |  |  | 
 |  |  | mkdir -p ${PREFIX_PATH} | 
 |  |  |  | 
 |  |  | 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 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_cJSON() | 
 |  |  | { | 
 |  |  |     SRC_NAME=cJSON-1.7.14 | 
 |  |  |     PACK_SUFIX=tar.gz | 
 |  |  |  | 
 |  |  |     if [ -f ${PREFIX_PATH}/lib/libcjson.so ] ; 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 | 
 |  |  |         # https://github.com/DaveGamble/cJSON/tags | 
 |  |  |         wget ${LYFTP_SRC}/${SRC_NAME}.${PACK_SUFIX} | 
 |  |  |  | 
 |  |  |         check_result "ERROR: download ${SRC_NAME} failure" | 
 |  |  |     fi | 
 |  |  |  | 
 |  |  |     tar -xzf ${SRC_NAME}.${PACK_SUFIX} | 
 |  |  |     cd ${SRC_NAME} | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     sed -i -e "s|^CC.*|CC = ${CROSSTOOL}gcc -std=c89|g" Makefile | 
 |  |  |     sed -i -e "s|^PREFIX.*|PREFIX = ${PREFIX_PATH}|g" Makefile | 
 |  |  |      | 
 |  |  |     make  | 
 |  |  |     check_result "ERROR: compile ${SRC_NAME} failure" | 
 |  |  |  | 
 |  |  |     make install | 
 |  |  |  | 
 |  |  |     cd - | 
 |  |  | } | 
 |  |  |  | 
 |  |  | export_cross | 
 |  |  |  | 
 |  |  | compile_cJSON | 
 |  |  |  | 
 |  |  |  |