client: Do not leak buffer tree node on exit.
[paraslash.git] / configure.ac
index 1b2dc11..8904281 100644 (file)
@@ -87,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
@@ -118,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"
@@ -131,7 +131,7 @@ 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=""
 server_audio_formats="mp3 wma"
@@ -145,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)"
@@ -273,46 +273,52 @@ 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 <trostler@juniper.net>
-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=],
@@ -353,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
@@ -721,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])