#!/bin/sh echo Configuring Shairport rm -f config.mk config.h echo "// automatically generated file" > config.h LDFLAGS="${LDFLAGS} -lm -lpthread" export_config() { echo "#define $1" >> config.h echo "$1=yes" >> config.mk eval "$1=yes" } # check for header $1 with CONFIG_ var $2 check_header() { echo "#include<$1>" > .header_test.c if gcc -c .header_test.c > /dev/null 2>&1 /dev/null; then echo "$1 found" if [ "$2" ]; then export_config $2 fi else echo "$1 not found" if [ ! "$2" ]; then echo "Required header not found, cannot continue" rm .header_test.c rm -f config.mk config.h exit 1 fi fi rm -f .header_test.c .header_test.o } # check for and use pkg-config package $2 with CONFIG_ var $3 do_pkg_config() { if pkg-config $2 2>/dev/null; then CFLAGS="${CFLAGS} `pkg-config --cflags $2`" LDFLAGS="${LDFLAGS} `pkg-config --libs $2`" if [ "$3" ]; then export_config $3 fi echo "$1 found" else echo "$1 or its dev package not found" if [ ! "$3" ]; then echo "Required package not found, cannot continue" rm -f config.mk config.h exit 1 fi fi } do_pkg_config OpenSSL openssl do_pkg_config libao ao CONFIG_AO do_pkg_config PulseAudio libpulse-simple CONFIG_PULSE do_pkg_config ALSA alsa CONFIG_ALSA do_pkg_config Avahi\ client avahi-client CONFIG_AVAHI if [ `uname` = 'OpenBSD' ]; then echo "OpenBSD machine, use sndio" export_config CONFIG_SNDIO LDFLAGS="${LDFLAGS} -lsndio" fi check_header getopt.h CONFIG_HAVE_GETOPT_H # Don't build dns_sd backend if we have avahi if [ -z "$CONFIG_AVAHI" ]; then check_header dns_sd.h CONFIG_HAVE_DNS_SD_H fi echo "CFLAGS+=${CFLAGS}" >> config.mk echo "LDFLAGS+=${LDFLAGS}" >> config.mk echo CFLAGS: ${CFLAGS} echo LDFLAGS: ${LDFLAGS} echo "Configure successful. You may now build with 'make'"