lammps/lib/gpu/geryon/file_to_cstr.sh

55 lines
1.1 KiB
Bash
Raw Normal View History

#!/bin/sh
# convert ptx assembly output into
# a c-style string constant written
# in portable posix shell script.
# requires: sed, rm, mv
#
# Author: Axel Kohlmeyer, Temple University
num_args=$#
# Check command-line arguments
if [ $num_args -gt 9 ]; then
echo "$0 can only take 9 arguments; not $num_args"
exit 1
fi
if [ $num_args -lt 3 ]; then
echo "Not enough arguments."
echo "$0 name_for_string input_file1 input_file2 ... output"
exit 1
fi
# Name is first arg, output file is last argument
string_name=$1
eval output=\${$num_args}
shift
# remove temporary file in case we're interrupted.
cleanup () {
rm -f $output
}
trap cleanup INT QUIT TERM
# loop over arguments and convert to
# string constant.
i=2
echo "const char * $string_name = " > $output
while [ $i -lt $num_args ]
do \
src=$1
krn=${src##*/}
krn=${krn%.*}
echo "Converting $src to a c-style string"
sed -e 's/\\/\\\\/g' \
-e 's/"/\\"/g' \
-e 's/ *\/\/.*$//' \
-e '/\.file/D' \
-e '/^[ ]*$/D' \
-e 's/^\(.*\)$/"\1\\n"/' $src >> $output
shift
i=`expr $i + 1`
done
echo ';' >> $output