X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=sidebyside;f=configure.ac;h=49fb098753f6946c2cd17296144e7e82f56b595b;hb=063328d833daa7e06589645e05d4d2e02f55e911;hp=6e3ab366e4ad26ab2dd2bcb27d798e345ac81cc3;hpb=9609fd30e0d3db45ede3ab5c6bc3a77c15b6aef8;p=paraslash.git diff --git a/configure.ac b/configure.ac index 6e3ab366..49fb0987 100644 --- a/configure.ac +++ b/configure.ac @@ -133,7 +133,7 @@ server_errlist_objs="server afh_common mp3_afh vss command net string signal blob playlist sha1 sched acl send_common udp_send color fec server_command_list afs_command_list wma_afh wma_common" server_ldflags="-losl" -server_audio_formats=" mp3 wma" +server_audio_formats="mp3 wma" write_cmdline_objs="add_cmdline(write file_write)" write_errlist_objs="write write_common file_write time fd string sched stdin @@ -156,6 +156,86 @@ fade_cmdline_objs="add_cmdline(fade)" fade_errlist_objs="fade exec string fd" +########################################################################### snprintf +# =========================================================================== +# http://www.nongnu.org/autoconf-archive/ax_func_snprintf.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_FUNC_SNPRINTF +# +# DESCRIPTION +# +# Checks for a fully C99 compliant snprintf, in particular checks whether +# it does bounds checking and returns the correct string length; does the +# same check for vsnprintf. If no working snprintf or vsnprintf is found, +# it prints an error message and aborts. +# +# LICENSE +# +# Copyright (c) 2008 Ruediger Kuhlmann +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +AU_ALIAS([AC_FUNC_SNPRINTF], [AX_FUNC_SNPRINTF]) +AC_DEFUN([AX_FUNC_SNPRINTF], +[AC_CHECK_FUNCS(snprintf vsnprintf) +AC_MSG_CHECKING(for working snprintf) +AC_CACHE_VAL(ac_cv_have_working_snprintf, +[AC_TRY_RUN( +[#include + +int main(void) +{ + char bufs[5] = { 'x', 'x', 'x', '\0', '\0' }; + char bufd[5] = { 'x', 'x', 'x', '\0', '\0' }; + int i; + i = snprintf (bufs, 2, "%s", "111"); + if (strcmp (bufs, "1")) exit (1); + if (i != 3) exit (1); + i = snprintf (bufd, 2, "%d", 111); + if (strcmp (bufd, "1")) exit (1); + if (i != 3) exit (1); + exit(0); +}], ac_cv_have_working_snprintf=yes, ac_cv_have_working_snprintf=no, ac_cv_have_working_snprintf=cross)]) +AC_MSG_RESULT([$ac_cv_have_working_snprintf]) +AC_MSG_CHECKING(for working vsnprintf) +AC_CACHE_VAL(ac_cv_have_working_vsnprintf, +[AC_TRY_RUN( +[#include +#include + +int my_vsnprintf (char *buf, const char *tmpl, ...) +{ + int i; + va_list args; + va_start (args, tmpl); + i = vsnprintf (buf, 2, tmpl, args); + va_end (args); + return i; +} + +int main(void) +{ + char bufs[5] = { 'x', 'x', 'x', '\0', '\0' }; + char bufd[5] = { 'x', 'x', 'x', '\0', '\0' }; + int i; + i = my_vsnprintf (bufs, "%s", "111"); + if (strcmp (bufs, "1")) exit (1); + if (i != 3) exit (1); + i = my_vsnprintf (bufd, "%d", 111); + if (strcmp (bufd, "1")) exit (1); + if (i != 3) exit (1); + exit(0); +}], ac_cv_have_working_vsnprintf=yes, ac_cv_have_working_vsnprintf=no, ac_cv_have_working_vsnprintf=cross)]) +AC_MSG_RESULT([$ac_cv_have_working_vsnprintf]) +if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes"; then +AC_MSG_ERROR([fatal: buggy snprintf() detected]) +fi]) +AX_FUNC_SNPRINTF() ########################################################################### osl have_osl=yes OLD_CPPFLAGS="$CPPFLAGS" @@ -365,7 +445,7 @@ AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ]) AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_ogg="no" ]) AC_CHECK_HEADERS([ogg/ogg.h vorbis/codec.h], [], [ have_ogg="no" ]) if test "$have_ogg" = "yes"; then - all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh" + all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh ogg_afh_common" AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg vorbis support) filters="$filters oggdec" if test "$OSTYPE" = "Darwin"; then @@ -376,13 +456,10 @@ if test "$have_ogg" = "yes"; then audiod_ldflags="$audiod_ldflags $oggvorbis_libs -lvorbis -lvorbisfile" afh_ldflags="$afh_ldflags $oggvorbis_libs -logg -lvorbis -lvorbisfile" - filter_cmdline_objs="$filter_cmdline_objs add_cmdline(oggdec_filter)" - audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(oggdec_filter)" - - server_errlist_objs="$server_errlist_objs ogg_afh" + server_errlist_objs="$server_errlist_objs ogg_afh ogg_afh_common" filter_errlist_objs="$filter_errlist_objs oggdec_filter" audiod_errlist_objs="$audiod_errlist_objs oggdec_filter" - afh_errlist_objs="$afh_errlist_objs ogg_afh" + afh_errlist_objs="$afh_errlist_objs ogg_afh ogg_afh_common" audiod_audio_formats="$audiod_audio_formats ogg" server_audio_formats="$server_audio_formats ogg" @@ -660,6 +737,9 @@ AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [char * array of all status items] ) +AC_DEFINE_UNQUOTED(SERVER_AUDIO_FORMATS, "$server_audio_formats", + [formats supported by para_server and para_afh]) + AC_SUBST(executables, add_para($executables))