cannam@85: dnl By default, many hosts won't let programs access large files; cannam@85: dnl one must use special compiler options to get large-file access to work. cannam@85: dnl For more details about this brain damage please see: cannam@85: dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html cannam@85: cannam@85: dnl Written by Paul Eggert . cannam@85: cannam@85: dnl Internal subroutine of AC_SYS_EXTRA_LARGEFILE. cannam@85: dnl MN_SYS_EXTRA_LARGEFILE_FLAGS(FLAGSNAME) cannam@85: AC_DEFUN([MN_SYS_EXTRA_LARGEFILE_FLAGS], cannam@85: [AC_CACHE_CHECK([for $1 value to request large file support], cannam@85: ac_cv_sys_largefile_$1, cannam@85: [ac_cv_sys_largefile_$1=`($GETCONF LFS_$1) 2>/dev/null` || { cannam@85: ac_cv_sys_largefile_$1=no cannam@85: ifelse($1, CFLAGS, cannam@85: [case "$host_os" in cannam@85: # IRIX 6.2 and later require cc -n32. cannam@85: changequote(, )dnl cannam@85: irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*) cannam@85: changequote([, ])dnl cannam@85: if test "$GCC" != yes; then cannam@85: ac_cv_sys_largefile_CFLAGS=-n32 cannam@85: fi cannam@85: ac_save_CC="$CC" cannam@85: CC="$CC $ac_cv_sys_largefile_CFLAGS" cannam@85: AC_TRY_LINK(, , , ac_cv_sys_largefile_CFLAGS=no) cannam@85: CC="$ac_save_CC" cannam@85: esac]) cannam@85: }])]) cannam@85: cannam@85: dnl Internal subroutine of AC_SYS_EXTRA_LARGEFILE. cannam@85: dnl AC_SYS_EXTRA_LARGEFILE_SPACE_APPEND(VAR, VAL) cannam@85: AC_DEFUN([AC_SYS_EXTRA_LARGEFILE_SPACE_APPEND], cannam@85: [case $2 in cannam@85: no) ;; cannam@85: ?*) cannam@85: case "[$]$1" in cannam@85: '') $1=$2 ;; cannam@85: *) $1=[$]$1' '$2 ;; cannam@85: esac ;; cannam@85: esac]) cannam@85: cannam@85: dnl Internal subroutine of AC_SYS_EXTRA_LARGEFILE. cannam@85: dnl AC_SYS_EXTRA_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT) cannam@85: AC_DEFUN([AC_SYS_EXTRA_LARGEFILE_MACRO_VALUE], cannam@85: [AC_CACHE_CHECK([for $1], $2, cannam@85: [$2=no cannam@85: changequote(, )dnl cannam@85: $4 cannam@85: for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do cannam@85: case "$ac_flag" in cannam@85: -D$1) cannam@85: $2=1 ;; cannam@85: -D$1=*) cannam@85: $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; cannam@85: esac cannam@85: done cannam@85: changequote([, ])dnl cannam@85: ]) cannam@85: if test "[$]$2" != no; then cannam@85: AC_DEFINE_UNQUOTED([$1], [$]$2, [$3]) cannam@85: fi]) cannam@85: cannam@85: AC_DEFUN([AC_SYS_EXTRA_LARGEFILE], cannam@85: [AC_REQUIRE([AC_CANONICAL_HOST]) cannam@85: AC_ARG_ENABLE(largefile, cannam@85: [ --disable-largefile omit support for large files]) cannam@85: if test "$enable_largefile" != no; then cannam@85: AC_CHECK_TOOL(GETCONF, getconf) cannam@85: MN_SYS_EXTRA_LARGEFILE_FLAGS(CFLAGS) cannam@85: MN_SYS_EXTRA_LARGEFILE_FLAGS(LDFLAGS) cannam@85: MN_SYS_EXTRA_LARGEFILE_FLAGS(LIBS) cannam@85: cannam@85: for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do cannam@85: case "$ac_flag" in cannam@85: no) ;; cannam@85: -D_FILE_OFFSET_BITS=*) ;; cannam@85: -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;; cannam@85: -D_LARGE_FILES | -D_LARGE_FILES=*) ;; cannam@85: -D?* | -I?*) cannam@85: AC_SYS_EXTRA_LARGEFILE_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;; cannam@85: *) cannam@85: AC_SYS_EXTRA_LARGEFILE_SPACE_APPEND(CFLAGS, "$ac_flag") ;; cannam@85: esac cannam@85: done cannam@85: AC_SYS_EXTRA_LARGEFILE_SPACE_APPEND(LDFLAGS, "$ac_cv_sys_largefile_LDFLAGS") cannam@85: AC_SYS_EXTRA_LARGEFILE_SPACE_APPEND(LIBS, "$ac_cv_sys_largefile_LIBS") cannam@85: AC_SYS_EXTRA_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, cannam@85: ac_cv_sys_file_offset_bits, cannam@85: [Number of bits in a file offset, on hosts where this is settable.]) cannam@85: [case "$host_os" in cannam@85: # HP-UX 10.20 and later cannam@85: hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) cannam@85: ac_cv_sys_file_offset_bits=64 ;; cannam@85: esac] cannam@85: AC_SYS_EXTRA_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, cannam@85: ac_cv_sys_largefile_source, cannam@85: [Define to make fseeko etc. visible, on some hosts.], cannam@85: [case "$host_os" in cannam@85: # HP-UX 10.20 and later cannam@85: hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) cannam@85: ac_cv_sys_largefile_source=1 ;; cannam@85: esac]) cannam@85: AC_SYS_EXTRA_LARGEFILE_MACRO_VALUE(_LARGE_FILES, cannam@85: ac_cv_sys_large_files, cannam@85: [Define for large files, on AIX-style hosts.], cannam@85: [case "$host_os" in cannam@85: # AIX 4.2 and later cannam@85: aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*) cannam@85: ac_cv_sys_large_files=1 ;; cannam@85: esac]) cannam@85: fi cannam@85: ]) cannam@85: