X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=configure.ac;h=8904281235c49caaef2211d008f399c80de19e26;hp=f47a56df0c96f71d68e19b3655aa017925536a83;hb=c41a04fb296e068ebfec78bba9678bf15daea896;hpb=d5738d17b54186db8c9c7f119a03b58382ae9be4 diff --git a/configure.ac b/configure.ac index f47a56df..89042812 100644 --- a/configure.ac +++ b/configure.ac @@ -31,12 +31,12 @@ AC_REPLACE_FNMATCH AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT +AC_HEADER_STDBOOL AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h limits.h netdb.h netinet/in.h \ stdlib.h string.h sys/socket.h sys/time.h sys/timeb.h sys/un.h \ sys/ipc.h unistd.h utime.h stddef.h], [], [AC_MSG_ERROR([$ac_header not found])]) - # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE @@ -45,6 +45,7 @@ AC_TYPE_PID_T AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM +AC_TYPE_INT8_T AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT64_T @@ -75,7 +76,7 @@ AC_FUNC_LSTAT AC_CHECK_FUNCS([atexit dup2 memchr memmove memset \ regcomp select strchr strdup strerror strstr strtol uname \ fchdir gettimeofday localtime_r munmap strcasecmp strcspn \ - strncasecmp strrchr strspn alarm mkdir rmdir], [], + strncasecmp strrchr strspn alarm mkdir inet_ntoa socket], [], [AC_MSG_ERROR([function not found, cannot live without it])]) cmdline_dir="cmdline" @@ -86,7 +87,7 @@ AC_DEFUN([add_cmdline],[$(for i in $@; do printf "${i}.cmdline "; done)]) all_errlist_objs="server mp3_afh afh_common vss command net string signal time daemon stat crypt http_send close_on_fork ipc acl afh fade amp_filter dccp_send fd user_list chunk_queue afs aft mood score attribute blob ringbuffer -playlist sha1 sched audiod grab_client filter_common wav_filter compress_filter +playlist sched audiod grab_client filter_common wav_filter compress_filter http_recv dccp_recv recv_common write_common file_write audiod_command client_common recv stdout filter stdin audioc write client exec send_common ggo udp_recv udp_send color fec fecdec_filter prebuffer_filter mm @@ -117,7 +118,7 @@ audiod_cmdline_objs="add_cmdline(audiod compress_filter http_recv dccp_recv file audiod_errlist_objs="audiod signal string daemon stat net time grab_client filter_common wav_filter compress_filter amp_filter http_recv dccp_recv recv_common fd sched write_common file_write audiod_command crypt fecdec_filter - client_common ggo udp_recv color fec prebuffer_filter sha1 audiod_command_list + client_common ggo udp_recv color fec prebuffer_filter audiod_command_list bitstream imdct wma_common wmadec_filter buffer_tree" audiod_ldflags="-lm" audiod_audio_formats="wma" @@ -130,9 +131,9 @@ server_cmdline_objs="add_cmdline(server)" server_errlist_objs="server afh_common mp3_afh vss command net string signal time daemon crypt http_send close_on_fork mm ipc dccp_send fd user_list chunk_queue afs aft mood score attribute - blob playlist sha1 sched acl send_common udp_send color fec + blob playlist sched acl send_common udp_send color fec server_command_list afs_command_list wma_afh wma_common" -server_ldflags="-losl" +server_ldflags="" server_audio_formats="mp3 wma" write_cmdline_objs="add_cmdline(write file_write)" @@ -144,7 +145,7 @@ default_writer="FILE_WRITE" client_cmdline_objs="add_cmdline(client)" client_errlist_objs="client net string crypt fd sched stdin stdout time - client_common sha1 buffer_tree" + client_common buffer_tree" client_ldflags="" gui_cmdline_objs="add_cmdline(gui)" @@ -267,51 +268,57 @@ else extras="$extras server" executables="$executables server" AC_SUBST(osl_cppflags) - server_ldflags="$server_ldflags -L$with_osl_libs" + server_ldflags="$server_ldflags $osl_libs -losl" fi CPPFLAGS="$OLD_CPPFLAGS" LDFLAGS="$OLD_LDFLAGS" LIBS="$OLD_LIBS" -########################################################################### ssl -dnl @synopsis CHECK_SSL -dnl -dnl based on the follwing macro from the autoconf archive -dnl -dnl @category InstalledPackages -dnl @author Mark Ethan Trostler -dnl @version 2003-01-28 -dnl @license AllPermissive - -AC_DEFUN([CHECK_SSL], -[ - for ssldir in $1 /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do - AC_MSG_CHECKING(for openssl in $ssldir) - if test -f "$ssldir/include/openssl/ssl.h"; then - found_ssl="yes" - AC_MSG_RESULT(yes) - SSL_CFLAGS="-I$ssldir/include" - SSL_CPPFLAGS="-I$ssldir/include" - break - fi - AC_MSG_RESULT(no) - done - if test x_$found_ssl != x_yes; then - AC_MSG_ERROR(Cannot find ssl libraries) - else - SSL_LIBS="-lssl -lcrypto"; - SSL_LDFLAGS="-L$ssldir/lib"; +###################################################################### openssl +OLD_CPPFLAGS="$CPPFLAGS" +OLD_LD_FLAGS="$LDFLAGS" +OLD_LIBS="$LIBS" +have_openssl="yes" +AC_ARG_WITH(openssl_headers, [AC_HELP_STRING(--with-openssl-headers=dir, + [look for openssl headers also in dir])]) +if test -n "$with_openssl_headers"; then + openssl_cppflags="-I$with_openssl_headers" + CPPFLAGS="$CPPFLAGS $openssl_cppflags" +fi +AC_ARG_WITH(openssl_libs, [AC_HELP_STRING(--with-openssl-libs=dir, + [look for openssl libraries also in dir])]) +if test -n "$with_openssl_libs"; then + openssl_libs="-L$with_openssl_libs" + LDFLAGS="$LDFLAGS $openssl_libs" +fi +AC_CHECK_HEADER(openssl/ssl.h, [], [have_openssl="no"]) +AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"]) +if test "$have_openssl" = "no" -a -z "$with_openssl_headers$with_openssl_libs"; then + # try harder: openssl is sometimes installed in /usr/local/ssl + openssl_cppflags="-I/usr/local/ssl/include" + CPPFLAGS="$CPPFLAGS $openssl_cppflags" + openssl_libs="-L/usr/local/ssl/lib" + LDFLAGS="$LDFLAGS $openssl_libs" + # clear cache + unset ac_cv_header_openssl_ssl_h 2> /dev/null + unset ac_cv_lib_crypto_RAND_bytes 2> /dev/null + AC_CHECK_HEADER(openssl/ssl.h, [have_openssl="yes"], []) + if test "$have_openssl" = "yes"; then + AC_CHECK_LIB([crypto], [RAND_bytes], [], [have_openssl="no"]) fi - AC_SUBST(SSL_CPPFLAGS) -])dnl - -AC_ARG_ENABLE(ssldir, [AS_HELP_STRING(--enable-ssldir=path, - [Search for openssl also in path.])]) -if test "$enable_ssldir" = "yes"; then enable_ssldir=""; fi -CHECK_SSL($enable_ssldir) -server_ldflags="$server_ldflags $SSL_LDFLAGS $SSL_LIBS" -client_ldflags="$client_ldflags $SSL_LDFLAGS $SSL_LIBS" -audiod_ldflags="$audiod_ldflags $SSL_LDFLAGS $SSL_LIBS" - +fi +if test "$have_openssl" = "yes"; then + AC_DEFINE(HAVE_OPENSSL, 1, [define to 1 to turn on openssl support]) + AC_SUBST(openssl_cppflags) + openssl_libs="$openssl_libs -lssl -lcrypto" + server_ldflags="$server_ldflags $openssl_libs" + client_ldflags="$client_ldflags $openssl_libs" + audiod_ldflags="$audiod_ldflags $openssl_libs" +else + AC_MSG_ERROR([openssl libraries not found]) +fi +CPPFLAGS="$OLD_CPPFLAGS" +LDFLAGS="$OLD_LDFLAGS" +LIBS="$OLD_LIBS" ########################################################################### libsocket AC_CHECK_LIB([c], [socket], [socket_lib=], @@ -352,31 +359,31 @@ if test ${have_ucred} = yes; then fi ########################################################################### curses -have_ncurses="yes" +have_curses="yes" OLD_CPPFLAGS="$CPPFLAGS" OLD_LD_FLAGS="$LDFLAGS" OLD_LIBS="$LIBS" -AC_ARG_WITH(ncurses_headers, [AC_HELP_STRING(--with-ncurses-headers=dir, - [look for ncurses.h also in dir])]) -if test -n "$with_ncurses_headers"; then - ncurses_cppflags="-I$with_ncurses_headers" - CPPFLAGS="$CPPFLAGS $ncurses_cppflags" -fi -AC_ARG_WITH(ncurses_libs, [AC_HELP_STRING(--with-ncurses-libs=dir, - [look for libncurses also in dir])]) -if test -n "$with_ncurses_libs"; then - ncurses_libs="-L$with_ncurses_libs" - LDFLAGS="$LDFLAGS $ncurses_libs" +AC_ARG_WITH(curses_headers, [AC_HELP_STRING(--with-curses-headers=dir, + [look for curses.h also in dir])]) +if test -n "$with_curses_headers"; then + curses_cppflags="-I$with_curses_headers" + CPPFLAGS="$CPPFLAGS $curses_cppflags" +fi +AC_ARG_WITH(curses_libs, [AC_HELP_STRING(--with-curses-libs=dir, + [look for libcurses also in dir])]) +if test -n "$with_curses_libs"; then + curses_libs="-L$with_curses_libs" + LDFLAGS="$LDFLAGS $curses_libs" fi AC_CHECK_HEADER(curses.h, [], [ - have_ncurses="no" + have_curses="no" ]) -AC_CHECK_LIB([ncurses], [initscr], [], [ - have_ncurses="no" +AC_CHECK_LIB([curses], [initscr], [], [ + have_curses="no" ]) -if test "$have_ncurses" = "yes"; then - AC_SUBST(ncurses_cppflags) - AC_DEFINE(HAVE_NCURSES, 1, [define to 1 to turn on ncurses support]) +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 @@ -429,86 +436,120 @@ if test ${have_core_audio} = yes; then fi ########################################################### ogg/vorbis/speex have_ogg="yes" -have_vorbis="yes" -have_speex="yes" OLD_CPPFLAGS="$CPPFLAGS" OLD_LD_FLAGS="$LDFLAGS" OLD_LIBS="$LIBS" -AC_ARG_WITH(oggvorbis_headers, [AC_HELP_STRING(--with-oggvorbis-headers=dir, - [look for ogg/vorbis/speex headers also in dir])]) -if test -n "$with_oggvorbis_headers"; then - ogg_cppflags="-I$with_oggvorbis_headers" +AC_ARG_WITH(ogg_headers, [AC_HELP_STRING(--with-ogg-headers=dir, + [look for ogg headers also in dir])]) +AC_ARG_WITH(ogg_libs, [AC_HELP_STRING(--with-ogg-libs=dir, + [look for ogg libs also in dir])]) +AC_ARG_WITH(vorbis_headers, [AC_HELP_STRING(--with-vorbis-headers=dir, + [look for vorbis headers also in dir])]) +AC_ARG_WITH(vorbis_libs, [AC_HELP_STRING(--with-vorbis-libs=dir, + [look for vorbis libs also in dir])]) +AC_ARG_WITH(speex_headers, [AC_HELP_STRING(--with-speex-headers=dir, + [look for speex headers also in dir])]) +AC_ARG_WITH(speex_libs, [AC_HELP_STRING(--with-speex-libs=dir, + [look for speex libs also in dir])]) + +if test -n "$with_ogg_headers"; then + ogg_cppflags="-I$with_ogg_headers" CPPFLAGS="$CPPFLAGS $ogg_cppflags" fi -AC_ARG_WITH(oggvorbis_libs, [AC_HELP_STRING(--with-oggvorbis-libs=dir, - [look for ogg/vorbis/speex libs also in dir])]) -if test -n "$with_oggvorbis_libs"; then - ogg_libs="-L$with_oggvorbis_libs" +if test -n "$with_ogg_libs"; then + ogg_libs="-L$with_ogg_libs" LDFLAGS="$LDFLAGS $ogg_libs" fi - -AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ]) -AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ]) -AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ]) AC_CHECK_HEADERS([ogg/ogg.h], [], [ have_ogg="no"; ]) -AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ]) -AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ]) +AC_CHECK_LIB([ogg], [ogg_stream_init], [], [ have_ogg="no" ]) + +have_vorbis="yes" +have_speex="yes" +if test "$have_ogg" = "yes"; then + # vorbis + if test -n "$with_vorbis_headers"; then + vorbis_cppflags="-I$with_vorbis_headers" + CPPFLAGS="$CPPFLAGS $vorbis_cppflags" + fi + if test -n "$with_vorbis_libs"; then + vorbis_libs="-L$with_vorbis_libs" + LDFLAGS="$LDFLAGS $vorbis_libs" + fi + AC_CHECK_HEADERS([vorbis/codec.h], [], [ have_vorbis="no" ]) + AC_CHECK_LIB([vorbis], [vorbis_info_init], [], [ have_vorbis="no" ]) + + # speex + if test -n "$with_speex_headers"; then + speex_cppflags="-I$with_speex_headers" + CPPFLAGS="$CPPFLAGS $speex_cppflags" + fi + if test -n "$with_speex_libs"; then + speex_libs="-L$with_speex_libs" + LDFLAGS="$LDFLAGS $speex_libs" + fi + AC_CHECK_LIB([speex], [speex_decoder_init], [], [ have_speex="no" ]) + AC_CHECK_HEADERS([speex/speex.h], [], [ have_speex="no" ]) +else + have_vorbis="no" + have_speex="no" +fi + msg="support in para_server/para_filter/para_afh" -if test "$have_ogg" = "yes" && { test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; }; then +if test "$have_vorbis" = "yes" || test "$have_speex" = "yes"; then AC_SUBST(ogg_cppflags) ogg_libs="$ogg_libs -logg" if test "$OSTYPE" = "Darwin"; then - ogg_libs="-Wl,-bind_at_load $ogg_libs $ogg_libs" + ogg_libs="-Wl,-bind_at_load $ogg_libs" fi server_ldflags="$server_ldflags $ogg_libs" filter_ldflags="$filter_ldflags $ogg_libs" audiod_ldflags="$audiod_ldflags $ogg_libs" - all_errlist_objs="$all_errlist_objs ogg_afh_common" afh_ldflags="$afh_ldflags $ogg_libs" + all_errlist_objs="$all_errlist_objs ogg_afh_common" afh_errlist_objs="$afh_errlist_objs ogg_afh_common" server_errlist_objs="$server_errlist_objs ogg_afh_common" - if test "$have_vorbis" = "yes"; then - all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh" - AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support) - filters="$filters oggdec" - vorbis_libs="-lvorbis -lvorbisfile" - server_ldflags="$server_ldflags $vorbis_libs" - filter_ldflags="$filter_ldflags $vorbis_libs" - audiod_ldflags="$audiod_ldflags $vorbis_libs" - afh_ldflags="$afh_ldflags $vorbis_libs" - - server_errlist_objs="$server_errlist_objs ogg_afh" - filter_errlist_objs="$filter_errlist_objs oggdec_filter" - audiod_errlist_objs="$audiod_errlist_objs oggdec_filter" - afh_errlist_objs="$afh_errlist_objs ogg_afh" - - audiod_audio_formats="$audiod_audio_formats ogg" - server_audio_formats="$server_audio_formats ogg" - else - AC_MSG_WARN([no ogg/vorbis $msg]) - fi - if test "$have_speex" = "yes"; then - all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common" - AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support) - filters="$filters spxdec" - speex_libs="-lspeex" - server_ldflags="$server_ldflags $speex_libs" - filter_ldflags="$filter_ldflags $speex_libs" - audiod_ldflags="$audiod_ldflags $speex_libs" - afh_ldflags="$afh_ldflags $speex_libs" - - server_errlist_objs="$server_errlist_objs spx_afh spx_common" - filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common" - audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common" - afh_errlist_objs="$afh_errlist_objs spx_afh spx_common" - - audiod_audio_formats="$audiod_audio_formats spx" - server_audio_formats="$server_audio_formats spx" - else - AC_MSG_WARN([no ogg/speex $msg]) - fi else - AC_MSG_WARN([no ogg/vorbis ogg/speex $msg]) + AC_MSG_WARN([vorbis/speex require ogg]) +fi +if test "$have_vorbis" = "yes"; then + all_errlist_objs="$all_errlist_objs oggdec_filter ogg_afh" + AC_DEFINE(HAVE_OGGVORBIS, 1, define to 1 to turn on ogg/vorbis support) + filters="$filters oggdec" + vorbis_libs="-lvorbis -lvorbisfile" + server_ldflags="$server_ldflags $vorbis_libs" + filter_ldflags="$filter_ldflags $vorbis_libs" + audiod_ldflags="$audiod_ldflags $vorbis_libs" + afh_ldflags="$afh_ldflags $vorbis_libs" + + server_errlist_objs="$server_errlist_objs ogg_afh" + filter_errlist_objs="$filter_errlist_objs oggdec_filter" + audiod_errlist_objs="$audiod_errlist_objs oggdec_filter" + afh_errlist_objs="$afh_errlist_objs ogg_afh" + + audiod_audio_formats="$audiod_audio_formats ogg" + server_audio_formats="$server_audio_formats ogg" +else + AC_MSG_WARN([no ogg/vorbis $msg]) +fi +if test "$have_speex" = "yes"; then + all_errlist_objs="$all_errlist_objs spxdec_filter spx_afh spx_common" + AC_DEFINE(HAVE_SPEEX, 1, define to 1 to turn on ogg/speex support) + filters="$filters spxdec" + speex_libs="-lspeex" + server_ldflags="$server_ldflags $speex_libs" + filter_ldflags="$filter_ldflags $speex_libs" + audiod_ldflags="$audiod_ldflags $speex_libs" + afh_ldflags="$afh_ldflags $speex_libs" + + server_errlist_objs="$server_errlist_objs spx_afh spx_common" + filter_errlist_objs="$filter_errlist_objs spxdec_filter spx_common" + audiod_errlist_objs="$audiod_errlist_objs spxdec_filter spx_common" + afh_errlist_objs="$afh_errlist_objs spx_afh spx_common" + + audiod_audio_formats="$audiod_audio_formats spx" + server_audio_formats="$server_audio_formats spx" +else + AC_MSG_WARN([no ogg/speex $msg]) fi CPPFLAGS="$OLD_CPPFLAGS" LDFLAGS="$OLD_LDFLAGS" @@ -686,6 +727,67 @@ fi CPPFLAGS="$OLD_CPPFLAGS" LDFLAGS="$OLD_LDFLAGS" LIBS="$OLD_LIBS" +########################################################################### libao +OLD_CPPFLAGS="$CPPFLAGS" +OLD_LD_FLAGS="$LDFLAGS" +OLD_LIBS="$LIBS" + +have_ao="yes" +AC_ARG_WITH(ao_headers, [AC_HELP_STRING(--with-ao-headers=dir, + [look for ao/ao.h also in dir])]) +if test -n "$with_ao_headers"; then + ao_cppflags="-I$with_ao_headers" + CPPFLAGS="$CPPFLAGS $ao_cppflags" +fi +AC_ARG_WITH(ao_libs, [AC_HELP_STRING(--with-ao-libs=dir, + [look for libao also in dir])]) +if test -n "$with_ao_libs"; then + ao_libs="-L$with_ao_libs" + LDFLAGS="$LDFLAGS $ao_libs" +fi +msg="no libao support for para_audiod/para_write" +AC_CHECK_HEADERS([ao/ao.h], [ + ], [ + have_ao="no" + AC_MSG_WARN([ao.h not found, $msg]) +]) +if test "$have_ao" = "yes"; then + AC_CHECK_LIB([ao], [ao_initialize], [], [ + have_ao="no" + AC_MSG_WARN([ao lib not found or not working, $msg]) + ]) +fi +if test "$have_ao" = "yes"; then + AC_CHECK_HEADERS([pthread.h], [ + ], [ + have_ao="no" + AC_MSG_WARN([pthread.h not found, $msg]) + ]) +fi +if test "$have_ao" = "yes"; then + AC_CHECK_LIB([pthread], [pthread_create], [], [ + have_ao="no" + AC_MSG_WARN([pthread lib not found or not working, $msg]) + ]) +fi +if test "$have_ao" = "yes"; then + all_errlist_objs="$all_errlist_objs ao_write" + audiod_errlist_objs="$audiod_errlist_objs ao_write" + audiod_cmdline_objs="$audiod_cmdline_objs add_cmdline(ao_write)" + audiod_ldflags="$audiod_ldflags -lao -lpthread" + + write_errlist_objs="$write_errlist_objs ao_write" + write_cmdline_objs="$write_cmdline_objs add_cmdline(ao_write)" + write_ldflags="$write_ldflags $ao_libs -lao -lpthread" + writers="$writers ao" + AC_SUBST(ao_cppflags) +fi + +CPPFLAGS="$OLD_CPPFLAGS" +LDFLAGS="$OLD_LDFLAGS" +LIBS="$OLD_LIBS" + + AC_SUBST(install_sh, [$INSTALL]) AC_CONFIG_FILES([Makefile]) @@ -735,7 +837,6 @@ AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY, [$result], AC_DEFINE_UNQUOTED(SERVER_AUDIO_FORMATS, "$server_audio_formats", [formats supported by para_server and para_afh]) - AC_SUBST(executables, add_para($executables)) recv_objs="$recv_cmdline_objs $recv_errlist_objs"