#!/bin/sh

#
# defaults
#
prefix=/usr/local		# where to install midish
alsa=no				# do we want alsa support ?
sndio=no			# do we want sndio support ?
vars=				# variables definitions passed as-is
bindir=				# path where to install binaries
datadir=			# path where to install doc and examples
mandir=				# path where to install man pages
defs=				# no extra #defines
lib=				# extra path to libraries
include=			# extra path to header files
rt_ldadd=			# extra -l's for posix real-time extensions
sndio_ldadd=			# extra -l's for sndio(7)
alsa_ldadd=			# extra -l's for ALSA

#
# few OS-specific tweaks
#
case `uname` in
	Linux)
		alsa=yes
		rt_ldadd="-lrt"
		;;
	OpenBSD)
		sndio=yes
		;;
esac

#
# display help screeen
#
help() {
cat << END
Usage: configure [options]
--prefix=DIR			set install prefix to DIR [$prefix]
--bindir=DIR			install executables in DIR [\$prefix/bin]
--datadir=DIR			install read-only data in DIR [\$prefix/share]
--mandir=DIR			install man pages in DIR [\$prefix/man]
--enable-alsa			enable alsa sequencer backend [$alsa]
--disable-alsa			disable alsa sequencer backend
--enable-sndio			enable libsndio backend [$sndio]
--disable-sndio			disable libsndio backend
END
}

# shell word separator (none)
IFS=''

# sed-quoted new-line
nl='\
'

for i; do
	case "$i" in
	--prefix=*)
		prefix="${i#--prefix=}"
		shift;;
	--bindir=*)
		bindir="${i#--bindir=}"
		shift;;
	--datadir=*)
		datadir="${i#--datadir=}"
		shift;;
	--mandir=*)
		mandir="${i#--mandir=}"
		shift;;
	--enable-alsa)
		alsa=yes
		shift;;
	--disable-alsa)
		alsa=no
		shift;;
	--enable-sndio)
		sndio=yes
		shift;;
	--disable-sndio)
		sndio=no
		shift;;
	CC=*|CFLAGS=*|LDFLAGS=*)
		vars="$vars$i$nl"
		shift;;
	*)
		help
		exit 1
		;;
	esac
done

bindir="${bindir:-$prefix/bin}"
datadir="${datadir:-$prefix/share}"
mandir="${mandir:-$prefix/man}"

#
# add parameters specific to backends
#
if [ $sndio = yes ]; then
	defs="$defs -DUSE_SNDIO"
	sndio_ldadd="-lsndio"
	alsa=no
elif [ $alsa = yes ]; then
	defs="$defs -DUSE_ALSA"
	alsa_ldadd="-lasound"
else
	defs="$defs -DUSE_RAW"
fi

echo "configure: creating Makefile"
sed \
-e "s:@bindir@:$bindir:" \
-e "s:@datadir@:$datadir:" \
-e "s:@mandir@:$mandir:" \
-e "s:@defs@:$defs:" \
-e "s:@include@:$include:" \
-e "s:@lib@:$lib:" \
-e "s:@rt_ldadd@:$rt_ldadd:" \
-e "s:@sndio_ldadd@:$sndio_ldadd:" \
-e "s:@alsa_ldadd@:$alsa_ldadd:" \
-e "s:@vars@:$vars:" \
< Makefile.in >Makefile

if [ ! -e version.h ]; then
	echo "#define VERSION \"midish (unknown release)\"" >version.h
fi

echo
echo "bindir................... $bindir"
echo "datadir.................. $datadir"
echo "mandir................... $mandir"
echo "alsa..................... $alsa"
echo "sndio.................... $sndio"
echo
echo "Do \"make && make install\" to compile and install midish"
echo


