1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-04-18 09:46:33 +02:00

Port to AIX and HP-UX. Support cross-compilation.

This commit is contained in:
Jim Meyering
1999-04-21 02:21:47 +00:00
parent c7a0b8f429
commit c4a52014f7

143
m4/lfs.m4
View File

@@ -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 <eggert@twinsun.com>.
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
])