X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=configure.ad;h=221edd9a8455308878883966850b32f2e9da8715;hb=fc83b6ccbcbd697a3afc82cf3d9f4053f0bbadb1;hp=c019c6989eaf63f372e45e45c54a250804fb72f3;hpb=ed46e908363484cad4403d6828aec342b4b82c10;p=silc.git diff --git a/configure.ad b/configure.ad index c019c698..221edd9a 100644 --- a/configure.ad +++ b/configure.ad @@ -3,7 +3,7 @@ # # Author: Pekka Riikonen # -# Copyright (C) 2000 - 2005 Pekka Riikonen +# Copyright (C) 2000 - 2007 Pekka Riikonen # # 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 @@ -44,6 +44,42 @@ case "$target" in ;; esac +# Get CPU +cpu_i386=false +cpu_ix86=false +cpu_x86_64=false +cpu_ppc=false +cpu_ia64=false +case "$host_cpu" in + i386) + AC_DEFINE([SILC_I386], [], [SILC_I386]) + AC_DEFINE([SILC_I486], [], [SILC_I486]) + cpu_i386=true + cpu_ix86=true + ;; + i?86) + AC_DEFINE([SILC_I486], [], [SILC_I486]) + cpu_ix86=true + ;; + x86_64) + AC_DEFINE([SILC_X86_64], [], [SILC_X86_64]) + cpu_x86_64=true + ;; + powerpc*) + AC_DEFINE([SILC_POWERPC], [], [SILC_POWERPC]) + cpu_ppc=true + ;; + ia64) + AC_DEFINE([SILC_IA64], [], [SILC_IA64]) + cpu_ia64=true + ;; +esac +AM_CONDITIONAL(SILC_I386, test x$cpu_i386 = xtrue) +AM_CONDITIONAL(SILC_I486, test x$cpu_ix86 = xtrue) +AM_CONDITIONAL(SILC_X86_64, test x$cpu_x86_64 = xtrue) +AM_CONDITIONAL(SILC_POWERPC, test x$cpu_ppc = xtrue) +AM_CONDITIONAL(SILC_IA64, test x$cpu_ia64 = xtrue) + # Control compiler optimizations CFLAGS=`echo $CFLAGS | sed 's/-O[ 0123456789s]*//g'` @@ -56,7 +92,12 @@ __SILC_HAVE_SIM="" __SILC_ENABLE_DEBUG="" AC_PROG_RANLIB +#ifndef SILC_DIST_TOOLKIT +AC_DISABLE_SHARED +#endif SILC_DIST_TOOLKIT +#ifdef SILC_DIST_INPLACE AC_DISABLE_SHARED +#endif SILC_DIST_INPLACE AC_PROG_LIBTOOL # Header checking @@ -94,6 +135,32 @@ AC_CHECK_SIZEOF(char, 0) AC_SUBST(SILC_SIZEOF_CHAR, $ac_cv_sizeof_char) AC_CHECK_SIZEOF(void *, 0) AC_SUBST(SILC_SIZEOF_VOID_P, $ac_cv_sizeof_void_p) +AC_CHECK_TYPES(long long) +AC_CHECK_TYPES(long double) + +# Function to check if compiler flag works +# Usage: SILC_ADD_CFLAGS(FLAGS, [ACTION-IF-FAILED]) +AC_DEFUN([SILC_ADD_CFLAGS], +[ tmp_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_MSG_CHECKING(whether $CC accepts $1 flag) + AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) + CFLAGS="$tmp_CFLAGS" + $2]) + unset tmp_CFLAGS +]) + +# Function to check if compiler flag works, destination specifiable +# Usage: SILC_ADD_CC_FLAGS(VAR, FLAGS, [ACTION-IF-FAILED]) +AC_DEFUN([SILC_ADD_CC_FLAGS], +[ tmp_CFLAGS="$1_CFLAGS" + $1_CFLAGS="${$1_CFLAGS} $2" + AC_MSG_CHECKING(whether $CC accepts $2 flag) + AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) + $1_CFLAGS="$tmp_CFLAGS" + $3]) + unset tmp_CFLAGS +]) # Function and library checking # @@ -108,12 +175,12 @@ AC_CHECK_FUNC(socket, [], AC_CHECK_LIB(socket, socket, LIBS="$LIBS -lsocket") ) AC_CHECK_FUNCS(gethostname gethostbyaddr getservbyname getservbyport) -AC_CHECK_FUNCS(select listen bind shutdown close connect setsockopt) -AC_CHECK_FUNCS(time ctime utime gettimeofday getrusage) +AC_CHECK_FUNCS(poll select listen bind shutdown close connect setsockopt) +AC_CHECK_FUNCS(setrlimit time ctime utime gettimeofday getrusage) AC_CHECK_FUNCS(chmod fcntl stat fstat getenv putenv strerror) AC_CHECK_FUNCS(getpid getgid getsid getpgid getpgrp getuid) -AC_CHECK_FUNCS(setgroups initgroups nl_langinfo) -AC_CHECK_FUNCS(strchr strstr strcpy strncpy memcpy memset memmove) +AC_CHECK_FUNCS(setgroups initgroups nl_langinfo epoll_wait nanosleep) +AC_CHECK_FUNCS(strchr snprintf strstr strcpy strncpy memcpy memset memmove) #ifdef SILC_DIST_SIM # SIM support checking @@ -153,7 +220,7 @@ fi # AC_CHECK_HEADER(regex.h, [ - AC_DEFINE([HAVE_REGEX], [], [HAVE_REGEX]) + AC_DEFINE([HAVE_REGEX_H], [], [HAVE_REGEX_H]) have_regex=1 ], have_regex=0 ) @@ -165,7 +232,13 @@ AC_CHECK_FUNC(getopt_long, have_getopt_long=1 ], have_getopt_long=0 ) -AM_CONDITIONAL(HAVE_GETOPT_LONG, test x$have_getopt_long = x1) + +AC_CHECK_FUNC(getopt, + [ + AC_DEFINE([HAVE_GETOPT], [], [HAVE_GETOPT]) + have_getopt=1 + ], have_getopt=0 +) ## ## Enable/disable checking @@ -259,28 +332,140 @@ AC_ARG_ENABLE(asm, [ --disable-asm do not use assembler optimizations], [ AC_MSG_RESULT(no) + AC_DEFINE([SILC_NO_ASM], [], [SILC_NO_ASM]) want_asm=false ], [ AC_MSG_RESULT(yes) want_asm=true ]) +AM_CONDITIONAL(SILC_NO_ASM, test x$want_asm = xfalse) + +# Check for assembler +# +SILC_ASSEMBLER="" +have_assembler=false +if test x$want_asm = xtrue; then + AC_PATH_PROG([NASM], [nasm], [no]) + if test "x$NASM" != "xno"; then + SILC_ASSEMBLER="$NASM -O2 -felf" + have_assembler=true + fi + + AC_PATH_PROG([YASM], [yasm], [no]) + if test "x$YASM" != "xno"; then + SILC_ASSEMBLER="$YASM -Xgnu -felf" + have_assembler=true + fi +fi +AC_SUBST(SILC_ASSEMBLER) ## -## Compiler and compiler flag checks +## va_copy checks ## +va_copy=false +AC_MSG_CHECKING(for va_copy) +AC_TRY_COMPILE( + [ + #include + #include + ], + [ + int t(int x, ...) + { + va_list va, cp; + va_start(va, x); + va_copy(cp, va); + if (va_arg(cp, int) != 0xff11) + return 1; + va_end(va); + va_end(cp); + return 0; + } + int main() + { + return t(0, 0xff11); + } + ], + [ + AC_DEFINE([HAVE_VA_COPY], [], [HAVE_VA_COPY]) + AC_MSG_RESULT(yes) + va_copy=true + ], + [ + AC_MSG_RESULT(no) + va_copy=false + ] +) -# Function to check if compiler flag works -# Usage: SILC_ADD_CFLAGS(FLAGS, [ACTION-IF-FAILED]) -AC_DEFUN([SILC_ADD_CFLAGS], -[ tmp_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" - AC_MSG_CHECKING(whether $CC accepts $1 flag) - AC_TRY_LINK([], [], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) - CFLAGS="$tmp_CFLAGS" - $2]) - unset tmp_CFLAGS -]) +if test x$va_copy = xfalse; then + AC_MSG_CHECKING(for __va_copy) + AC_TRY_COMPILE( + [ + #include + #include + ], + [ + int t(int x, ...) + { + va_list va, cp; + va_start(va, x); + __va_copy(cp, va); + if (va_arg(cp, int) != 0xff11) + return 1; + va_end(va); + va_end(cp); + return 0; + } + int main() + { + return t(0, 0xff11); + } + ], + [ + AC_DEFINE([HAVE___VA_COPY], [], [HAVE___VA_COPY]) + AC_MSG_RESULT(yes) + va_copy=true + ], + [ + AC_MSG_RESULT(no) + va_copy=false + ] + ) +fi + +if test x$va_copy = xfalse; then + AC_RUN_IFELSE( + [ + #include + #include + int t(int x, ...) + { + va_list va, cp; + va_start(va, x); + cp = va; + if (va_arg(cp, int) != 0xff11) + return 1; + va_end(va); + va_end(cp); + return 0; + } + int main() + { + return t(0, 0xff11); + } + ], + [va_copy=false], + [ + AC_DEFINE([SILC_VA_COPY_ARRAY], [], [SILC_VA_COPY_ARRAY]) + ], + [va=copy=false] + ) +fi + +## +## Compiler and compiler flag checks +## if test "$GCC"; then # GCC specific options @@ -297,6 +482,9 @@ else alpha*-dec-osf*) SILC_ADD_CFLAGS(-g3 -O2, SILC_ADD_CFLAGS(-g3 -O, SILC_ADD_CFLAGS(-O))) ;; + mips*-sgi-irix*) + SILC_ADD_CFLAGS(-g3 -O2, SILC_ADD_CFLAGS(-g3 -O, SILC_ADD_CFLAGS(-O))) + ;; *) SILC_ADD_CFLAGS(-g) SILC_ADD_CFLAGS(-O2, SILC_ADD_CFLAGS(-O)) @@ -343,11 +531,7 @@ AC_SUBST(FIX_SHA1) #ifdef SILC_DIST_AUTODIST AC_PREFIX_DEFAULT(/usr/local) #else !SILC_DIST_AUTODIST -#ifdef SILC_DIST_SILCMAP -AC_PREFIX_DEFAULT(/usr/local) -#else !SILC_DIST_SILCMAP AC_PREFIX_DEFAULT(/usr/local/silc) -#endif SILC_DIST_SILCMAP #endif SILC_DIST_AUTODIST if test "x$prefix" != xNONE; then silc_prefix="$prefix" @@ -396,44 +580,6 @@ AC_SUBST(DOCDIR) AC_DEFINE_UNQUOTED([SILC_DOCDIR], "$DOCDIR", [SILC_DOCDIR]) #endif SILC_DIST_AUTODIST -#ifdef SILC_DIST_CLIENT -# help directory -# -HELPDIR="$silc_prefix/help" -AC_ARG_WITH(helpdir, - [[ --with-helpdir=DIR directory for SILC help files [PREFIX/help]]], - [ - case "$withval" in - no|yes) - ;; - *) - HELPDIR="$withval" - ;; - esac - ]) -AC_SUBST(HELPDIR) -AC_DEFINE_UNQUOTED([SILC_HELPDIR], "$HELPDIR", [SILC_HELPDIR]) -#endif SILC_DIST_CLIENT - -#ifdef SILC_DIST_SIM -# SIM modules directory -# -MODULESDIR="$silc_prefix/modules" -AC_ARG_WITH(simdir, - [[ --with-simdir=DIR directory for SIM modules [PREFIX/modules]]], - [ - case "$withval" in - no|yes) - ;; - *) - MODULESDIR="$withval" - ;; - esac - ]) -AC_SUBST(MODULESDIR) -AC_DEFINE_UNQUOTED([SILC_MODULESDIR], "$MODULESDIR", [SILC_MODULESDIR]) -#endif SILC_DIST_SIM - #ifdef SILC_DIST_COMPILER ## ## With/without checkings @@ -442,9 +588,10 @@ AC_DEFINE_UNQUOTED([SILC_MODULESDIR], "$MODULESDIR", [SILC_MODULESDIR]) # # SILC library checking compile_libs=true +LIBSUBDIR=lib #ifndef SILC_DIST_TOOLKIT -AC_ARG_WITH(silc-includes, +AC_ARG_WITH(silc-includes, [ --with-silc-includes=DIR SILC Toolkit includes [search in DIR]], [ac_silc_includes="$withval"], [ac_silc_includes="no"]) AC_ARG_WITH(silc-libs, @@ -457,43 +604,54 @@ if test -n "$with_silc_includes" || test -n "$with_silc_libs"; then if test "$ac_silc_includes" != "no"; then compile_libs=false SILC_LIB_INCLUDES="-I$ac_silc_includes" + LIBSUBDIR= fi if test "$ac_silc_libs" != "no"; then compile_libs=false + LIBSUBDIR= LIBS="$LIBS -L$ac_silc_libs" fi # Check libs to link against - f=`$EGREP __SILC_HAVE_PTHREAD $ac_silc_includes/silcincludes.h` + f=`$EGREP __SILC_HAVE_PTHREAD $ac_silc_includes/silc.h` if test -n "$f"; then LIBS="$LIBS -lpthread" check_threads=false has_threads=true fi - f=`$EGREP __SILC_HAVE_SIM $ac_silc_includes/silcincludes.h` + f=`$EGREP __SILC_HAVE_SIM $ac_silc_includes/silc.h` if test -n "$f"; then LIBS="$LIBS -ldl" fi else # pkg-config check -#ifdef SILC_DIST_SILCMAP - PKG_CHECK_MODULES(SILC, silc, compile_libs=false) - PKG_CHECK_MODULES(SILCCLIENT, silcclient, compile_libs=false) -#else !SILC_DIST_SILCMAP PKG_CHECK_MODULES(SILC, silc, compile_libs=false, compile_libs=true) +#ifdef SILC_DIST_CLIENTLIB PKG_CHECK_MODULES(SILCCLIENT, silcclient, compile_libs=false, compile_libs=true) -#endif SILC_DIST_SILCMAP +#endif SILC_DIST_CLIENTLIB +#ifdef SILC_DIST_SERVERLIB + PKG_CHECK_MODULES(SILCSERVER, silcserver, compile_libs=false, compile_libs=true) +#endif SILC_DIST_SERVERLIB if test x$compile_libs = xfalse; then + LIBSUBDIR= LIBS="$LIBS $SILC_LIBS" CFLAGS="$CFLAGS $SILC_CFLAGS" +#ifdef SILC_DIST_CLIENTLIB LIBS="$LIBS $SILCCLIENT_LIBS" CFLAGS="$CFLAGS $SILCCLIENT_CFLAGS" +#endif SILC_DIST_CLIENTLIB +#ifdef SILC_DIST_SERVERLIB + LIBS="$LIBS $SILCSERVER_LIBS" + CFLAGS="$CFLAGS $SILCSERVER_CFLAGS" +#endif SILC_DIST_SERVERLIB fi fi #endif SILC_DIST_TOOLKIT +AC_SUBST(LIBSUBDIR) + # SOCKS4 support checking # SAVE_LIBS="$LIBS" @@ -611,7 +769,7 @@ fi #ifdef SILC_DIST_MATH # MP library checking. First check whether user wants to use GMP and use -# it if found. If not or not defined then compile the MPI library in the +# it if found. If not or not defined then compile the default library in the # source tree. # mp_gmp=false @@ -620,7 +778,7 @@ SAVE_CFLAGS="$CFLAGS" SAVE_LDFLAGS="$LDFLAGS" AC_MSG_CHECKING(whether to search for GMP) AC_ARG_WITH(gmp, - [[ --with-gmp[=DIR] use GMP instead of MPI [search in DIR/lib and DIR/include]]], + [[ --with-gmp[=DIR] use GMP instead of SILC Math [search in DIR/lib and DIR/include]]], [ case "$withval" in no) @@ -656,10 +814,10 @@ AC_ARG_WITH(gmp, ) AM_CONDITIONAL(SILC_MP_GMP, test x$mp_gmp = xtrue) -AM_CONDITIONAL(SILC_MP_NSS_MPI, test x$mp_gmp = xfalse) +AM_CONDITIONAL(SILC_MP_SILCMATH, test x$mp_gmp = xfalse) if test x$mp_gmp = xfalse; then - AC_DEFINE([SILC_MP_NSS_MPI], [], [MPI]) - AC_MSG_RESULT(Using NSS MPI as a MP library.) + AC_DEFINE([SILC_MP_SILCMATH], [], [SILCMATH]) + AC_MSG_RESULT(Using SILC Math as a MP library.) fi #endif SILC_DIST_MATH @@ -986,9 +1144,9 @@ AC_ARG_WITH(win32, ]) AM_CONDITIONAL(SILC_WIN32, test x$win32_support = xtrue) -# Native EPOC support (disabled by default) +# Native Symbian OS support (disabled by default) # -AM_CONDITIONAL(SILC_EPOC, test xfalse = xtrue) +AM_CONDITIONAL(SILC_SYMBIAN, test xfalse = xtrue) # Native BeOS support (disabled by default) # @@ -999,43 +1157,44 @@ AM_CONDITIONAL(SILC_BEOS, test xfalse = xtrue) AM_CONDITIONAL(SILC_OS2, test xfalse = xtrue) #ifdef SILC_DIST_TOOLKIT -# --without-irssi +# --with-irssi # -without_irssi=false +without_irssi=true AC_MSG_CHECKING(whether to compile Irssi SILC Client) AC_ARG_WITH(irssi, - [ --without-irssi compile without Irssi SILC Client], + [ --with-irssi compile with Irssi SILC Client], [ - AC_MSG_RESULT(no) - without_irssi=true + AC_MSG_RESULT(yes) + without_irssi=false ], [ - AC_MSG_RESULT(yes) + AC_MSG_RESULT(no) + without_irssi=true ]) +AM_CONDITIONAL(with_irssi, test xwithout_irssi = xfalse) -# --without-silcd +# --with-silcd # -without_silcd=false +without_silcd=true AC_MSG_CHECKING(whether to compile SILC Server) AC_ARG_WITH(silcd, - [ --without-silcd compile without SILC Server], + [ --with-silcd compile with SILC Server], [ - AC_MSG_RESULT(no) - without_silcd=true + AC_MSG_RESULT(yes) + without_silcd=false ], [ - AC_MSG_RESULT(yes) + AC_MSG_RESULT(no) + without_silcd=true ]) #endif SILC_DIST_TOOLKIT - #ifdef SILC_DIST_CLIENT -# Irssi perl support -# -AC_ARG_WITH(perl, - [[ --with-perl[=yes|no|module] Build with Perl support - also specifies - if it should be built into main silc binary - (static, default) or as a module]]) +AM_CONDITIONAL(with_irssi, true) #endif SILC_DIST_CLIENT +#ifdef SILC_DIST_INPLACE +without_irssi=false +without_silcd=false +#endif SILC_DIST_INPLACE libtoolfix=true AC_MSG_CHECKING(whether to do libtoolfix) @@ -1051,7 +1210,6 @@ AC_ARG_WITH(libtoolfix, AC_SUBST(ETCDIR) AC_DEFINE_UNQUOTED([SILC_ETCDIR], "$ETCDIR", [SILC_ETCDIR]) - #endif SILC_DIST_COMPILER ## @@ -1061,20 +1219,6 @@ AC_DEFINE_UNQUOTED([SILC_ETCDIR], "$ETCDIR", [SILC_ETCDIR]) # Make enable-shared aware AM_CONDITIONAL(SILC_ENABLE_SHARED, test "$enable_shared" = yes) -# Other configure scripts -# - -#ifdef SILC_DIST_TOOLKIT -if test x$without_irssi = xfalse; then -#endif SILC_DIST_TOOLKIT -#ifdef SILC_DIST_CLIENT - AC_CONFIG_SUBDIRS(irssi) - irssi="yes" -#endif SILC_DIST_CLIENT -#ifdef SILC_DIST_TOOLKIT -fi -#endif SILC_DIST_TOOLKIT - SILC_TOP_SRCDIR=`pwd` # Included configure scripts @@ -1119,29 +1263,15 @@ Makefile.defines Makefile.defines_int includes/Makefile includes/silcversion.h -includes/silcincludes.h +includes/silc.h #endif SILC_DIST_COMPILER #ifdef SILC_DIST_APPS apps/Makefile #endif SILC_DIST_APPS ) -#ifdef SILC_DIST_TOOLKIT -if test x$without_irssi = xfalse ; then -#endif SILC_DIST_TOOLKIT -#ifdef SILC_DIST_CLIENT - AC_CONFIG_FILES( -irssi/Makefile.defines -irssi/Makefile.defines_int -) -#endif SILC_DIST_CLIENT -#ifdef SILC_DIST_TOOLKIT -fi -#endif SILC_DIST_TOOLKIT - #ifdef SILC_DIST_TOOLKIT AC_CONFIG_FILES( -silc/Makefile win32/Makefile win32/libsilc/Makefile win32/libsilcclient/Makefile @@ -1173,15 +1303,7 @@ echo " bin directory .................: $s_bindir" echo " sbin directory ................: $s_sbindir" echo " etc directory .................: $ETCDIR" echo " man directory .................: $s_mandir" -#ifdef SILC_DIST_DOC echo " doc directory .................: $DOCDIR" -#endif SILC_DIST_DOC -#ifdef SILC_DIST_CLIENT -echo " help directory ................: $HELPDIR" -#endif SILC_DIST_CLIENT -#ifdef SILC_DIST_SERVER -echo " logs directory ................: $LOGSDIR" -#endif SILC_DIST_SERVER #ifdef SILC_DIST_SIM echo " SIM directory .................: $MODULESDIR" #endif SILC_DIST_SIM @@ -1205,8 +1327,6 @@ echo " Compile SILC Client ...........: $irssi" #ifdef SILC_DIST_SERVER echo " Compile SILC Server ...........: $silcd" -echo " Server configuration file .....: $summary_silcd_configfile" -echo " Server PID file ...............: $PIDFILE" #endif SILC_DIST_SERVER #ifdef SILC_DIST_SIM @@ -1235,11 +1355,9 @@ fi echo " Assembler optimizations .......: $summary_asm" #ifdef SILC_DIST_MATH -mp="MPI" if test x$mp_gmp = xtrue; then - mp="GMP" + echo " Arithmetic library ............: GMP" fi -echo " Arithmetic library ............: $mp" #endif SILC_DIST_MATH threads="no" @@ -1251,4 +1369,3 @@ echo " Debugging enabled .............: $summary_debug" echo "" echo "Compile the sources with 'make' or 'gmake' command." #endif SILC_DIST_COMPILER -