From: Jim Meyering Date: Wed, 21 Apr 1999 02:21:47 +0000 (+0000) Subject: Port to AIX and HP-UX. Support cross-compilation. X-Git-Tag: cvs-readonly~7379 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=47d29a602fc931f15f90dfc804e817aa4bb9d6d6;p=gnulib.git Port to AIX and HP-UX. Support cross-compilation. --- diff --git a/m4/lfs.m4 b/m4/lfs.m4 index 2a7a4fc62..5c7c7ee16 100644 --- a/m4/lfs.m4 +++ b/m4/lfs.m4 @@ -1,4 +1,4 @@ -#serial 2 +#serial 3 dnl The problem is that the default compilation flags in Solaris 2.6 won't dnl let programs access large files; you need to tell the compiler that @@ -8,50 +8,99 @@ dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html dnl Written by Paul Eggert . +dnl Internal subroutine of AC_LFS. +dnl AC_LFS_FLAGS(FLAGSNAME) +AC_DEFUN(AC_LFS_FLAGS, + [AC_CACHE_CHECK([for $1 value to request large file support], ac_cv_lfs_$1, + [ac_cv_lfs_$1=`($GETCONF LFS_$1) 2>/dev/null` || { + ac_cv_lfs_$1=no + ifelse($1, CFLAGS, + [case "$host_os" in + # IRIX 6.2 and later + irix6.[[2-9]]* | irix6.1[[0-9]]* | irix[[7-9]].* | irix[[1-9]][[0-9]]*) + if test "$GCC" != yes; then + ac_cv_lfs_CFLAGS=-n32 + fi + ac_save_CC="$CC" + CC="$ac_save_CC $ac_cv_lfs_CFLAGS" + AC_TRY_LINK(, , , ac_cv_lfs_CFLAGS=no) + CC="$ac_save_CC" + esac]) + }])]) + +dnl Internal subroutine of AC_LFS. +dnl AC_LFS_SPACE_APPEND(VAR, VAL) +AC_DEFUN(AC_LFS_SPACE_APPEND, + [case $2 in + no) ;; + ?*) + case "[$]$1" in + '') $1=$2 ;; + *) $1=[$]$1' '$2 ;; + esac ;; + esac]) + +dnl Internal subroutine of AC_LFS. +dnl AC_LFS_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAULT) +AC_DEFUN(AC_LFS_MACRO_VALUE, + [AC_CACHE_CHECK([for $1], $2, + [[$2=no + $4 + for ac_flag in $ac_cv_lfs_CFLAGS no; do + case "$ac_flag" in + -D$1) + $2=1 ;; + -D$1=*) + $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;; + esac + done]]) + if test "[$]$2" != no; then + AC_DEFINE_UNQUOTED([$1], [$]$2, [$3]) + fi]) + AC_DEFUN(AC_LFS, -[dnl - # If available, prefer support for large files unless the user specified - # one of the CPPFLAGS, LDFLAGS, or LIBS variables. - AC_MSG_CHECKING(whether large file support needs explicit enabling) - ac_getconfs='' - ac_result=yes - ac_set='' - ac_shellvars='CPPFLAGS LDFLAGS LIBS' - for ac_shellvar in $ac_shellvars; do - case $ac_shellvar in - CPPFLAGS) ac_lfsvar=LFS_CFLAGS ;; - *) ac_lfsvar=LFS_$ac_shellvar ;; - esac - eval test '"${'$ac_shellvar'+set}"' = set && ac_set=$ac_shellvar - (getconf $ac_lfsvar) >/dev/null 2>&1 || { ac_result=no; break; } - ac_getconf=`getconf $ac_lfsvar` - ac_getconfs=$ac_getconfs$ac_getconf - eval ac_test_$ac_shellvar=\$ac_getconf - done - case "$ac_result" in - no) - case "`(uname -s -r) 2>/dev/null`" in - HP-UX' '?.10.[[2-9]][[0-9]]* | HP-UX' '?.1[[1-9]]* | HP-UX' '?.[[2-9]][[0-9]]*) - # HP-UX 10.20 and later support large files, - # but do not support `getconf LFS_CFLAGS'. - ac_test_CPPFLAGS='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' - ac_test_LDFLAGS= - ac_test_LIBS= - ac_getconfs=nonempty - ac_result=yes ;; - esac ;; - esac - case "$ac_result$ac_getconfs" in - yes) ac_result=no ;; - esac - case "$ac_result$ac_set" in - yes?*) ac_result="yes, but $ac_set is already set, so use its settings" - esac - AC_MSG_RESULT($ac_result) - case $ac_result in - yes) - for ac_shellvar in $ac_shellvars; do - eval $ac_shellvar=\$ac_test_$ac_shellvar - done ;; - esac -]) + [AC_REQUIRE([AC_CANONICAL_HOST]) + AC_ARG_ENABLE(lfs, + [ --disable-lfs omit Large File Support]) + if test "$enable_lfs" != no; then + AC_CHECK_TOOL(GETCONF, getconf) + AC_LFS_FLAGS(CFLAGS) + AC_LFS_FLAGS(LDFLAGS) + AC_LFS_FLAGS(LIBS) + for ac_flag in $ac_cv_lfs_CFLAGS no; do + case "$ac_flag" in + no) ;; + -D_FILE_OFFSET_BITS=*) ;; + -D_LARGEFILE_SOURCE | -D_LARGEFILE_SOURCE=*) ;; + -D_LARGE_FILES | -D_LARGE_FILES=*) ;; + -[[DI]]?* | -[[no]]32 | -n64) + AC_LFS_SPACE_APPEND(CPPFLAGS, "$ac_flag") ;; + *) + AC_LFS_SPACE_APPEND(CFLAGS, "$ac_flag") ;; + esac + done + AC_LFS_SPACE_APPEND(LDFLAGS, "$ac_cv_lfs_LDFLAGS") + AC_LFS_SPACE_APPEND(LIBS, "$ac_cv_lfs_LIBS") + AC_LFS_MACRO_VALUE(_FILE_OFFSET_BITS, ac_cv_file_offset_bits, + [Number of bits in a file offset, on hosts where this is settable. ], + [case "$host_os" in + # HP-UX 10.20 and later + hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) + ac_cv_file_offset_bits=64 ;; + esac]) + AC_LFS_MACRO_VALUE(_LARGEFILE_SOURCE, ac_cv_largefile_source, + [Define to make fseeko etc. visible, on some hosts. ], + [case "$host_os" in + # HP-UX 10.20 and later + hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*) + ac_cv_largefile_source=1 ;; + esac]) + AC_LFS_MACRO_VALUE(_LARGE_FILES, ac_cv_large_files, + [Define for large files, on AIX-style hosts. ], + [case "$host_os" in + # AIX 4.2 and later + aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*) + ac_cv_large_files=1 ;; + esac]) + fi + ])