X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libsysio%2Fconfigure.in;h=890b7ee4a981fb54fe0eddbcc1b508944f984161;hb=refs%2Fchanges%2F35%2F5135%2F8;hp=c6b6e30a495b5da00c8846bd5d5304200686ffe4;hpb=7891ce53d26ae6ae1cc2cc4a50b58c4c5fb7e465;p=fs%2Flustre-release.git diff --git a/libsysio/configure.in b/libsysio/configure.in index c6b6e30..890b7ee 100644 --- a/libsysio/configure.in +++ b/libsysio/configure.in @@ -1,25 +1,53 @@ -AC_INIT(libsysio, 0.1) +AC_INIT(libsysio, 1.2) -AC_CANONICAL_HOST +AC_CANONICAL_SYSTEM case "$host_os" in - linux*) - ;; - *) - AC_MSG_WARN('***' ${host_os}: Unsupported OS target) - ;; + aix*) + ;; + linux*) + ;; + *) + AC_MSG_WARN('***' ${host_os}: Unsupported OS target) + ;; esac -AM_INIT_AUTOMAKE([subdir-objects]) -AM_PROG_CC_C_O - +AM_INIT_AUTOMAKE([subdir-objects 1.9 tar-ustar]) +AM_MAINTAINER_MODE([enable]) AC_PROG_CC +AM_PROG_CC_C_O AC_PROG_RANLIB +AC_CHECK_TOOL(CC, gcc, [no]) +AC_CHECK_TOOL(LD, ld, [no]) +AC_CHECK_TOOL(AR, ar, [no]) +AC_CHECK_TOOL(OBJDUMP, objdump, [no]) +AC_CHECK_TOOL(STRIP, strip, [no]) AC_PROG_MAKE_SET AC_HEADER_STDC AC_HEADER_STAT AC_HEADER_TIME +AS_IF([test "x$cross_compiling" = xyes], + [case $host_vendor in + # The K1OM architecture is an extension of the x86 architecture. + # So, the $host_arch is x86_64. + k1om) + CC_TARGET_ARCH=`$CC -v 2>&1 | grep Target: | sed -e 's/Target: //'` + if test $CC_TARGET_ARCH != x86_64-$host_vendor-linux ; then + AC_MSG_ERROR([Cross compiler not found in PATH.]) + fi + CCAS=$CC + ;; + *) + ;; + esac] +) + +if test ${target_cpu} == "powerpc64"; then + AC_MSG_WARN([set compiler with -m64]) + CC="$CC -m64" +fi + have_lib_dir=yes; AC_ARG_WITH(lib-dir, AC_HELP_STRING([--with-lib-dir=], @@ -112,6 +140,17 @@ AC_ARG_WITH(defer-init-cwd, [with_defer_init_cwd=no]) AC_SUBST(DEFER_INIT_CWD) +AC_ARG_WITH(tracing, + AC_HELP_STRING([--with-tracing], + [enable tracing support]), + [ case "${withval}" in + yes) TRACING=-DSYSIO_TRACING=1 ;; + no) ;; + *) AC_MSG_ERROR(bad value ${withval} for --with-tracing) ;; + esac], + [TRACING=-DSYSIO_TRACING=1]) +AC_SUBST(TRACING) + AC_ARG_WITH(cplant_yod, AC_HELP_STRING([--with-cplant-yod],[build cplant yod I/O driver]), [ case "${withval}" in @@ -169,6 +208,16 @@ if test x$with_lustre_hack = xyes; then AC_DEFINE(HAVE_LUSTRE_HACK) fi +AC_ARG_WITH(alternate-symbols, + AC_HELP_STRING([--with-alternate-symbols@<:@=@:>@], + [Prepend standard, public, symbols with a unique qualifer]), + [ case "${withval}" in + yes) SYSIO_LABEL_NAMES=-DSYSIO_LABEL_NAMES=sysio_ ;; + no) ;; + *) SYSIO_LABEL_NAMES=-DSYSIO_LABEL_NAMES="${withval}" ;; + esac]) +AC_SUBST(SYSIO_LABEL_NAMES) + # We keep the original values in `$config_*' and never modify them, so we # can write them unchanged into config.make. Everything else uses # $machine, $vendor, and $os, and changes them whenever convenient. @@ -209,6 +258,64 @@ if test "$machine" = rs6000; then machine="powerpc" fi +case "$host_os" in + gnu* | linux*) + AC_DEFINE(_XOPEN_SOURCE, 600) + ;; + aix*) + # ... and always needed... + AC_DEFINE(__USE_LARGEFILE64) + AC_DEFINE(_LARGE_FILES) + AC_DEFINE(_LARGE_FILE_API) + AC_DEFINE(_ALL_SOURCE) + AC_DEFINE(_XOPEN_SOURCE_EXTENDED) + ;; +esac + +AC_MSG_CHECKING(for symlink support) +AC_TRY_COMPILE([ +#include +#include +],[ +#ifndef S_ISLNK +#error +#endif +], + symlink_support="yes", + symlink_support="no" +) +AC_MSG_RESULT($symlink_support) + +if test x$symlink_support = xyes; then + AC_MSG_CHECKING(if readlink returns int) + AC_TRY_COMPILE([ +#include + ],[ + extern int readlink(const char *, char *, size_t); + ], + readlink_returns_int="yes", + readlink_returns_int="no" + ) + AC_MSG_RESULT($readlink_returns_int) + if test x$readlink_returns_int = no; then + AC_DEFINE(HAVE_POSIX_1003_READLINK, + 1, + [readlink returns ssize_t]) + fi +fi + +AC_MSG_CHECKING(if readlink returns ssize_t) +AC_TRY_COMPILE([ + #include +],[ + ssize_t readlink(const char *, char *, size_t); +],[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_POSIX_1003_READLINK, 1, [readlink returns ssize_t]) +],[ + AC_MSG_RESULT([no]) +]) + # If we can't provoke the declaration of stat64 then we assume the # environment supports 64-bit file support naturally. Beware! AC_MSG_CHECKING(whether _LARGEFILE64_SOURCE definition is required) @@ -274,50 +381,140 @@ if test x$have_st_gen = xyes; then AC_DEFINE(HAVE_GENERATION) fi +AC_MSG_CHECKING(for POSIX 2008 preadv) +tmp_flags="$CFLAGS" +CFLAGS="$CFLAGS -Wall -Werror" +AC_TRY_COMPILE([ +#include +ssize_t preadv (int __fd, const struct iovec *__iovec, + int __count, off_t off) +{ + return 0; +} +],[ +],[ +AC_DEFINE(HAVE_POSIX2008_PREADV, 1, [POSIX 2008 preadv]) +AC_MSG_RESULT(yes) +],[ +AC_MSG_RESULT(no) +]) +CFLAGS="$tmp_flags" + +AC_MSG_CHECKING(for POSIX 2008 scandir) +tmp_flags="$CFLAGS" +CFLAGS="$CFLAGS -Wall -Werror" +AC_TRY_COMPILE([ +#define _BSD_SOURCE + +#include +#include + +int scandir(const char *dir, + struct dirent ***namelist, + int(*filter)(const struct dirent *), + int(*compar)(const struct dirent **, + const struct dirent **) + ); + +],[ +], [ +AC_DEFINE(HAVE_POSIX2008_SCANDIR, 1, [POSIX 2008 scandir]) +AC_MSG_RESULT(yes) +],[ +AC_MSG_RESULT(no) +]) +CFLAGS="$tmp_flags" + + +AC_MSG_CHECKING(for POSIX 2008 preadv) +tmp_flags="$CFLAGS" +CFLAGS="$CFLAGS -Wall -Werror" +AC_TRY_COMPILE([ +#include +ssize_t preadv (int __fd, const struct iovec *__iovec, + int __count, off_t off) +{ + return 0; +} +],[ +],[ +AC_DEFINE(HAVE_POSIX2008_PREADV, 1, [POSIX 2008 preadv]) +AC_MSG_RESULT(yes) +],[ +AC_MSG_RESULT(no) +]) +CFLAGS="$tmp_flags" + +AC_MSG_CHECKING(for POSIX 2008 scandir) +tmp_flags="$CFLAGS" +CFLAGS="$CFLAGS -Wall -Werror" +AC_TRY_COMPILE([ +#define _BSD_SOURCE + +#include +#include + +int scandir(const char *dir, + struct dirent ***namelist, + int(*filter)(const struct dirent *), + int(*compar)(const struct dirent **, + const struct dirent **) + ); + +],[ +], [ +AC_DEFINE(HAVE_POSIX2008_SCANDIR, 1, [POSIX 2008 scandir]) +AC_MSG_RESULT(yes) +],[ +AC_MSG_RESULT(no) +]) +CFLAGS="$tmp_flags" + + AC_MSG_CHECKING(whether .text pseudo-op must be used) -AC_CACHE_VAL(sysio_asm_dot_text, [dnl +AC_CACHE_VAL(am_cv_sysio_asm_dot_text, [dnl cat > conftest.s </dev/null; then - sysio_asm_dot_text=.text + am_cv_sysio_asm_dot_text=.text fi rm -f conftest*]) -if test -z "$sysio_dot_text"; then +if test -z "$am_cv_sysio_asm_dot_text"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) fi AC_CACHE_CHECK(for assembler global-symbol directive, - sysio_asm_global_directive, [dnl -sysio_asm_global_directive=UNKNOWN + am_cv_sysio_asm_global_directive, [dnl +am_cv_sysio_asm_global_directive=UNKNOWN for ac_globl in .globl .global .EXPORT; do cat > conftest.s </dev/null; then - sysio_asm_global_directive=${ac_globl} + am_cv_sysio_asm_global_directive=${ac_globl} fi rm -f conftest* - test $sysio_asm_global_directive != UNKNOWN && break + test $am_cv_sysio_asm_global_directive != UNKNOWN && break done]) -if test $sysio_asm_global_directive = UNKNOWN; then +if test $am_cv_sysio_asm_global_directive = UNKNOWN; then AC_MSG_ERROR(cannot determine asm global directive) #else -# AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${sysio_asm_global_directive}) +# AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${am_cv_sysio_asm_global_directive}) fi AC_CACHE_CHECK(for .set assembler directive, - sysio_asm_set_directive, [dnl + am_cv_sysio_asm_set_directive, [dnl cat > conftest.s<&AC_FD_CC 2>&AC_FD_CC; then - sysio_asm_set_directive=yes + am_cv_sysio_asm_set_directive=yes else - sysio_asm_set_directive=no + am_cv_sysio_asm_set_directive=no fi rm -f conftest*]) -#if test $sysio_asm_set_directive = yes; then +#if test $am_cv_sysio_asm_set_directive = yes; then # AC_DEFINE(HAVE_ASM_SET_DIRECTIVE) #fi -AC_CACHE_CHECK(for assembler .weak directive, sysio_asm_weak_directive, +AC_CACHE_CHECK(for assembler .weak directive, am_cv_sysio_asm_weak_directive, [dnl cat > conftest.s </dev/null; then - sysio_asm_weak_directive=yes + am_cv_sysio_asm_weak_directive=yes else - sysio_asm_weak_directive=no + am_cv_sysio_asm_weak_directive=no fi rm -f conftest*]) -if test $sysio_asm_weak_directive = no; then +if test $am_cv_sysio_asm_weak_directive = no; then AC_CACHE_CHECK(for assembler .weakext directive, - sysio_asm_weakext_directive, [dnl + am_cv_sysio_asm_weakext_directive, [dnl cat > conftest.s </dev/null; then - sysio_asm_weakext_directive=yes + am_cv_sysio_asm_weakext_directive=yes else - sysio_asm_weakext_directive=no + am_cv_sysio_asm_weakext_directive=no fi rm -f conftest*]) fi # no .weak -if test x$sysio_asm_weak_directive = xyes; then +if test x$am_cv_sysio_asm_weak_directive = xyes; then AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE) fi -if test x$sysio_asm_weakext_directive = xyes; then +if test x$am_cv_sysio_asm_weakext_directive = xyes; then AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE) fi AC_OUTPUT( Makefile tests/Makefile) -