summaryrefslogtreecommitdiff
path: root/misc/yosys-config.in
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-10-18 14:15:05 +0200
committerClifford Wolf <clifford@clifford.at>2014-10-18 14:15:05 +0200
commitb5da3a60e101a26dbcbd6a8565343c281ba464f8 (patch)
tree216edd58a985a78e1a4827a630236b7cd0403c1e /misc/yosys-config.in
parentc321b419d45be8c25bac671df776a779da78b090 (diff)
Moved yosys-config.in to misc/
Diffstat (limited to 'misc/yosys-config.in')
-rw-r--r--misc/yosys-config.in97
1 files changed, 97 insertions, 0 deletions
diff --git a/misc/yosys-config.in b/misc/yosys-config.in
new file mode 100644
index 00000000..8f8dd06c
--- /dev/null
+++ b/misc/yosys-config.in
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+help() {
+ {
+ 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
+
+prefix="--"
+get_prefix=false
+exec_mode=false
+declare -a tokens=()
+
+for opt; do
+ if $get_prefix; then
+ prefix="$opt"
+ get_prefix=false
+ continue
+ fi
+ case "$opt" in
+ "$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 ;;
+ *)
+ tokens=( "${tokens[@]}" "$opt" )
+ esac
+done
+
+if $exec_mode; then
+ exec "${tokens[@]}"
+fi
+
+echo "${tokens[@]}"
+exit 0
+