Home | History | Annotate | Download | only in tools
      1 #! /bin/sh
      2 # Convert binary to binary-text.
      3 # Command line:
      4 #     convert-binary-to-text.sh xxx.cl.bin xxx.clx.bin
      5 #
      6 # Usage of binary-text file (if needed):
      7 # 1. generate binary file, related script: libxcam/tests/test-binary-kernel
      8 #    $ test-binary-kernel --src-kernel kernel_demo.cl --bin-kernel kernel_demo.cl.bin --kernel-name kernel_demo
      9 #
     10 # 2. generate binary-text file, related script: libxcam/tools/convert-binary-to-text.sh
     11 #    $ convert-binary-to-text.sh kernel_demo.cl.bin kernel_demo.clx.bin
     12 #
     13 # 3. include binary-text file when create image handler, please refer to demo handler:
     14 #    SmartPtr<CLImageHandler> create_cl_binary_demo_image_handler (SmartPtr<CLContext> &context)
     15 
     16 
     17 BINARY_FILE=$1
     18 TEXT_FILE=$2
     19 
     20 if [ $# -ne 2 ]; then
     21     echo "Usage: $0 <binary_file> <text_file>"
     22     exit 1
     23 fi
     24 
     25 od -A n -t x1 -v $BINARY_FILE | \
     26     gawk '
     27     BEGIN { print "{" }
     28     {
     29         printf "   "
     30         for (i = 1; i < NF; i++)
     31             { printf " 0x" $i "," }
     32         print " 0x" $i ","
     33     }
     34     END { print "};" }
     35     ' > $TEXT_FILE.tmp
     36 
     37 ret=$?
     38 if [ $ret != 0 ]; then
     39     echo "Convert $BINARY_FILE to $TEXT_FILE faild"
     40     rm -f $TEXT_FILE.tmp
     41     exit 1
     42 fi
     43 
     44 mv $TEXT_FILE.tmp $TEXT_FILE
     45 
     46 echo "Convert $BINARY_FILE to $TEXT_FILE done"
     47