summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource3/configure22
-rw-r--r--source3/configure.in5
-rw-r--r--source3/tests/summary.c28
3 files changed, 55 insertions, 0 deletions
diff --git a/source3/configure b/source3/configure
index 91fbc65506..a57723f209 100755
--- a/source3/configure
+++ b/source3/configure
@@ -4892,6 +4892,28 @@ EOF
fi
fi
+echo "checking configure summary"
+if test "$cross_compiling" = yes; then
+ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4901 "configure"
+#include "confdefs.h"
+#include "tests/summary.c"
+EOF
+if { (eval echo configure:4905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ echo "configure OK";
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ echo ERROR - summary failure. Aborting config; exit 1
+fi
+rm -fr conftest*
+fi
+
+
trap '' 1 2 15
cat > confcache <<\EOF
diff --git a/source3/configure.in b/source3/configure.in
index 98a5ad1498..d0e3448944 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -704,6 +704,11 @@ if test $space = no; then
fi
fi
+echo "checking configure summary"
+AC_TRY_RUN([#include "tests/summary.c"],
+ echo "configure OK";,
+ echo ERROR - summary failure. Aborting config; exit 1)
+
AC_OUTPUT(Makefile tests/dummy client/dummy lib/dummy ubiqx/dummy
web/dummy param/dummy nmbd/dummy smbd/dummy rpc_server/dummy
diff --git a/source3/tests/summary.c b/source3/tests/summary.c
new file mode 100644
index 0000000000..8c0d3005af
--- /dev/null
+++ b/source3/tests/summary.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+
+main()
+{
+#ifndef HAVE_FCNTL_LOCK
+ printf("ERROR: No locking available. Running Samba would be unsafe\n");
+ exit(1);
+#endif
+
+#if !(defined(HAVE_SYSV_IPC) || defined(HAVE_SHARED_MMAP))
+ printf("WARNING: no shared memory. Running with slow locking code\n");
+#endif
+
+#ifdef HAVE_TRAPDOOR_UID
+ printf("WARNING: trapdoor uid system - Samba may not operate correctly\n");
+#endif
+
+#if !(defined(HAVE_NETMASK_IFCONF) || defined(HAVE_NETMASK_IFREQ) || defined(HAVE_NETMASK_AIX))
+ printf("WARNING: No automated netmask determination - use an interfaces line\n");
+#endif
+
+#if !(defined(STAT_STATVFS) || defined(STAT_STATFS3_OSF1) || defined(STAT_STATFS2_BSIZE) || defined(STAT_STATFS4) || defined(STAT_STATFS2_FSIZE) || defined(STAT_STATFS2_FS_DATA))
+ printf("ERROR: No disk free routine!\n");
+ exit(1);
+#endif
+
+ exit(0);
+}