configure: Use AC_ARG_WITH also for openssl options.
[paraslash.git] / configure.ac
index a7bd3e1..0201896 100644 (file)
@@ -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
@@ -94,7 +95,7 @@ server_command_list afs_command_list audiod_command_list bitstream imdct wma_afh
 wma_common wmadec_filter buffer_tree
 "
 
-executables="server recv filter audioc write client afh audiod"
+executables="recv filter audioc write client afh audiod"
 
 recv_cmdline_objs="add_cmdline(recv http_recv dccp_recv udp_recv)"
 
@@ -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)"
@@ -257,57 +258,67 @@ fi
 AC_CHECK_HEADER(osl.h, [], have_osl=no)
 AC_CHECK_LIB([osl], [osl_open_table], [], have_osl=no)
 if test "$have_osl" = "no"; then
-       AC_MSG_ERROR([libosl not found, download it at
+       AC_MSG_WARN([libosl not found, can not build para_server.
+Download libosl at
        http://systemlinux.org/~maan/osl
 or execute
        git clone git://git.tuebingen.mpg.de/osl
        ])
+else
+       extras="$extras server"
+       executables="$executables server"
+       AC_SUBST(osl_cppflags)
+       server_ldflags="$server_ldflags $osl_libs -losl"
 fi
-AC_SUBST(osl_cppflags)
-server_ldflags="$server_ldflags -L$with_osl_libs"
 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=],
@@ -731,7 +742,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"