Fix to make_file() to exit earlier if a file is excluded, because doing
[rsync/rsync.git] / configure.in
index 1adfe9e..060ebc2 100644 (file)
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 AC_INIT(byteorder.h)
 AC_CONFIG_HEADER(config.h)
-AC_PREREQ(2.12)
+AC_PREREQ(2.52)
 
 LDFLAGS=${LDFLAGS-""}
 
@@ -28,22 +28,14 @@ fi
 
 CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
 
-# look for getconf early as this affects just about everything
-AC_CHECK_PROG(HAVE_GETCONF, getconf, "yes", "no")
-if test $HAVE_GETCONF = "yes"; then
-       CFLAGS=$CFLAGS" "`getconf LFS_CFLAGS 2> /dev/null`
-       LDFLAGS=$LDFLAGS" "`getconf LFS_LDFLAGS 2> /dev/null`
-fi
-
 AC_ARG_WITH(included-popt,
         [  --with-included-popt    use bundled popt library, not from system])
 
 AC_ARG_WITH(rsync-path,
-       [  --with-rsync-path=PATH  set rsync path used on server to PATH (default: "rsync")],
-       [ RSYNC_PATH="$with_rsync_name" ],
+       [  --with-rsync-path=PATH  set default --rsync-path to PATH (default: \"rsync\")],
+       [ RSYNC_PATH="$with_rsync_path" ],
        [ RSYNC_PATH="rsync" ])
-RSYNC_PATH="\"$RSYNC_PATH\""
-AC_DEFINE_UNQUOTED(RSYNC_PATH, $RSYNC_PATH)
+AC_DEFINE_UNQUOTED(RSYNC_PATH, "$RSYNC_PATH", [ ])
 
 dnl Checks for programs.
 AC_PROG_CC
@@ -51,9 +43,47 @@ AC_PROG_INSTALL
 AC_SUBST(SHELL)
 
 AC_CHECK_PROG(HAVE_REMSH, remsh, 1, 0)
-AC_DEFINE_UNQUOTED(HAVE_REMSH, $HAVE_REMSH)
+AC_DEFINE_UNQUOTED(HAVE_REMSH, $HAVE_REMSH, [ ])
+
+
+# arrgh. libc in the current debian stable screws up the largefile
+# stuff, getting byte range locking wrong
+AC_CACHE_CHECK([for broken largefile support],rsync_cv_HAVE_BROKEN_LARGEFILE,[
+AC_TRY_RUN([
+#define _FILE_OFFSET_BITS 64
+#include <stdio.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+int main(void) 
+{
+       struct flock lock;
+        int status;
+       int fd = open("conftest.dat", O_CREAT|O_RDWR, 0600);
+       lock.l_type = F_WRLCK;
+       lock.l_whence = SEEK_SET;
+       lock.l_start = 0;
+       lock.l_len = 1;
+       lock.l_pid = 0;
+       
+       fcntl(fd,F_SETLK,&lock);
+       if (fork() == 0) {
+               lock.l_start = 1;               
+               exit(fcntl(fd,F_SETLK,&lock) == 0);
+        }
+        wait(&status);
+       unlink("conftest.dat");
+       exit(WEXITSTATUS(status));
+}
+],
+rsync_cv_HAVE_BROKEN_LARGEFILE=yes,rsync_cv_HAVE_BROKEN_LARGEFILE=no,rsync_cv_HAVE_BROKEN_LARGEFILE=cross)])
+if test x"$rsync_cv_HAVE_BROKEN_LARGEFILE" != x"yes"; then
+   AC_SYS_LARGEFILE
+fi
+
+
 
-AC_SYS_LARGEFILE
 AC_C_BIGENDIAN
 AC_HEADER_DIRENT
 AC_HEADER_TIME
@@ -77,13 +107,14 @@ AC_TYPE_SIZE_T
 AC_TYPE_PID_T
 AC_TYPE_GETGROUPS
 AC_STRUCT_ST_RDEV
-AC_CHECK_TYPE(ino_t,unsigned)
+AC_CHECK_TYPE([ino_t], [unsigned])
+TYPE_SOCKLEN_T
 
 AC_CACHE_CHECK([for errno in errno.h],rsync_cv_errno, [
     AC_TRY_COMPILE([#include <errno.h>],[int i = errno],
        rsync_cv_errno=yes,rsync_cv_have_errno_decl=no)])
 if test x"$rsync_cv_errno" = x"yes"; then
-   AC_DEFINE(HAVE_ERRNO_DECL)
+   AC_DEFINE(HAVE_ERRNO_DECL, 1, [ ])
 fi
 
 # The following test taken from the cvs sources
@@ -118,7 +149,7 @@ if test x"$ac_cv_func_connect" = x"no"; then
        test x"$ac_cv_lib_inet_connect" = x"yes"; then
         # ac_cv_func_connect=yes
         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
-        AC_DEFINE(HAVE_CONNECT)
+        AC_DEFINE(HAVE_CONNECT, 1, [ ])
     fi
 fi
 
@@ -146,7 +177,7 @@ AC_TRY_RUN([#include <sys/types.h>
            }],
 rsync_cv_HAVE_SOCKETPAIR=yes,rsync_cv_HAVE_SOCKETPAIR=no,rsync_cv_HAVE_SOCKETPAIR=cross)])
 if test x"$rsync_cv_HAVE_SOCKETPAIR" = x"yes"; then
