mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
Merge commit 'flameeyes/autoconf-2.62'
This commit is contained in:
commit
3d2d6ca958
13 changed files with 407 additions and 242 deletions
|
|
@ -15,7 +15,7 @@
|
|||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
# USA.
|
||||
|
||||
ACLOCAL_AMFLAGS = -I common
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
EXTRA_DIST = bootstrap.sh LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo
|
||||
SUBDIRS=src doxygen man po
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ else
|
|||
|
||||
intltoolize --copy --force --automake
|
||||
"$LIBTOOLIZE" -c --force --ltdl
|
||||
run_versioned aclocal "$VERSION" -I common
|
||||
run_versioned aclocal "$VERSION" -I m4
|
||||
run_versioned autoconf 2.59 -Wall
|
||||
run_versioned autoheader 2.59
|
||||
run_versioned automake "$VERSION" --copy --foreign --add-missing
|
||||
|
|
|
|||
157
configure.ac
157
configure.ac
|
|
@ -20,7 +20,7 @@
|
|||
# along with PulseAudio; if not, write to the Free Software Foundation,
|
||||
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
AC_PREREQ(2.60)
|
||||
AC_PREREQ(2.62)
|
||||
|
||||
m4_define(PA_MAJOR, [0])
|
||||
m4_define(PA_MINOR, [9])
|
||||
|
|
@ -28,6 +28,7 @@ m4_define(PA_MICRO, [12])
|
|||
|
||||
AC_INIT([pulseaudio], PA_MAJOR.PA_MINOR.PA_MICRO,[mzchyfrnhqvb (at) 0pointer (dot) net])
|
||||
AC_CONFIG_SRCDIR([src/daemon/main.c])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AM_INIT_AUTOMAKE([foreign 1.10 -Wall])
|
||||
|
||||
|
|
@ -85,6 +86,7 @@ AC_PROG_MKDIR_P
|
|||
# CC
|
||||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_C99
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_GNU_SOURCE
|
||||
|
|
@ -96,33 +98,12 @@ if test "x$M4" = xno ; then
|
|||
AC_MSG_ERROR([m4 missing])
|
||||
fi
|
||||
|
||||
# GCC flags
|
||||
dnl Compiler flags
|
||||
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 -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math"
|
||||
|
||||
test_gcc_flag() {
|
||||
AC_LANG_CONFTEST([int main(int argc, char*argv[]) {}])
|
||||
$CC -c conftest.c $CFLAGS -o conftest.o > /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
|
||||
|
||||
# We use gnu99 instead of c99 because many have interpreted the standard
|
||||
# in a way that int64_t isn't defined on non-64 bit platforms.
|
||||
DESIRED_FLAGS="-std=gnu99 -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 -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math"
|
||||
|
||||
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
|
||||
for flag in $DESIRED_FLAGS ; do
|
||||
CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"])
|
||||
done
|
||||
|
||||
# Native atomic operation support
|
||||
AC_ARG_ENABLE([atomic-arm-linux-helpers],
|
||||
|
|
@ -161,17 +142,18 @@ esac
|
|||
# If everything else fails use libatomic_ops
|
||||
need_libatomic_ops=yes
|
||||
|
||||
AC_MSG_CHECKING([whether $CC knows __sync_bool_compare_and_swap()])
|
||||
AC_LANG_CONFTEST([int main() { int a = 4; __sync_bool_compare_and_swap(&a, 4, 5); }])
|
||||
$CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null
|
||||
ret=$?
|
||||
rm -f conftest.o conftest
|
||||
if test $ret -eq 0 ; then
|
||||
AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
|
||||
pulseaudio_cv_sync_bool_compare_and_swap,
|
||||
[AC_LINK_IFELSE(
|
||||
AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
|
||||
[pulseaudio_cv_sync_bool_compare_and_swap=yes],
|
||||
[pulseaudio_cv_sync_bool_compare_and_swap=no])
|
||||
])
|
||||
|
||||
if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
|
||||
AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
|
||||
AC_MSG_RESULT([yes])
|
||||
need_libatomic_ops=no
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
# HW specific atomic ops stuff
|
||||
AC_MSG_CHECKING([architecture for native atomic operations])
|
||||
case $host_cpu in
|
||||
|
|
@ -187,29 +169,27 @@ else
|
|||
need_libatomic_ops=no
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_CHECKING([compiler support for arm inline asm atomic operations])
|
||||
AC_LANG_CONFTEST([[int main()
|
||||
{
|
||||
volatile int a=0;
|
||||
int o=0, n=1, r;
|
||||
asm volatile ("ldrex %0, [%1]\n"
|
||||
"subs %0, %0, %2\n"
|
||||
"strexeq %0, %3, [%1]\n"
|
||||
: "=&r" (r)
|
||||
: "r" (&a), "Ir" (o), "r" (n)
|
||||
: "cc");
|
||||
return (a==1 ? 0 : -1);
|
||||
}]])
|
||||
$CC conftest.c $CFLAGS -o conftest > /dev/null 2>&1
|
||||
ret=$?
|
||||
rm -f conftest.o conftest
|
||||
if test $ret -eq 0 ; then
|
||||
AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
|
||||
pulseaudio_cv_support_arm_atomic_ops,
|
||||
[AC_COMPILE_IFELSE(
|
||||
AC_LANG_PROGRAM([],
|
||||
[[volatile int a=0;
|
||||
int o=0, n=1, r;
|
||||
asm volatile ("ldrex %0, [%1]\n"
|
||||
"subs %0, %0, %2\n"
|
||||
"strexeq %0, %3, [%1]\n"
|
||||
: "=&r" (r)
|
||||
: "r" (&a), "Ir" (o), "r" (n)
|
||||
: "cc");
|
||||
return (a==1 ? 0 : -1);
|
||||
]]),
|
||||
[pulseaudio_cv_support_arm_atomic_ops=yes],
|
||||
[pulseaudio_cv_support_arm_atomic_ops=no])
|
||||
])
|
||||
AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
|
||||
AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
|
||||
AC_MSG_RESULT([yes])
|
||||
need_libatomic_ops=no
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
|
|
@ -218,29 +198,19 @@ else
|
|||
esac
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([whether $CC knows __thread])
|
||||
AC_LANG_CONFTEST([static __thread int a = 6; int main() { a = 5; }])
|
||||
$CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null
|
||||
ret=$?
|
||||
rm -f conftest.o conftest
|
||||
if test $ret -eq 0 ; then
|
||||
AC_DEFINE([HAVE_TLS_BUILTIN], 1, [Have __thread().])
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
CC_CHECK_TLS
|
||||
|
||||
AC_MSG_CHECKING([whether $CC knows _Bool])
|
||||
AC_LANG_CONFTEST([int main() { _Bool b; }])
|
||||
$CC conftest.c $CFLAGS -o conftest > /dev/null 2> /dev/null
|
||||
ret=$?
|
||||
rm -f conftest.o conftest
|
||||
if test $ret -eq 0 ; then
|
||||
AC_CACHE_CHECK([whether $CC knows _Bool],
|
||||
pulseaudio_cv__Bool,
|
||||
[AC_COMPILE_IFELSE(
|
||||
AC_LANG_PROGRAM([], [[_Bool b;]]),
|
||||
[pulseaudio_cv__Bool=yes],
|
||||
[pulseaudio_cv__Bool=no])
|
||||
])
|
||||
|
||||
AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
|
||||
AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
|
||||
#### libtool stuff ####
|
||||
|
||||
|
|
@ -414,20 +384,27 @@ AC_CHECK_FUNCS([setresuid setresgid setreuid setregid seteuid setegid ppoll strs
|
|||
|
||||
AC_FUNC_ALLOCA
|
||||
|
||||
AC_MSG_CHECKING([for PTHREAD_PRIO_INHERIT])
|
||||
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
|
||||
#include <pthread.h>
|
||||
int main() { int i = PTHREAD_PRIO_INHERIT; }]])])
|
||||
$PTHREAD_CC conftest.c $PTHREAD_CFLAGS $CFLAGS $PTHREAD_LIBS -o conftest > /dev/null 2> /dev/null
|
||||
ret=$?
|
||||
rm -f conftest.o conftest
|
||||
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
||||
pulseaudio_cv_PTHREAD_PRIO_INHERIT,
|
||||
[save_CC=$CC; CC=$PTHREAD_CC
|
||||
save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
|
||||
save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
|
||||
AC_LINK_IFELSE(
|
||||
AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <pthread.h>
|
||||
]],
|
||||
[[int i = PTHREAD_PRIO_INHERIT;]]),
|
||||
[pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
|
||||
[pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
|
||||
CC=$save_CC
|
||||
CFLAGS=$save_CFLAGS
|
||||
LIBS=$save_LIBS
|
||||
])
|
||||
|
||||
if test $ret -eq 0 ; then
|
||||
AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
|
||||
AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
|
||||
#### Large File-Support (LFS) ####
|
||||
|
||||
|
|
@ -440,8 +417,6 @@ AC_CHECK_FUNCS([open64])
|
|||
|
||||
AM_ICONV
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
|
||||
IT_PROG_INTLTOOL([0.35.0])
|
||||
GETTEXT_PACKAGE=pulseaudio
|
||||
AC_SUBST([GETTEXT_PACKAGE])
|
||||
|
|
|
|||
8
m4/.gitignore
vendored
Normal file
8
m4/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
argz.m4
|
||||
intltool.m4
|
||||
libtool.m4
|
||||
ltdl.m4
|
||||
ltoptions.m4
|
||||
ltsugar.m4
|
||||
ltversion.m4
|
||||
lt~obsolete.m4
|
||||
19
m4/acx_libwrap.m4
Normal file
19
m4/acx_libwrap.m4
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
AC_DEFUN([ACX_LIBWRAP], [
|
||||
LIBWRAP_LIBS=
|
||||
saved_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lwrap"
|
||||
AC_MSG_CHECKING([for tcpwrap library and headers])
|
||||
AC_LINK_IFELSE(
|
||||
AC_LANG_PROGRAM(
|
||||
[#include <tcpd.h>
|
||||
#include <syslog.h>
|
||||
int allow_severity = LOG_INFO;
|
||||
int deny_severity = LOG_WARNING;],
|
||||
[struct request_info *req;
|
||||
return hosts_access (req);]),
|
||||
[AC_DEFINE(HAVE_LIBWRAP, [], [Have tcpwrap?])
|
||||
LIBWRAP_LIBS="-lwrap"
|
||||
AC_MSG_RESULT(yes)],
|
||||
[AC_MSG_RESULT(no)])
|
||||
LIBS="$saved_LIBS"
|
||||
])
|
||||
6
m4/acx_lirc.m4
Normal file
6
m4/acx_lirc.m4
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
AC_DEFUN([ACX_LIRC], [
|
||||
LIRC_CFLAGS=
|
||||
LIRC_LIBS=
|
||||
AC_CHECK_HEADER(lirc/lirc_client.h,[AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=1
|
||||
LIRC_LIBS=-llirc_client],HAVE_LIRC=0)],HAVE_LIRC=0)
|
||||
])
|
||||
|
|
@ -346,43 +346,3 @@ else
|
|||
fi
|
||||
AC_LANG_RESTORE
|
||||
])dnl ACX_PTHREAD
|
||||
AC_DEFUN([AC_CHECK_DEFINE],[
|
||||
AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$1_$2])dnl
|
||||
AC_CACHE_CHECK([for $1 in $2], ac_var,
|
||||
AC_TRY_COMPILE([#include <$2>],[
|
||||
#ifdef $1
|
||||
int ok;
|
||||
#else
|
||||
choke me
|
||||
#endif
|
||||
],AS_VAR_SET(ac_var, yes),AS_VAR_SET(ac_var, no)))
|
||||
AS_IF([test AS_VAR_GET(ac_var) != "no"], [$3], [$4])dnl
|
||||
AS_VAR_POPDEF([ac_var])dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([ACX_LIBWRAP], [
|
||||
LIBWRAP_LIBS=
|
||||
saved_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lwrap"
|
||||
AC_MSG_CHECKING([for tcpwrap library and headers])
|
||||
AC_LINK_IFELSE(
|
||||
AC_LANG_PROGRAM(
|
||||
[#include <tcpd.h>
|
||||
#include <syslog.h>
|
||||
int allow_severity = LOG_INFO;
|
||||
int deny_severity = LOG_WARNING;],
|
||||
[struct request_info *req;
|
||||
return hosts_access (req);]),
|
||||
[AC_DEFINE(HAVE_LIBWRAP, [], [Have tcpwrap?])
|
||||
LIBWRAP_LIBS="-lwrap"
|
||||
AC_MSG_RESULT(yes)],
|
||||
[AC_MSG_RESULT(no)])
|
||||
LIBS="$saved_LIBS"
|
||||
])
|
||||
|
||||
AC_DEFUN([ACX_LIRC], [
|
||||
LIRC_CFLAGS=
|
||||
LIRC_LIBS=
|
||||
AC_CHECK_HEADER(lirc/lirc_client.h,[AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=1
|
||||
LIRC_LIBS=-llirc_client],HAVE_LIRC=0)],HAVE_LIRC=0)
|
||||
])
|
||||
258
m4/attributes.m4
Normal file
258
m4/attributes.m4
Normal file
|
|
@ -0,0 +1,258 @@
|
|||
dnl Macros to check the presence of generic (non-typed) symbols.
|
||||
dnl Copyright (c) 2006-2007 Diego Pettenò <flameeyes@gmail.com>
|
||||
dnl Copyright (c) 2006-2007 xine project
|
||||
dnl
|
||||
dnl This program is free software; you can redistribute it and/or modify
|
||||
dnl it under the terms of the GNU General Public License as published by
|
||||
dnl the Free Software Foundation; either version 2, or (at your option)
|
||||
dnl any later version.
|
||||
dnl
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
dnl GNU General Public License for more details.
|
||||
dnl
|
||||
dnl You should have received a copy of the GNU General Public License
|
||||
dnl along with this program; if not, write to the Free Software
|
||||
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
dnl 02110-1301, USA.
|
||||
dnl
|
||||
dnl As a special exception, the copyright owners of the
|
||||
dnl macro gives unlimited permission to copy, distribute and modify the
|
||||
dnl configure scripts that are the output of Autoconf when processing the
|
||||
dnl Macro. You need not follow the terms of the GNU General Public
|
||||
dnl License when using or distributing such scripts, even though portions
|
||||
dnl of the text of the Macro appear in them. The GNU General Public
|
||||
dnl License (GPL) does govern all other use of the material that
|
||||
dnl constitutes the Autoconf Macro.
|
||||
dnl
|
||||
dnl This special exception to the GPL applies to versions of the
|
||||
dnl Autoconf Macro released by this project. When you make and
|
||||
dnl distribute a modified version of the Autoconf Macro, you may extend
|
||||
dnl this special exception to the GPL to apply to your modified version as
|
||||
dnl well.
|
||||
|
||||
AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
|
||||
AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]),
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $1"
|
||||
AC_COMPILE_IFELSE([int a;],
|
||||
[eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"],
|
||||
[eval "AS_TR_SH([cc_cv_cflags_$1])='no'"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_CHECK_CFLAGS], [
|
||||
AC_CACHE_CHECK([if $CC supports $1 flag],
|
||||
AS_TR_SH([cc_cv_cflags_$1]),
|
||||
CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here!
|
||||
)
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_CHECK_LDFLAGS], [
|
||||
AC_CACHE_CHECK([if $CC supports $1 flag],
|
||||
AS_TR_SH([cc_cv_ldflags_$1]),
|
||||
[ac_save_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS $1"
|
||||
AC_LINK_IFELSE([int main() { return 1; }],
|
||||
[eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
|
||||
[eval "AS_TR_SH([cc_cv_ldflags_$1])="])
|
||||
LDFLAGS="$ac_save_LDFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
dnl Check for a -Werror flag or equivalent. -Werror is the GCC
|
||||
dnl and ICC flag that tells the compiler to treat all the warnings
|
||||
dnl as fatal. We usually need this option to make sure that some
|
||||
dnl constructs (like attributes) are not simply ignored.
|
||||
dnl
|
||||
dnl Other compilers don't support -Werror per se, but they support
|
||||
dnl an equivalent flag:
|
||||
dnl - Sun Studio compiler supports -errwarn=%all
|
||||
AC_DEFUN([CC_CHECK_WERROR], [
|
||||
AC_CACHE_CHECK(
|
||||
[for $CC way to treat warnings as errors],
|
||||
[cc_cv_werror],
|
||||
[CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
|
||||
[CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_CHECK_ATTRIBUTE], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
|
||||
AS_TR_SH([cc_cv_attribute_$1]),
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
AC_COMPILE_IFELSE([$3],
|
||||
[eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
|
||||
[eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
|
||||
[AC_DEFINE(
|
||||
AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
|
||||
[Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
|
||||
)
|
||||
$4],
|
||||
[$5])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[constructor],,
|
||||
[void __attribute__((constructor)) ctor() { int a; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[format], [format(printf, n, n)],
|
||||
[void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[format_arg], [format_arg(printf)],
|
||||
[char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[visibility_$1], [visibility("$1")],
|
||||
[void __attribute__((visibility("$1"))) $1_function() { }],
|
||||
[$2], [$3])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[nonnull], [nonnull()],
|
||||
[void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[unused], ,
|
||||
[void some_function(void *foo, __attribute__((unused)) void *bar);],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[sentinel], ,
|
||||
[void some_function(void *foo, ...) __attribute__((sentinel));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[deprecated], ,
|
||||
[void some_function(void *foo, ...) __attribute__((deprecated));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[alias], [weak, alias],
|
||||
[void other_function(void *foo) { }
|
||||
void some_function(void *foo) __attribute__((weak, alias("other_function")));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[malloc], ,
|
||||
[void * __attribute__((malloc)) my_alloc(int n);],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_PACKED], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[packed], ,
|
||||
[struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_CONST], [
|
||||
CC_CHECK_ATTRIBUTE(
|
||||
[const], ,
|
||||
[int __attribute__((const)) twopow(int n) { return 1 << n; } ],
|
||||
[$1], [$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_FLAG_VISIBILITY], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
|
||||
[cc_cv_flag_visibility],
|
||||
[cc_flag_visibility_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
|
||||
cc_cv_flag_visibility='yes',
|
||||
cc_cv_flag_visibility='no')
|
||||
CFLAGS="$cc_flag_visibility_save_CFLAGS"])
|
||||
|
||||
AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
|
||||
[AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
|
||||
[Define this if the compiler supports the -fvisibility flag])
|
||||
$1],
|
||||
[$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_FUNC_EXPECT], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([if compiler has __builtin_expect function],
|
||||
[cc_cv_func_expect],
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
AC_COMPILE_IFELSE(
|
||||
[int some_function() {
|
||||
int a = 3;
|
||||
return (int)__builtin_expect(a, 3);
|
||||
}],
|
||||
[cc_cv_func_expect=yes],
|
||||
[cc_cv_func_expect=no])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
AS_IF([test "x$cc_cv_func_expect" = "xyes"],
|
||||
[AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
|
||||
[Define this if the compiler supports __builtin_expect() function])
|
||||
$1],
|
||||
[$2])
|
||||
])
|
||||
|
||||
AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
|
||||
AC_REQUIRE([CC_CHECK_WERROR])
|
||||
AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
|
||||
[cc_cv_attribute_aligned],
|
||||
[ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
||||
for cc_attribute_align_try in 64 32 16 8 4 2; do
|
||||
AC_COMPILE_IFELSE([
|
||||
int main() {
|
||||
static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
|
||||
return c;
|
||||
}], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
|
||||
done
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
])
|
||||
|
||||
if test "x$cc_cv_attribute_aligned" != "x"; then
|
||||
AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
|
||||
[Define the highest alignment supported])
|
||||
fi
|
||||
])
|
||||
13
m4/check_define.m4
Normal file
13
m4/check_define.m4
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
AC_DEFUN([AC_CHECK_DEFINE],[
|
||||
AS_VAR_PUSHDEF([ac_var],[ac_cv_defined_$1_$2])dnl
|
||||
AC_CACHE_CHECK([for $1 in $2], ac_var,
|
||||
AC_TRY_COMPILE([#include <$2>],[
|
||||
#ifdef $1
|
||||
int ok;
|
||||
#else
|
||||
choke me
|
||||
#endif
|
||||
],AS_VAR_SET(ac_var, yes),AS_VAR_SET(ac_var, no)))
|
||||
AS_IF([test AS_VAR_GET(ac_var) != "no"], [$3], [$4])dnl
|
||||
AS_VAR_POPDEF([ac_var])dnl
|
||||
])
|
||||
17
m4/tls.m4
Normal file
17
m4/tls.m4
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
AC_DEFUN([CC_CHECK_TLS], [
|
||||
AC_CACHE_CHECK([whether $CC knows __thread for Thread-Local Storage],
|
||||
cc_cv_tls___thread,
|
||||
[AC_COMPILE_IFELSE(
|
||||
AC_LANG_PROGRAM(
|
||||
[[static __thread int a = 6;]],
|
||||
[[a = 5;]]),
|
||||
[cc_cv_tls___thread=yes],
|
||||
[cc_cv_tls___thread=no])
|
||||
])
|
||||
|
||||
AS_IF([test "x$cc_cv_tls___thread" = "xyes"],
|
||||
[AC_DEFINE([SUPPORT_TLS___THREAD], 1,
|
||||
[Define this if the compiler supports __thread for Thread-Local Storage])
|
||||
$1],
|
||||
[$2])
|
||||
])
|
||||
119
man/Makefile.am
119
man/Makefile.am
|
|
@ -17,9 +17,10 @@
|
|||
|
||||
pulseconfdir=$(sysconfdir)/pulse
|
||||
|
||||
if BUILD_MANPAGES
|
||||
CLEANFILES = \
|
||||
$(noinst_DATA)
|
||||
|
||||
man_MANS = \
|
||||
dist_man_MANS = \
|
||||
pulseaudio.1 \
|
||||
esdcompat.1 \
|
||||
pax11publish.1 \
|
||||
|
|
@ -49,115 +50,18 @@ noinst_DATA = \
|
|||
pulse-client.conf.5.xml \
|
||||
default.pa.5.xml
|
||||
|
||||
CLEANFILES = \
|
||||
$(noinst_DATA)
|
||||
|
||||
pulseaudio.1.xml: pulseaudio.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
esdcompat.1.xml: esdcompat.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pax11publish.1.xml: pax11publish.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
paplay.1.xml: paplay.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pacat.1.xml: pacat.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pacmd.1.xml: pacmd.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pactl.1.xml: pactl.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pasuspender.1.xml: pasuspender.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
padsp.1.xml: padsp.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pabrowse.1.xml: pabrowse.1.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pulse-daemon.conf.5.xml: pulse-daemon.conf.5.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
pulse-client.conf.5.xml: pulse-client.conf.5.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
default.pa.5.xml: default.pa.5.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
if BUILD_MANPAGES
|
||||
|
||||
CLEANFILES += \
|
||||
$(man_MANS)
|
||||
$(dist_man_MANS)
|
||||
|
||||
pulseaudio.1: pulseaudio.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
%.xml: %.xml.in Makefile
|
||||
sed -e 's,@pulseconfdir\@,$(pulseconfdir),g' \
|
||||
-e 's,@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),g' \
|
||||
-e 's,@PACKAGE_URL\@,$(PACKAGE_URL),g' $< > $@
|
||||
|
||||
esdcompat.1: esdcompat.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pax11publish.1: pax11publish.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
paplay.1: paplay.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pacat.1: pacat.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pacmd.1: pacmd.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pactl.1: pactl.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pasuspender.1: pasuspender.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
padsp.1: padsp.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pabrowse.1: pabrowse.1.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pulse-daemon.conf.5: pulse-daemon.conf.5.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
pulse-client.conf.5: pulse-client.conf.5.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
|
||||
default.pa.5: default.pa.5.xml Makefile
|
||||
perl xmltoman $< > $@ || rm -f $@
|
||||
%: %.xml Makefile
|
||||
perl $(srcdir)/xmltoman $< > $@ || rm -f $@
|
||||
|
||||
xmllint: $(noinst_DATA)
|
||||
for f in $(noinst_DATA) ; do \
|
||||
|
|
@ -167,7 +71,6 @@ xmllint: $(noinst_DATA)
|
|||
endif
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(man_MANS) \
|
||||
pulseaudio.1.xml.in \
|
||||
esdcompat.1.xml.in \
|
||||
pax11publish.1.xml.in \
|
||||
|
|
|
|||
|
|
@ -102,7 +102,9 @@ static lt_module bind_now_open(lt_user_data d, const char *fname, lt_dladvise ad
|
|||
pa_assert(fname);
|
||||
|
||||
if (!(m = dlopen(fname, PA_BIND_NOW))) {
|
||||
#ifdef HAVE_LT_DLMUTEX_REGISTER
|
||||
libtool_set_error(dlerror());
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -114,7 +116,9 @@ static int bind_now_close(lt_user_data d, lt_module m) {
|
|||
pa_assert(m);
|
||||
|
||||
if (dlclose(m) != 0){
|
||||
#ifdef HAVE_LT_DLMUTEX_REGISTER
|
||||
libtool_set_error(dlerror());
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -128,7 +132,9 @@ static lt_ptr bind_now_find_sym(lt_user_data d, lt_module m, const char *symbol)
|
|||
pa_assert(symbol);
|
||||
|
||||
if (!(ptr = dlsym(m, symbol))) {
|
||||
#ifdef HAVE_LT_DLMUTEX_REGISTER
|
||||
libtool_set_error(dlerror());
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ void *pa_tls_set(pa_tls *t, void *userdata);
|
|||
} \
|
||||
struct __stupid_useless_struct_to_allow_trailing_semicolon
|
||||
|
||||
#ifdef HAVE_TLS_BUILTIN
|
||||
#ifdef SUPPORT_TLS___THREAD
|
||||
/* An optimized version of the above that requires no dynamic
|
||||
* allocation if the compiler supports __thread */
|
||||
#define PA_STATIC_TLS_DECLARE_NO_FREE(name) \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue