X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=ngircd-alex.git;a=blobdiff_plain;f=configure.ng;h=bc30bed8a721a4b05f42d2d1fccd6b7dd85cb8d9;hp=a3cab6aee2a77b31cc901aa92ca5795ea5b5e415;hb=788da901ee3fa525a38dc99016d2612f6b945352;hpb=46b0eef721b9b3eec37d29aff65b6a7fc488a887 diff --git a/configure.ng b/configure.ng index a3cab6ae..bc30bed8 100644 --- a/configure.ng +++ b/configure.ng @@ -1,6 +1,6 @@ # # ngIRCd -- The Next Generation IRC Daemon -# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors +# Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -75,23 +75,55 @@ AC_C_CONST AC_C_INLINE __ng_PROTOTYPES__ -# -- Hard coded system and compiler dependencies/features/options ... -- +# -- Function Definitions -- AC_DEFUN([GCC_STACK_PROTECT_CC],[ - ssp_cc=yes - # we use -fstack-protector-all for the test to enfoce the use of the guard variable - AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector]) - ssp_old_cflags="$CFLAGS" - CFLAGS="$CFLAGS -fstack-protector-all" - AC_TRY_LINK(,,, ssp_cc=no) - echo $ssp_cc - CFLAGS="$ssp_old_cflags" - if test "X$ssp_cc" = "Xyes"; then - CFLAGS="$CFLAGS -fstack-protector" - AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.]) - fi + ssp_cc=yes + # Use -fstack-protector-all for the test to enfoce the use of the + # guard variable + AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector]) + ssp_old_cflags="$CFLAGS" + CFLAGS="$CFLAGS -fstack-protector-all" + AC_TRY_LINK(,,, ssp_cc=no) + echo $ssp_cc + CFLAGS="$ssp_old_cflags" + if test "X$ssp_cc" = "Xyes"; then + CFLAGS="$CFLAGS -fstack-protector" + AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.]) + fi +]) + +AC_DEFUN([WORKING_GETADDRINFO],[ + AC_CHECK_FUNCS([getaddrinfo],[ + AC_MSG_CHECKING([whether getaddrinfo() works]) + AC_TRY_RUN([ +#include +#include +#include +#include +int +main(int argc, char **argv) +{ + struct addrinfo hints, *ai; + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_PASSIVE; + hints.ai_socktype = SOCK_STREAM; + hints.ai_family = PF_UNSPEC; + if(getaddrinfo(NULL, "0", &hints, &ai) != 0) + return 1; + return 0; +} + ],[ + AC_DEFINE([HAVE_WORKING_GETADDRINFO], 1, [getaddrinfo(0)]) + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + ]) + ]) ]) +# -- Hard coded system and compiler dependencies/features/options ... -- + if test "$GCC" = "yes"; then # We are using the GNU C compiler. Good! CFLAGS="$CFLAGS -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes" @@ -110,7 +142,7 @@ esac # Add additional CFLAGS, eventually specified on the command line: test -n "$CFLAGS_ADD" && CFLAGS="$CFLAGS $CFLAGS_ADD" -CFLAGS="$CFLAGS -DSYSCONFDIR='\"\$(sysconfdir)\"'" +CFLAGS="$CFLAGS -DSYSCONFDIR='\"\$(sysconfdir)\"' -DDOCDIR='\"\$(docdir)\"'" # -- Headers -- @@ -120,14 +152,14 @@ AC_HEADER_TIME # Required header files AC_CHECK_HEADERS([ \ - fcntl.h netdb.h netinet/in.h netinet/in_systm.h stdlib.h string.h \ + fcntl.h netdb.h netinet/in.h stdlib.h string.h \ strings.h sys/socket.h sys/time.h unistd.h \ ],,AC_MSG_ERROR([required C header missing!])) # Optional header files AC_CHECK_HEADERS_ONCE([ \ - arpa/inet.h inttypes.h malloc.h netinet/ip.h stdbool.h stddef.h \ - stdint.h varargs.h \ + arpa/inet.h inttypes.h malloc.h netinet/in_systm.h netinet/ip.h \ + stdbool.h stddef.h stdint.h varargs.h \ ]) # -- Datatypes -- @@ -164,11 +196,11 @@ AC_SEARCH_LIBS([memmove], [UTIL], [], [ AC_MSG_ERROR([unable to find the memmove() function]) ]) # gethostbyname: Solaris libnsl -AC_SEARCH_LIBS([gethostbyname], [nsl], [], [ +AC_SEARCH_LIBS([gethostbyname], [bind nsl network], [], [ AC_MSG_ERROR([unable to find the gethostbyname() function]) ]) # bind: SVR4 libsocket -AC_SEARCH_LIBS([bind], [socket], [], [ +AC_SEARCH_LIBS([bind], [socket network], [], [ AC_MSG_ERROR([unable to find the bind() function]) ]) @@ -186,9 +218,12 @@ AC_CHECK_FUNCS([ \ AC_MSG_ERROR([required function missing!])) # Optional functions -AC_CHECK_FUNCS_ONCE([ \ - gai_strerror getaddrinfo getnameinfo inet_aton sigaction sigprocmask \ - snprintf vsnprintf strdup strlcpy strlcat strtok_r waitpid]) +AC_CHECK_FUNCS_ONCE([ + arc4random arc4random_stir gai_strerror getnameinfo inet_aton \ + sigaction sigprocmask snprintf vsnprintf strdup strndup strlcpy strlcat \ + strtok_r unsetenv waitpid]) + +WORKING_GETADDRINFO # -- Configuration options -- @@ -518,7 +553,8 @@ if test "$x_ircplus_on" = "yes"; then # CHARCONV is the only function depending on it. x_iconv_on=no AC_ARG_WITH(iconv, - [ --with-iconv enable character conversation using libiconv], + AS_HELP_STRING([--with-iconv], + [enable character conversion using libiconv]), [ if test "$withval" != "no"; then if test "$withval" != "yes"; then CFLAGS="-I$withval/include $CFLAGS" @@ -526,11 +562,15 @@ if test "$x_ircplus_on" = "yes"; then LDFLAGS="-L$withval/lib $LDFLAGS" fi AC_CHECK_LIB(iconv, iconv_open) - AC_CHECK_FUNCS(iconv_open, x_iconv_on=yes, + AC_CHECK_FUNCS(iconv_open, x_iconv_on=yes) + if test "$x_iconv_on" != "yes"; then + AC_CHECK_LIB(iconv, libiconv_open) + AC_CHECK_FUNCS(libiconv_open, x_iconv_on=yes) + fi + if test "$x_iconv_on" != "yes"; then AC_MSG_ERROR([Can't enable libiconv support!]) - ) - fi - ] + fi + fi ] ) if test "$x_iconv_on" = "yes"; then AC_DEFINE(ICONV, 1) @@ -604,7 +644,6 @@ test -n "$CFLAGS_END" && CFLAGS="$CFLAGS $CFLAGS_END" AC_CONFIG_FILES([ \ Makefile \ - contrib/Anope/Makefile \ contrib/Debian/Makefile \ contrib/MacOSX/Makefile \ contrib/MacOSX/ngIRCd.pmdoc/Makefile \ @@ -698,7 +737,7 @@ test "$x_ipv6_on" = "yes" \ && echo $ECHO_N "yes $ECHO_C" \ || echo $ECHO_N "no $ECHO_C" echo $ECHO_N " I/O backend: $ECHO_C" - echo "\"$x_io_backend\"" + echo "$x_io_backend" echo $ECHO_N " PAM support: $ECHO_C" test "$x_pam_on" = "yes" \ @@ -712,7 +751,8 @@ echo $ECHO_N " libiconv support: $ECHO_C" echo -if ! grep "^AUTOMAKE_OPTIONS = ../portab/ansi2knr" src/ngircd/Makefile.am >/dev/null 2>&1; then +define(_automake_regex_,[[^AUTOMAKE_OPTIONS = [a-z .\-]*/portab/ansi2knr]]) +if ! grep "_automake_regex_" src/ngircd/Makefile.am >/dev/null 2>&1; then echo "WARNING:" echo "This GNU automake generated build system does not support \"de-ANSI-fication\"," echo "therefore don't use it to generate \"official\" distribution archives!"