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