#! /bin/sh
# Convert binary to binary-text.
# Command line:
# convert-binary-to-text.sh xxx.cl.bin xxx.clx.bin
#
# Usage of binary-text file (if needed):
# 1. generate binary file, related script: libxcam/tests/test-binary-kernel
# $ test-binary-kernel --src-kernel kernel_demo.cl --bin-kernel kernel_demo.cl.bin --kernel-name kernel_demo
#
# 2. generate binary-text file, related script: libxcam/tools/convert-binary-to-text.sh
# $ convert-binary-to-text.sh kernel_demo.cl.bin kernel_demo.clx.bin
#
# 3. include binary-text file when create image handler, please refer to demo handler:
# SmartPtr<CLImageHandler> create_cl_binary_demo_image_handler (SmartPtr<CLContext> &context)
BINARY_FILE=$1
TEXT_FILE=$2
if [ $# -ne 2 ]; then
echo "Usage: $0 <binary_file> <text_file>"
exit 1
fi
od -A n -t x1 -v $BINARY_FILE | \
gawk '
BEGIN { print "{" }
{
printf " "
for (i = 1; i < NF; i++)
{ printf " 0x" $i "," }
print " 0x" $i ","
}
END { print "};" }
' > $TEXT_FILE.tmp
ret=$?
if [ $ret != 0 ]; then
echo "Convert $BINARY_FILE to $TEXT_FILE faild"
rm -f $TEXT_FILE.tmp
exit 1
fi
mv $TEXT_FILE.tmp $TEXT_FILE
echo "Convert $BINARY_FILE to $TEXT_FILE done"