Нужен макрос autoconf, который определяет, является ли -m64 допустимой опцией компилятора - PullRequest
4 голосов
/ 31 августа 2009

У меня есть код, который я хочу скомпилировать на всех системах Unix, но если -m64 у меня есть, и он работает, я хочу, чтобы скрипт конфигурирования использовал его. Как заставить autoconf проверить, работает ли -m64 и, если да, использовать его?

Ответы [ 2 ]

10 голосов
/ 06 сентября 2009
my_save_cflags="$CFLAGS"
CFLAGS=-m64
AC_MSG_CHECKING([whether CC supports -m64])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
    [AC_MSG_RESULT([yes])]
    [AM_CFLAGS=-m64],
    [AC_MSG_RESULT([no])]
)
CFLAGS="$my_save_cflags"
AC_SUBST([AM_CFLAGS])

Использование AM_CFLAGS для добавления -m64 в сборку предполагает automake (или использование AM_CFLAGS в ваших собственных неавтоматических make-файлах.)

2 голосов
/ 29 октября 2013
dnl @synopsis CXX_FLAGS_CHECK [compiler flags]                                        
dnl @summary check whether compiler supports given C++ flags or not                   
AC_DEFUN([CXX_FLAG_CHECK],                                                            
[dnl                                                                                  
  AC_MSG_CHECKING([if $CXX supports $1])
  AC_LANG_PUSH([C++])
  ac_saved_cxxflags="$CXXFLAGS"                                                       
  CXXFLAGS="-Werror $1"                                                               
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],                                            
    [AC_MSG_RESULT([yes])],                                                           
    [AC_MSG_ERROR([no])]                                                              
  )                                                                                   
  CXXFLAGS="$ac_saved_cxxflags"                                                       
  AC_LANG_POP([C++])
])

И используйте

CXX_FLAGS_CHECK([-m64])
...