#!/bin/sh # # 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] --includedir=DIR install header files in DIR [\$prefix/include] --libdir=DIR install libraries in DIR [\$prefix/lib] --mandir=DIR install man pages in DIR [\$prefix/man] --precision=NUMBER aucat/sndiod processing precision [$precision] --privsep-user=USER non-privileged user for sndio daemon [$user] --enable-alsa enable alsa audio & midi backends [$alsa] --disable-alsa disable alsa audio & midi backends --enable-sun enable sun audio backend [$sun] --disable-sun disable sun audio backend --enable-rmidi enable character device midi backend [$rmidi] --disable-rmidi disable character device midi backend END } # # defaults # prefix=/usr/local # where to install sndio so="libsndio.so.\${MAJ}.\${MIN}" # shared libs to build alsa=no # do we want alsa support ? sun=no # do we want sun support ? rmidi=no # do we want support for raw char dev ? precision=16 # aucat/sndiod arithmetic precision user=_sndio # non-privileged user for sndio daemon unset vars # variables passed as arguments unset bindir # path where to install binaries unset datadir # path where to install doc unset mandir # path where to install man pages unset includedir # path where to install header file unset libdir # path where to install library unset defs # no extra #defines unset ldadd # no extra libraries (-l options) # # guess OS-specific parameters # case `uname` in Linux) alsa=yes ldadd="-lrt" user=sndiod so="$so libsndio.so.\${MAJ} libsndio.so" defs='-D_GNU_SOURCE -DDEV_RANDOM=\\"/dev/urandom\\"' ;; OpenBSD) sun=yes rmidi=yes user=_sndio defs='-DHAVE_ARC4RANDOM -DHAVE_ISSETUGID \\\ -DHAVE_STRLCAT -DHAVE_STRLCPY -DHAVE_STRTONUM \\\ -DHAVE_LETOH ' ;; esac # 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;; --includedir=*) includedir="${i#--includedir=}" shift;; --libdir=*) libdir="${i#--libdir=}" shift;; --mandir=*) mandir="${i#--mandir=}" shift;; --enable-alsa) alsa=yes shift;; --disable-alsa) alsa=no shift;; --enable-sun) sun=yes shift;; --disable-sun) sun=no shift;; --enable-rmidi) rmidi=yes shift;; --disable-rmidi) rmidi=no shift;; --privsep-user=*) user="${i#--privsep-user=}" shift;; --precision=*) precision="${i#--precision=}" if [ "$precision" != 16 -a "$precision" != 24 ]; then echo "$i: only 16 and 24 are supported" >&2 exit 1 fi shift;; CC=*|CFLAGS=*|LDFLAGS=*) vars="$vars$i$nl" shift;; *) help exit 1 ;; esac done # # if $xxxdir is not specified, define it to $prefix/xxx # bindir="${bindir:-$prefix/bin}" datadir="${datadir:-$prefix/share}" includedir="${includedir:-$prefix/include}" libdir="${libdir:-$prefix/lib}" mandir="${mandir:-$prefix/share/man}" # # if using ALSA, add corresponding parameters # if [ $alsa = yes ]; then defs="$defs -DUSE_ALSA" ldadd="$ldadd -lasound" fi # # if using Sun API, add corresponding parameters # if [ $sun = yes ]; then defs="$defs -DUSE_SUN" fi # # if using raw character devices for midi, add corresponding parameters # if [ $rmidi = yes ]; then defs="$defs -DUSE_RMIDI" fi for f in Makefile aucat/Makefile sndiod/Makefile \ libsndio/Makefile sndioctl/Makefile examples/Makefile \ contrib/init.d.sndiod do sed \ -e "s:@bindir@:$bindir:" \ -e "s:@datadir@:$datadir:" \ -e "s:@includedir@:$includedir:" \ -e "s:@libdir@:$libdir:" \ -e "s:@mandir@:$mandir:" \ -e "s:@defs@:$defs:" \ -e "s:@ldadd@:$ldadd:" \ -e "s:@so@:$so:" \ -e "s:@vars@:${vars}:" \ -e "s:@precision@:$precision:" \ -e "s:@user@:$user:" \ < $f.in > $f done cat <