1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4 5AC_PREREQ(2.53) 6 7# Making releases on the stable branch: 8# WZD_MICRO_VERSION += 1; 9# WZD_INTERFACE_AGE += 1; 10# 11# unstable branch: increment micro, interface_age is always 0 12 13m4_define([wzd_major_version], [0]) 14m4_define([wzd_minor_version], [8]) 15m4_define([wzd_micro_version], [2]) 16m4_define([wzd_real_version], 17 [wzd_major_version.wzd_minor_version.wzd_micro_version]) 18m4_define([wzd_version], [wzd_real_version]) 19m4_define([wzd_interface_age], [1]) 20m4_define([wzd_binary_age], 21 [m4_eval(100 * wzd_minor_version + wzd_micro_version)]) 22 23# For overriding the version string. Comment out if not needed. 24# m4_define([wzd_version], [0.7.0]) 25 26m4_define([wzd_unstable], 27 m4_if(m4_eval(wzd_minor_version % 2), [1], [yes], [no])) 28m4_define([wzd_stable], 29 m4_if(m4_eval(wzd_minor_version % 2), [0], [yes], [no])) 30 31AC_INIT(wzdftpd, [wzd_version], pollux@wzdftpd.net) 32 33# having both commands will give warnings, but is necessary for BSD 34AC_CANONICAL_TARGET 35AM_INIT_AUTOMAKE 36 37# AC_CONFIG_SRCDIR([backends/plaintext/libplaintext_main.c]) 38AM_CONFIG_HEADER([config.h]) 39 40 41AM_MAINTAINER_MODE 42 43 44# libtool versioning 45m4_define([lt_current], [m4_eval(100 * wzd_minor_version + wzd_micro_version - wzd_interface_age)]) 46m4_define([lt_revision], [wzd_interface_age]) 47m4_define([lt_age], [m4_eval(wzd_binary_age - wzd_interface_age)]) 48LT_VERSION_INFO="lt_current:lt_revision:lt_age" 49LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age) 50AC_SUBST(LT_VERSION_INFO) 51AC_SUBST(LT_CURRENT_MINUS_AGE) 52 53WZD_VERSION="wzd_version" 54AC_SUBST(WZD_VERSION) 55 56# Checks for programs. 57#CFLAGS="" 58#CXXFLAGS="" 59AC_PROG_CC 60AM_PROG_LEX 61AC_PROG_INSTALL 62AC_PROG_LN_S 63AC_PROG_MAKE_SET 64 65AC_SYS_LARGEFILE 66 67dnl not building static libraries makes compilation fail on *bsd ! 68dnl AC_DISABLE_STATIC 69dnl following also fails on *BSD 70#if eval "test x$CYGWIN != xyes"; then 71# CXX=no 72# #F77=no 73# #GCJ=no 74#fi 75 76dnl AC_LIBTOOL_WIN32_DLL 77AM_PROG_LIBTOOL 78 79AH_TEMPLATE([NEED_UNDERSCORE], 80 [Need underscore.]) 81AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[ 82cat >uscore.c << __EOF__ 83int main() { 84 return 0; 85} 86__EOF__ 87$CC -o uscore $CFLAGS uscore.c 1>&5 88if test -z "`strings -a uscore |grep '^_main$'`"; then 89ac_cv_underscore=no 90else 91ac_cv_underscore=yes 92fi 93rm -f uscore uscore.c 94]) 95if test "$ac_cv_underscore" = "yes"; then 96AC_DEFINE(NEED_UNDERSCORE) 97fi 98 99# Checks for typedefs, structures, and compiler characteristics. 100AC_C_CONST 101AC_TYPE_OFF_T 102AC_TYPE_PID_T 103AC_TYPE_SIZE_T 104AC_CHECK_TYPES(unsigned long long,,exit 1) 105AC_CHECK_DECLS([sys_siglist]) 106AC_CHECK_HEADER(pthread.h) 107 108AC_CHECK_HEADER(winsock2.h) 109 110case "$host" in 111 *-cygwin*) 112 LIBS="${LIBS} -lwsock32" 113 ;; 114 *-darwin*) 115 darwin_version=`uname -r | grep '8.'` 116 if test -n "$darwin_version" ; then 117 AC_DEFINE([HAVE_OSX_TIGER], 1, [We are running OSX Tiger]) 118 fi 119 ;; 120esac 121 122# Checks for library functions. 123AC_FUNC_CLOSEDIR_VOID 124AC_FUNC_FORK 125dnl AC_PROG_GCC_TRADITIONAL 126AC_FUNC_LSTAT 127AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK 128AC_FUNC_MALLOC 129AC_FUNC_MKTIME 130AC_FUNC_SELECT_ARGTYPES 131AC_TYPE_SIGNAL 132AC_FUNC_STAT 133AC_FUNC_STRFTIME 134AC_FUNC_UTIME_NULL 135AC_FUNC_VPRINTF 136dnl AC_FUNC_WAIT3 137AC_CHECK_HEADERS([execinfo.h limits.h utime.h]) 138AC_CHECK_FUNCS([backtrace]) 139 140AC_CHECK_FUNCS([gethostbyaddr gethostbyname gettimeofday inet_ntoa regcomp select socket statfs]) 141AC_CHECK_FUNCS([crypt strlcat strndup strptime strtok_r strtoull getopt_long inet_ntop inet_pton statvfs]) 142AC_CHECK_FUNCS(getaddrinfo getnameinfo) 143 144AC_CHECK_FUNCS([getcwd memmove memset mkdir realloc rmdir strcasecmp strchr strdup strerror strncasecmp strpbrk strrchr strtol strtoul utime],,exit 1) 145 146AC_CHECK_HEADERS([sys/param.h sys/stafs.h sys/statvfs.h sys/vfs.h]) 147 148AC_CHECK_HEADERS(sys/mount.h, [], [], 149[#ifdef HAVE_SYS_PARAM_H 150# include <sys/param.h> 151#endif 152]) 153 154AC_CHECK_LIB(dl, dlopen,DL_FLAGS="-ldl",) 155AC_CHECK_LIB(crypt, crypt,CRYPT_FLAGS="-lcrypt",) 156ACX_PTHREAD(,have_pthreads=no) 157# ACX_PTHREAD(,exit 1) 158 159AC_CHECK_FUNCS([crypt]) 160 161WZD_STAT64 162 163dnl WZD_LIB_BERKELEY_DB(4, 1, 24, [db-4.2 db-4.1 db-4 db4 db]) 164WZD_TLS 165WZD_LIB_KRB5 # disabled for release 0.6 166WZD_LIB_PAM 167WZD_LIB_PERL 168WZD_LIB_MYSQL 169WZD_LIB_SQLITE3 170WZD_LIB_ZEROCONF 171WZD_LIB_PGSQL 172WZD_LIB_TCL(8,3) 173 174# check for zlib (optional, used in module sfv) 175AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no]) 176AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cvs_zlib_h=no]) 177AC_MSG_CHECKING(zlib) 178if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes" 179then 180 # 181 # If both library and header were found, use them 182 # 183 AC_MSG_RESULT(ok) 184 AC_DEFINE(HAVE_ZLIB,1,"Define to 1 if you have the `zlib' library (-lz)") 185else 186 AC_MSG_RESULT(failed) 187fi 188AM_CONDITIONAL(USE_ZLIB, test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes") 189 190# Build options string 191WZD_BUILD_OPTS="threads" 192COMMA=',' 193 194AC_MSG_CHECKING(whether to build in debug mode) 195 196AC_ARG_ENABLE(debug, [ --enable-debug enable debug mode], 197 if eval "test x$enable_debug = xyes"; then 198 AC_MSG_RESULT(yes) 199 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}debug" 200 CPPFLAGS="$CPPFLAGS -DDEBUG" 201 else 202 AC_MSG_RESULT(no) 203 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}release" 204 fi, 205 AC_MSG_RESULT(no) 206 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}release" 207) 208 209if eval "test x$enable_debug = xyes"; then 210 AM_WITH_MPATROL 211fi 212 213if eval "test x$wzd_lib_openssl = xyes"; then 214 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}ssl" 215fi 216 217AC_MSG_CHECKING(whether to build ipv6 support) 218 219wzd_have_ipv6=no 220AC_ARG_ENABLE(ipv6, [ --enable-ipv6 enable ipv6 support (EXPERIMENTAL)], 221 if eval "test x$enable_ipv6 = xyes"; then 222 AC_MSG_RESULT(yes) 223 CPPFLAGS="$CPPFLAGS -DIPV6_SUPPORT" 224 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}ipv6" 225 else 226 AC_MSG_RESULT(no) 227 fi, 228 AC_MSG_RESULT(no) 229) 230 231AC_MSG_CHECKING(whether to build utf8 support) 232 233wzd_have_utf8=no 234AC_ARG_ENABLE(utf8, [ --disable-utf8 disable utf8 support], 235 if eval "test x$enable_utf8 = xno"; then 236 AC_MSG_RESULT(no) 237 else 238 AC_MSG_RESULT(yes) 239 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}utf8" 240 wzd_have_utf8=yes 241 fi, 242 AC_MSG_RESULT(yes) 243 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}utf8" 244 wzd_have_utf8=yes 245 ) 246 247if eval "test x$wzd_have_utf8 = xyes"; then 248 AM_ICONV 249 WZD_LIB_UNICODE 250 AC_DEFINE(HAVE_UTF8, 1, [Define if using utf8]) 251fi 252 253AM_CONDITIONAL(USE_ICC, test x$CC = xicc) 254if eval "test x$CC = xicc"; then 255 WZD_BUILD_OPTS="${WZD_BUILD_OPTS}${COMMA}icc" 256 echo "Changing dependancy mode to match intel compiler" 257 CCDEPMODE="depmode=gcc" 258# CPPFLAGS="$CPPFLAGS -I/usr/include" 259fi 260 261 262AC_DEFINE_UNQUOTED(WZD_BUILD_OPTS,"$WZD_BUILD_OPTS") 263 264AH_TEMPLATE([WZD_BUILD_OPTS], 265 [Build options.]) 266 267AM_CONDITIONAL([HAVE_KRB5], [test "$wzd_have_krb5" = "yes"]) 268AM_CONDITIONAL([HAVE_MYSQL], [test "$wzd_have_mysql" = "yes"]) 269AM_CONDITIONAL([HAVE_SQLITE3], [test "$wzd_have_sqlite3" = "yes"]) 270AM_CONDITIONAL([HAVE_PAM], [test "$wzd_have_pam" = "yes"]) 271AM_CONDITIONAL([HAVE_PERL], [test "$wzd_have_perl" = "yes"]) 272AM_CONDITIONAL([HAVE_PGSQL], [test "$wzd_have_pgsql" = "yes"]) 273AM_CONDITIONAL([HAVE_TCL], [test "$wzd_have_tcl" = "yes"]) 274AM_CONDITIONAL([HAVE_ZEROCONF], [test "$with_zeroconf" = "yes"]) 275AM_CONDITIONAL([USE_BONJOUR], [test "$enable_bonjour" = "yes"]) 276AM_CONDITIONAL([USE_AVAHI], [test "$enable_avahi" = "yes"]) 277AM_CONDITIONAL([USE_HOWL], [test "$enable_howl" = "yes"]) 278 279WZD_BUILD_NUM="`date +%Y%m%d`" 280AC_DEFINE_UNQUOTED(WZD_BUILD_NUM,"$WZD_BUILD_NUM") 281AH_TEMPLATE([WZD_BUILD_NUM], 282 [Build number.]) 283 284 285WZD_VERSION_LONG="$PACKAGE_NAME $ac_build_alias mt $PACKAGE_VERSION" 286AC_DEFINE_UNQUOTED(WZD_VERSION_LONG,"$WZD_VERSION_LONG") 287AH_TEMPLATE([WZD_VERSION_LONG], 288 [Version string]) 289 290# we assume that $sysconfdir is always equal to $prefix/etc 291WZD_DEFAULT_CONF="$prefix/etc/$PACKAGE_NAME/wzd.cfg" 292AC_DEFINE_UNQUOTED(WZD_DEFAULT_CONF,"$WZD_DEFAULT_CONF") 293AH_TEMPLATE([WZD_DEFAULT_CONF], 294 [Default configuration file]) 295 296AC_SUBST(CRYPT_FLAGS) 297AC_SUBST(DL_FLAGS) 298AC_SUBST(PTHREAD_FLAGS) 299AC_SUBST(WZD_BUILD_NUM) 300AC_SUBST(WZD_BUILD_OPTS) 301AC_SUBST(WZD_DEFAULT_CONF) 302AC_SUBST(WZD_VERSION) 303AC_SUBST(WZD_VERSION_LONG) 304 305AC_CONFIG_FILES([Makefile 306 ac-helpers/Makefile 307 backends/Makefile 308 backends/plaintext/Makefile 309 backends/mysql/Makefile 310 backends/sqlite/Makefile 311 backends/pam/Makefile 312 backends/pgsql/Makefile 313 init.d/Makefile 314 init.d/wzdftpd 315 libwzd/Makefile 316 libwzd-auth/Makefile 317 libwzd-base/Makefile 318 libwzd-core/Makefile 319 libwzd-core/arch/Makefile 320 libwzd-perl/Makefile 321 libwzd-perl/ext/Makefile.PL 322 m4/Makefile 323 man/Makefile 324 modules/Makefile 325 modules/debug/Makefile 326 modules/perl/Makefile 327 modules/sfv/Makefile 328 modules/sfv/minizip/Makefile 329 modules/tcl/Makefile 330 modules/test/Makefile 331 modules/zeroconf/Makefile 332 redhat/Makefile 333 tests/Makefile 334 tools/Makefile 335 tools/siteconfig/Makefile 336 tools/siteuptime/Makefile 337 tools/sitewho/Makefile 338 wzd-config 339 wzdftpd/Makefile 340 wzdftpd.pc 341 wzd_version.h]) 342 343AC_CONFIG_COMMANDS([default], [ 344 chmod +x wzd-config 345]) 346 347AC_OUTPUT 348 349 350# print summary 351cat << EOF 352 353Here is a short summary of what I've found on your system : 354 355 core options: 356 debug: $enable_debug 357 IPv6: $enable_ipv6 358 SSL: $wzd_lib_openssl 359 GnuTLS: $wzd_have_gnutls 360 UTF-8: $wzd_have_utf8 361 Kerberos: $wzd_have_krb5 362 363 backends: 364 MySQL: $wzd_have_mysql 365 Sqlite3: $wzd_have_sqlite3 366 PAM: $wzd_have_pam 367 PostgreSQL: $wzd_have_pgsql 368 369 modules: 370 Perl: $wzd_have_perl 371 SFV: yes 372 TCL: $wzd_have_tcl 373 Zeroconf: $with_zeroconf 374 Bonjour: $enable_bonjour 375 Avahi: $enable_avahi 376 Howl: $enable_howl 377 378EOF 379 380