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_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
|
||||
LIBOBJS
|
||||
BACKTRACE_LIB
|
||||
ENDIAN_FLAG
|
||||
OPENMP_LIB
|
||||
OPENMP_CXXFLAGS
|
||||
USE_LITTLE_ENDIAN
|
||||
OBJEXT
|
||||
EXEEXT
|
||||
ac_ct_CXX
|
||||
@ -676,7 +709,8 @@ CXXFLAGS
|
||||
LDFLAGS
|
||||
LIBS
|
||||
CPPFLAGS
|
||||
CCC'
|
||||
CCC
|
||||
USE_LITTLE_ENDIAN'
|
||||
|
||||
|
||||
# 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>
|
||||
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
||||
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
|
||||
it to find libraries and programs with nonstandard names/locations.
|
||||
@ -1509,6 +1546,39 @@ fi
|
||||
as_fn_set_status $ac_retval
|
||||
|
||||
} # 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=
|
||||
for ac_arg
|
||||
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
|
||||
# value.
|
||||
ac_cache_corrupted=false
|
||||
@ -2792,38 +2871,289 @@ fi
|
||||
|
||||
|
||||
### Endian detection
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking endian" >&5
|
||||
printf %s "checking endian... " >&6; }
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
|
||||
printf "%s\n" "" >&6; }
|
||||
if test "$cross_compiling" = yes
|
||||
|
||||
ac_header= ac_cache=
|
||||
for ac_item in $ac_header_cxx_list
|
||||
do
|
||||
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 :
|
||||
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||
as_fn_error $? "cannot run test program while cross compiling
|
||||
See \`config.log' for more details" "$LINENO" 5; }
|
||||
|
||||
printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
|
||||
|
||||
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
|
||||
ac_cv_c_bigendian=unknown
|
||||
# See if we're dealing with a universal compiler.
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* 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
|
||||
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;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_cxx_try_run "$LINENO"
|
||||
then :
|
||||
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=1"
|
||||
ac_cv_c_bigendian=no
|
||||
else $as_nop
|
||||
ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=0"
|
||||
ac_cv_c_bigendian=yes
|
||||
fi
|
||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
||||
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=""
|
||||
|
||||
@ -2877,6 +3207,8 @@ fi
|
||||
|
||||
ac_config_files="$ac_config_files src/Makevars"
|
||||
|
||||
ac_config_headers="$ac_config_headers config.h"
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
# This file is a shell script that caches the results of 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.
|
||||
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
||||
|
||||
# Transform confdefs.h into DEFS.
|
||||
# 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`
|
||||
|
||||
DEFS=-DHAVE_CONFIG_H
|
||||
|
||||
ac_libobjs=
|
||||
ac_ltlibobjs=
|
||||
@ -3023,6 +3319,7 @@ LTLIBOBJS=$ac_ltlibobjs
|
||||
|
||||
|
||||
|
||||
|
||||
: "${CONFIG_STATUS=./config.status}"
|
||||
ac_write_fail=0
|
||||
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=$*;;
|
||||
esac
|
||||
|
||||
case $ac_config_headers in *"
|
||||
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
|
||||
esac
|
||||
|
||||
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
# Files that config.status was made for.
|
||||
config_files="$ac_config_files"
|
||||
config_headers="$ac_config_headers"
|
||||
|
||||
_ACEOF
|
||||
|
||||
@ -3455,10 +3756,15 @@ Usage: $0 [OPTION]... [TAG]...
|
||||
--recheck update $as_me by reconfiguring in the same conditions
|
||||
--file=FILE[:TEMPLATE]
|
||||
instantiate the configuration file FILE
|
||||
--header=FILE[:TEMPLATE]
|
||||
instantiate the configuration header FILE
|
||||
|
||||
Configuration files:
|
||||
$config_files
|
||||
|
||||
Configuration headers:
|
||||
$config_headers
|
||||
|
||||
Report bugs to the package provider."
|
||||
|
||||
_ACEOF
|
||||
@ -3521,7 +3827,18 @@ do
|
||||
esac
|
||||
as_fn_append CONFIG_FILES " '$ac_optarg'"
|
||||
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 ;;
|
||||
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||||
| -silent | --silent | --silen | --sile | --sil | --si | --s)
|
||||
@ -3578,6 +3895,7 @@ for ac_config_target in $ac_config_targets
|
||||
do
|
||||
case $ac_config_target in
|
||||
"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;;
|
||||
esac
|
||||
@ -3590,6 +3908,7 @@ done
|
||||
# bizarre bug on SunOS 4.1.3.
|
||||
if $ac_need_defaults; then
|
||||
test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
|
||||
test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
|
||||
fi
|
||||
|
||||
# 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
|
||||
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
|
||||
for ac_tag
|
||||
do
|
||||
@ -3986,7 +4413,30 @@ which seems to be undefined. Please make sure it is defined" >&2;}
|
||||
esac \
|
||||
|| 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
|
||||
|
||||
@ -28,11 +28,22 @@ AC_MSG_RESULT([])
|
||||
AC_CHECK_LIB([execinfo], [backtrace], [BACKTRACE_LIB=-lexecinfo], [BACKTRACE_LIB=''])
|
||||
|
||||
### Endian detection
|
||||
AC_MSG_CHECKING([endian])
|
||||
AC_MSG_RESULT([])
|
||||
AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[const uint16_t endianness = 256; return !!(*(const uint8_t *)&endianness);]])],
|
||||
[ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=1"],
|
||||
[ENDIAN_FLAG="-DDMLC_CMAKE_LITTLE_ENDIAN=0"])
|
||||
AC_ARG_VAR(USE_LITTLE_ENDIAN, "Whether to build with little endian (checks at compile time if unset)")
|
||||
AS_IF([test -z "${USE_LITTLE_ENDIAN+x}"], [
|
||||
AC_MSG_NOTICE([Checking system endianness as USE_LITTLE_ENDIAN is unset])
|
||||
AC_MSG_CHECKING([system endianness])
|
||||
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=""
|
||||
|
||||
@ -73,4 +84,5 @@ AC_SUBST(OPENMP_LIB)
|
||||
AC_SUBST(ENDIAN_FLAG)
|
||||
AC_SUBST(BACKTRACE_LIB)
|
||||
AC_CONFIG_FILES([src/Makevars])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_OUTPUT
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user