需要一个autoconf宏来检测-m64是否是一个有效的编译器选项

时间:2009-08-30 21:49:28

标签: gcc autoconf

我想在所有unix系统上编译代码,但是如果-m64我可用并且它可以工作,我希望configure脚本能够使用它。如何让autoconf检查-m64是否有效,如果有效,请使用它?

2 个答案:

答案 0 :(得分:10)

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 (或在您自己的非自动化makefile中使用AM_CFLAGS。)

答案 1 :(得分:2)

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])