]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - configure.ac
ogg/opus: Infrastructure.
[paraslash.git] / configure.ac
index 6f0fbc0c0423190acc9600dd4507afd9ccac5e23..b3f3afaf66c34dafe95e0f9fe7f82da3b80a3de5 100644 (file)
@@ -483,12 +483,17 @@ fi
 AC_CHECK_HEADER(curses.h, [], [
        have_curses="no"
 ])
-AC_CHECK_LIB([curses], [initscr], [], [
-       have_curses="no"
-])
+gui_ldflags="$curses_libs"
+AC_CHECK_LIB([ncursesw], [initscr],
+       [gui_ldflags="$curses_libs -lncursesw"], [
+               AC_CHECK_LIB([curses], [initscr],
+                       [gui_ldflags="$curses_libs -lcurses"],
+                       [have_curses="no"]
+               )
+       ]
+)
 if test "$have_curses" = "yes"; then
        AC_SUBST(curses_cppflags)
-       AC_DEFINE(HAVE_NCURSES, 1, [define to 1 to turn on curses support])
        extras="$extras gui"
        executables="$executables gui"
 else
@@ -549,7 +554,7 @@ if test ${have_core_audio} = yes; then
        default_writer="OSX_WRITE"
        AC_DEFINE(HAVE_CORE_AUDIO, 1, define to 1 on Mac Os X)
 fi
-########################################################### ogg/vorbis/speex
+####################################################### ogg/vorbis/speex/opus
 have_ogg="yes"
 OLD_CPPFLAGS="$CPPFLAGS"
 OLD_LD_FLAGS="$LDFLAGS"
@@ -566,6 +571,10 @@ AC_ARG_WITH(speex_headers, [AS_HELP_STRING(--with-speex-headers=dir,
        [look for speex headers also in dir])])
 AC_ARG_WITH(speex_libs, [AS_HELP_STRING(--with-speex-libs=dir,
        [look for speex libs also in dir])])
+AC_ARG_WITH(opus_headers, [AS_HELP_STRING(--with-opus-headers=dir,
+       [look for opus headers also in dir])])
+AC_ARG_WITH(opus_libs, [AS_HELP_STRING(--with-opus-libs=dir,
+       [look for opus libs also in dir])])
 
 if test -n "$with_ogg_headers"; then
        ogg_cppflags="-I$with_ogg_headers"
@@ -580,6 +589,7 @@ AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ])
 
 have_vorbis="yes"
 have_speex="yes"
+have_opus="yes"
 if test "$have_ogg" = "yes"; then
        # vorbis
        if test -n "$with_vorbis_headers"; then
@@ -604,14 +614,29 @@ if test "$have_ogg" = "yes"; then
        fi
        AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ])
        AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ])
+
+       # opus
+       if test -n "$with_opus_headers"; then
+               opus_cppflags="-I$with_opus_headers"
+               CPPFLAGS="$CPPFLAGS $opus_cppflags"
+       fi
+       if test -n "$with_opus_libs"; then
+               speex_libs="-L$with_opus_libs"
+               LDFLAGS="$LDFLAGS $opus_libs"
+       fi
+       AC_CHECK_LIB([opus], [opus_multistream_decode], [], [ have_opus="no" ])
+       AC_CHECK_HEADERS([opus/opus.h], [], [ have_opus="no" ])
 else
-       AC_MSG_WARN([vorbis/speex depend on libogg, which was not detected])
+       AC_MSG_WARN([vorbis/speex/opus depend on libogg, which was not detected])
        have_vorbis="no"
        have_speex="no"
+       have_opus="no"
 fi
 
 msg="support in para_server/para_filter/para_afh"
-if test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; then
+if test "$have_vorbis" = "yes" || \
+               test "$have_speex" = "yes" || \
+               test "$have_opus" = "yes"; then
        AC_SUBST(ogg_cppflags)
        ogg_libs="$ogg_libs -logg"
        if test "$OSTYPE" = "Darwin"; then
@@ -677,6 +702,30 @@ if test "$have_speex" = "yes"; then
 else
        AC_MSG_WARN([no ogg/speex $msg])
 fi
+if test "$have_opus" = "yes"; then
+       all_errlist_objs="$all_errlist_objs opusdec_filter opus_afh opus_common"
+       AC_DEFINE(HAVE_OPUS, 1, define to 1 to turn on ogg/opus support)
+       filters="$filters opusdec"
+       opus_libs="-lopus"
+       server_ldflags="$server_ldflags $opus_libs"
+       filter_ldflags="$filter_ldflags $opus_libs"
+       audiod_ldflags="$audiod_ldflags $opus_libs"
+       afh_ldflags="$afh_ldflags $opus_libs"
+       play_ldflags="$play_ldflags $opus_libs"
+       recv_ldflags="$recv_ldflags $opus_libs"
+
+       server_errlist_objs="$server_errlist_objs opus_afh opus_common"
+       filter_errlist_objs="$filter_errlist_objs opusdec_filter opus_common"
+       audiod_errlist_objs="$audiod_errlist_objs opusdec_filter opus_common"
+       afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
+       play_errlist_objs="$play_errlist_objs opusdec_filter opus_afh opus_common"
+       recv_errlist_objs="$recv_errlist_objs opus_afh opus_common"
+
+       audiod_audio_formats="$audiod_audio_formats opus"
+       server_audio_formats="$server_audio_formats opus"
+else
+       AC_MSG_WARN([no ogg/opus $msg])
+fi
 CPPFLAGS="$OLD_CPPFLAGS"
 LDFLAGS="$OLD_LDFLAGS"
 LIBS="$OLD_LIBS"
@@ -1255,6 +1304,7 @@ AC_DEFINE_UNQUOTED(INIT_AUDIOC_ERRLISTS,
        objlist_to_errlist($audioc_errlist_objs), errors used by para_audioc)
 
 AC_SUBST(gui_objs, add_dot_o($gui_objs))
+AC_SUBST(gui_ldflags, $gui_ldflags)
 AC_DEFINE_UNQUOTED(INIT_GUI_ERRLISTS,
        objlist_to_errlist($gui_errlist_objs), errors used by para_gui)
 
@@ -1263,8 +1313,6 @@ AC_SUBST(play_ldflags, $play_ldflags)
 AC_DEFINE_UNQUOTED(INIT_PLAY_ERRLISTS,
        objlist_to_errlist($play_errlist_objs), errors used by para_play)
 
-AC_MSG_NOTICE(play objs: $play_objs)
-
 enum="$(for i in $filters; do printf "${i}_FILTER, " | tr '[a-z]' '[A-Z]'; done)"
 AC_DEFINE_UNQUOTED(FILTER_ENUM, $enum NUM_SUPPORTED_FILTERS,
        enum of supported filters)