From 5f20547d454eda23ad5db4900a48bc28747d1359 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Sun, 11 Aug 2019 11:18:05 +0800 Subject: [PATCH] update build shell script to format --- 3rdparty/zbar/build.sh | 282 +++++++++++++++++-------------------------------------- 1 files changed, 88 insertions(+), 194 deletions(-) diff --git a/3rdparty/zbar/build.sh b/3rdparty/zbar/build.sh index 86512b3..f16d794 100755 --- a/3rdparty/zbar/build.sh +++ b/3rdparty/zbar/build.sh @@ -1,221 +1,115 @@ #!/bin/bash #+-------------------------------------------------------------------------------------------- -#|Description: This is shell script used to download a zbarapplication -#| and cross compile it. +#|Description: This shell script used download and compile zbar for ARM #| Author: GuoWenxue <guowenxue@gmail.com> #| ChangeLog: -#| 1, Initialize 1.0.0 on 2011.12.26 +#| 1, Initialize 1.0.0 on 2018.08.16 #+-------------------------------------------------------------------------------------------- -set -e - -PRJ_PATH=`pwd` - -APP_NAME=zbar-latest -APP_PACK=$APP_NAME.tar.bz2 - -INST_PATH=$PRJ_PATH/../install - -CROSS=/opt/crosstool/cortex-a7/bin/arm-linux-gnueabi- +PREFIX_PATH=`pwd`/../install/ LYFTP_SRC=ftp://master.iot-yun.club/src/ -# arg1 is the packet download address -# arg2 is the download packet rename name -function download_packet() +CROSSTOOL=/opt/crosstool/cortex-a7/bin/arm-linux-gnueabi- + +function msg_banner() { - if [ $# -lt 1 ] ; then - echo "ERROR: $0 without argument for packet download address" - exit; + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" +} + +function check_result() +{ + if [ $? != 0 ] ; then + echo "" + echo "+-----------------------------------------------------------------------" + echo "| $1 " + echo "+-----------------------------------------------------------------------" + echo "" + exit ; fi +} - rename=0 +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 - dl_addr=$1 - dl_file=`basename $dl_addr` + # export cross configure + export CONFIG_CROSS=" --build=i686-pc-linux --host=arm-linux " - if [ $# -ge 2 ] ; then - pack=$2 - rename=1 - else - pack=$dl_file - fi + # Clear LDFLAGS and CFLAGS + export LDFLAGS= + export CFLAGS= +} - if [ -s $pack ] ; then - echo "INFO: $pack already exist, skip download it" + +function compile_zbar() +{ + SRC_NAME=zbar-latest + PACK_SUFIX=tar.bz2 + + if [ -f ${PREFIX_PATH}/bin/zbarcam ] ; then + echo "$SRC_NAME already compile and installed" return 0; fi - echo "INFO: Start to download packet $pack now" - wget $dl_addr + msg_banner "Start cross compile $SRC_NAME " - if [ $? != 0 ] ; then - echo "ERROR: Download $pack failure, exit now..." - exit; - fi - echo "INFO: Download $pack ok!" + if [ ! -f ${SRC_NAME}.${PACK_SUFIX} ] ; then + wget ${LYFTP_SRC}/${SRC_NAME}.${PACK_SUFIX} - if [ $rename != 0 ] ; then - mv $dl_file $pack + check_result "ERROR: download ${SRC_NAME} failure" fi - return 0; + tar -xjf ${SRC_NAME}.${PACK_SUFIX} + + cd ${SRC_NAME} + + + git checkout 8edfa5f8c4d11a54 && rm -rf * && git checkout . + + autoreconf --install + + CFLAGS="-DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16" \ + ./configure --host=arm-linux --enable-static --enable-shared --prefix=$PREFIX_PATH \ + --without-gtk --without-python --without-qt --without-x --without-java \ + --with-imagemagick=${PREFIX_PATH}/ --without-graphicsmagick \ + MAGICK_CFLAGS=-I${PREFIX_PATH}//include/ImageMagick-6 \ + MAGICK_LIBS="-L${PREFIX_PATH}/lib -lMagickWand-6.Q16 -lMagickCore-6.Q16 -lm -lz -L`pwd`/zbar/.libs/ -lzbar " + + mkdir -p ./doc/man/ + touch ./doc/man/zbarimg.1 + touch ./doc/man/zbarcam.1 + make all && make install + + cd - } -function decompress_packet() -( - echo "+---------------------------------------------+" - echo "| Decompress $1 now" - echo "+---------------------------------------------+" - rv=0; - - ftype=`file "$1"` - case "$ftype" in - "$1: Zip archive"*) - unzip "$1" ;; - - "$1: gzip compressed"*) - if [ 0 != `expr "$1" : ".*.tar.*" ` ] ; then - tar -xzf $1 - else - gzip -d "$1" - fi ;; - - "$1: bzip2 compressed"*) - if [ 0 != `expr "$1" : ".*.tar.*" ` ] ; then - tar -xjf $1 - else - bunzip2 "$1" - fi ;; - - "$1: POSIX tar archive"*) - tar -xf "$1" ;; - - "$1: LZMA compressed data, streamed"*) - xz -d $1 && tar -xf `ls *.tar` ;; - - *) - rv=1; - echo "$1 is unknow compress format";; - esac - - if [ $rv != 0 ] ; then - echo "ERROR: Decompress $1 failure, exit now..." - exit 1; - fi - - return $rv; -) - -export CC=${CROSS}gcc -export CXX=${CROSS}g++ -export AR=${CROSS}ar -export AS=${CROSS}as -export LD=${CROSS}ld -export NM=${CROSS}nm -export RANLIB=${CROSS}ranlib -export STRIP=${CROSS}strip - -if [ -d $INST_PATH ] ; then - echo "INFO: $APP_NAME already cross compiled, exit now ..." - #exit; -fi - - -LIB_ZLIB=zlib-1.2.11 -PACK_ZLIB=$LIB_ZLIB.tar.gz - -if [ ! -f $INST_PATH/lib/libz.so ] ; then - - download_packet ${LYFTP_SRC}/${PACK_ZLIB} - - if [ ! -d $LIB_ZLIB ] ; then - decompress_packet $PACK_ZLIB - if [ $? != 0 ] ; then - exit 1; - fi - fi - - echo "+------------------------------------------------------------------+" - echo "| Build $LIB_ZLIB for $ARCH " - echo "| Crosstool: $CROSS" - echo "+------------------------------------------------------------------+" - - cd $LIB_ZLIB - ./configure --prefix=$INST_PATH - make && make install - cd - -else - echo "+------------------------------------------------------------------+" - echo "| $LIB_ZLIB already ready " - echo "+------------------------------------------------------------------+" -fi - -LIB_IMGIC=ImageMagick6-6.9.4-0 -PACK_IMGIC=$LIB_IMGIC.tar.gz - -if [ ! -f $INST_PATH/lib/libMagickCore-6.Q16.a ] ; then - - download_packet ${LYFTP_SRC}/${PACK_IMGIC} - - if [ ! -d $LIB_IMGIC ] ; then - decompress_packet $PACK_IMGIC - if [ $? != 0 ] ; then - exit 1; - fi - fi - - echo "+------------------------------------------------------------------+" - echo "| Build $LIB_IMGIC for $ARCH " - echo "| Crosstool: $CROSS" - echo "+------------------------------------------------------------------+" - - cd $LIB_IMGIC - - CFLAGS="-I${INST_PATH}/include -DMAGICKCORE_QUANTUM_DEPTH=16" LDFLAGS=-L${INST_PATH}/lib \ - ./configure --host=arm-linux --enable-static --disable-shared --prefix=$INST_PATH \ - --without-magick-plus-plus --without-perl --without-x --without-dps --without-xml \ - --without-pango --without-freetype --without-png - - make && make install - cd - -else - echo "+------------------------------------------------------------------+" - echo "| $LIB_IMGIC already ready " - echo "+------------------------------------------------------------------+" -fi - - -# Download source code packet -download_packet ${LYFTP_SRC}/zbar-latest.tar.bz2 - -# Decompress source code packet -if [ ! -d $APP_NAME ] ; then - decompress_packet $APP_PACK - if [ $? != 0 ] ; then - exit 1; - fi -fi - - -echo "+------------------------------------------------------------------+" -echo "| Build $APP_NAME for $ARCH " -echo "| Crosstool: $CROSS" -echo "+------------------------------------------------------------------+" - -cd $APP_NAME - git checkout 8edfa5f8c4d11a54 && rm -rf * && git checkout . - autoreconf --install - CFLAGS="-DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16" \ - ./configure --host=arm-linux --enable-static --enable-shared --prefix=$INST_PATH \ - --without-gtk --without-python --without-qt --without-x --without-java \ - --with-imagemagick=${INST_PATH}/ --without-graphicsmagick \ - MAGICK_CFLAGS=-I${INST_PATH}//include/ImageMagick-6 MAGICK_LIBS="-L${INST_PATH}/lib -lMagickWand-6.Q16 -lMagickCore-6.Q16 -lm -lz -L`pwd`/zbar/.libs/ -lzbar " - - mkdir -p ./doc/man/ - touch ./doc/man/zbarimg.1 - touch ./doc/man/zbarcam.1 - make all && make install +cd ../zlib + ./build.sh cd - + +cd ../imageMagick + ./build.sh +cd - + + +export_cross + +compile_zbar + + -- Gitblit v1.9.1