#!/bin/bash

help() {
	{
		echo ""
		echo "Usage: $0 [--exec] [--prefix pf] args.."
		echo "       $0 --build modname.so cppsources.."
		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 through 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 "The above command can be abbreviated as:"
		echo ""
		echo "  yosys-config --build plugin.so plugin.cc"
		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

if [ "$1" == "--build" ]; then
	modname="$2"; shift 2
	set -- --exec --cxx --cxxflags --ldflags -o "$modname" -shared "$@" --ldlibs
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

