X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/12a01be14f2b925fb705360a588782563d827b48..fdd10da6f7995296f6bb5ee3dd7231d6dbc20b5e:/configure.in diff --git a/configure.in b/configure.in index a5de0d71..63b66d01 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_CONFIG_SRCDIR([byteorder.h]) AC_CONFIG_HEADER(config.h) AC_PREREQ(2.59) -RSYNC_VERSION=2.6.7cvs +RSYNC_VERSION=2.6.9pre2 AC_SUBST(RSYNC_VERSION) AC_MSG_NOTICE([Configuring rsync $RSYNC_VERSION]) @@ -26,8 +26,7 @@ AC_SUBST(SHELL) AC_DEFINE([_GNU_SOURCE], 1, [Define _GNU_SOURCE so that we get all necessary prototypes]) -if test "x$ac_cv_prog_cc_stdc" = xno -then +if test x"$ac_cv_prog_cc_stdc" = x"no"; then AC_MSG_WARN([rsync requires an ANSI C compiler and you don't seem to have one]) fi @@ -38,12 +37,10 @@ fi AC_MSG_CHECKING([whether to include debugging symbols]) AC_ARG_ENABLE(debug, - AC_HELP_STRING([--enable-debug], - [including debugging symbols and features (default yes)]), - [], []) + AC_HELP_STRING([--disable-debug], + [turn off debugging symbols and features])) -if test x"$enable_debug" = x"no" -then +if test x"$enable_debug" = x"no"; then AC_MSG_RESULT(no) CFLAGS=${CFLAGS-"-O"} else @@ -56,10 +53,8 @@ fi AC_ARG_ENABLE(profile, AC_HELP_STRING([--enable-profile], - [turn on CPU profiling (default no)], - [], [])) -if test x"$enable_profile" = xyes -then + [turn on CPU profiling])) +if test x"$enable_profile" = x"yes"; then CFLAGS="$CFLAGS -pg" fi @@ -67,10 +62,8 @@ fi # Specifically, this turns on panic_action handling. AC_ARG_ENABLE(maintainer-mode, AC_HELP_STRING([--enable-maintainer-mode], - [turn on extra debug features], - [], [])) -if test x"$enable_maintainer_mode" = xyes -then + [turn on extra debug features])) +if test x"$enable_maintainer_mode" = x"yes"; then CFLAGS="$CFLAGS -DMAINTAINER_MODE" fi @@ -80,16 +73,15 @@ fi CFLAGS="$CFLAGS -DHAVE_CONFIG_H" # If GCC, turn on warnings. -if test x"$GCC" = x"yes" -then +if test x"$GCC" = x"yes"; then CFLAGS="$CFLAGS -Wall -W" fi AC_ARG_WITH(included-popt, - [ --with-included-popt use bundled popt library, not from system]) + AC_HELP_STRING([--with-included-popt], [use bundled popt library, not from system])) AC_ARG_WITH(rsync-path, - [ --with-rsync-path=PATH set default --rsync-path to PATH (default: rsync)], + AC_HELP_STRING([--with-rsync-path=PATH], [set default --rsync-path to PATH (default: rsync)]), [ RSYNC_PATH="$with_rsync_path" ], [ RSYNC_PATH="rsync" ]) @@ -124,27 +116,34 @@ if test x$HAVE_REMSH = x1; then AC_DEFINE(HAVE_REMSH, 1, [Define to 1 if remote shell is remsh, not rsh]) fi -if test x"$with_rsh" != x -then +if test x"$with_rsh" != x; then RSYNC_RSH="$with_rsh" else RSYNC_RSH="ssh" fi AC_DEFINE_UNQUOTED(RSYNC_RSH, "$RSYNC_RSH", [default -e command]) -AC_MSG_CHECKING([the group for user "nobody"]) -if grep '^nobody:' /etc/group >/dev/null 2>&1; then - NOBODY_GROUP=nobody -elif grep '^nogroup:' /etc/group >/dev/null 2>&1; then - NOBODY_GROUP=nogroup -else - NOBODY_GROUP=nobody # test for others? +AC_ARG_WITH(nobody-group, + AC_HELP_STRING([--with-nobody-group=GROUP], + [set the default unprivileged group (default nobody or nogroup)]), + [ NOBODY_GROUP="$with_nobody_group" ]) + +if test x"$with_nobody_group" = x; then + AC_MSG_CHECKING([the group for user "nobody"]) + if grep '^nobody:' /etc/group >/dev/null 2>&1; then + NOBODY_GROUP=nobody + elif grep '^nogroup:' /etc/group >/dev/null 2>&1; then + NOBODY_GROUP=nogroup + else + NOBODY_GROUP=nobody # test for others? + fi + AC_MSG_RESULT($NOBODY_GROUP) fi -AC_MSG_RESULT($NOBODY_GROUP) + AC_DEFINE_UNQUOTED(NOBODY_USER, "nobody", [unprivileged user--e.g. nobody]) AC_DEFINE_UNQUOTED(NOBODY_GROUP, "$NOBODY_GROUP", [unprivileged group for unprivileged user]) -# arrgh. libc in the current debian stable screws up the largefile +# arrgh. libc in some old debian version screwed up the largefile # stuff, getting byte range locking wrong AC_CACHE_CHECK([for broken largefile support],rsync_cv_HAVE_BROKEN_LARGEFILE,[ AC_TRY_RUN([ @@ -190,21 +189,9 @@ ipv6lib=none ipv6trylibc=yes AC_ARG_ENABLE(ipv6, - AC_HELP_STRING([--disable-ipv6], [don't even try to use IPv6])) - -dnl Do you want to disable use of locale functions -AH_TEMPLATE([CONFIG_LOCALE], -[Undefine if you don't want locale features. By default this is defined.]) -AC_ARG_ENABLE([locale], - AC_HELP_STRING([--disable-locale], [turn off locale features]), -[if test x$enableval = xyes; then - AC_DEFINE(CONFIG_LOCALE) -fi], -AC_DEFINE(CONFIG_LOCALE) -) - -if test "x$enable_ipv6" != xno -then + AC_HELP_STRING([--disable-ipv6], + [don't even try to use IPv6])) +if test x"$enable_ipv6" != x"no"; then AC_MSG_CHECKING([ipv6 stack type]) for i in inria kame linux-glibc linux-inet6 toshiba v6d zeta; do case $i in @@ -293,6 +280,16 @@ yes AC_SEARCH_LIBS(getaddrinfo, inet6) fi +dnl Do you want to disable use of locale functions +AC_ARG_ENABLE([locale], + AC_HELP_STRING([--disable-locale], + [turn off locale features])) +AH_TEMPLATE([CONFIG_LOCALE], +[Undefine if you don't want locale features. By default this is defined.]) +if test x"$enable_locale" != x"no"; then + AC_DEFINE(CONFIG_LOCALE) +fi + AC_MSG_CHECKING([whether to call shutdown on all sockets]) case $host_os in *cygwin* ) AC_MSG_RESULT(yes) @@ -310,9 +307,34 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \ unistd.h utime.h grp.h compat.h sys/param.h ctype.h sys/wait.h \ sys/ioctl.h sys/filio.h string.h stdlib.h sys/socket.h sys/mode.h \ sys/un.h glob.h mcheck.h arpa/inet.h arpa/nameser.h locale.h \ - netdb.h malloc.h float.h) + netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h) AC_HEADER_MAJOR +AC_CACHE_CHECK([if makedev takes 3 args],rsync_cv_MAKEDEV_TAKES_3_ARGS,[ +AC_TRY_RUN([ +#include +#ifdef MAJOR_IN_MKDEV +#include +# if !defined makedev && (defined mkdev || defined _WIN32 || defined __WIN32__) +# define makedev mkdev +# endif +#elif defined MAJOR_IN_SYSMACROS +#include +#endif + +int main(void) +{ + dev_t dev = makedev(0, 5, 7); + if (major(dev) != 5 || minor(dev) != 7) + exit(1); + return 0; +} +], +rsync_cv_MAKEDEV_TAKES_3_ARGS=yes,rsync_cv_MAKEDEV_TAKES_3_ARGS=no,rsync_cv_MAKEDEV_TAKES_3_ARGS=no)]) +if test x"$rsync_cv_MAKEDEV_TAKES_3_ARGS" = x"yes"; then + AC_DEFINE(MAKEDEV_TAKES_3_ARGS, 1, [Define to 1 if makedev() takes 3 args]) +fi + AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) @@ -377,7 +399,11 @@ if test x"$ac_cv_func_connect" = x"no"; then fi fi -AC_CHECK_LIB(resolv, inet_ntop) +AC_SEARCH_LIBS(inet_ntop, resolv) + +# Solaris and HP-UX weirdness: +# Search for libiconv_open (not iconv_open) to discover if -liconv is needed! +AC_SEARCH_LIBS(libiconv_open, iconv) dnl AC_MSG_NOTICE([Looking in libraries: $LIBS]) @@ -501,15 +527,15 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \ memmove lchown vsnprintf snprintf vasprintf asprintf setsid glob strpbrk \ strlcat strlcpy strtol mallinfo getgroups setgroups geteuid getegid \ setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy __va_copy \ - strerror putenv) + strerror putenv iconv_open locale_charset nl_langinfo \ + sigaction sigprocmask) AC_CHECK_FUNCS(getpgrp tcgetpgrp) if test $ac_cv_func_getpgrp = yes; then AC_FUNC_GETPGRP fi -# Determine whether chown follows symlinks (it should). -AC_CACHE_CHECK([whether chown() dereferences symlinks],rsync_cv_chown_follows_symlink,[ +AC_CACHE_CHECK([whether chown() modifies symlinks],rsync_cv_chown_modifies_symlink,[ AC_TRY_RUN([ #if HAVE_UNISTD_H # include @@ -520,14 +546,52 @@ AC_CACHE_CHECK([whether chown() dereferences symlinks],rsync_cv_chown_follows_sy char const *dangling_symlink = "conftest.dangle"; unlink(dangling_symlink); if (symlink("conftest.no-such", dangling_symlink) < 0) abort(); - if (chown(dangling_symlink, getuid(), getgid()) < 0 && errno == ENOENT) exit(0); - exit(1); + if (chown(dangling_symlink, getuid(), getgid()) < 0 && errno == ENOENT) exit(1); + exit(0); }], - rsync_cv_chown_follows_symlink=yes,rsync_cv_chown_follows_symlink=no,rsync_cv_chown_follows_symlink=yes)]) -if test $rsync_cv_chown_follows_symlink = no; then + rsync_cv_chown_modifies_symlink=yes,rsync_cv_chown_modifies_symlink=no,rsync_cv_chown_modifies_symlink=no)]) +if test $rsync_cv_chown_modifies_symlink = yes; then AC_DEFINE(CHOWN_MODIFIES_SYMLINK, 1, [Define to 1 if chown modifies symlinks.]) fi +AC_CACHE_CHECK([whether link() can hard-link symlinks],rsync_cv_can_hardlink_symlink,[ + AC_TRY_RUN([ +#if HAVE_UNISTD_H +# include +#endif +#include +#include +#define FILENAME "conftest.dangle" + main() { + unlink(FILENAME); + if (symlink("conftest.no-such", FILENAME) < 0) abort(); + if (link(FILENAME, FILENAME "2") < 0) exit(1); + exit(0); + }], + rsync_cv_can_hardlink_symlink=yes,rsync_cv_can_hardlink_symlink=no,rsync_cv_can_hardlink_symlink=no)]) +if test $rsync_cv_can_hardlink_symlink = yes; then + AC_DEFINE(CAN_HARDLINK_SYMLINK, 1, [Define to 1 if link() can hard-link symlinks.]) +fi + +AC_CACHE_CHECK([whether link() can hard-link special files],rsync_cv_can_hardlink_special,[ + AC_TRY_RUN([ +#if HAVE_UNISTD_H +# include +#endif +#include +#include +#define FILENAME "conftest.fifi" + main() { + unlink(FILENAME); + if (mkfifo(FILENAME, 0777) < 0) abort(); + if (link(FILENAME, FILENAME "2") < 0) exit(1); + exit(0); + }], + rsync_cv_can_hardlink_special=yes,rsync_cv_can_hardlink_special=no,rsync_cv_can_hardlink_special=no)]) +if test $rsync_cv_can_hardlink_special = yes; then + AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.]) +fi + AC_CACHE_CHECK([for working socketpair],rsync_cv_HAVE_SOCKETPAIR,[ AC_TRY_RUN([ #include @@ -542,14 +606,12 @@ if test x"$rsync_cv_HAVE_SOCKETPAIR" = x"yes"; then AC_DEFINE(HAVE_SOCKETPAIR, 1, [Define to 1 if you have the "socketpair" function]) fi -if test x"$with_included_popt" != x"yes" -then +if test x"$with_included_popt" != x"yes"; then AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes]) fi AC_MSG_CHECKING([whether to use included libpopt]) -if test x"$with_included_popt" = x"yes" -then +if test x"$with_included_popt" = x"yes"; then AC_MSG_RESULT($srcdir/popt) BUILD_POPT='$(popt_OBJS)' CFLAGS="$CFLAGS -I$srcdir/popt" @@ -658,35 +720,6 @@ if test x"$rsync_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then fi -AC_CACHE_CHECK([for broken inet_ntoa],rsync_cv_REPLACE_INET_NTOA,[ -AC_TRY_RUN([ -#include -#include -#include -#include -main() { struct in_addr ip; ip.s_addr = 0x12345678; -if (strcmp(inet_ntoa(ip),"18.52.86.120") && - strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(1); } -exit(0);}], - rsync_cv_REPLACE_INET_NTOA=no,rsync_cv_REPLACE_INET_NTOA=yes,rsync_cv_REPLACE_INET_NTOA=cross)]) -if test x"$rsync_cv_REPLACE_INET_NTOA" = x"yes"; then - AC_DEFINE(REPLACE_INET_NTOA, 1, [Define to 1 if inet_ntoa() needs to be replaced]) -fi - - -AC_CACHE_CHECK([for broken inet_aton],rsync_cv_REPLACE_INET_ATON,[ -AC_TRY_RUN([ -#include -#include -#include -#include -main() { struct in_addr ip; -if (inet_aton("example", &ip) == 0) exit(0); exit(1);}], - rsync_cv_REPLACE_INET_ATON=no,rsync_cv_REPLACE_INET_ATON=yes,rsync_cv_REPLACE_INET_ATON=cross)]) -if test x"$rsync_cv_REPLACE_INET_ATON" = x"yes"; then - AC_DEFINE(REPLACE_INET_ATON, 1, [Define to 1 if inet_aton() needs to be replaced]) -fi - AC_CACHE_CHECK([if mknod creates FIFOs],rsync_cv_MKNOD_CREATES_FIFOS,[ AC_TRY_RUN([ #include