yosys/misc/yosys-config.in

98 lines
2.3 KiB
Plaintext
Raw Normal View History

2013-11-19 15:48:48 -06:00
#!/bin/bash
help() {
2013-11-19 15:48:48 -06:00
{
echo ""
echo "Usage: $0 [-exec] [--prefix pf] args.."
echo ""
echo "Replecement args:"
echo " --cxx @CXX@"
echo " --cxxflags $( echo '@CXXFLAGS@' | fmt -w60 | sed ':a;N;$!ba;s/\n/ \\\n /g' )"
echo " --ldflags @LDFLAGS@"
echo " --ldlibs @LDLIBS@"
echo " --bindir @BINDIR@"
echo " --datdir @DATDIR@"
echo ""
echo "All other args are passed trhough as they are."
echo ""
echo "Use -exec to call a command instead of generating output. Example usage:"
echo ""
echo " yosys-config --exec --cxx --cxxflags --ldflags -o plugin.so -shared plugin.cc --ldlibs"
echo ""
echo "Use --prefix to change the prefix for the special args from '--' to"
echo "something else. Example:"
echo ""
echo " yosys-config --prefix @ bindir: @bindir"
echo ""
echo "The args --bindir and --datdir can be directly followed by a slash and"
echo "additional text. Example:"
echo ""
echo " yosys-config --datdir/simlib.v"
echo ""
} >&2
exit 1
}
if [ $# -eq 0 ]; then
help
fi
2013-11-19 15:48:48 -06:00
prefix="--"
get_prefix=false
exec_mode=false
declare -a tokens=()
for opt; do
2013-11-19 15:48:48 -06:00
if $get_prefix; then
prefix="$opt"
get_prefix=false
continue
fi
case "$opt" in
2013-11-19 15:48:48 -06:00
"$prefix"cxx)
tokens=( "${tokens[@]}" @CXX@ ) ;;
"$prefix"cxxflags)
tokens=( "${tokens[@]}" @CXXFLAGS@ ) ;;
"$prefix"ldflags)
tokens=( "${tokens[@]}" @LDFLAGS@ ) ;;
"$prefix"ldlibs)
tokens=( "${tokens[@]}" @LDLIBS@ ) ;;
"$prefix"bindir)
tokens=( "${tokens[@]}" '@BINDIR@' ) ;;
"$prefix"datdir)
tokens=( "${tokens[@]}" '@DATDIR@' ) ;;
"$prefix"bindir/*)
tokens=( "${tokens[@]}" '@BINDIR@'"${opt#${prefix}bindir}" ) ;;
"$prefix"datdir/*)
tokens=( "${tokens[@]}" '@DATDIR@'"${opt#${prefix}datdir}" ) ;;
--help|-\?|-h)
if [ ${#tokens[@]} -eq 0 ]; then
help
else
tokens=( "${tokens[@]}" "$opt" )
fi ;;
--exec)
if [ ${#tokens[@]} -eq 0 ]; then
exec_mode=true
else
tokens=( "${tokens[@]}" "$opt" )
fi ;;
--prefix)
if [ ${#tokens[@]} -eq 0 ]; then
get_prefix=true
else
tokens=( "${tokens[@]}" "$opt" )
fi ;;
*)
2013-11-19 15:48:48 -06:00
tokens=( "${tokens[@]}" "$opt" )
esac
done
2013-11-19 15:48:48 -06:00
if $exec_mode; then
exec "${tokens[@]}"
fi
echo "${tokens[@]}"
exit 0
2013-11-19 15:48:48 -06:00