Allow external configuration of endianness in R package build (#10642)
* Allow users to set endianness in R build * Run `autoreconf -vi` * Don't use :BOOL suffix * Use AC_CONFIG_HEADERS --------- Co-authored-by: Hyunsu Cho <phcho@nvidia.com> Co-authored-by: Philip Hyunsu Cho <chohyu01@cs.washington.edu>
This commit is contained in:
parent
d4b82f50ab
commit
757aafc131
66
R-package/config.h.in
Normal file
66
R-package/config.h.in
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Define if building universal (internal helper macro) */
|
||||||
|
#undef AC_APPLE_UNIVERSAL_BUILD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdio.h> header file. */
|
||||||
|
#undef HAVE_STDIO_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the home page for this package. */
|
||||||
|
#undef PACKAGE_URL
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
|
/* Define to 1 if all of the C90 standard headers exist (not just the ones
|
||||||
|
required in a freestanding environment). This macro is provided for
|
||||||
|
backward compatibility; new code need not use it. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||||
|
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||||
|
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||||
|
# if defined __BIG_ENDIAN__
|
||||||
|
# define WORDS_BIGENDIAN 1
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# ifndef WORDS_BIGENDIAN
|
||||||
|
# undef WORDS_BIGENDIAN
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
558
R-package/configure
vendored
558
R-package/configure
vendored
@ -612,12 +612,45 @@ PACKAGE_STRING='xgboost 2.2.0'
|
|||||||
PACKAGE_BUGREPORT=''
|
PACKAGE_BUGREPORT=''
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
|
# Factoring default headers for most tests.
|
||||||
|
ac_includes_default="\
|
||||||
|
#include <stddef.h>
|
||||||
|
#ifdef HAVE_STDIO_H
|
||||||
|
# include <stdio.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STDLIB_H
|
||||||
|
# include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRING_H
|
||||||
|
# include <string.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_INTTYPES_H
|
||||||
|
# include <inttypes.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
|
# include <stdint.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRINGS_H
|
||||||
|
# include <strings.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
# include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
|
# include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif"
|
||||||
|
|
||||||
|
ac_header_cxx_list=
|
||||||
ac_subst_vars='LTLIBOBJS
|
ac_subst_vars='LTLIBOBJS
|
||||||
LIBOBJS
|
LIBOBJS
|
||||||
BACKTRACE_LIB
|
BACKTRACE_LIB
|
||||||
ENDIAN_FLAG
|
ENDIAN_FLAG
|
||||||
OPENMP_LIB
|
OPENMP_LIB
|
||||||
OPENMP_CXXFLAGS
|
OPENMP_CXXFLAGS
|
||||||
|
USE_LITTLE_ENDIAN
|
||||||
OBJEXT
|
OBJEXT
|
||||||
EXEEXT
|
EXEEXT
|
||||||
ac_ct_CXX
|
ac_ct_CXX
|
||||||
@ -676,7 +709,8 @@ CXXFLAGS
|
|||||||
LDFLAGS
|
LDFLAGS
|
||||||
LIBS
|
LIBS
|
||||||
CPPFLAGS
|
CPPFLAGS
|
||||||
CCC'
|
CCC
|
||||||
|
USE_LITTLE_ENDIAN'
|
||||||
|
|
||||||
|
|
||||||
# Initialize some variables set by options.
|
# Initialize some variables set by options.
|
||||||
@ -1299,6 +1333,9 @@ Some influential environment variables:
|
|||||||
LIBS libraries to pass to the linker, e.g. -l<library>
|
LIBS libraries to pass to the linker, e.g. -l<library>
|
||||||
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
||||||
you have headers in a nonstandard directory <include dir>
|
you have headers in a nonstandard directory <include dir>
|
||||||
|
USE_LITTLE_ENDIAN
|
||||||
|
"Whether to build with little endian (checks at compile time if
|
||||||
|
unset)"
|
||||||
|
|
||||||
Use these variables to override the choices made by `configure' or to help
|
Use these variables to override the choices made by `configure' or to help
|
||||||
it to find libraries and programs with nonstandard names/locations.
|
it to find libraries and programs with nonstandard names/locations.
|
||||||
@ -1509,6 +1546,39 @@ fi
|
|||||||
as_fn_set_status $ac_retval
|
as_fn_set_status $ac_retval
|
||||||
|
|
||||||
} # ac_fn_cxx_try_run
|
} # ac_fn_cxx_try_run
|
||||||
|
|
||||||
|
# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES
|
||||||
|
# ---------------------------------------------------------
|
||||||
|
# Tests whether HEADER exists and can be compiled using the include files in
|
||||||
|
# INCLUDES, setting the cache variable VAR accordingly.
|
||||||
|
ac_fn_cxx_check_header_compile ()
|
||||||
|
{
|
||||||
|
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
|
||||||
|
printf %s "checking for $2... " >&6; }
|
||||||
|
if eval test \${$3+y}
|
||||||
|
then :
|
||||||
|
printf %s "(cached) " >&6
|
||||||
|
else $as_nop
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$4
|
||||||
|
#include <$2>
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"
|
||||||
|
then :
|
||||||
|
eval "$3=yes"
|
||||||
|
else $as_nop
|
||||||
|
eval "$3=no"
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
eval ac_res=\$$3
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||||
|
printf "%s\n" "$ac_res" >&6; }
|
||||||
|
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||||
|
|
||||||
|
} # ac_fn_cxx_check_header_compile
|
||||||
ac_configure_args_raw=
|
ac_configure_args_raw=
|
||||||
for ac_arg
|
for ac_arg
|
||||||
do
|
do
|
||||||
@ -2020,6 +2090,15 @@ main (int argc, char **argv)
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
|
|
||||||
|
as_fn_append ac_header_cxx_list " stdio.h stdio_h HAVE_STDIO_H"
|
||||||
|
as_fn_append ac_header_cxx_list " stdlib.h stdlib_h HAVE_STDLIB_H"
|
||||||
|
as_fn_append ac_header_cxx_list " string.h string_h HAVE_STRING_H"
|
||||||
|
as_fn_append ac_header_cxx_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
|
||||||
|
as_fn_append ac_header_cxx_list " stdint.h stdint_h HAVE_STDINT_H"
|
||||||
|
as_fn_append ac_header_cxx_list " strings.h strings_h HAVE_STRINGS_H"
|
||||||
|
as_fn_append ac_header_cxx_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
|
||||||
|
as_fn_append ac_header_cxx_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
|
||||||
|
as_fn_append ac_header_cxx_list " unistd.h unistd_h HAVE_UNISTD_H"
|
||||||
# Check that the precious variables saved in the cache have kept the same
|
# Check that the precious variables saved in the cache have kept the same
|
||||||
# value.
|
# value.
|
||||||
ac_cache_corrupted=false
|
ac_cache_corrupted=false
|
||||||
@ -2792,38 +2871,289 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
### Endian detection
|
### Endian detection
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking endian" >&5
|
|
||||||
printf %s "checking endian... " >&6; }
|
ac_header= ac_cache=
|
||||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
|
for ac_item in $ac_header_cxx_list
|
||||||
printf "%s\n" "" >&6; }
|
do
|
||||||
if test "$cross_compiling" = yes
|
if test $ac_cache; then
|
||||||
|
ac_fn_cxx_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
|
||||||
|
if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
|
||||||
|
printf "%s\n" "#define $ac_item 1" >> confdefs.h
|
||||||
|
fi
|
||||||
|
ac_header= ac_cache=
|
||||||
|
elif test $ac_header; then
|
||||||
|
ac_cache=$ac_item
|
||||||
|
else
|
||||||
|
ac_header=$ac_item
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
|
||||||
then :
|
then :
|
||||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
|
||||||
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
|
printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
|
||||||
as_fn_error $? "cannot run test program while cross compiling
|
|
||||||
See \`config.log' for more details" "$LINENO" 5; }
|
fi
|
||||||
|
if test -z "${USE_LITTLE_ENDIAN+x}"
|
||||||
|
then :
|
||||||
|
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Checking system endianness as USE_LITTLE_ENDIAN is unset" >&5
|
||||||
|
printf "%s\n" "$as_me: Checking system endianness as USE_LITTLE_ENDIAN is unset" >&6;}
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking system endianness" >&5
|
||||||
|
printf %s "checking system endianness... " >&6; }
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
|
||||||
|
printf %s "checking whether byte ordering is bigendian... " >&6; }
|
||||||
|
if test ${ac_cv_c_bigendian+y}
|
||||||
|
then :
|
||||||
|
printf %s "(cached) " >&6
|
||||||
else $as_nop
|
else $as_nop
|
||||||
|
ac_cv_c_bigendian=unknown
|
||||||
|
# See if we're dealing with a universal compiler.
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
#include <stdint.h>
|
#ifndef __APPLE_CC__
|
||||||
|
not a universal capable compiler
|
||||||
|
#endif
|
||||||
|
typedef int dummy;
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"
|
||||||
|
then :
|
||||||
|
|
||||||
|
# Check for potential -arch flags. It is not universal unless
|
||||||
|
# there are at least two -arch flags with different values.
|
||||||
|
ac_arch=
|
||||||
|
ac_prev=
|
||||||
|
for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
|
||||||
|
if test -n "$ac_prev"; then
|
||||||
|
case $ac_word in
|
||||||
|
i?86 | x86_64 | ppc | ppc64)
|
||||||
|
if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
|
||||||
|
ac_arch=$ac_word
|
||||||
|
else
|
||||||
|
ac_cv_c_bigendian=universal
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
ac_prev=
|
||||||
|
elif test "x$ac_word" = "x-arch"; then
|
||||||
|
ac_prev=arch
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
if test $ac_cv_c_bigendian = unknown; then
|
||||||
|
# See if sys/param.h defines the BYTE_ORDER macro.
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/param.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
main (void)
|
main (void)
|
||||||
{
|
{
|
||||||
const uint16_t endianness = 256; return !!(*(const uint8_t *)&endianness);
|
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
|
||||||
|
&& defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
|
||||||
|
&& LITTLE_ENDIAN)
|
||||||
|
bogus endian macros
|
||||||
|
#endif
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"
|
||||||
|
then :
|
||||||
|
# It does; now see whether it defined to BIG_ENDIAN or not.
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/param.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
#if BYTE_ORDER != BIG_ENDIAN
|
||||||
|
not big endian
|
||||||
|
#endif
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"
|
||||||
|
then :
|
||||||
|
ac_cv_c_bigendian=yes
|
||||||
|
else $as_nop
|
||||||
|
ac_cv_c_bigendian=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
if test $ac_cv_c_bigendian = unknown; then
|
||||||
|
# See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
|
||||||
|
bogus endian macros
|
||||||
|
#endif
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"
|
||||||
|
then :
|
||||||
|
# It does; now see whether it defined to _BIG_ENDIAN or not.
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
#ifndef _BIG_ENDIAN
|
||||||
|
not big endian
|
||||||
|
#endif
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"
|
||||||
|
then :
|
||||||
|
ac_cv_c_bigendian=yes
|
||||||
|
else $as_nop
|
||||||
|
ac_cv_c_bigendian=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
if test $ac_cv_c_bigendian = unknown; then
|
||||||
|
# Compile a test program.
|
||||||
|
if test "$cross_compiling" = yes
|
||||||
|
then :
|
||||||
|
# Try to guess by grepping values from an object file.
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
unsigned short int ascii_mm[] =
|
||||||
|
{ 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
|
||||||
|
unsigned short int ascii_ii[] =
|
||||||
|
{ 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
|
||||||
|
int use_ascii (int i) {
|
||||||
|
return ascii_mm[i] + ascii_ii[i];
|
||||||
|
}
|
||||||
|
unsigned short int ebcdic_ii[] =
|
||||||
|
{ 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
|
||||||
|
unsigned short int ebcdic_mm[] =
|
||||||
|
{ 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
|
||||||
|
int use_ebcdic (int i) {
|
||||||
|
return ebcdic_mm[i] + ebcdic_ii[i];
|
||||||
|
}
|
||||||
|
extern int foo;
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
return use_ascii (foo) == use_ebcdic (foo);
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"
|
||||||
|
then :
|
||||||
|
if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
|
||||||
|
ac_cv_c_bigendian=yes
|
||||||
|
fi
|
||||||
|
if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
|
||||||
|
if test "$ac_cv_c_bigendian" = unknown; then
|
||||||
|
ac_cv_c_bigendian=no
|
||||||
|
else
|
||||||
|
# finding both strings is unlikely to happen, but who knows?
|
||||||
|
ac_cv_c_bigendian=unknown
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
|
else $as_nop
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
$ac_includes_default
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Are we little or big endian? From Harbison&Steele. */
|
||||||
|
union
|
||||||
|
{
|
||||||
|
long int l;
|
||||||
|
char c[sizeof (long int)];
|
||||||
|
} u;
|
||||||
|
u.l = 1;
|
||||||
|
return u.c[sizeof (long int) - 1] == 1;
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
if ac_fn_cxx_try_run "$LINENO"
|
if ac_fn_cxx_try_run "$LINENO"
|
||||||
then :
|
then :
|
||||||
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=1"
|
ac_cv_c_bigendian=no
|
||||||
else $as_nop
|
else $as_nop
|
||||||
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=0"
|
ac_cv_c_bigendian=yes
|
||||||
fi
|
fi
|
||||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
|
||||||
|
printf "%s\n" "$ac_cv_c_bigendian" >&6; }
|
||||||
|
case $ac_cv_c_bigendian in #(
|
||||||
|
yes)
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: big endian" >&5
|
||||||
|
printf "%s\n" "big endian" >&6; }
|
||||||
|
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=0";; #(
|
||||||
|
no)
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: little endian" >&5
|
||||||
|
printf "%s\n" "little endian" >&6; }
|
||||||
|
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=1" ;; #(
|
||||||
|
universal)
|
||||||
|
|
||||||
|
printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
|
||||||
|
|
||||||
|
;; #(
|
||||||
|
*)
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
|
||||||
|
printf "%s\n" "unknown" >&6; }
|
||||||
|
as_fn_error $? "Could not determine endianness. Please set USE_LITTLE_ENDIAN" "$LINENO" 5
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
else $as_nop
|
||||||
|
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Forcing endianness to: ${USE_LITTLE_ENDIAN}" >&5
|
||||||
|
printf "%s\n" "$as_me: Forcing endianness to: ${USE_LITTLE_ENDIAN}" >&6;}
|
||||||
|
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=${USE_LITTLE_ENDIAN}"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
OPENMP_CXXFLAGS=""
|
OPENMP_CXXFLAGS=""
|
||||||
|
|
||||||
@ -2877,6 +3207,8 @@ fi
|
|||||||
|
|
||||||
ac_config_files="$ac_config_files src/Makevars"
|
ac_config_files="$ac_config_files src/Makevars"
|
||||||
|
|
||||||
|
ac_config_headers="$ac_config_headers config.h"
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
# This file is a shell script that caches the results of configure
|
# This file is a shell script that caches the results of configure
|
||||||
# tests run on this system so they can be shared between configure
|
# tests run on this system so they can be shared between configure
|
||||||
@ -2967,43 +3299,7 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
|||||||
# Let make expand exec_prefix.
|
# Let make expand exec_prefix.
|
||||||
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
||||||
|
|
||||||
# Transform confdefs.h into DEFS.
|
DEFS=-DHAVE_CONFIG_H
|
||||||
# Protect against shell expansion while executing Makefile rules.
|
|
||||||
# Protect against Makefile macro expansion.
|
|
||||||
#
|
|
||||||
# If the first sed substitution is executed (which looks for macros that
|
|
||||||
# take arguments), then branch to the quote section. Otherwise,
|
|
||||||
# look for a macro that doesn't take arguments.
|
|
||||||
ac_script='
|
|
||||||
:mline
|
|
||||||
/\\$/{
|
|
||||||
N
|
|
||||||
s,\\\n,,
|
|
||||||
b mline
|
|
||||||
}
|
|
||||||
t clear
|
|
||||||
:clear
|
|
||||||
s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
|
|
||||||
t quote
|
|
||||||
s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
|
|
||||||
t quote
|
|
||||||
b any
|
|
||||||
:quote
|
|
||||||
s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
|
|
||||||
s/\[/\\&/g
|
|
||||||
s/\]/\\&/g
|
|
||||||
s/\$/$$/g
|
|
||||||
H
|
|
||||||
:any
|
|
||||||
${
|
|
||||||
g
|
|
||||||
s/^\n//
|
|
||||||
s/\n/ /g
|
|
||||||
p
|
|
||||||
}
|
|
||||||
'
|
|
||||||
DEFS=`sed -n "$ac_script" confdefs.h`
|
|
||||||
|
|
||||||
|
|
||||||
ac_libobjs=
|
ac_libobjs=
|
||||||
ac_ltlibobjs=
|
ac_ltlibobjs=
|
||||||
@ -3023,6 +3319,7 @@ LTLIBOBJS=$ac_ltlibobjs
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
: "${CONFIG_STATUS=./config.status}"
|
: "${CONFIG_STATUS=./config.status}"
|
||||||
ac_write_fail=0
|
ac_write_fail=0
|
||||||
ac_clean_files_save=$ac_clean_files
|
ac_clean_files_save=$ac_clean_files
|
||||||
@ -3430,11 +3727,15 @@ case $ac_config_files in *"
|
|||||||
"*) set x $ac_config_files; shift; ac_config_files=$*;;
|
"*) set x $ac_config_files; shift; ac_config_files=$*;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
case $ac_config_headers in *"
|
||||||
|
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
# Files that config.status was made for.
|
# Files that config.status was made for.
|
||||||
config_files="$ac_config_files"
|
config_files="$ac_config_files"
|
||||||
|
config_headers="$ac_config_headers"
|
||||||
|
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
@ -3455,10 +3756,15 @@ Usage: $0 [OPTION]... [TAG]...
|
|||||||
--recheck update $as_me by reconfiguring in the same conditions
|
--recheck update $as_me by reconfiguring in the same conditions
|
||||||
--file=FILE[:TEMPLATE]
|
--file=FILE[:TEMPLATE]
|
||||||
instantiate the configuration file FILE
|
instantiate the configuration file FILE
|
||||||
|
--header=FILE[:TEMPLATE]
|
||||||
|
instantiate the configuration header FILE
|
||||||
|
|
||||||
Configuration files:
|
Configuration files:
|
||||||
$config_files
|
$config_files
|
||||||
|
|
||||||
|
Configuration headers:
|
||||||
|
$config_headers
|
||||||
|
|
||||||
Report bugs to the package provider."
|
Report bugs to the package provider."
|
||||||
|
|
||||||
_ACEOF
|
_ACEOF
|
||||||
@ -3521,7 +3827,18 @@ do
|
|||||||
esac
|
esac
|
||||||
as_fn_append CONFIG_FILES " '$ac_optarg'"
|
as_fn_append CONFIG_FILES " '$ac_optarg'"
|
||||||
ac_need_defaults=false;;
|
ac_need_defaults=false;;
|
||||||
--he | --h | --help | --hel | -h )
|
--header | --heade | --head | --hea )
|
||||||
|
$ac_shift
|
||||||
|
case $ac_optarg in
|
||||||
|
*\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
|
||||||
|
esac
|
||||||
|
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
|
||||||
|
ac_need_defaults=false;;
|
||||||
|
--he | --h)
|
||||||
|
# Conflict between --help and --header
|
||||||
|
as_fn_error $? "ambiguous option: \`$1'
|
||||||
|
Try \`$0 --help' for more information.";;
|
||||||
|
--help | --hel | -h )
|
||||||
printf "%s\n" "$ac_cs_usage"; exit ;;
|
printf "%s\n" "$ac_cs_usage"; exit ;;
|
||||||
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||||||
| -silent | --silent | --silen | --sile | --sil | --si | --s)
|
| -silent | --silent | --silen | --sile | --sil | --si | --s)
|
||||||
@ -3578,6 +3895,7 @@ for ac_config_target in $ac_config_targets
|
|||||||
do
|
do
|
||||||
case $ac_config_target in
|
case $ac_config_target in
|
||||||
"src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;;
|
"src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;;
|
||||||
|
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
|
||||||
|
|
||||||
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
||||||
esac
|
esac
|
||||||
@ -3590,6 +3908,7 @@ done
|
|||||||
# bizarre bug on SunOS 4.1.3.
|
# bizarre bug on SunOS 4.1.3.
|
||||||
if $ac_need_defaults; then
|
if $ac_need_defaults; then
|
||||||
test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
|
test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
|
||||||
|
test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Have a temporary directory for convenience. Make it in the build tree
|
# Have a temporary directory for convenience. Make it in the build tree
|
||||||
@ -3777,8 +4096,116 @@ fi
|
|||||||
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
fi # test -n "$CONFIG_FILES"
|
fi # test -n "$CONFIG_FILES"
|
||||||
|
|
||||||
|
# Set up the scripts for CONFIG_HEADERS section.
|
||||||
|
# No need to generate them if there are no CONFIG_HEADERS.
|
||||||
|
# This happens for instance with `./config.status Makefile'.
|
||||||
|
if test -n "$CONFIG_HEADERS"; then
|
||||||
|
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
|
||||||
|
BEGIN {
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
eval set X " :F $CONFIG_FILES "
|
# Transform confdefs.h into an awk script `defines.awk', embedded as
|
||||||
|
# here-document in config.status, that substitutes the proper values into
|
||||||
|
# config.h.in to produce config.h.
|
||||||
|
|
||||||
|
# Create a delimiter string that does not exist in confdefs.h, to ease
|
||||||
|
# handling of long lines.
|
||||||
|
ac_delim='%!_!# '
|
||||||
|
for ac_last_try in false false :; do
|
||||||
|
ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
|
||||||
|
if test -z "$ac_tt"; then
|
||||||
|
break
|
||||||
|
elif $ac_last_try; then
|
||||||
|
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
|
||||||
|
else
|
||||||
|
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# For the awk script, D is an array of macro values keyed by name,
|
||||||
|
# likewise P contains macro parameters if any. Preserve backslash
|
||||||
|
# newline sequences.
|
||||||
|
|
||||||
|
ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
|
||||||
|
sed -n '
|
||||||
|
s/.\{148\}/&'"$ac_delim"'/g
|
||||||
|
t rset
|
||||||
|
:rset
|
||||||
|
s/^[ ]*#[ ]*define[ ][ ]*/ /
|
||||||
|
t def
|
||||||
|
d
|
||||||
|
:def
|
||||||
|
s/\\$//
|
||||||
|
t bsnl
|
||||||
|
s/["\\]/\\&/g
|
||||||
|
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
|
||||||
|
D["\1"]=" \3"/p
|
||||||
|
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
|
||||||
|
d
|
||||||
|
:bsnl
|
||||||
|
s/["\\]/\\&/g
|
||||||
|
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
|
||||||
|
D["\1"]=" \3\\\\\\n"\\/p
|
||||||
|
t cont
|
||||||
|
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
|
||||||
|
t cont
|
||||||
|
d
|
||||||
|
:cont
|
||||||
|
n
|
||||||
|
s/.\{148\}/&'"$ac_delim"'/g
|
||||||
|
t clear
|
||||||
|
:clear
|
||||||
|
s/\\$//
|
||||||
|
t bsnlc
|
||||||
|
s/["\\]/\\&/g; s/^/"/; s/$/"/p
|
||||||
|
d
|
||||||
|
:bsnlc
|
||||||
|
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
|
||||||
|
b cont
|
||||||
|
' <confdefs.h | sed '
|
||||||
|
s/'"$ac_delim"'/"\\\
|
||||||
|
"/g' >>$CONFIG_STATUS || ac_write_fail=1
|
||||||
|
|
||||||
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
|
for (key in D) D_is_set[key] = 1
|
||||||
|
FS = ""
|
||||||
|
}
|
||||||
|
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
|
||||||
|
line = \$ 0
|
||||||
|
split(line, arg, " ")
|
||||||
|
if (arg[1] == "#") {
|
||||||
|
defundef = arg[2]
|
||||||
|
mac1 = arg[3]
|
||||||
|
} else {
|
||||||
|
defundef = substr(arg[1], 2)
|
||||||
|
mac1 = arg[2]
|
||||||
|
}
|
||||||
|
split(mac1, mac2, "(") #)
|
||||||
|
macro = mac2[1]
|
||||||
|
prefix = substr(line, 1, index(line, defundef) - 1)
|
||||||
|
if (D_is_set[macro]) {
|
||||||
|
# Preserve the white space surrounding the "#".
|
||||||
|
print prefix "define", macro P[macro] D[macro]
|
||||||
|
next
|
||||||
|
} else {
|
||||||
|
# Replace #undef with comments. This is necessary, for example,
|
||||||
|
# in the case of _POSIX_SOURCE, which is predefined and required
|
||||||
|
# on some systems where configure will not decide to define it.
|
||||||
|
if (defundef == "undef") {
|
||||||
|
print "/*", prefix defundef, macro, "*/"
|
||||||
|
next
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{ print }
|
||||||
|
_ACAWK
|
||||||
|
_ACEOF
|
||||||
|
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
|
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
|
||||||
|
fi # test -n "$CONFIG_HEADERS"
|
||||||
|
|
||||||
|
|
||||||
|
eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "
|
||||||
shift
|
shift
|
||||||
for ac_tag
|
for ac_tag
|
||||||
do
|
do
|
||||||
@ -3986,7 +4413,30 @@ which seems to be undefined. Please make sure it is defined" >&2;}
|
|||||||
esac \
|
esac \
|
||||||
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||||||
;;
|
;;
|
||||||
|
:H)
|
||||||
|
#
|
||||||
|
# CONFIG_HEADER
|
||||||
|
#
|
||||||
|
if test x"$ac_file" != x-; then
|
||||||
|
{
|
||||||
|
printf "%s\n" "/* $configure_input */" >&1 \
|
||||||
|
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
|
||||||
|
} >"$ac_tmp/config.h" \
|
||||||
|
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||||||
|
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
|
||||||
|
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
|
||||||
|
printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
|
||||||
|
else
|
||||||
|
rm -f "$ac_file"
|
||||||
|
mv "$ac_tmp/config.h" "$ac_file" \
|
||||||
|
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
printf "%s\n" "/* $configure_input */" >&1 \
|
||||||
|
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|
||||||
|
|| as_fn_error $? "could not create -" "$LINENO" 5
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|||||||
@ -28,11 +28,22 @@ AC_MSG_RESULT([])
|
|||||||
AC_CHECK_LIB([execinfo], [backtrace], [BACKTRACE_LIB=-lexecinfo], [BACKTRACE_LIB=''])
|
AC_CHECK_LIB([execinfo], [backtrace], [BACKTRACE_LIB=-lexecinfo], [BACKTRACE_LIB=''])
|
||||||
|
|
||||||
### Endian detection
|
### Endian detection
|
||||||
AC_MSG_CHECKING([endian])
|
AC_ARG_VAR(USE_LITTLE_ENDIAN, "Whether to build with little endian (checks at compile time if unset)")
|
||||||
AC_MSG_RESULT([])
|
AS_IF([test -z "${USE_LITTLE_ENDIAN+x}"], [
|
||||||
AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[const uint16_t endianness = 256; return !!(*(const uint8_t *)&endianness);]])],
|
AC_MSG_NOTICE([Checking system endianness as USE_LITTLE_ENDIAN is unset])
|
||||||
[ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=1"],
|
AC_MSG_CHECKING([system endianness])
|
||||||
[ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=0"])
|
AC_C_BIGENDIAN(
|
||||||
|
[AC_MSG_RESULT([big endian])
|
||||||
|
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=0"],
|
||||||
|
[AC_MSG_RESULT([little endian])
|
||||||
|
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=1"],
|
||||||
|
[AC_MSG_RESULT([unknown])
|
||||||
|
AC_MSG_ERROR([Could not determine endianness. Please set USE_LITTLE_ENDIAN])]
|
||||||
|
)
|
||||||
|
], [
|
||||||
|
AC_MSG_NOTICE([Forcing endianness to: ${USE_LITTLE_ENDIAN}])
|
||||||
|
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=${USE_LITTLE_ENDIAN}"
|
||||||
|
])
|
||||||
|
|
||||||
OPENMP_CXXFLAGS=""
|
OPENMP_CXXFLAGS=""
|
||||||
|
|
||||||
@ -73,4 +84,5 @@ AC_SUBST(OPENMP_LIB)
|
|||||||
AC_SUBST(ENDIAN_FLAG)
|
AC_SUBST(ENDIAN_FLAG)
|
||||||
AC_SUBST(BACKTRACE_LIB)
|
AC_SUBST(BACKTRACE_LIB)
|
||||||
AC_CONFIG_FILES([src/Makevars])
|
AC_CONFIG_FILES([src/Makevars])
|
||||||
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user