mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-10 07:55:35 +00:00
Added check of mpfr and gmp at configure time
It generates automatically the linker flags or complains if not found.
This commit is contained in:
parent
b5af3fbe45
commit
4cadf11d1d
2
README
2
README
@ -33,6 +33,8 @@ MPI parallelism is UNIMPLEMENTED and for now only OpenMP and SIMD parallelism is
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is are examples:
|
||||
|
||||
./configure CXX=clang++ CXXFLAGS="-std=c++11 -O3 -msse4" --enable-simd=SSE4
|
||||
|
||||
./configure CXX=clang++ CXXFLAGS="-std=c++11 -O3 -mavx" --enable-simd=AVX1
|
||||
|
||||
./configure CXX=clang++ CXXFLAGS="-std=c++11 -O3 -mavx2" --enable-simd=AVX2
|
||||
|
104
configure
vendored
104
configure
vendored
@ -4502,6 +4502,11 @@ _ACEOF
|
||||
|
||||
|
||||
# Checks for library functions.
|
||||
echo
|
||||
echo Checking libraries
|
||||
echo :::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
|
||||
for ac_func in gettimeofday
|
||||
do :
|
||||
ac_fn_cxx_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
|
||||
@ -4514,6 +4519,105 @@ fi
|
||||
done
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpf_init in -lgmp" >&5
|
||||
$as_echo_n "checking for __gmpf_init in -lgmp... " >&6; }
|
||||
if ${ac_cv_lib_gmp___gmpf_init+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lgmp $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char __gmpf_init ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return __gmpf_init ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_cxx_try_link "$LINENO"; then :
|
||||
ac_cv_lib_gmp___gmpf_init=yes
|
||||
else
|
||||
ac_cv_lib_gmp___gmpf_init=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpf_init" >&5
|
||||
$as_echo "$ac_cv_lib_gmp___gmpf_init" >&6; }
|
||||
if test "x$ac_cv_lib_gmp___gmpf_init" = xyes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LIBGMP 1
|
||||
_ACEOF
|
||||
|
||||
LIBS="-lgmp $LIBS"
|
||||
|
||||
else
|
||||
as_fn_error $? "GNU Multiple Precision GMP library was not found in your system.
|
||||
Please install or provide the correct path to your installation
|
||||
Info at: http://www.gmplib.org" "$LINENO" 5
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpfr_init in -lmpfr" >&5
|
||||
$as_echo_n "checking for mpfr_init in -lmpfr... " >&6; }
|
||||
if ${ac_cv_lib_mpfr_mpfr_init+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lmpfr $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char mpfr_init ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return mpfr_init ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_cxx_try_link "$LINENO"; then :
|
||||
ac_cv_lib_mpfr_mpfr_init=yes
|
||||
else
|
||||
ac_cv_lib_mpfr_mpfr_init=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpfr_mpfr_init" >&5
|
||||
$as_echo "$ac_cv_lib_mpfr_mpfr_init" >&6; }
|
||||
if test "x$ac_cv_lib_mpfr_mpfr_init" = xyes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LIBMPFR 1
|
||||
_ACEOF
|
||||
|
||||
LIBS="-lmpfr $LIBS"
|
||||
|
||||
else
|
||||
as_fn_error $? "GNU Multiple Precision MPFR library was not found in your system.
|
||||
Please install or provide the correct path to your installation
|
||||
Info at: http://www.mpfr.org/" "$LINENO" 5
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
16
configure.ac
16
configure.ac
@ -3,7 +3,7 @@
|
||||
#
|
||||
# Project Grid package
|
||||
#
|
||||
# Time-stamp: <2015-05-18 17:14:20 neo>
|
||||
# Time-stamp: <2015-05-19 13:51:08 neo>
|
||||
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([Grid], [1.0], [paboyle@ph.ed.ac.uk])
|
||||
@ -46,8 +46,22 @@ AC_TYPE_UINT32_T
|
||||
AC_TYPE_UINT64_T
|
||||
|
||||
# Checks for library functions.
|
||||
echo
|
||||
echo Checking libraries
|
||||
echo :::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
|
||||
AC_CHECK_FUNCS([gettimeofday])
|
||||
|
||||
AC_CHECK_LIB([gmp],[__gmpf_init],,
|
||||
[AC_MSG_ERROR(GNU Multiple Precision GMP library was not found in your system.
|
||||
Please install or provide the correct path to your installation
|
||||
Info at: http://www.gmplib.org)])
|
||||
|
||||
AC_CHECK_LIB([mpfr],[mpfr_init],,
|
||||
[AC_MSG_ERROR(GNU Multiple Precision MPFR library was not found in your system.
|
||||
Please install or provide the correct path to your installation
|
||||
Info at: http://www.mpfr.org/)])
|
||||
|
||||
|
||||
|
||||
|
@ -1,121 +0,0 @@
|
||||
/* lib/Grid_config.h. Generated from Grid_config.h.in by configure. */
|
||||
/* lib/Grid_config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* AVX */
|
||||
/* #undef AVX1 */
|
||||
|
||||
/* AVX2 */
|
||||
/* #undef AVX2 */
|
||||
|
||||
/* AVX512 */
|
||||
/* #undef AVX512 */
|
||||
|
||||
/* GRID_COMMS_MPI */
|
||||
/* #undef GRID_COMMS_MPI */
|
||||
|
||||
/* GRID_COMMS_NONE */
|
||||
#define GRID_COMMS_NONE 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `be64toh', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_BE64TOH 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `ntohll', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_NTOHLL 0
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
#define HAVE_ENDIAN_H 1
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
|
||||
/* Define to 1 if you have the <gmp.h> header file. */
|
||||
#define HAVE_GMP_H 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#define HAVE_MALLOC_H 1
|
||||
|
||||
/* Define to 1 if you have the <malloc/malloc.h> header file. */
|
||||
/* #undef HAVE_MALLOC_MALLOC_H */
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the <mm_malloc.h> header file. */
|
||||
#define HAVE_MM_MALLOC_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "grid"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "paboyle@ph.ed.ac.uk"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "Grid"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "Grid 1.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "grid"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.0"
|
||||
|
||||
/* SSE4 */
|
||||
#define SSE4 1
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.0"
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
/* #undef _UINT32_T */
|
||||
|
||||
/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
|
||||
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
|
||||
#define below would cause a syntax error. */
|
||||
/* #undef _UINT64_T */
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 32 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
/* #undef uint32_t */
|
||||
|
||||
/* Define to the type of an unsigned integer type of width exactly 64 bits if
|
||||
such a type exists and the standard includes do not define it. */
|
||||
/* #undef uint64_t */
|
@ -35,6 +35,12 @@
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `gmp' library (-lgmp). */
|
||||
#undef HAVE_LIBGMP
|
||||
|
||||
/* Define to 1 if you have the `mpfr' library (-lmpfr). */
|
||||
#undef HAVE_LIBMPFR
|
||||
|
||||
/* Define to 1 if you have the <malloc.h> header file. */
|
||||
#undef HAVE_MALLOC_H
|
||||
|
||||
|
@ -95,5 +95,6 @@ nobase_include_HEADERS = algorithms/approx/bigfloat.h\
|
||||
simd/Grid_vComplexF.h\
|
||||
simd/Grid_vInteger.h\
|
||||
simd/Grid_vRealD.h\
|
||||
simd/Grid_vRealF.h
|
||||
simd/Grid_vRealF.h\
|
||||
simd/Grid_vector_types.h
|
||||
|
||||
|
0
lib/algorithms/approx/Remez.cc
Executable file → Normal file
0
lib/algorithms/approx/Remez.cc
Executable file → Normal file
0
lib/algorithms/approx/Remez.h
Executable file → Normal file
0
lib/algorithms/approx/Remez.h
Executable file → Normal file
0
lib/algorithms/approx/Zolotarev.cc
Executable file → Normal file
0
lib/algorithms/approx/Zolotarev.cc
Executable file → Normal file
0
lib/algorithms/approx/Zolotarev.h
Executable file → Normal file
0
lib/algorithms/approx/Zolotarev.h
Executable file → Normal file
0
lib/algorithms/approx/bigfloat.h
Executable file → Normal file
0
lib/algorithms/approx/bigfloat.h
Executable file → Normal file
19
lib/simd/Grid_sse4.cpp
Normal file
19
lib/simd/Grid_sse4.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
//----------------------------------------------------------------------
|
||||
/*! @file Grid_vector_types.h
|
||||
@brief Defines templated class to deal with inner vector types
|
||||
*/
|
||||
// Time-stamp: <2015-05-19 13:53:47 neo>
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
namespace Optimization {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Here assign types
|
||||
namespace Grid {
|
||||
|
||||
|
||||
}
|
@ -1,3 +1,9 @@
|
||||
//----------------------------------------------------------------------
|
||||
/*! @file Grid_vector_types.h
|
||||
@brief Defines templated class to deal with inner vector types
|
||||
*/
|
||||
// Time-stamp: <2015-05-19 13:41:47 neo>
|
||||
//----------------------------------------------------------------------
|
||||
#ifndef GRID_VECTOR_TYPES
|
||||
#define GRID_VECTOR_TYPES
|
||||
|
||||
@ -13,8 +19,8 @@ namespace Grid {
|
||||
struct RealPart< std::complex<T> >{
|
||||
typedef T type;
|
||||
};
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
// Check for complexity with type traits
|
||||
template <typename T>
|
||||
struct is_complex : std::false_type {};
|
||||
|
@ -1 +0,0 @@
|
||||
timestamp for lib/Grid_config.h
|
Loading…
Reference in New Issue
Block a user