build system updates, including support for some newer GCC options

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@446 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
Lennart Poettering 2006-01-10 18:04:54 +00:00
parent f7a99e9047
commit 6c512fb5a3
2 changed files with 90 additions and 11 deletions

View file

@ -17,17 +17,32 @@
# along with polypaudio; if not, write to the Free Software Foundation, # along with polypaudio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
VERSION=1.9
run_versioned() { run_versioned() {
local P local P
type -p "$1-$2" &> /dev/null && P="$1-$2" || local P="$1" local V
V=$(echo "$2" | sed -e 's,\.,,g')
if [ -e "`which $1$V`" ] ; then
P="$1$V"
else
if [ -e "`which $1-$2`" ] ; then
P="$1-$2"
else
P="$1"
fi
fi
shift 2 shift 2
"$P" "$@" "$P" "$@"
} }
set -ex
if [ "x$1" = "xam" ] ; then if [ "x$1" = "xam" ] ; then
set -ex run_versioned automake "$VERSION" -a -c --foreign
run_versioned automake 1.7 -a -c --foreign
./config.status ./config.status
else else
set -ex set -ex
@ -35,13 +50,16 @@ else
rm -rf autom4te.cache rm -rf autom4te.cache
rm -f config.cache rm -f config.cache
run_versioned aclocal 1.7 test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize
libtoolize -c --force --ltdl
autoheader
run_versioned automake 1.7 -a -c --foreign
autoconf -Wall
CFLAGS="-g -O0" ./configure --sysconfdir=/etc "$@" "$LIBTOOLIZE" -c --force
run_versioned aclocal "$VERSION"
run_versioned autoconf 2.59 -Wall
run_versioned autoheader 2.59
run_versioned automake "$VERSION" -a -c --foreign
make clean if test "x$NOCONFIGURE" = "x"; then
CFLAGS="-g -O0" ./configure --sysconfdir=/etc "$@"
make clean
fi
fi fi

View file

@ -23,7 +23,7 @@ AC_PREREQ(2.57)
AC_INIT([polypaudio],[0.8],[mzcbylcnhqvb (at) 0pointer (dot) de]) AC_INIT([polypaudio],[0.8],[mzcbylcnhqvb (at) 0pointer (dot) de])
AC_CONFIG_SRCDIR([polyp/main.c]) AC_CONFIG_SRCDIR([polyp/main.c])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign -Wall]) AM_INIT_AUTOMAKE([foreign 1.9 -Wall])
AC_SUBST(PA_MAJORMINOR, "$PACKAGE_VERSION") AC_SUBST(PA_MAJORMINOR, "$PACKAGE_VERSION")
AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/polypaudio/]) AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/polypaudio/])
@ -41,6 +41,7 @@ fi
AC_PROG_CC AC_PROG_CC
AC_PROG_GCC_TRADITIONAL AC_PROG_GCC_TRADITIONAL
AC_GNU_SOURCE
# If using GCC specify some additional parameters # If using GCC specify some additional parameters
if test "x$GCC" = "xyes" ; then if test "x$GCC" = "xyes" ; then
@ -58,6 +59,54 @@ if test "x$M4" = xno ; then
AC_MSG_ERROR([m4 missing]) AC_MSG_ERROR([m4 missing])
fi fi
# GCC flags
test_gcc_flag() {
AC_LANG_CONFTEST([int main() {}])
$CC -c conftest.c $CFLAGS $@ > /dev/null 2> /dev/null
ret=$?
rm -f conftest.o
return $ret
}
# If using GCC specify some additional parameters
if test "x$GCC" = "xyes" ; then
DESIRED_FLAGS="-Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Winline"
if test "x$HAVE_NETLINK" = "xyes" ; then
# Test whether rtnetlink.h can be included when compiled with -std=c99
# some distributions (e.g. archlinux) have broken headers that dont
# define __u64 with -std=c99
AC_MSG_CHECKING([checking whether rtnetlink.h can be included with -std=c99])
OLDCFLAGS="$CFLAGS"
CFLAGS="-std=c99"
AC_TRY_COMPILE([#include <linux/rtnetlink.h>], [],
use_stdc99=yes, use_stdc99=no)
if test x"$use_stdc99" = xyes; then
DESIRED_FLAGS="-std=c99 $DESIRED_FLAGS"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
CFLAGS="$OLDCFLAGS"
else
DESIRED_FLAGS="-std=c99 $DESIRED_FLAGS"
fi
for flag in $DESIRED_FLAGS ; do
AC_MSG_CHECKING([whether $CC accepts $flag])
if test_gcc_flag $flag ; then
CFLAGS="$CFLAGS $flag"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
done
fi
# LYNX documentation generation # LYNX documentation generation
AC_ARG_ENABLE(lynx, AC_ARG_ENABLE(lynx,
AC_HELP_STRING(--disable-lynx,Turn off lynx usage for documentation generation), AC_HELP_STRING(--disable-lynx,Turn off lynx usage for documentation generation),
@ -243,6 +292,18 @@ if test "x${with_caps}" != "xno"; then
fi fi
AC_SUBST(CAP_LIBS) AC_SUBST(CAP_LIBS)
#### pkg-config ####
# Check for pkg-config manually first, as if its not installed the
# PKG_PROG_PKG_CONFIG macro won't be defined.
AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no)
if test x"$have_pkg_config" = "xno"; then
AC_MSG_ERROR(pkg-config is required to install this program)
fi
PKG_PROG_PKG_CONFIG
#### Sample rate conversion #### #### Sample rate conversion ####
PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ]) PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ])