From: didg Date: Mon, 14 Apr 2003 18:22:02 +0000 (+0000) Subject: add a macro for large file support and autoconf < 2.54 , from wxWindows X-Git-Tag: netatalk-2-0-alpha1~197 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=inline;h=57897dcbf104b7f910c51760d23899385dbf64e9;p=netatalk.git add a macro for large file support and autoconf < 2.54 , from wxWindows --- diff --git a/macros/Makefile.am b/macros/Makefile.am index 0fbad467..4c7a38bf 100644 --- a/macros/Makefile.am +++ b/macros/Makefile.am @@ -9,4 +9,5 @@ EXTRA_DIST = \ quota-check.m4 \ srvloc.m4 \ ssl-check.m4 \ + largefile-check.m4 \ snprintf-check.m4 diff --git a/macros/largefile-check.m4 b/macros/largefile-check.m4 new file mode 100644 index 00000000..ec526bde --- /dev/null +++ b/macros/largefile-check.m4 @@ -0,0 +1,63 @@ +dnl ------------------------------------------------------------------- +dnl This test for largefile support was written by Vadim Zeitlin for +dnl wxWindows. +dnl ------------------------------------------------------------------- + +dnl WX_SYS_LARGEFILE_TEST +dnl +dnl NB: original autoconf test was checking if compiler supported 6 bit off_t +dnl arithmetic properly but this failed miserably with gcc under Linux +dnl whereas the system still supports 64 bit files, so now simply check +dnl that off_t is big enough +define(WX_SYS_LARGEFILE_TEST, +[typedef struct { + unsigned int field: sizeof(off_t) == 8; +} wxlf; +]) + +dnl WX_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR) +define(WX_SYS_LARGEFILE_MACRO_VALUE, +[ + AC_CACHE_CHECK([for $1 value needed for large files], [$3], + [ + AC_TRY_COMPILE([#define $1 $2 + #include ], + WX_SYS_LARGEFILE_TEST, + [$3=$2], + [$3=no]) + ] + ) + + if test "$$3" != no; then + wx_largefile=yes + AC_DEFINE_UNQUOTED([$1], [$$3]) + fi +]) + +dnl AC_SYS_LARGEFILE +dnl ---------------- +dnl By default, many hosts won't let programs access large files; +dnl one must use special compiler options to get large-file access to work. +dnl For more details about this brain damage please see: +dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html +AC_DEFUN([AC_SYS_LARGEFILE], +[AC_ARG_ENABLE(largefile, + [ --disable-largefile omit support for large files]) +if test "$enable_largefile" != no; then + dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ... + dnl _LARGE_FILES -- for AIX + wx_largefile=no + WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits) + if test "x$wx_largefile" != "xyes"; then + WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files) + fi + + AC_MSG_CHECKING(if large file support is available) + if test "x$wx_largefile" = "xyes"; then + AC_DEFINE(HAVE_LARGEFILE_SUPPORT) + fi + AC_MSG_RESULT($wx_largefile) +fi +]) + +dnl ----------end of largefile test------------------------------------