Annotation of embedaddon/rsync/configure.ac, revision 1.1.1.4
1.1 misho 1: dnl Process this file with autoconf to produce a configure script.
2:
1.1.1.4 ! misho 3: AC_INIT([rsync],[ ],[https://rsync.samba.org/bug-tracking.html])
1.1.1.3 misho 4:
5: AC_CONFIG_MACRO_DIR([m4])
1.1 misho 6: AC_CONFIG_SRCDIR([byteorder.h])
7: AC_CONFIG_HEADER(config.h)
1.1.1.3 misho 8: AC_PREREQ([2.69])
1.1 misho 9:
1.1.1.4 ! misho 10: PACKAGE_VERSION=`sed 's/.*"\(.*\)".*/\1/' <$srcdir/version.h`
1.1 misho 11:
1.1.1.4 ! misho 12: AC_MSG_NOTICE([Configuring rsync $PACKAGE_VERSION])
1.1 misho 13:
14: LDFLAGS=${LDFLAGS-""}
15:
16: AC_CANONICAL_HOST
17:
1.1.1.3 misho 18: dnl define the directory for replacement function since AC_LIBOBJ does not
19: dnl officially support subdirs and fails with automake
20: AC_CONFIG_LIBOBJ_DIR([lib])
21:
1.1 misho 22: # We must decide this before testing the compiler.
23:
24: # Please allow this to default to yes, so that your users have more
25: # chance of getting a useful stack trace if problems occur.
26:
27: AC_MSG_CHECKING([whether to include debugging symbols])
28: AC_ARG_ENABLE(debug,
1.1.1.3 misho 29: AS_HELP_STRING([--disable-debug],[disable debugging symbols and features]))
1.1 misho 30:
31: if test x"$enable_debug" = x"no"; then
32: AC_MSG_RESULT(no)
33: ac_cv_prog_cc_g=no
34: else
35: AC_MSG_RESULT([yes])
36: dnl AC_DEFINE(DEBUG, 1, [Define to turn on debugging code that may slow normal operation])
37: # leave ac_cv_prog_cc_g alone; AC_PROG_CC will try to include -g if it can
38: fi
39:
40: dnl Checks for programs.
41: AC_PROG_CC
42: AC_PROG_CPP
1.1.1.4 ! misho 43: AC_PROG_CXX
! 44: AC_PROG_AWK
1.1 misho 45: AC_PROG_EGREP
46: AC_PROG_INSTALL
1.1.1.2 misho 47: AC_PROG_MKDIR_P
1.1 misho 48: AC_PROG_CC_STDC
49: AC_SUBST(SHELL)
1.1.1.3 misho 50: AC_PATH_PROG([PERL], [perl])
1.1.1.4 ! misho 51: AC_PATH_PROG([PYTHON3], [python3])
1.1 misho 52:
53: AC_DEFINE([_GNU_SOURCE], 1,
54: [Define _GNU_SOURCE so that we get all necessary prototypes])
55:
56: if test x"$ac_cv_prog_cc_stdc" = x"no"; then
57: AC_MSG_WARN([rsync requires an ANSI C compiler and you do not seem to have one])
58: fi
59:
1.1.1.4 ! misho 60: no_lib=''
! 61: err_msg=''
! 62: nl='
! 63: '
! 64:
1.1 misho 65: AC_ARG_ENABLE(profile,
1.1.1.3 misho 66: AS_HELP_STRING([--enable-profile],[turn on CPU profiling]))
1.1 misho 67: if test x"$enable_profile" = x"yes"; then
68: CFLAGS="$CFLAGS -pg"
69: fi
70:
1.1.1.4 ! misho 71: AC_MSG_CHECKING([if md2man can create man pages])
! 72: if test x"$ac_cv_path_PYTHON3" = x; then
! 73: AC_MSG_RESULT(no - python3 not found)
! 74: md2man_works=no
! 75: else
! 76: md2man_out=`"$srcdir/md2man" --test "$srcdir/rsync-ssl.1.md" 2>&1`
! 77: if test $? = 0; then
! 78: AC_MSG_RESULT(yes)
! 79: md2man_works=yes
! 80: else
! 81: AC_MSG_RESULT(no)
! 82: md2man_works=no
! 83: echo "$md2man_out"
! 84: fi
! 85: fi
! 86:
! 87: AC_MSG_CHECKING([if we require man-page building])
! 88: AC_ARG_ENABLE([md2man],
! 89: AS_HELP_STRING([--disable-md2man],[disable md2man for man page creation]))
! 90: if test x"$enable_md2man" != x"no"; then
! 91: if test -f "$srcdir/rsync.1"; then
! 92: AC_MSG_RESULT(optional)
! 93: else
! 94: AC_MSG_RESULT(required)
! 95: if test x"$md2man_works" = x"no"; then
! 96: err_msg="$err_msg$nl- You need python3 and either the cmarkgfm OR commonmark python3 lib in order"
! 97: err_msg="$err_msg$nl to build man pages based on the git source (man pages are included in the"
! 98: err_msg="$err_msg$nl official release tar files)."
! 99: no_lib="$no_lib md2man"
! 100: fi
! 101: fi
! 102: MAKE_MAN=man
! 103: else
! 104: AC_MSG_RESULT(no)
! 105: MAKE_MAN=''
! 106: fi
1.1 misho 107:
108: # Specifically, this turns on panic_action handling.
109: AC_ARG_ENABLE(maintainer-mode,
1.1.1.3 misho 110: AS_HELP_STRING([--enable-maintainer-mode],[turn on extra debug features]))
1.1 misho 111: if test x"$enable_maintainer_mode" = x"yes"; then
112: CFLAGS="$CFLAGS -DMAINTAINER_MODE"
113: fi
114:
115: # This is needed for our included version of popt. Kind of silly, but
116: # I don't want our version too far out of sync.
117: CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
118:
119: # If GCC, turn on warnings.
120: if test x"$GCC" = x"yes"; then
121: CFLAGS="$CFLAGS -Wall -W"
122: fi
123:
124: AC_ARG_WITH(included-popt,
1.1.1.3 misho 125: AS_HELP_STRING([--with-included-popt],[use bundled popt library, not from system]))
1.1 misho 126:
1.1.1.2 misho 127: AC_ARG_WITH(included-zlib,
1.1.1.3 misho 128: AS_HELP_STRING([--with-included-zlib],[use bundled zlib library, not from system]))
1.1.1.2 misho 129:
130: AC_ARG_WITH(protected-args,
1.1.1.3 misho 131: AS_HELP_STRING([--with-protected-args],[make --protected-args option the default]))
1.1.1.2 misho 132: if test x"$with_protected_args" = x"yes"; then
133: AC_DEFINE_UNQUOTED(RSYNC_USE_PROTECTED_ARGS, 1, [Define to 1 if --protected-args should be the default])
134: fi
135:
1.1 misho 136: AC_ARG_WITH(rsync-path,
1.1.1.3 misho 137: AS_HELP_STRING([--with-rsync-path=PATH],[set default --rsync-path to PATH (default: rsync)]),
1.1 misho 138: [ RSYNC_PATH="$with_rsync_path" ],
139: [ RSYNC_PATH="rsync" ])
140:
141: AC_DEFINE_UNQUOTED(RSYNC_PATH, "$RSYNC_PATH", [location of rsync on remote machine])
142:
143: AC_ARG_WITH(rsyncd-conf,
1.1.1.3 misho 144: AS_HELP_STRING([--with-rsyncd-conf=PATH],[set configuration file for rsync server to PATH (default: /etc/rsyncd.conf)]),
1.1 misho 145: [ if test ! -z "$with_rsyncd_conf" ; then
146: case $with_rsyncd_conf in
147: yes|no)
148: RSYNCD_SYSCONF="/etc/rsyncd.conf"
149: ;;
150: /*)
151: RSYNCD_SYSCONF="$with_rsyncd_conf"
152: ;;
153: *)
154: AC_MSG_ERROR(You must specify an absolute path to --with-rsyncd-conf=PATH)
155: ;;
156: esac
157: else
158: RSYNCD_SYSCONF="/etc/rsyncd.conf"
159: fi ],
160: [ RSYNCD_SYSCONF="/etc/rsyncd.conf" ])
161:
162: AC_DEFINE_UNQUOTED(RSYNCD_SYSCONF, "$RSYNCD_SYSCONF", [location of configuration file for rsync server])
163:
164: AC_ARG_WITH(rsh,
1.1.1.3 misho 165: AS_HELP_STRING([--with-rsh=CMD],[set remote shell command to CMD (default: ssh)]))
1.1 misho 166:
167: AC_CHECK_PROG(HAVE_REMSH, remsh, 1, 0)
168: if test x$HAVE_REMSH = x1; then
169: AC_DEFINE(HAVE_REMSH, 1, [Define to 1 if remote shell is remsh, not rsh])
170: fi
171:
172: if test x"$with_rsh" != x; then
173: RSYNC_RSH="$with_rsh"
174: else
175: RSYNC_RSH="ssh"
176: fi
177: AC_DEFINE_UNQUOTED(RSYNC_RSH, "$RSYNC_RSH", [default -e command])
178:
1.1.1.2 misho 179: # Some programs on solaris are only found in /usr/xpg4/bin (or work better than others versions).
180: AC_PATH_PROG(SHELL_PATH, sh, /bin/sh, [/usr/xpg4/bin$PATH_SEPARATOR$PATH])
181: AC_PATH_PROG(FAKEROOT_PATH, fakeroot, /usr/bin/fakeroot, [/usr/xpg4/bin$PATH_SEPARATOR$PATH])
182:
1.1 misho 183: AC_ARG_WITH(nobody-group,
1.1.1.3 misho 184: AS_HELP_STRING([--with-nobody-group=GROUP],[set the default unprivileged group (default nobody or nogroup)]),
1.1 misho 185: [ NOBODY_GROUP="$with_nobody_group" ])
186:
187: if test x"$with_nobody_group" = x; then
188: AC_MSG_CHECKING([the group for user "nobody"])
189: if grep '^nobody:' /etc/group >/dev/null 2>&1; then
190: NOBODY_GROUP=nobody
191: elif grep '^nogroup:' /etc/group >/dev/null 2>&1; then
192: NOBODY_GROUP=nogroup
193: else
194: NOBODY_GROUP=nobody # test for others?
195: fi
196: AC_MSG_RESULT($NOBODY_GROUP)
197: fi
198:
199: AC_DEFINE_UNQUOTED(NOBODY_USER, "nobody", [unprivileged user--e.g. nobody])
200: AC_DEFINE_UNQUOTED(NOBODY_GROUP, "$NOBODY_GROUP", [unprivileged group for unprivileged user])
201:
1.1.1.4 ! misho 202: # SIMD optimizations
! 203: SIMD=
! 204:
! 205: AC_MSG_CHECKING([whether to enable SIMD optimizations])
! 206: AC_ARG_ENABLE(simd,
! 207: AS_HELP_STRING([--disable-simd],[disable SIMD optimizations (requires c++)]))
! 208:
! 209: # Clag is crashing with -g -O2, so we'll get rid of -g for now.
! 210: CXXFLAGS=`echo "$CXXFLAGS" | sed 's/-g //'`
! 211:
! 212: if test x"$enable_simd" != x"no"; then
! 213: # For x86-64 SIMD, g++ >=5 or clang++ >=7 is required
! 214: if test x"$build_cpu" = x"x86_64"; then
! 215: AC_LANG(C++)
! 216: AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
! 217: #include <immintrin.h>
! 218: __attribute__ ((target("default"))) int test_ssse3(int x) { return x; }
! 219: __attribute__ ((target("default"))) int test_sse2(int x) { return x; }
! 220: __attribute__ ((target("default"))) int test_avx2(int x) { return x; }
! 221: __attribute__ ((target("ssse3"))) int test_ssse3(int x) { return x; }
! 222: __attribute__ ((target("sse2"))) int test_sse2(int x) { return x; }
! 223: __attribute__ ((target("avx2"))) int test_avx2(int x) { return x; }
! 224: typedef long long __m128i_u __attribute__((__vector_size__(16), __may_alias__, __aligned__(1)));
! 225: typedef long long __m256i_u __attribute__((__vector_size__(32), __may_alias__, __aligned__(1)));
! 226: __attribute__ ((target("default"))) void more_testing(char* buf, int len) { }
! 227: __attribute__ ((target("ssse3"))) void more_testing(char* buf, int len)
! 228: {
! 229: int i;
! 230: for (i = 0; i < (len-32); i+=32) {
! 231: __m128i in8_1, in8_2;
! 232: in8_1 = _mm_lddqu_si128((__m128i_u*)&buf[i]);
! 233: in8_2 = _mm_lddqu_si128((__m128i_u*)&buf[i + 16]);
! 234: }
! 235: }
! 236: ]], [[if (test_ssse3(42) != 42 || test_sse2(42) != 42 || test_avx2(42) != 42) exit(1);]])],[CXX_OK=yes],[CXX_OK=no])
! 237: AC_LANG(C)
! 238: if test x"$CXX_OK" = x"yes"; then
! 239: # AC_MSG_RESULT() is called below.
! 240: SIMD="x86_64"
! 241: elif test x"$enable_simd" = x"yes"; then
! 242: AC_MSG_RESULT(error)
! 243: AC_MSG_ERROR(The SIMD compilation test failed.
! 244: Omit --enable-simd to continue without it.)
! 245: fi
! 246: elif test x"$enable_simd" = x"yes"; then
! 247: AC_MSG_RESULT(unavailable)
! 248: AC_MSG_ERROR(The SIMD optimizations are currently x86_64 only.
! 249: Omit --enable-simd to continue without it.)
! 250: fi
! 251: fi
! 252:
! 253: if test x"$SIMD" != x""; then
! 254: AC_MSG_RESULT([yes ($SIMD)])
! 255: AC_DEFINE(HAVE_SIMD, 1, [Define to 1 to enable SIMD optimizations])
! 256: SIMD='$(SIMD_'"$SIMD)"
! 257: # We only use c++ for its target attribute dispatching, disable unneeded bulky features
! 258: CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-rtti"
! 259: # Apple often has "g++" as a symlink for clang. Try to find out the truth.
! 260: CXX_VERSION=`$CXX --version 2>/dev/null | head -n 2`
! 261: case "$CXX_VERSION" in
! 262: *clang*) CXXFLAGS="$CXXFLAGS -fno-slp-vectorize" ;; # avoid a performance hit
! 263: esac
! 264: else
! 265: AC_MSG_RESULT(no)
! 266: fi
! 267:
! 268: AC_SUBST(SIMD)
! 269:
! 270: AC_MSG_CHECKING([if assembler accepts noexecstack])
! 271: OLD_CFLAGS="$CFLAGS"
! 272: CFLAGS="$CFLAGS -Wa,--noexecstack"
! 273: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[return 0;]])],
! 274: [ NOEXECSTACK='-Wa,--noexecstack' ; AC_MSG_RESULT(yes) ],
! 275: [ NOEXECSTACK='' ; AC_MSG_RESULT(no) ])
! 276: CFLAGS="$OLD_CFLAGS"
! 277: AC_SUBST(NOEXECSTACK)
! 278:
! 279: ASM=
! 280:
! 281: AC_MSG_CHECKING([whether to enable ASM optimizations])
! 282: AC_ARG_ENABLE(asm,
! 283: AS_HELP_STRING([--disable-asm],[disable ASM optimizations]))
! 284:
! 285: if test x"$enable_asm" != x"no"; then
! 286: if test x"$build_cpu" = x"x86_64"; then
! 287: ASM="$build_cpu"
! 288: elif test x"$enable_asm" = x"yes"; then
! 289: AC_MSG_RESULT(unavailable)
! 290: AC_MSG_ERROR(The ASM optimizations are currently x86_64 only.
! 291: Omit --enable-asm to continue without it.)
! 292: fi
! 293: fi
! 294:
! 295: if test x"$ASM" != x""; then
! 296: AC_MSG_RESULT([yes ($ASM)])
! 297: AC_DEFINE(HAVE_ASM, 1, [Define to 1 to enable ASM optimizations])
! 298: ASM='$(ASM_'"$ASM)"
! 299: else
! 300: AC_MSG_RESULT(no)
! 301: fi
! 302:
! 303: AC_SUBST(ASM)
! 304:
1.1 misho 305: # arrgh. libc in some old debian version screwed up the largefile
306: # stuff, getting byte range locking wrong
307: AC_CACHE_CHECK([for broken largefile support],rsync_cv_HAVE_BROKEN_LARGEFILE,[
1.1.1.3 misho 308: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 309: #define _FILE_OFFSET_BITS 64
310: #include <stdio.h>
311: #include <fcntl.h>
312: #include <sys/types.h>
313: #include <sys/wait.h>
1.1.1.4 ! misho 314: #if HAVE_UNISTD_H
! 315: #include <unistd.h>
! 316: #endif
1.1 misho 317:
318: int main(void)
319: {
320: struct flock lock;
321: int status;
322: char tpl[32] = "/tmp/locktest.XXXXXX";
323: int fd = mkstemp(tpl);
324: if (fd < 0) {
325: strcpy(tpl, "conftest.dat");
326: fd = open(tpl, O_CREAT|O_RDWR, 0600);
327: }
328:
329: lock.l_type = F_WRLCK;
330: lock.l_whence = SEEK_SET;
331: lock.l_start = 0;
332: lock.l_len = 1;
333: lock.l_pid = 0;
334: fcntl(fd,F_SETLK,&lock);
335: if (fork() == 0) {
336: lock.l_start = 1;
337: _exit(fcntl(fd,F_SETLK,&lock) == 0);
338: }
339: wait(&status);
340: unlink(tpl);
1.1.1.4 ! misho 341: return WEXITSTATUS(status);
1.1 misho 342: }
1.1.1.3 misho 343: ]])],[rsync_cv_HAVE_BROKEN_LARGEFILE=yes],[rsync_cv_HAVE_BROKEN_LARGEFILE=no],[rsync_cv_HAVE_BROKEN_LARGEFILE=cross])])
1.1 misho 344: if test x"$rsync_cv_HAVE_BROKEN_LARGEFILE" != x"yes"; then
345: AC_SYS_LARGEFILE
346: fi
347:
348: ipv6type=unknown
349: ipv6lib=none
350: ipv6trylibc=yes
351:
352: AC_ARG_ENABLE(ipv6,
1.1.1.4 ! misho 353: AS_HELP_STRING([--disable-ipv6],[turn off IPv6 support]))
1.1 misho 354: if test x"$enable_ipv6" != x"no"; then
355: AC_MSG_CHECKING([ipv6 stack type])
1.1.1.4 ! misho 356: for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta cygwin TANDEM; do
1.1 misho 357: case $i in
358: inria)
359: # http://www.kame.net/
360: AC_EGREP_CPP(yes, [
361: #include <netinet/in.h>
362: #ifdef IPV6_INRIA_VERSION
363: yes
364: #endif],
365: [ipv6type=$i;
366: AC_DEFINE(INET6, 1, [true if you have IPv6])
367: ])
368: ;;
369: kame)
370: # http://www.kame.net/
371: AC_EGREP_CPP(yes, [
372: #include <netinet/in.h>
373: #ifdef __KAME__
374: yes
375: #endif],
376: [ipv6type=$i;
377: AC_DEFINE(INET6, 1, [true if you have IPv6])])
378: ;;
379: linux-glibc)
380: # http://www.v6.linux.or.jp/
381: AC_EGREP_CPP(yes, [
382: #include <features.h>
383: #if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
384: yes
385: #endif],
386: [ipv6type=$i;
387: AC_DEFINE(INET6, 1, [true if you have IPv6])])
388: ;;
389: linux-inet6)
390: # http://www.v6.linux.or.jp/
391: if test -d /usr/inet6 -o -f /usr/inet6/lib/libinet6.a; then
392: ipv6type=$i
393: ipv6lib=inet6
394: ipv6libdir=/usr/inet6/lib
395: ipv6trylibc=yes;
396: AC_DEFINE(INET6, 1, [true if you have IPv6])
397: CFLAGS="-I/usr/inet6/include $CFLAGS"
398: fi
399: ;;
400: solaris)
401: # http://www.sun.com
402: AC_EGREP_CPP(yes, [
403: #include <netinet/ip6.h>
404: #ifdef __sun
405: yes
406: #endif],
407: [ipv6type=$i;
408: AC_DEFINE(INET6, 1, [true if you have IPv6])])
409: ;;
410: toshiba)
411: AC_EGREP_CPP(yes, [
412: #include <sys/param.h>
413: #ifdef _TOSHIBA_INET6
414: yes
415: #endif],
416: [ipv6type=$i;
417: ipv6lib=inet6;
418: ipv6libdir=/usr/local/v6/lib;
419: AC_DEFINE(INET6, 1, [true if you have IPv6])])
420: ;;
421: v6d)
422: AC_EGREP_CPP(yes, [
423: #include </usr/local/v6/include/sys/v6config.h>
424: #ifdef __V6D__
425: yes
426: #endif],
427: [ipv6type=$i;
428: ipv6lib=v6;
429: ipv6libdir=/usr/local/v6/lib;
430: AC_DEFINE(INET6, 1, [true if you have IPv6])])
431: ;;
432: zeta)
433: AC_EGREP_CPP(yes, [
434: #include <sys/param.h>
435: #ifdef _ZETA_MINAMI_INET6
436: yes
437: #endif],
438: [ipv6type=$i;
439: ipv6lib=inet6;
440: ipv6libdir=/usr/local/v6/lib;
441: AC_DEFINE(INET6, 1, [true if you have IPv6])])
442: ;;
443: cygwin)
444: AC_EGREP_CPP(yes, [
445: #include <netinet/in.h>
446: #ifdef _CYGWIN_IN6_H
447: yes
448: #endif],
449: [ipv6type=$i;
450: AC_DEFINE(INET6, 1, [true if you have IPv6])])
451: ;;
1.1.1.4 ! misho 452: TANDEM)
! 453: AC_EGREP_CPP(yes, [
! 454: #include <netinet/ip6.h>
! 455: #ifdef __TANDEM
! 456: yes
! 457: #endif],
! 458: [ipv6type=$i;
! 459: AC_DEFINE(INET6, 1, [true if you have IPv6])])
! 460: ;;
1.1 misho 461: esac
462: if test "$ipv6type" != "unknown"; then
463: break
464: fi
465: done
466: AC_MSG_RESULT($ipv6type)
467:
468: AC_SEARCH_LIBS(getaddrinfo, inet6)
469: fi
470:
471: dnl Do you want to disable use of locale functions
472: AC_ARG_ENABLE([locale],
1.1.1.3 misho 473: AS_HELP_STRING([--disable-locale],[disable locale features]))
1.1 misho 474: AH_TEMPLATE([CONFIG_LOCALE],
475: [Undefine if you do not want locale features. By default this is defined.])
476: if test x"$enable_locale" != x"no"; then
477: AC_DEFINE(CONFIG_LOCALE)
478: fi
479:
480: AC_MSG_CHECKING([whether to call shutdown on all sockets])
481: case $host_os in
482: *cygwin* ) AC_MSG_RESULT(yes)
483: AC_DEFINE(SHUTDOWN_ALL_SOCKETS, 1,
484: [Define to 1 if sockets need to be shutdown])
485: ;;
486: * ) AC_MSG_RESULT(no);;
487: esac
488:
489: AC_C_BIGENDIAN
490: AC_HEADER_DIRENT
491: AC_HEADER_TIME
492: AC_HEADER_SYS_WAIT
493: AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
494: unistd.h utime.h grp.h compat.h sys/param.h ctype.h sys/wait.h \
495: sys/ioctl.h sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h \
496: sys/un.h sys/attr.h mcheck.h arpa/inet.h arpa/nameser.h locale.h \
1.1.1.4 ! misho 497: mysql/mysql.h sqlite3.h \
1.1 misho 498: netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h \
1.1.1.4 ! misho 499: sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h dl.h \
1.1.1.2 misho 500: popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netinet/ip.h \
1.1.1.4 ! misho 501: zlib.h xxhash.h openssl/md4.h openssl/md5.h zstd.h lz4.h sys/file.h)
! 502: AC_HEADER_MAJOR_FIXED
! 503:
! 504: AC_MSG_CHECKING([whether to enable use of openssl crypto library])
! 505: AC_ARG_ENABLE([openssl],
! 506: AS_HELP_STRING([--disable-openssl],[disable openssl crypto library]))
! 507: AH_TEMPLATE([USE_OPENSSL],
! 508: [Undefine if you do not want to use openssl crypto library. By default this is defined.])
! 509: if test x"$enable_openssl" != x"no"; then
! 510: if test x"$ac_cv_header_openssl_md4_h" = x"yes" && test x"$ac_cv_header_openssl_md5_h" = x"yes"; then
! 511: AC_MSG_RESULT(yes)
! 512: AC_SEARCH_LIBS(MD5_Init, crypto,
! 513: [AC_DEFINE(USE_OPENSSL)],
! 514: [err_msg="$err_msg$nl- Failed to find MD5_Init function in openssl crypto lib.";
! 515: no_lib="$no_lib openssl"])
! 516: else
! 517: AC_MSG_RESULT(no)
! 518: err_msg="$err_msg$nl- Failed to find openssl/md4.h and openssl/md5.h for openssl crypto lib support."
! 519: no_lib="$no_lib openssl"
! 520: fi
! 521: else
! 522: AC_MSG_RESULT(no)
! 523: fi
! 524:
! 525: AC_MSG_CHECKING([whether to enable xxhash checksum support])
! 526: AC_ARG_ENABLE([xxhash],
! 527: AS_HELP_STRING([--disable-xxhash],[disable xxhash checksums]))
! 528: AH_TEMPLATE([SUPPORT_XXHASH],
! 529: [Undefine if you do not want xxhash checksums. By default this is defined.])
! 530: if test x"$enable_xxhash" != x"no"; then
! 531: if test x"$ac_cv_header_xxhash_h" = x"yes"; then
! 532: AC_MSG_RESULT(yes)
! 533: AC_SEARCH_LIBS(XXH64_createState, xxhash,
! 534: [AC_DEFINE(SUPPORT_XXHASH)],
! 535: [err_msg="$err_msg$nl- Failed to find XXH64_createState function in xxhash lib.";
! 536: no_lib="$no_lib xxhash"])
! 537: else
! 538: AC_MSG_RESULT(no)
! 539: err_msg="$err_msg$nl- Failed to find xxhash.h for xxhash checksum support.";
! 540: no_lib="$no_lib xxhash"
! 541: fi
! 542: else
! 543: AC_MSG_RESULT(no)
! 544: fi
! 545:
! 546: AC_MSG_CHECKING([whether to enable zstd compression])
! 547: AC_ARG_ENABLE([zstd],
! 548: AC_HELP_STRING([--disable-zstd], [disable zstd compression]))
! 549: AH_TEMPLATE([SUPPORT_ZSTD],
! 550: [Undefine if you do not want zstd compression. By default this is defined.])
! 551: if test x"$enable_zstd" != x"no"; then
! 552: if test x"$ac_cv_header_zstd_h" = x"yes"; then
! 553: AC_MSG_RESULT(yes)
! 554: AC_SEARCH_LIBS(ZSTD_minCLevel, zstd,
! 555: [AC_DEFINE(SUPPORT_ZSTD)],
! 556: [err_msg="$err_msg$nl- Failed to find ZSTD_minCLevel function in zstd lib.";
! 557: no_lib="$no_lib zstd"])
! 558: else
! 559: AC_MSG_RESULT(no)
! 560: err_msg="$err_msg$nl- Failed to find zstd.h for zstd compression support.";
! 561: no_lib="$no_lib zstd"
! 562: fi
! 563: else
! 564: AC_MSG_RESULT(no)
! 565: fi
! 566:
! 567: AC_MSG_CHECKING([whether to enable LZ4 compression])
! 568: AC_ARG_ENABLE([lz4],
! 569: AC_HELP_STRING([--disable-lz4], [disable LZ4 compression]))
! 570: AH_TEMPLATE([SUPPORT_LZ4],
! 571: [Undefine if you do not want LZ4 compression. By default this is defined.])
! 572: if test x"$enable_lz4" != x"no"; then
! 573: if test x"$ac_cv_header_lz4_h" = x"yes"; then
! 574: AC_MSG_RESULT(yes)
! 575: AC_SEARCH_LIBS(LZ4_compress_default, lz4,
! 576: [AC_DEFINE(SUPPORT_LZ4)],
! 577: [err_msg="$err_msg$nl- Failed to find LZ4_compress_default function in lz4 lib.";
! 578: no_lib="$no_lib lz4"])
! 579: else
! 580: AC_MSG_RESULT(no)
! 581: err_msg="$err_msg$nl- Failed to find lz4.h for lz4 compression support."
! 582: no_lib="$no_lib lz4"
! 583: fi
! 584: else
! 585: AC_MSG_RESULT(no)
! 586: fi
! 587:
! 588: if test x"$no_lib" != x; then
! 589: echo ""
! 590: echo "Configure found the following issues:"
! 591: echo "$err_msg"
! 592: echo ""
! 593: echo "See the INSTALL file for hints on how to install the missing libraries and/or"
! 594: echo "how to generate (or fetch) man pages:"
! 595: echo " https://github.com/WayneD/rsync/blob/master/INSTALL.md"
! 596: echo ""
! 597: echo "To disable one or more features, the relevant configure options are:"
! 598: for lib in $no_lib; do
! 599: echo " --disable-$lib"
! 600: done
! 601: echo ""
! 602: AC_MSG_ERROR(Aborting configure run)
! 603: fi
1.1 misho 604:
605: AC_CACHE_CHECK([if makedev takes 3 args],rsync_cv_MAKEDEV_TAKES_3_ARGS,[
1.1.1.3 misho 606: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 607: #include <sys/types.h>
608: #ifdef MAJOR_IN_MKDEV
609: #include <sys/mkdev.h>
610: # if !defined makedev && (defined mkdev || defined _WIN32 || defined __WIN32__)
611: # define makedev mkdev
612: # endif
613: #elif defined MAJOR_IN_SYSMACROS
614: #include <sys/sysmacros.h>
615: #endif
616:
617: int main(void)
618: {
619: dev_t dev = makedev(0, 5, 7);
620: if (major(dev) != 5 || minor(dev) != 7)
1.1.1.4 ! misho 621: return 1;
1.1 misho 622: return 0;
623: }
1.1.1.3 misho 624: ]])],[rsync_cv_MAKEDEV_TAKES_3_ARGS=yes],[rsync_cv_MAKEDEV_TAKES_3_ARGS=no],[rsync_cv_MAKEDEV_TAKES_3_ARGS=no])])
1.1 misho 625: if test x"$rsync_cv_MAKEDEV_TAKES_3_ARGS" = x"yes"; then
626: AC_DEFINE(MAKEDEV_TAKES_3_ARGS, 1, [Define to 1 if makedev() takes 3 args])
627: fi
628:
629: AC_CHECK_SIZEOF(int)
630: AC_CHECK_SIZEOF(long)
631: AC_CHECK_SIZEOF(long long)
632: AC_CHECK_SIZEOF(short)
633: AC_CHECK_SIZEOF(int16_t)
634: AC_CHECK_SIZEOF(uint16_t)
635: AC_CHECK_SIZEOF(int32_t)
636: AC_CHECK_SIZEOF(uint32_t)
637: AC_CHECK_SIZEOF(int64_t)
638: AC_CHECK_SIZEOF(off_t)
639: AC_CHECK_SIZEOF(off64_t)
640: AC_CHECK_SIZEOF(time_t)
1.1.1.4 ! misho 641: AC_CHECK_SIZEOF(char*)
1.1 misho 642:
643: AC_C_INLINE
644:
1.1.1.3 misho 645: AC_TYPE_LONG_DOUBLE_WIDER
646: ac_cv_c_long_double=$ac_cv_type_long_double_wider
647: if test $ac_cv_c_long_double = yes; then
648: AC_DEFINE([HAVE_LONG_DOUBLE],[1],[Define to 1 if the type `long double' works and has more range or precision than `double'.])
649: fi
650:
1.1 misho 651: AC_TYPE_UID_T
652: AC_CHECK_TYPES([mode_t,off_t,size_t,pid_t,id_t])
653: AC_TYPE_GETGROUPS
1.1.1.2 misho 654: AC_CHECK_MEMBERS([struct stat.st_rdev,
655: struct stat.st_mtimensec,
1.1.1.4 ! misho 656: struct stat.st_mtimespec.tv_nsec,
1.1.1.2 misho 657: struct stat.st_mtim.tv_nsec],,,[
658: #ifdef HAVE_SYS_TYPES_H
659: #include <sys/types.h>
660: #endif
661: #ifdef HAVE_SYS_STAT_H
662: #include <sys/stat.h>
663: #endif
664: #ifdef HAVE_UNISTD_H
665: #include <unistd.h>
666: #endif])
1.1 misho 667:
668: TYPE_SOCKLEN_T
669:
670: AC_CACHE_CHECK([for errno in errno.h],rsync_cv_errno, [
1.1.1.3 misho 671: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]], [[int i = errno]])],[rsync_cv_errno=yes],[rsync_cv_have_errno_decl=no])])
1.1 misho 672: if test x"$rsync_cv_errno" = x"yes"; then
673: AC_DEFINE(HAVE_ERRNO_DECL, 1, [Define to 1 if errno is declared in errno.h])
674: fi
675:
676: # The following test taken from the cvs sources
677: # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
678: # These need checks to be before checks for any other functions that
679: # might be in the same libraries.
680: # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
681: # libsocket.so which has a bad implementation of gethostbyname (it
682: # only looks in /etc/hosts), so we only look for -lsocket if we need
683: # it.
684: AC_CHECK_FUNCS(connect)
685: if test x"$ac_cv_func_connect" = x"no"; then
686: case "$LIBS" in
687: *-lnsl*) ;;
688: *) AC_CHECK_LIB(nsl_s, printf) ;;
689: esac
690: case "$LIBS" in
691: *-lnsl*) ;;
692: *) AC_CHECK_LIB(nsl, printf) ;;
693: esac
694: case "$LIBS" in
695: *-lsocket*) ;;
696: *) AC_CHECK_LIB(socket, connect) ;;
697: esac
698: case "$LIBS" in
699: *-linet*) ;;
700: *) AC_CHECK_LIB(inet, connect) ;;
701: esac
702: dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
703: dnl has been cached.
704: if test x"$ac_cv_lib_socket_connect" = x"yes" ||
705: test x"$ac_cv_lib_inet_connect" = x"yes"; then
706: # ac_cv_func_connect=yes
707: # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
708: AC_DEFINE(HAVE_CONNECT, 1, [Define to 1 if you have the "connect" function])
709: fi
710: fi
711:
712: AC_SEARCH_LIBS(inet_ntop, resolv)
713:
714: # For OS X, Solaris, HP-UX, etc.: figure out if -liconv is needed. We'll
715: # accept either iconv_open or libiconv_open, since some include files map
716: # the former to the latter.
717: AC_SEARCH_LIBS(iconv_open, iconv)
718: AC_SEARCH_LIBS(libiconv_open, iconv)
719:
720: AC_MSG_CHECKING([for iconv declaration])
721: AC_CACHE_VAL(am_cv_proto_iconv, [
1.1.1.3 misho 722: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1 misho 723: #include <stdlib.h>
724: #include <iconv.h>
725: extern
726: #ifdef __cplusplus
727: "C"
728: #endif
729: #if defined(__STDC__) || defined(__cplusplus)
730: size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
731: #else
732: size_t iconv();
733: #endif
1.1.1.3 misho 734: ]], [[]])],[am_cv_proto_iconv_arg1=""],[am_cv_proto_iconv_arg1="const"])
1.1 misho 735: am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
1.1.1.4 ! misho 736: am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed 's/( /(/'`
1.1 misho 737: AC_MSG_RESULT([$]{ac_t:-
738: }[$]am_cv_proto_iconv)
739: AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
740: [Define as const if the declaration of iconv() needs const.])
741:
742: dnl AC_MSG_NOTICE([Looking in libraries: $LIBS])
743:
1.1.1.3 misho 744: AC_REPLACE_FUNCS([inet_ntop inet_pton])
1.1 misho 745:
746: AC_HAVE_TYPE([struct addrinfo], [#include <netdb.h>])
747: AC_HAVE_TYPE([struct sockaddr_storage], [#include <sys/types.h>
748: #include <sys/socket.h>])
749:
750: # Irix 6.5 has getaddrinfo but not the corresponding defines, so use
751: # builtin getaddrinfo if one of the defines don't exist
752: AC_CACHE_CHECK([whether defines needed by getaddrinfo exist],
753: rsync_cv_HAVE_GETADDR_DEFINES,[
754: AC_EGREP_CPP(yes, [
755: #include <sys/types.h>
756: #include <sys/socket.h>
757: #include <netdb.h>
758: #ifdef AI_PASSIVE
759: yes
760: #endif],
761: rsync_cv_HAVE_GETADDR_DEFINES=yes,
762: rsync_cv_HAVE_GETADDR_DEFINES=no)])
1.1.1.3 misho 763: AS_IF([test x"$rsync_cv_HAVE_GETADDR_DEFINES" = x"yes" -a x"$ac_cv_type_struct_addrinfo" = x"yes"],[
1.1 misho 764: # Tru64 UNIX has getaddrinfo() but has it renamed in libc as
765: # something else so we must include <netdb.h> to get the
766: # redefinition.
767: AC_CHECK_FUNCS(getaddrinfo, ,
768: [AC_MSG_CHECKING([for getaddrinfo by including <netdb.h>])
1.1.1.3 misho 769: AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1.1 misho 770: #include <sys/socket.h>
1.1.1.3 misho 771: #include <netdb.h>]], [[getaddrinfo(NULL, NULL, NULL, NULL);]])],[AC_MSG_RESULT([yes])
1.1 misho 772: AC_DEFINE(HAVE_GETADDRINFO, 1,
1.1.1.3 misho 773: [Define to 1 if you have the "getaddrinfo" function and required types.])],[AC_MSG_RESULT([no])
774: AC_LIBOBJ([getaddrinfo])])])
775: ],[AC_LIBOBJ([getaddrinfo])])
1.1 misho 776:
777: AC_CHECK_MEMBER([struct sockaddr.sa_len],
778: [ AC_DEFINE(HAVE_SOCKADDR_LEN, 1, [Do we have sockaddr.sa_len?]) ],
779: [],
780: [
781: #include <sys/types.h>
782: #include <sys/socket.h>
783: ])
784:
785: AC_CHECK_MEMBER([struct sockaddr_in.sin_len],
786: [ AC_DEFINE(HAVE_SOCKADDR_IN_LEN, 1, [Do we have sockaddr_in.sin_len?]) ],
787: [],
788: [
789: #include <sys/types.h>
790: #include <sys/socket.h>
791: #include <netinet/in.h>
792: ])
793:
794: AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
795: [ AC_DEFINE(HAVE_SOCKADDR_UN_LEN, 1, [Do we have sockaddr_un.sun_len?]) ],
796: [],
797: [
798: #include <sys/types.h>
799: #include <sys/socket.h>
800: #include <netinet/in.h>
801: ])
802:
803: AC_CHECK_MEMBER([struct sockaddr_in6.sin6_scope_id],
804: [ AC_DEFINE(HAVE_SOCKADDR_IN6_SCOPE_ID, 1, [Do we have sockaddr_in6.sin6_scope_id?]) ],
805: [],
806: [
807: #include <sys/types.h>
808: #include <sys/socket.h>
809: #include <netinet/in.h>
810: ])
811:
812: AC_HAVE_TYPE([struct stat64], [#include <stdio.h>
813: #if HAVE_SYS_TYPES_H
814: # include <sys/types.h>
815: #endif
816: #if HAVE_SYS_STAT_H
817: # include <sys/stat.h>
818: #endif
819: #if STDC_HEADERS
820: # include <stdlib.h>
821: # include <stddef.h>
822: #else
823: # if HAVE_STDLIB_H
824: # include <stdlib.h>
825: # endif
826: #endif
827: ])
828:
829: # if we can't find strcasecmp, look in -lresolv (for Unixware at least)
830: #
831: AC_CHECK_FUNCS(strcasecmp)
832: if test x"$ac_cv_func_strcasecmp" = x"no"; then
833: AC_CHECK_LIB(resolv, strcasecmp)
834: fi
835:
836: AC_CHECK_FUNCS(aclsort)
837: if test x"$ac_cv_func_aclsort" = x"no"; then
838: AC_CHECK_LIB(sec, aclsort)
839: fi
840:
841: dnl At the moment we don't test for a broken memcmp(), because all we
842: dnl need to do is test for equality, not comparison, and it seems that
843: dnl every platform has a memcmp that can do at least that.
844: dnl AC_FUNC_MEMCMP
845:
846: AC_FUNC_UTIME_NULL
847: AC_FUNC_ALLOCA
1.1.1.4 ! misho 848: AC_CHECK_FUNCS(waitpid wait4 getcwd chown chmod lchmod mknod mkfifo \
1.1 misho 849: fchmod fstat ftruncate strchr readlink link utime utimes lutimes strftime \
1.1.1.4 ! misho 850: chflags getattrlist mktime innetgr linkat \
1.1 misho 851: memmove lchown vsnprintf snprintf vasprintf asprintf setsid strpbrk \
852: strlcat strlcpy strtol mallinfo getgroups setgroups geteuid getegid \
853: setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy __va_copy \
854: seteuid strerror putenv iconv_open locale_charset nl_langinfo getxattr \
1.1.1.2 misho 855: extattr_get_link sigaction sigprocmask setattrlist getgrouplist \
1.1.1.4 ! misho 856: initgroups utimensat posix_fallocate attropen setvbuf nanosleep usleep)
1.1 misho 857:
858: dnl cygwin iconv.h defines iconv_open as libiconv_open
859: if test x"$ac_cv_func_iconv_open" != x"yes"; then
860: AC_CHECK_FUNC(libiconv_open, [ac_cv_func_iconv_open=yes; AC_DEFINE(HAVE_ICONV_OPEN, 1)])
861: fi
862:
1.1.1.2 misho 863: dnl Preallocation stuff (also fallocate, posix_fallocate function tests above):
864:
865: AC_CACHE_CHECK([for useable fallocate],rsync_cv_have_fallocate,[
1.1.1.3 misho 866: AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <fcntl.h>
867: #include <sys/types.h>]], [[fallocate(0, 0, 0, 0);]])],[rsync_cv_have_fallocate=yes],[rsync_cv_have_fallocate=no])])
1.1.1.2 misho 868: if test x"$rsync_cv_have_fallocate" = x"yes"; then
869: AC_DEFINE(HAVE_FALLOCATE, 1, [Define to 1 if you have the fallocate function and it compiles and links without error])
870: fi
871:
1.1.1.4 ! misho 872: AC_MSG_CHECKING([for FALLOC_FL_PUNCH_HOLE])
! 873: AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
! 874: #define _GNU_SOURCE 1
! 875: #include <linux/falloc.h>
! 876: #ifndef FALLOC_FL_PUNCH_HOLE
! 877: #error FALLOC_FL_PUNCH_HOLE is missing
! 878: #endif
! 879: ]])], [
! 880: AC_MSG_RESULT([yes])
! 881: AC_DEFINE([HAVE_FALLOC_FL_PUNCH_HOLE], [1], [Define if FALLOC_FL_PUNCH_HOLE is available.])
! 882: ], [
! 883: AC_MSG_RESULT([no])
! 884: ]
! 885: )
! 886:
! 887: AC_MSG_CHECKING([for FALLOC_FL_ZERO_RANGE])
! 888: AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
! 889: #define _GNU_SOURCE 1
! 890: #include <linux/falloc.h>
! 891: #ifndef FALLOC_FL_ZERO_RANGE
! 892: #error FALLOC_FL_ZERO_RANGE is missing
! 893: #endif
! 894: ]])], [
! 895: AC_MSG_RESULT([yes])
! 896: AC_DEFINE([HAVE_FALLOC_FL_ZERO_RANGE], [1], [Define if FALLOC_FL_ZERO_RANGE is available.])
! 897: ], [
! 898: AC_MSG_RESULT([no])
! 899: ]
! 900: )
! 901:
1.1.1.2 misho 902: AC_CACHE_CHECK([for SYS_fallocate],rsync_cv_have_sys_fallocate,[
1.1.1.3 misho 903: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/syscall.h>
1.1.1.4 ! misho 904: #include <unistd.h>
1.1.1.3 misho 905: #include <sys/types.h>]], [[syscall(SYS_fallocate, 0, 0, (loff_t)0, (loff_t)0);]])],[rsync_cv_have_sys_fallocate=yes],[rsync_cv_have_sys_fallocate=no])])
1.1.1.2 misho 906: if test x"$rsync_cv_have_sys_fallocate" = x"yes"; then
907: AC_DEFINE(HAVE_SYS_FALLOCATE, 1, [Define to 1 if you have the SYS_fallocate syscall number])
908: fi
909:
910: if test x"$ac_cv_func_posix_fallocate" = x"yes"; then
911: AC_MSG_CHECKING([whether posix_fallocate is efficient])
912: case $host_os in
913: *cygwin*)
914: AC_MSG_RESULT(yes)
915: AC_DEFINE(HAVE_EFFICIENT_POSIX_FALLOCATE, 1,
916: [Define if posix_fallocate is efficient (Cygwin)])
917: ;;
918: *)
919: AC_MSG_RESULT(no)
920: ;;
921: esac
922: fi
923:
924: dnl End of preallocation stuff
925:
1.1 misho 926: AC_CHECK_FUNCS(getpgrp tcgetpgrp)
927: if test $ac_cv_func_getpgrp = yes; then
928: AC_FUNC_GETPGRP
929: fi
930:
931: AC_ARG_ENABLE(iconv-open,
1.1.1.3 misho 932: AS_HELP_STRING([--disable-iconv-open],[disable all use of iconv_open() function]),
1.1 misho 933: [], [enable_iconv_open=$ac_cv_func_iconv_open])
934:
935: if test x"$enable_iconv_open" != x"no"; then
936: AC_DEFINE(USE_ICONV_OPEN, 1, [Define to 1 if you want rsync to make use of iconv_open()])
937: fi
938:
939: AC_ARG_ENABLE(iconv,
1.1.1.3 misho 940: AS_HELP_STRING([--disable-iconv],[disable rsync's --iconv option]),
1.1 misho 941: [], [enable_iconv=$enable_iconv_open])
942: AH_TEMPLATE([ICONV_OPTION],
1.1.1.4 ! misho 943: [Define if you want the --iconv option. Specifying a value will set the
1.1 misho 944: default iconv setting (a NULL means no --iconv processing by default).])
945: if test x"$enable_iconv" != x"no"; then
946: if test x"$enable_iconv" = x"yes"; then
947: AC_DEFINE(ICONV_OPTION, NULL)
948: else
949: AC_DEFINE_UNQUOTED(ICONV_OPTION, "$enable_iconv")
950: fi
951: AC_DEFINE(UTF8_CHARSET, "UTF-8", [String to pass to iconv() for the UTF-8 charset.])
952: fi
953:
1.1.1.4 ! misho 954: AC_ARG_WITH([gssapi],
! 955: [AS_HELP_STRING([--with-gssapi],
! 956: [support GSSAPI authentication @<:@default=check@:>@])],
! 957: [],
! 958: [with_gssapi=check])
! 959:
! 960: AH_TEMPLATE([GSSAPI_OPTION],
! 961: [Define if you want GSSAPI authentication. Specifing a value will set the search path.])
! 962:
! 963: AS_IF([test "x$with_gssapi" != xno],
! 964: [AC_SEARCH_LIBS([gss_import_name], gss gssapi_krb5 ,
! 965: [AC_CHECK_HEADERS(gssapi/gssapi_generic.h gssapi/gssapi.h) ]
! 966: [ AC_DEFINE([GSSAPI_OPTION], [1]) ]
! 967: ,
! 968: [if test "x$with_gssapi" = xcheck; then
! 969: AC_MSG_FAILURE(
! 970: [--with-gssapi was given, but test for function failed])
! 971: fi
! 972: ])
! 973: ])
! 974:
! 975: if test x"$enable_gssapi" != x"no"; then
! 976: AC_DEFINE(GSSAPI_OPTION, 1)
! 977: fi
! 978:
1.1 misho 979: AC_CACHE_CHECK([whether chown() modifies symlinks],rsync_cv_chown_modifies_symlink,[
1.1.1.3 misho 980: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 981: #if HAVE_UNISTD_H
982: # include <unistd.h>
983: #endif
984: #include <stdlib.h>
985: #include <errno.h>
1.1.1.4 ! misho 986: int main(void) {
1.1 misho 987: char const *dangling_symlink = "conftest.dangle";
988: unlink(dangling_symlink);
989: if (symlink("conftest.no-such", dangling_symlink) < 0) abort();
1.1.1.4 ! misho 990: if (chown(dangling_symlink, getuid(), getgid()) < 0 && errno == ENOENT) return 1;
! 991: return 0;
1.1.1.3 misho 992: }]])],[rsync_cv_chown_modifies_symlink=yes],[rsync_cv_chown_modifies_symlink=no],[rsync_cv_chown_modifies_symlink=no])])
1.1 misho 993: if test $rsync_cv_chown_modifies_symlink = yes; then
994: AC_DEFINE(CHOWN_MODIFIES_SYMLINK, 1, [Define to 1 if chown modifies symlinks.])
995: fi
996:
997: AC_CACHE_CHECK([whether link() can hard-link symlinks],rsync_cv_can_hardlink_symlink,[
1.1.1.3 misho 998: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1.1.4 ! misho 999: #ifdef HAVE_FCNTL_H
! 1000: # include <fcntl.h>
! 1001: #elif defined HAVE_SYS_FCNTL_H
! 1002: # include <sys/fcntl.h>
! 1003: #endif
1.1 misho 1004: #if HAVE_UNISTD_H
1005: # include <unistd.h>
1006: #endif
1007: #include <stdlib.h>
1008: #include <errno.h>
1009: #define FILENAME "conftest.dangle"
1.1.1.4 ! misho 1010: int main(void) {
1.1 misho 1011: unlink(FILENAME);
1012: if (symlink("conftest.no-such", FILENAME) < 0) abort();
1.1.1.3 misho 1013: unlink(FILENAME "2");
1.1.1.4 ! misho 1014: #ifdef HAVE_LINKAT
! 1015: if (linkat(AT_FDCWD, FILENAME, AT_FDCWD, FILENAME "2", 0) < 0) return 1;
! 1016: #else
! 1017: if (link(FILENAME, FILENAME "2") < 0) return 1;
! 1018: #endif
! 1019: return 0;
1.1.1.3 misho 1020: }]])],[rsync_cv_can_hardlink_symlink=yes],[rsync_cv_can_hardlink_symlink=no],[rsync_cv_can_hardlink_symlink=no])])
1.1 misho 1021: if test $rsync_cv_can_hardlink_symlink = yes; then
1022: AC_DEFINE(CAN_HARDLINK_SYMLINK, 1, [Define to 1 if link() can hard-link symlinks.])
1023: fi
1024:
1025: AC_CACHE_CHECK([whether link() can hard-link special files],rsync_cv_can_hardlink_special,[
1.1.1.3 misho 1026: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 1027: #if HAVE_UNISTD_H
1028: # include <unistd.h>
1029: #endif
1.1.1.4 ! misho 1030: #ifdef HAVE_SYS_STAT_H
! 1031: #include <sys/stat.h>
! 1032: #endif
1.1 misho 1033: #include <stdlib.h>
1034: #include <errno.h>
1035: #define FILENAME "conftest.fifi"
1.1.1.4 ! misho 1036: int main(void) {
1.1 misho 1037: unlink(FILENAME);
1038: if (mkfifo(FILENAME, 0777) < 0) abort();
1.1.1.3 misho 1039: unlink(FILENAME "2");
1.1.1.4 ! misho 1040: if (link(FILENAME, FILENAME "2") < 0) return 1;
! 1041: return 0;
1.1.1.3 misho 1042: }]])],[rsync_cv_can_hardlink_special=yes],[rsync_cv_can_hardlink_special=no],[rsync_cv_can_hardlink_special=no])])
1.1 misho 1043: if test $rsync_cv_can_hardlink_special = yes; then
1044: AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.])
1045: fi
1046:
1.1.1.4 ! misho 1047: AC_ARG_ENABLE(slp, [ --disable-slp turn off SLP support, defaults to on])
! 1048: AC_ARG_WITH(openslp-libs, [ --with-openslp-libs set directory for OpenSLP library],
! 1049: LDFLAGS="-L$withval $LDFLAGS"
! 1050: DSOFLAGS="-L$withval $DSOFLAGS",)
! 1051: AC_ARG_WITH(openslp-includes, [ --with-openslp-includes set directory for OpenSLP includes],
! 1052: CFLAGS="-I$withval $CFLAGS"
! 1053: CXXFLAGS="-I$withval $CXXFLAGS"
! 1054: CPPFLAGS="-I$withval $CPPFLAGS",)
! 1055:
! 1056: LIBSLP=""
! 1057: SLPOBJ=""
! 1058:
! 1059: if test x$enable_slp != xno; then
! 1060: AC_CHECK_HEADER(slp.h,
! 1061: AC_CHECK_LIB(slp, SLPOpen,
! 1062: AC_DEFINE(HAVE_LIBSLP, 1, [Define to 1 for SLP support])
! 1063: SLPOBJ="srvreg.o srvloc.o"
! 1064: LIBSLP="-lslp"))
! 1065: fi
! 1066:
! 1067: AC_SUBST(LIBSLP)
! 1068: AC_SUBST(SLPOBJ)
! 1069:
1.1 misho 1070: AC_CACHE_CHECK([for working socketpair],rsync_cv_HAVE_SOCKETPAIR,[
1.1.1.3 misho 1071: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 1072: #include <sys/types.h>
1073: #include <sys/socket.h>
1074:
1.1.1.4 ! misho 1075: int main(void) {
1.1 misho 1076: int fd[2];
1.1.1.4 ! misho 1077: return (socketpair(AF_UNIX, SOCK_STREAM, 0, fd) != -1) ? 0 : 1;
1.1.1.3 misho 1078: }]])],[rsync_cv_HAVE_SOCKETPAIR=yes],[rsync_cv_HAVE_SOCKETPAIR=no],[rsync_cv_HAVE_SOCKETPAIR=cross])])
1.1 misho 1079: if test x"$rsync_cv_HAVE_SOCKETPAIR" = x"yes"; then
1080: AC_DEFINE(HAVE_SOCKETPAIR, 1, [Define to 1 if you have the "socketpair" function])
1081: fi
1082:
1.1.1.3 misho 1083: AC_REPLACE_FUNCS([getpass])
1.1.1.2 misho 1084:
1.1 misho 1085: if test x"$with_included_popt" != x"yes"; then
1086: AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes])
1087: fi
1088: if test x"$ac_cv_header_popt_popt_h" = x"yes"; then
1089: # If the system has /usr/include/popt/popt.h, we enable the
1090: # included popt because an attempt to "#include <popt/popt.h>"
1091: # would use our included header file anyway (due to -I.), and
1092: # might conflict with the system popt.
1093: with_included_popt=yes
1094: elif test x"$ac_cv_header_popt_h" != x"yes"; then
1095: with_included_popt=yes
1096: fi
1097:
1098: AC_MSG_CHECKING([whether to use included libpopt])
1099: if test x"$with_included_popt" = x"yes"; then
1100: AC_MSG_RESULT($srcdir/popt)
1101: BUILD_POPT='$(popt_OBJS)'
1.1.1.3 misho 1102: CFLAGS="-I$srcdir/popt $CFLAGS"
1.1 misho 1103: if test x"$ALLOCA" != x
1104: then
1105: # this can be removed when/if we add an included alloca.c;
1106: # see autoconf documentation on AC_FUNC_ALLOCA
1107: AC_MSG_WARN([included libpopt will use malloc, not alloca (which wastes a small amount of memory)])
1108: fi
1109: else
1110: AC_MSG_RESULT(no)
1111: fi
1112:
1.1.1.2 misho 1113: # We default to using our zlib unless --with-included-zlib=no is given.
1114: if test x"$with_included_zlib" != x"no"; then
1115: with_included_zlib=yes
1116: elif test x"$ac_cv_header_zlib_h" != x"yes"; then
1117: with_included_zlib=yes
1118: fi
1119: if test x"$with_included_zlib" != x"yes"; then
1120: AC_CHECK_LIB(z, deflateParams, , [with_included_zlib=yes])
1121: fi
1122:
1123: AC_MSG_CHECKING([whether to use included zlib])
1124: if test x"$with_included_zlib" = x"yes"; then
1125: AC_MSG_RESULT($srcdir/zlib)
1126: BUILD_ZLIB='$(zlib_OBJS)'
1.1.1.3 misho 1127: CFLAGS="-I$srcdir/zlib $CFLAGS"
1.1.1.2 misho 1128: else
1.1.1.3 misho 1129: AC_DEFINE(EXTERNAL_ZLIB, 1, [Define to 1 if using external zlib])
1.1.1.2 misho 1130: AC_MSG_RESULT(no)
1131: fi
1132:
1.1 misho 1133: AC_CACHE_CHECK([for unsigned char],rsync_cv_SIGNED_CHAR_OK,[
1.1.1.3 misho 1134: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[signed char *s = ""]])],[rsync_cv_SIGNED_CHAR_OK=yes],[rsync_cv_SIGNED_CHAR_OK=no])])
1.1 misho 1135: if test x"$rsync_cv_SIGNED_CHAR_OK" = x"yes"; then
1136: AC_DEFINE(SIGNED_CHAR_OK, 1, [Define to 1 if "signed char" is a valid type])
1137: fi
1138:
1139: AC_CACHE_CHECK([for broken readdir],rsync_cv_HAVE_BROKEN_READDIR,[
1.1.1.3 misho 1140: AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/types.h>
1.1 misho 1141: #include <dirent.h>
1.1.1.4 ! misho 1142: int main(void) { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1.1 misho 1143: if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1.1.1.4 ! misho 1144: di->d_name[0] == 0) return 0; return 1;} ]])],[rsync_cv_HAVE_BROKEN_READDIR=yes],[rsync_cv_HAVE_BROKEN_READDIR=no],[rsync_cv_HAVE_BROKEN_READDIR=cross])])
1.1 misho 1145: if test x"$rsync_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1146: AC_DEFINE(HAVE_BROKEN_READDIR, 1, [Define to 1 if readdir() is broken])
1147: fi
1148:
1149: AC_CACHE_CHECK([for utimbuf],rsync_cv_HAVE_STRUCT_UTIMBUF,[
1.1.1.3 misho 1150: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1.1.1.4 ! misho 1151: #include <utime.h>]], [[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; return utime("foo.c",&tbuf);]])],[rsync_cv_HAVE_STRUCT_UTIMBUF=yes],[rsync_cv_HAVE_STRUCT_UTIMBUF=no])])
1.1 misho 1152: if test x"$rsync_cv_HAVE_STRUCT_UTIMBUF" = x"yes"; then
1153: AC_DEFINE(HAVE_STRUCT_UTIMBUF, 1, [Define to 1 if you have the "struct utimbuf" type])
1154: fi
1155:
1156: AC_CACHE_CHECK([if gettimeofday takes tz argument],rsync_cv_HAVE_GETTIMEOFDAY_TZ,[
1.1.1.3 misho 1157: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/time.h>
1.1.1.4 ! misho 1158: #include <unistd.h>]], [[struct timeval tv; return gettimeofday(&tv, NULL);]])],[rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes],[rsync_cv_HAVE_GETTIMEOFDAY_TZ=no])])
1.1 misho 1159: if test x"$rsync_cv_HAVE_GETTIMEOFDAY_TZ" != x"no"; then
1160: AC_DEFINE(HAVE_GETTIMEOFDAY_TZ, 1, [Define to 1 if gettimeofday() takes a time-zone arg])
1161: fi
1162:
1163: AC_CACHE_CHECK([for C99 vsnprintf],rsync_cv_HAVE_C99_VSNPRINTF,[
1.1.1.3 misho 1164: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 1165: #include <sys/types.h>
1166: #include <stdarg.h>
1.1.1.4 ! misho 1167: #include <stdio.h>
! 1168: #include <stdlib.h>
! 1169: #include <string.h>
1.1 misho 1170: void foo(const char *format, ...) {
1171: va_list ap;
1172: int len;
1.1.1.4 ! misho 1173: static char buf[] = "12345678901234567890";
1.1 misho 1174:
1175: va_start(ap, format);
1176: len = vsnprintf(0, 0, format, ap);
1177: va_end(ap);
1178: if (len != 5) exit(1);
1179:
1180: if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1181: }
1.1.1.4 ! misho 1182: int main(void) { foo("hello"); return 0; }
1.1.1.3 misho 1183: ]])],[rsync_cv_HAVE_C99_VSNPRINTF=yes],[rsync_cv_HAVE_C99_VSNPRINTF=no],[rsync_cv_HAVE_C99_VSNPRINTF=cross])])
1.1 misho 1184: if test x"$rsync_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1185: AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [Define to 1 if vsprintf has a C99-compatible return value])
1186: fi
1187:
1188:
1189: AC_CACHE_CHECK([for secure mkstemp],rsync_cv_HAVE_SECURE_MKSTEMP,[
1.1.1.3 misho 1190: AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
1.1 misho 1191: #include <sys/types.h>
1192: #include <sys/stat.h>
1193: #include <unistd.h>
1.1.1.4 ! misho 1194: int main(void) {
1.1 misho 1195: struct stat st;
1196: char tpl[20]="/tmp/test.XXXXXX";
1197: int fd = mkstemp(tpl);
1.1.1.4 ! misho 1198: if (fd == -1) return 1;
1.1 misho 1199: unlink(tpl);
1.1.1.4 ! misho 1200: if (fstat(fd, &st) != 0) return 1;
! 1201: if ((st.st_mode & 0777) != 0600) return 1;
! 1202: return 0;
1.1.1.3 misho 1203: }]])],[rsync_cv_HAVE_SECURE_MKSTEMP=yes],[rsync_cv_HAVE_SECURE_MKSTEMP=no],[rsync_cv_HAVE_SECURE_MKSTEMP=cross])])
1.1 misho 1204: if test x"$rsync_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1205: case $host_os in
1206: hpux*)
1207: dnl HP-UX has a broken mkstemp() implementation they refuse to fix,
1208: dnl so we noisily skip using it. See HP change request JAGaf34426
1209: dnl for details. (sbonds)
1210: AC_MSG_WARN(Skipping broken HP-UX mkstemp() -- using mktemp() instead)
1211: ;;
1212: *)
1213: AC_DEFINE(HAVE_SECURE_MKSTEMP, 1, [Define to 1 if mkstemp() is available and works right])
1214: ;;
1215: esac
1216: fi
1217:
1218:
1219: AC_CACHE_CHECK([if mknod creates FIFOs],rsync_cv_MKNOD_CREATES_FIFOS,[
1.1.1.3 misho 1220: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 1221: #include <stdio.h>
1222: #include <sys/stat.h>
1223: #include <errno.h>
1.1.1.4 ! misho 1224: #if HAVE_UNISTD_H
! 1225: # include <unistd.h>
! 1226: #endif
! 1227: int main(void) { int rc, ec; char *fn = "fifo-test";
1.1 misho 1228: unlink(fn); rc = mknod(fn,S_IFIFO,0600); ec = errno; unlink(fn);
1229: if (rc) {printf("(%d %d) ",rc,ec); return ec;}
1.1.1.3 misho 1230: return 0;}]])],[rsync_cv_MKNOD_CREATES_FIFOS=yes],[rsync_cv_MKNOD_CREATES_FIFOS=no],[rsync_cv_MKNOD_CREATES_FIFOS=cross])])
1.1 misho 1231: if test x"$rsync_cv_MKNOD_CREATES_FIFOS" = x"yes"; then
1232: AC_DEFINE(MKNOD_CREATES_FIFOS, 1, [Define to 1 if mknod() can create FIFOs.])
1233: fi
1234:
1235: AC_CACHE_CHECK([if mknod creates sockets],rsync_cv_MKNOD_CREATES_SOCKETS,[
1.1.1.3 misho 1236: AC_RUN_IFELSE([AC_LANG_SOURCE([[
1.1 misho 1237: #include <stdio.h>
1238: #include <sys/stat.h>
1239: #include <errno.h>
1.1.1.4 ! misho 1240: #if HAVE_UNISTD_H
! 1241: # include <unistd.h>
! 1242: #endif
! 1243: int main(void) { int rc, ec; char *fn = "sock-test";
1.1 misho 1244: unlink(fn); rc = mknod(fn,S_IFSOCK,0600); ec = errno; unlink(fn);
1245: if (rc) {printf("(%d %d) ",rc,ec); return ec;}
1.1.1.3 misho 1246: return 0;}]])],[rsync_cv_MKNOD_CREATES_SOCKETS=yes],[rsync_cv_MKNOD_CREATES_SOCKETS=no],[rsync_cv_MKNOD_CREATES_SOCKETS=cross])])
1.1 misho 1247: if test x"$rsync_cv_MKNOD_CREATES_SOCKETS" = x"yes"; then
1248: AC_DEFINE(MKNOD_CREATES_SOCKETS, 1, [Define to 1 if mknod() can create sockets.])
1249: fi
1250:
1251: #
1252: # The following test was mostly taken from the tcl/tk plus patches
1253: #
1254: AC_CACHE_CHECK([whether -c -o works],rsync_cv_DASHC_WORKS_WITH_DASHO,[
1255: rm -rf conftest*
1256: cat > conftest.$ac_ext <<EOF
1.1.1.4 ! misho 1257: int main(void) { return 0; }
1.1 misho 1258: EOF
1259: ${CC-cc} -c -o conftest..o conftest.$ac_ext
1260: if test -f conftest..o; then
1261: rsync_cv_DASHC_WORKS_WITH_DASHO=yes
1262: else
1263: rsync_cv_DASHC_WORKS_WITH_DASHO=no
1264: fi
1265: rm -rf conftest*
1266: ])
1267: if test x"$rsync_cv_DASHC_WORKS_WITH_DASHO" = x"yes"; then
1268: OBJ_SAVE="#"
1269: OBJ_RESTORE="#"
1270: CC_SHOBJ_FLAG='-o $@'
1271: else
1272: OBJ_SAVE=' @b=`basename $@ .o`;rm -f $$b.o.sav;if test -f $$b.o; then mv $$b.o $$b.o.sav;fi;'
1273: OBJ_RESTORE=' @b=`basename $@ .o`;if test "$$b.o" != "$@"; then mv $$b.o $@; if test -f $$b.o.sav; then mv $$b.o.sav $$b.o; fi; fi'
1274: CC_SHOBJ_FLAG=""
1275: fi
1276:
1277: AC_SUBST(OBJ_SAVE)
1278: AC_SUBST(OBJ_RESTORE)
1279: AC_SUBST(CC_SHOBJ_FLAG)
1280: AC_SUBST(BUILD_POPT)
1.1.1.2 misho 1281: AC_SUBST(BUILD_ZLIB)
1.1 misho 1282: AC_SUBST(MAKE_MAN)
1283:
1284: AC_CHECK_FUNCS(_acl __acl _facl __facl)
1285: #################################################
1286: # check for ACL support
1287:
1288: AC_MSG_CHECKING([whether to support ACLs])
1289: AC_ARG_ENABLE(acl-support,
1.1.1.3 misho 1290: AS_HELP_STRING([--disable-acl-support],[disable ACL support]))
1.1 misho 1291:
1292: if test x"$enable_acl_support" = x"no"; then
1293: AC_MSG_RESULT(no)
1294: else
1295: case "$host_os" in
1296: *sysv5*)
1297: AC_MSG_RESULT(Using UnixWare ACLs)
1298: AC_DEFINE(HAVE_UNIXWARE_ACLS, 1, [true if you have UnixWare ACLs])
1299: AC_DEFINE(SUPPORT_ACLS, 1, [Define to 1 to add support for ACLs])
1300: ;;
1.1.1.4 ! misho 1301: solaris*)
1.1 misho 1302: AC_MSG_RESULT(Using solaris ACLs)
1303: AC_DEFINE(HAVE_SOLARIS_ACLS, 1, [true if you have solaris ACLs])
1304: AC_DEFINE(SUPPORT_ACLS, 1)
1305: ;;
1306: *irix*)
1307: AC_MSG_RESULT(Using IRIX ACLs)
1308: AC_DEFINE(HAVE_IRIX_ACLS, 1, [true if you have IRIX ACLs])
1309: AC_DEFINE(SUPPORT_ACLS, 1)
1310: ;;
1311: *aix*)
1312: AC_MSG_RESULT(Using AIX ACLs)
1313: AC_DEFINE(HAVE_AIX_ACLS, 1, [true if you have AIX ACLs])
1314: AC_DEFINE(SUPPORT_ACLS, 1)
1315: ;;
1316: *osf*)
1317: AC_MSG_RESULT(Using Tru64 ACLs)
1318: AC_DEFINE(HAVE_TRU64_ACLS, 1, [true if you have Tru64 ACLs])
1319: AC_DEFINE(SUPPORT_ACLS, 1)
1320: LIBS="$LIBS -lpacl"
1321: ;;
1322: darwin*)
1323: AC_MSG_RESULT(Using OS X ACLs)
1324: AC_DEFINE(HAVE_OSX_ACLS, 1, [true if you have Mac OS X ACLs])
1325: AC_DEFINE(SUPPORT_ACLS, 1)
1326: ;;
1.1.1.4 ! misho 1327: *hpux*|*nsk*)
! 1328: AC_MSG_RESULT(Using HPUX ACLs)
! 1329: AC_DEFINE(HAVE_HPUX_ACLS, 1, [true if you have HPUX ACLs])
! 1330: AC_DEFINE(SUPPORT_ACLS, 1)
! 1331: ;;
1.1 misho 1332: *)
1333: AC_MSG_RESULT(running tests:)
1334: AC_CHECK_LIB(acl,acl_get_file)
1.1.1.3 misho 1335: AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
1336: AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1337: #include <sys/acl.h>]], [[ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);]])],[samba_cv_HAVE_POSIX_ACLS=yes],[samba_cv_HAVE_POSIX_ACLS=no])])
1.1 misho 1338: AC_MSG_CHECKING(ACL test results)
1339: if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
1340: AC_MSG_RESULT(Using posix ACLs)
1341: AC_DEFINE(HAVE_POSIX_ACLS, 1, [true if you have posix ACLs])
1342: AC_DEFINE(SUPPORT_ACLS, 1)
1343: AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
1.1.1.3 misho 1344: AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
1345: #include <sys/acl.h>]], [[ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);]])],[samba_cv_HAVE_ACL_GET_PERM_NP=yes],[samba_cv_HAVE_ACL_GET_PERM_NP=no])])
1.1 misho 1346: if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
1347: AC_DEFINE(HAVE_ACL_GET_PERM_NP, 1, [true if you have acl_get_perm_np])
1348: fi
1349: else
1350: if test x"$enable_acl_support" = x"yes"; then
1351: AC_MSG_ERROR(Failed to find ACL support)
1352: else
1353: AC_MSG_RESULT(No ACL support found)
1354: fi
1355: fi
1356: ;;
1357: esac
1358: fi
1359:
1360: #################################################
1361: # check for extended attribute support
1362: AC_MSG_CHECKING(whether to support extended attributes)
1363: AC_ARG_ENABLE(xattr-support,
1.1.1.3 misho 1364: AS_HELP_STRING([--disable-xattr-support],[disable extended attributes]),
1.1.1.2 misho 1365: [], [case "$ac_cv_func_getxattr$ac_cv_func_extattr_get_link$ac_cv_func_attropen" in
1.1 misho 1366: *yes*) enable_xattr_support=maybe ;;
1367: *) enable_xattr_support=no ;;
1368: esac])
1369: AH_TEMPLATE([SUPPORT_XATTRS],
1370: [Define to 1 to add support for extended attributes])
1371: if test x"$enable_xattr_support" = x"no"; then
1372: AC_MSG_RESULT(no)
1373: else
1374: case "$host_os" in
1.1.1.4 ! misho 1375: *linux*|*netbsd*|*cygwin*)
1.1 misho 1376: AC_MSG_RESULT(Using Linux xattrs)
1.1.1.3 misho 1377: AC_DEFINE(HAVE_LINUX_XATTRS, 1, [True if you have Linux xattrs (or equivalent)])
1.1 misho 1378: AC_DEFINE(SUPPORT_XATTRS, 1)
1.1.1.2 misho 1379: AC_DEFINE(NO_SYMLINK_USER_XATTRS, 1, [True if symlinks do not support user xattrs])
1.1.1.3 misho 1380: AC_CHECK_LIB(attr,getxattr)
1.1 misho 1381: ;;
1382: darwin*)
1383: AC_MSG_RESULT(Using OS X xattrs)
1384: AC_DEFINE(HAVE_OSX_XATTRS, 1, [True if you have Mac OS X xattrs])
1385: AC_DEFINE(SUPPORT_XATTRS, 1)
1386: AC_DEFINE(NO_DEVICE_XATTRS, 1, [True if device files do not support xattrs])
1387: AC_DEFINE(NO_SPECIAL_XATTRS, 1, [True if special files do not support xattrs])
1388: ;;
1389: freebsd*)
1390: AC_MSG_RESULT(Using FreeBSD extattrs)
1391: AC_DEFINE(HAVE_FREEBSD_XATTRS, 1, [True if you have FreeBSD xattrs])
1392: AC_DEFINE(SUPPORT_XATTRS, 1)
1393: ;;
1394: solaris*)
1.1.1.2 misho 1395: AC_MSG_RESULT(Using Solaris xattrs)
1396: AC_DEFINE(HAVE_SOLARIS_XATTRS, 1, [True if you have Solaris xattrs])
1397: AC_DEFINE(SUPPORT_XATTRS, 1)
1.1 misho 1398: AC_DEFINE(NO_SYMLINK_XATTRS, 1, [True if symlinks do not support xattrs])
1399: ;;
1400: *)
1401: if test x"$enable_xattr_support" = x"yes"; then
1402: AC_MSG_ERROR(Failed to find extended attribute support)
1403: else
1404: AC_MSG_RESULT(No extended attribute support found)
1405: fi
1406: ;;
1407: esac
1408: fi
1409:
1410: if test x"$enable_acl_support" = x"no" -o x"$enable_xattr_support" = x"no" -o x"$enable_iconv" = x"no"; then
1411: AC_MSG_CHECKING([whether $CC supports -Wno-unused-parameter])
1412: OLD_CFLAGS="$CFLAGS"
1413: CFLAGS="$CFLAGS -Wno-unused-parameter"
1.1.1.3 misho 1414: AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[printf("hello\n");]])],[rsync_warn_flag=yes],[rsync_warn_flag=no])
1.1 misho 1415: AC_MSG_RESULT([$rsync_warn_flag])
1416: if test x"$rsync_warn_flag" = x"no"; then
1417: CFLAGS="$OLD_CFLAGS"
1418: fi
1419: fi
1420:
1.1.1.4 ! misho 1421: AC_MSG_CHECKING([whether to include mysql DB support])
! 1422: AC_ARG_ENABLE(mysql,
! 1423: AC_HELP_STRING([--disable-mysql],
! 1424: [disable mysql DB support]))
! 1425:
! 1426: if test x"$enable_mysql" = x"no"; then
! 1427: AC_MSG_RESULT(no)
! 1428: else
! 1429: AC_MSG_RESULT([yes])
! 1430: AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, 1, 0)
! 1431: if test x$MYSQL_CONFIG = x1; then
! 1432: AC_MSG_CHECKING(for mysql version >= 4)
! 1433: mysql_version=`mysql_config --version`
! 1434: mysql_major_version=`echo $mysql_version | sed 's/\..*//'`
! 1435: if test $mysql_major_version -lt 4; then
! 1436: AC_MSG_RESULT(no.. skipping MySQL)
! 1437: else
! 1438: AC_MSG_RESULT(yes)
! 1439:
! 1440: MYSQL_CFLAGS=`mysql_config --cflags`
! 1441: MYSQL_LIBS=`mysql_config --libs`
! 1442:
! 1443: CPPFLAGS="$CPPFLAGS $MYSQL_CFLAGS"
! 1444: LIBS="$MYSQL_LIBS $LIBS"
! 1445:
! 1446: AC_CHECK_LIB(mysqlclient, mysql_init)
! 1447: fi
! 1448: fi
! 1449: fi
! 1450:
! 1451: AC_MSG_CHECKING([whether to include sqlite DB support])
! 1452: AC_ARG_ENABLE(sqlite,
! 1453: AC_HELP_STRING([--disable-sqlite],
! 1454: [disable sqlite DB support]))
! 1455:
! 1456: if test x"$enable_sqlite" = x"no"; then
! 1457: AC_MSG_RESULT(no)
! 1458: else
! 1459: AC_CHECK_LIB(sqlite3, sqlite3_open)
! 1460: AC_CHECK_FUNCS(sqlite3_open_v2 sqlite3_prepare_v2)
! 1461: fi
! 1462:
1.1 misho 1463: case "$CC" in
1464: ' checker'*|checker*)
1465: AC_DEFINE(FORCE_FD_ZERO_MEMSET, 1, [Used to make "checker" understand that FD_ZERO() clears memory.])
1466: ;;
1467: esac
1468:
1469: AC_CONFIG_FILES([Makefile lib/dummy zlib/dummy popt/dummy shconfig])
1470: AC_OUTPUT
1471:
1472: AC_MSG_RESULT()
1.1.1.4 ! misho 1473: AC_MSG_RESULT([ rsync $PACKAGE_VERSION configuration successful])
1.1 misho 1474: AC_MSG_RESULT()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>