# Copyright (C) 2008, Alejandro Mery <amery@geeks.cl>
# 
# vim: noexpandtab ft=sh sw=8 ts=8:
#
# This file is part of `unet` and under the terms of GPLv3.
# Read the README and COPYING files for more details.

# handled options and their default values
data='
prefix:/usr/local
libdir:${ac_prefix}/lib
sbindir:${ac_prefix}/sbin
bindir:${ac_prefix}/bin
sysconfdir:${ac_prefix}/etc
localstatedir:${ac_prefix}/var
datadir:${ac_prefix}/share
mandir:${ac_datadir}/man
docdir:${ac_datadir}/doc/unet

rundatadir:${ac_localstatedir}/run/unet
servicedir:
sv:sv
'

# initialize empty
for x in $data; do
	eval "ac_${x%%:*}="
done

# parse
while [ $# -gt 0 ]; do
	case "$1" in
		--help)
			cat <<-EOT
			Usage: $0 [OPTION]...

			Options:
			  --help
			EOT
			for x in $data; do
				echo "  --${x%%:*}"
			done; exit 1
			;;
		--*=*)	val="${1##*=}"
			var="${1%=$val}"; var="${var#--}"
			;;

		--)	shift; break ;;

		--*)	val=yes
			var="${1#--}"
			;;

		*)	echo "$1: No supported, ignoring." >&2
			shift; continue ;;
	esac

	# validate
	ac_ok=
	for x in $data; do
		if [ "$var" = "${x%%:*}" ]; then
			ac_ok=yes
			break
		fi
	done
	set +x

	if [ "$ac_ok" = "yes" ]; then
		eval "ac_$var='$val'"
	else
		echo "$var: Option no handled, ignoring." >&2
	fi
	shift
done

echo "Creating config.mk..."
rm -f config.mk

for x in $data; do
	k="${x%%:*}"
	K=$(echo "$k" | tr a-z A-Z)
	v=$(eval echo "\$ac_$k")

	if [ -z "$v" ]; then
		v=$(eval "echo \"${x#*:}\"" | tr -s /)
		eval "ac_$k=$v"
	fi

	printf " %-15s: %s\n" "$k" "$v"
	echo "$K=$v" >> config.mk
done
