diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 133 |
1 files changed, 73 insertions, 60 deletions
diff --git a/configure.ac b/configure.ac index d0230a0..16d4dc4 100644 --- a/configure.ac +++ b/configure.ac @@ -151,68 +151,81 @@ AC_SUBST(ac_aux_dir) AC_SUBST(OBJECTS) dnl Do CPUID and associated compiler flag checks +dnl but allow to disable all of this in order to build portable binaries -SUPPORTED_FLAGS="" -$CC - -E -mmmx </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="-mmmx" - AC_MSG_RESULT([$CC supports -mmmx]) -fi -$CC - -E -msse </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse" - AC_MSG_RESULT([$CC supports -msse]) -fi -$CC - -E -msse2 </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse2" - AC_MSG_RESULT([$CC supports -msse2]) -fi -$CC - -E -msse3 </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse3" - AC_MSG_RESULT([$CC supports -msse3]) -fi -$CC - -E -mssse3 </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="$SUPPORTED_FLAGS -mssse3" - AC_MSG_RESULT([$CC supports -mssse3]) -fi -$CC - -E -msse4.1 </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse4.1" - AC_MSG_RESULT([$CC supports -msse4.1]) -fi -$CC - -E -msse4.2 </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse4.2" - AC_MSG_RESULT([$CC supports -msse4.2]) -fi -$CC - -E -mavx </dev/null >/dev/null 2>&1 -if [[ $? == "0" ]]; then - SUPPORTED_FLAGS="$SUPPORTED_FLAGS -mavx" - AC_MSG_RESULT([$CC supports -mavx]) -fi +AC_ARG_ENABLE([mmi], [ --disable-mmi do not use host-specific instructions], +[case "${enableval}" in + yes) mmi=true ;; + no) mmi=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --disable-mmi]) ;; +esac],[mmi=true]) + +if test x$mmi = xtrue ; then + + SUPPORTED_FLAGS="" + $CC - -E -mmmx </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="-mmmx" + AC_MSG_RESULT([$CC supports -mmmx]) + fi + $CC - -E -msse </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse" + AC_MSG_RESULT([$CC supports -msse]) + fi + $CC - -E -msse2 </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse2" + AC_MSG_RESULT([$CC supports -msse2]) + fi + $CC - -E -msse3 </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse3" + AC_MSG_RESULT([$CC supports -msse3]) + fi + $CC - -E -mssse3 </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="$SUPPORTED_FLAGS -mssse3" + AC_MSG_RESULT([$CC supports -mssse3]) + fi + $CC - -E -msse4.1 </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse4.1" + AC_MSG_RESULT([$CC supports -msse4.1]) + fi + $CC - -E -msse4.2 </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="$SUPPORTED_FLAGS -msse4.2" + AC_MSG_RESULT([$CC supports -msse4.2]) + fi + $CC - -E -mavx </dev/null >/dev/null 2>&1 + if [[ $? == "0" ]]; then + SUPPORTED_FLAGS="$SUPPORTED_FLAGS -mavx" + AC_MSG_RESULT([$CC supports -mavx]) + fi -# Detect the SIMD features supported by both the compiler and the CPU -SIMD_FLAGS="" -cat "$srcdir/get_flags_from_cpuid.c" \ - | sed "s/FLAGSFROMAUTOCONF/${SUPPORTED_FLAGS}/" \ - | $CC -x c -g - -o get_flags_from_cpuid -if [[ -e ./get_flags_from_cpuid ]]; then - chmod 755 get_flags_from_cpuid; ./get_flags_from_cpuid; rm ./get_flags_from_cpuid - if [[ -e compiler_flags ]]; then - SIMD_FLAGS=`cat compiler_flags` - rm -f compiler_flags - else - AC_MSG_WARN([Could not run the CPUID detection program]) - fi -else - AC_MSG_WARN([Could not compile the CPUID detection program]) -fi + # Detect the SIMD features supported by both the compiler and the CPU + SIMD_FLAGS="" + cat "$srcdir/get_flags_from_cpuid.c" \ + | sed "s/FLAGSFROMAUTOCONF/${SUPPORTED_FLAGS}/" \ + | $CC -x c -g - -o get_flags_from_cpuid + if [[ -e ./get_flags_from_cpuid ]]; then + chmod 755 get_flags_from_cpuid + ./get_flags_from_cpuid + rm ./get_flags_from_cpuid + if [[ -e compiler_flags ]]; then + SIMD_FLAGS=`cat compiler_flags` + rm -f compiler_flags + else + AC_MSG_WARN([Could not run the CPUID detection program]) + fi + else + AC_MSG_WARN([Could not compile the CPUID detection program]) + fi -AC_MSG_RESULT([Generating with SIMD flags: $SIMD_FLAGS]) -CFLAGS="$CFLAGS $SIMD_FLAGS" + AC_MSG_RESULT([Generating with SIMD flags: $SIMD_FLAGS]) + CFLAGS="$CFLAGS $SIMD_FLAGS" +fi # Certain code may be dependent on 32 vs. 64-bit arch, so add a # flag for 64-bit @@ -231,7 +244,7 @@ AM_CONDITIONAL(HAVE_DOXYGEN, $DOXYGEN) AC_SUBST(HAVE_DOXYGEN) dnl Let people disable the doxygen stuff. -AC_ARG_ENABLE(doxygen, [ --enable-doxygen Use doxygen to build documentation (default=auto)], +AC_ARG_ENABLE(doxygen, [ --enable-doxygen use doxygen to build documentation (default=auto)], enable_doxygen="$enableval", enable_doxygen=auto) |