1AC_INIT([dclib], [0.3.23], [http://sourceforge.net/tracker/?group_id=181579&atid=897767]) 2 3dnl there is also a version in hex in dcos.h.in 4 5AC_CONFIG_SRCDIR([COPYING.OpenSSL]) 6 7AC_CONFIG_AUX_DIR([admin]) 8AC_CONFIG_MACRO_DIR([m4]) 9AC_CONFIG_HEADERS([config.h]) 10 11AC_CANONICAL_HOST 12 13AM_INIT_AUTOMAKE 14 15dnl yes dclib is C++ so do all tests as C++ 16AC_LANG([C++]) 17 18LARGEFILESUPPORT="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" 19AC_ARG_ENABLE([lfs], 20[AS_HELP_STRING([--disable-lfs],[disable largefile (files larger than 2GiB) support (default enabled)])], 21[ if test "x$enableval" = "xno" 22 then 23 LARGEFILESUPPORT="" 24 fi ] 25) 26 27dnl these have changed but I do not want to start doing 28dnl 1000 tests of "does -Wsome-unusual-option-only-in-gcc-4.3 work?" 29WARNINGFLAGS="-Wall -W -pedantic -Wno-long-long -Wundef -Wconversion" 30AC_ARG_ENABLE([warnings], 31[AS_HELP_STRING([--disable-warnings],[disable compiler warnings (default enabled)])], 32[ if test "x$enableval" = "xno" 33 then 34 WARNINGFLAGS="" 35 fi ] 36) 37 38DEBUGFLAGS="" 39DEBUGCOMPILE="" 40AC_ARG_ENABLE([debug], 41[AS_HELP_STRING([--enable-debug],[enable debugging support (default disabled)])], 42[ if test "x$enableval" = "xyes" 43 then 44 DEBUGFLAGS="-DDEBUG" 45 DEBUGCOMPILE="-g" 46 fi ] 47) 48 49dnl really -D_GNU_SOURCE should be used for strcasestr and canonicalize_file_name 50dnl but it compiles without it 51PACKAGE_FLAGS="$DEBUGFLAGS $WARNINGFLAGS $LARGEFILESUPPORT -D_REENTRANT" 52case $host in 53 *-*-linux-gnu) 54 PACKAGE_FLAGS="$PACKAGE_FLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE" 55esac 56AC_SUBST(PACKAGE_FLAGS) 57AC_SUBST(DEBUGCOMPILE) 58 59AC_PROG_CXX 60AC_PROG_CXXCPP 61 62AC_ENABLE_SHARED([yes]) 63AC_ENABLE_STATIC([no]) 64AC_PROG_LIBTOOL 65 66AC_CHECK_HEADER( [bzlib.h], [], [AC_MSG_ERROR([bzlib headers not found. install bzlib devel package])] ) 67AC_CHECK_LIB( [bz2], [BZ2_bzBuffToBuffCompress], [], [AC_MSG_ERROR([bzlib not found. install bzlib package])] ) 68 69AC_CHECK_HEADER( [zlib.h], [], [AC_MSG_ERROR([zlib headers not found. install zlib devel package])] ) 70AC_CHECK_LIB( [z], [inflate], [], [AC_MSG_ERROR([zlib not found. install zlib package])] ) 71 72dnl the plugin manager uses dlopen / dlsym on unix 73dnl the check valknut used was from KDE 3 and also checked for 74dnl "shl_unload" in "dld" but there is no #ifdef'ed code for that 75AC_CHECK_HEADER([dlfcn.h]) 76AC_CHECK_LIB([dl],[dlopen]) 77 78dnl There was a KDE test here to work out what the third argument of accept() and 79dnl getsockname() is. The manpage says: 80dnl #include <sys/socket.h> 81dnl int getsockname(int s, struct sockaddr *name, socklen_t *namelen); 82dnl So socklen_t is defined in <sys/socket.h> and there's no need to 83dnl attempt to work out what it is. The accept() manpage also says 84dnl #include <sys/types.h> may be required so that was added to dclib/core/csocket.cpp 85 86dnl XML 87AM_PATH_XML2( [2.0.0], [], [AC_MSG_ERROR([libxml2 development package is required])] ) 88 89dnl check some includes - mainly for CDir or CSocket 90dnl definitions not used were removed 91dnl definitions only used by gnulib fsusage.c are not included here 92dnl that's what gl_FSUSAGE is for 93AC_CHECK_HEADERS([unistd.h sys/filio.h sys/sockio.h sys/termios.h langinfo.h]) 94 95dnl fsusage.c - get free disk space 96gl_PREREQ_FSUSAGE_EXTRA 97gl_FSUSAGE 98 99is_mingw32="false" 100case $host in 101 *mingw32) 102 is_mingw32="true" 103esac 104 105AM_CONDITIONAL([WIN32], [test x$is_mingw32 = "xtrue"]) 106 107dnl gl_MD5 uses this but now also CCaseFolder needs it 108dnl TigerHash.cpp has defines for big endian and 64 bit CPU 109AC_C_BIGENDIAN 110AC_CHECK_SIZEOF([void*]) 111AC_CHECK_SIZEOF([long]) 112 113dnl cmd5.c - compute MD5 checksum 114gl_MD5 115 116dnl see if canonicalize_file_name is provided by system libs (glibc) 117dnl if not realpath gets used with a big buffer 118dnl canonicalize_file_name and strcasestr unfortunately require -D_GNU_SOURCE 119dnl definitions not used were removed 120AC_CHECK_FUNCS([canonicalize_file_name realpath strtoll strtoull strtoq strtouq strcasestr lrint nanosleep usleep nl_langinfo _strtoi64 _strtoui64 if_nameindex]) 121 122AC_ARG_ENABLE([socks], 123[AS_HELP_STRING([--enable-socks],[use the socks proxying library (default disabled)])], 124[ if test x$enableval = "xyes" 125 then 126 AC_DEFINE([HAVE_SOCKS],[1],[use the socks library]) 127 AC_CHECK_LIB([socks], [Rconnect], [], [AC_MSG_ERROR([Socks support requested but socks library not found])]) 128 fi 129]) 130 131AM_ICONV 132 133ACX_PTHREAD([], [AC_MSG_ERROR([POSIX threads support required but not found])]) 134 135PKG_PROG_PKG_CONFIG([0.9.0]) 136 137DCLIB_CHECK_SSL 138 139DCLIB_CHECK_STL 140 141HIDESYMS="-fvisibility=hidden" 142AC_MSG_CHECKING([if $CXX supports $HIDESYMS]) 143 144ac_save_CXXFLAGS="$CXXFLAGS" 145CXXFLAGS="$CXXFLAGS $HIDESYMS" 146 147AC_COMPILE_IFELSE([AC_LANG_SOURCE( 148[[ 149int main() 150{ 151 return 0; 152} 153]] 154)], 155[ AC_MSG_RESULT([yes]) ], 156[ AC_MSG_RESULT([no]) 157 HIDESYMS="" 158]) 159 160CXXFLAGS="$ac_save_CXXFLAGS" 161 162AC_SUBST(HIDESYMS) 163 164dnl build date and svn revision information, no longer put into PACKAGE_VERSION 165AC_MSG_CHECKING([for build date and svn revision]) 166DCLIB_BUILD_INFO="Build date: `date +%Y%m%d`" 167if echo "$PACKAGE_VERSION" | grep svn >/dev/null 2>&1 168then 169 DCLIB_BUILD_INFO="$DCLIB_BUILD_INFO svn: `svnversion`" 170else 171 DCLIB_BUILD_INFO="$DCLIB_BUILD_INFO release" 172fi 173AC_MSG_RESULT([$DCLIB_BUILD_INFO]) 174AC_SUBST(DCLIB_BUILD_INFO) 175 176AC_CONFIG_FILES([ Makefile ]) 177AC_CONFIG_FILES([ dclib.spec ]) 178AC_CONFIG_FILES([ dclib.lsm ]) 179AC_CONFIG_FILES([ dclib.pc ]) 180AC_CONFIG_FILES([ dclib-uninstalled.pc ]) 181AC_CONFIG_FILES([ dclib/dcos.h ]) 182AC_CONFIG_FILES([ dclib/dclib-ssl-use.h ]) 183AC_CONFIG_FILES([ dclib/dclib-stl-use.h ]) 184AC_CONFIG_FILES([ dclib/Makefile ]) 185AC_CONFIG_FILES([ dclib/gnulib/Makefile ]) 186AC_CONFIG_FILES([ dclib/core/Makefile ]) 187AC_CONFIG_FILES([ dclib/hash/Makefile ]) 188AC_CONFIG_FILES([ tests/Makefile ]) 189AC_OUTPUT 190