Changed the static file_struct var to match the changes in rsync.h.
[rsync/rsync.git] / configure.in
index 8ea15ea..35ccbcc 100644 (file)
@@ -5,7 +5,7 @@ AC_CONFIG_SRCDIR([byteorder.h])
 AC_CONFIG_HEADER(config.h)
 AC_PREREQ(2.59)
 
-RSYNC_VERSION=2.6.8pre1
+RSYNC_VERSION=3.0.0cvs
 AC_SUBST(RSYNC_VERSION)
 AC_MSG_NOTICE([Configuring rsync $RSYNC_VERSION])
 
@@ -123,15 +123,23 @@ else
 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])
 
@@ -302,6 +310,31 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.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 <sys/types.h>
+#ifdef MAJOR_IN_MKDEV
+#include <sys/mkdev.h>
+# if !defined makedev && (defined mkdev || defined _WIN32 || defined __WIN32__)
+#  define makedev mkdev
+# endif
+#elif defined MAJOR_IN_SYSMACROS
+#include <sys/sysmacros.h>
+#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)
@@ -372,6 +405,28 @@ AC_SEARCH_LIBS(inet_ntop, resolv)
 # Search for libiconv_open (not iconv_open) to discover if -liconv is needed!
 AC_SEARCH_LIBS(libiconv_open, iconv)
 
+AC_MSG_CHECKING([for iconv declaration])
+AC_CACHE_VAL(am_cv_proto_iconv, [
+    AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+      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);"])
+    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+AC_MSG_RESULT([$]{ac_t:-
+         }[$]am_cv_proto_iconv)
+AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+                  [Define as const if the declaration of iconv() needs const.])
+
 dnl AC_MSG_NOTICE([Looking in libraries: $LIBS])
 
 AC_CHECK_FUNCS(inet_ntop, , [AC_LIBOBJ(lib/inet_ntop)])