-    AC_DEFINE(HAVE_SOCKETPAIR)
+    AC_DEFINE(HAVE_SOCKETPAIR, 1, [ ])
 fi
 
 AC_CACHE_CHECK([for working fnmatch],rsync_cv_HAVE_FNMATCH,[
@@ -155,7 +186,7 @@ main() { exit((fnmatch("*.o", "x.o", FNM_PATHNAME) == 0 &&
                fnmatch("a/b/*", "a/b/c/d", FNM_PATHNAME) != 0) ? 0: 1); }],
 rsync_cv_HAVE_FNMATCH=yes,rsync_cv_HAVE_FNMATCH=no,rsync_cv_HAVE_FNMATCH=cross)])
 if test x"$rsync_cv_HAVE_FNMATCH" = x"yes"; then
-    AC_DEFINE(HAVE_FNMATCH)
+    AC_DEFINE(HAVE_FNMATCH, 1, [ ])
 fi
 
 if test x"$with_included_popt" != x"yes"
@@ -163,10 +194,10 @@ then
     AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes])
 fi
 
-AC_MSG_CHECKING("whether to use included libpopt")
+AC_MSG_CHECKING([whether to use included libpopt])
 if test x"$with_included_popt" = x"yes"
 then
-    AC_MSG_RESULT("$srcdir/popt")
+    AC_MSG_RESULT($srcdir/popt)
     BUILD_POPT='$(popt_OBJS)'
     CFLAGS="$CFLAGS -I$srcdir/popt"
 else
@@ -178,7 +209,7 @@ AC_TRY_RUN([#include <stdio.h>
 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
 rsync_cv_HAVE_LONGLONG=yes,rsync_cv_HAVE_LONGLONG=no,rsync_cv_HAVE_LONGLONG=cross)])
 if test x"$rsync_cv_HAVE_LONGLONG" = x"yes"; then
-    AC_DEFINE(HAVE_LONGLONG)
+    AC_DEFINE(HAVE_LONGLONG, 1, [ ])
 fi
 
 AC_CACHE_CHECK([for off64_t],rsync_cv_HAVE_OFF64_T,[
@@ -187,7 +218,7 @@ AC_TRY_RUN([#include <stdio.h>
 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
 rsync_cv_HAVE_OFF64_T=yes,rsync_cv_HAVE_OFF64_T=no,rsync_cv_HAVE_OFF64_T=cross)])
 if test x"$rsync_cv_HAVE_OFF64_T" = x"yes"; then
-    AC_DEFINE(HAVE_OFF64_T)
+    AC_DEFINE(HAVE_OFF64_T, 1, [ ])
 fi
 
 AC_CACHE_CHECK([for short ino_t],rsync_cv_HAVE_SHORT_INO_T,[
@@ -197,7 +228,7 @@ AC_TRY_RUN([#include <stdio.h>
 main() { if (sizeof(ino_t) < sizeof(unsigned int)) return 0; return 1; }],
 rsync_cv_HAVE_SHORT_INO_T=yes,rsync_cv_HAVE_SHORT_INO_T=no,rsync_cv_HAVE_SHORT_INO_T=cross)])
 if test x"$rsync_cv_HAVE_SHORT_INO_T" = x"yes"; then
-    AC_DEFINE(HAVE_SHORT_INO_T)
+    AC_DEFINE(HAVE_SHORT_INO_T, 1, [ ])
 fi
 
 AC_CACHE_CHECK([for unsigned char],rsync_cv_HAVE_UNSIGNED_CHAR,[
@@ -205,7 +236,7 @@ AC_TRY_RUN([#include <stdio.h>
 main() { char c; c=250; exit((c > 0)?0:1); }],
 rsync_cv_HAVE_UNSIGNED_CHAR=yes,rsync_cv_HAVE_UNSIGNED_CHAR=no,rsync_cv_HAVE_UNSIGNED_CHAR=cross)])
 if test x"$rsync_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
-    AC_DEFINE(HAVE_UNSIGNED_CHAR)
+    AC_DEFINE(HAVE_UNSIGNED_CHAR, 1, [ ])
 fi
 
 AC_CACHE_CHECK([for broken readdir],rsync_cv_HAVE_BROKEN_READDIR,[
@@ -216,7 +247,7 @@ if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
 di->d_name[0] == 0) exit(0); exit(1);} ],
 rsync_cv_HAVE_BROKEN_READDIR=yes,rsync_cv_HAVE_BROKEN_READDIR=no,rsync_cv_HAVE_BROKEN_READDIR=cross)])
 if test x"$rsync_cv_HAVE_BROKEN_READDIR" = x"yes"; then
-    AC_DEFINE(HAVE_BROKEN_READDIR)
+    AC_DEFINE(HAVE_BROKEN_READDIR, 1, [ ])
 fi
 
 AC_CACHE_CHECK([for utimbuf],rsync_cv_HAVE_UTIMBUF,[
@@ -225,7 +256,7 @@ AC_TRY_COMPILE([#include <sys/types.h>
 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
 rsync_cv_HAVE_UTIMBUF=yes,rsync_cv_HAVE_UTIMBUF=no,rsync_cv_HAVE_UTIMBUF=cross)])
 if test x"$rsync_cv_HAVE_UTIMBUF" = x"yes"; then
-    AC_DEFINE(HAVE_UTIMBUF)
+    AC_DEFINE(HAVE_UTIMBUF, 1, [ ])
 fi
 
 AC_CACHE_CHECK([if gettimeofday takes tz argument],rsync_cv_HAVE_GETTIMEOFDAY_TZ,[
@@ -235,7 +266,7 @@ AC_TRY_RUN([
 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
            rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes,rsync_cv_HAVE_GETTIMEOFDAY_TZ=no,rsync_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
 if test x"$rsync_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
-    AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
+    AC_DEFINE(HAVE_GETTIMEOFDAY_TZ, 1, [ ])
 fi
 
 AC_CACHE_CHECK([for C99 vsnprintf],rsync_cv_HAVE_C99_VSNPRINTF,[
@@ -260,7 +291,7 @@ main() { foo("hello"); }
 ],
 rsync_cv_HAVE_C99_VSNPRINTF=yes,rsync_cv_HAVE_C99_VSNPRINTF=no,rsync_cv_HAVE_C99_VSNPRINTF=cross)])
 if test x"$rsync_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
-    AC_DEFINE(HAVE_C99_VSNPRINTF)
+    AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [ ])
 fi
 
 
@@ -283,7 +314,7 @@ rsync_cv_HAVE_SECURE_MKSTEMP=yes,
 rsync_cv_HAVE_SECURE_MKSTEMP=no,
 rsync_cv_HAVE_SECURE_MKSTEMP=cross)])
 if test x"$rsync_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
-    AC_DEFINE(HAVE_SECURE_MKSTEMP)
+    AC_DEFINE(HAVE_SECURE_MKSTEMP, 1, [ ])
 fi
 
 
@@ -299,7 +330,7 @@ if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
 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)
+    AC_DEFINE(REPLACE_INET_NTOA, 1, [ ])
 fi
 
 
@@ -313,7 +344,7 @@ 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)
+    AC_DEFINE(REPLACE_INET_ATON, 1, [ ])
 fi
 
 #
@@ -347,4 +378,4 @@ AC_SUBST(OBJ_RESTORE)
 AC_SUBST(CC_SHOBJ_FLAG)
 AC_SUBST(BUILD_POPT)
 
-AC_OUTPUT(Makefile lib/dummy zlib/dummy)
+AC_OUTPUT(Makefile lib/dummy zlib/dummy popt/dummy shconfig)