当我的包只用C构建时,如何告诉autoconf不要探测fortran,C ++等?

时间:2010-11-27 16:42:54

标签: autotools autoconf automake libtool

这一直困扰着我多年,但我一直忽视它,就像我怀疑其他人一样。

AM_INIT_AUTOMAKE([dist-bzip2])
AC_PROG_CC
AC_PROG_LIBTOOL
AC_C_INLINE
AM_PROG_CC_C_O

使用我的configure.ac文件中的上述内容,configure将会找到一个C编译器,但接着继续:

checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for xlf... no
checking for f77... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for xlf90... no
checking for f90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... gfortran
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether gfortran accepts -g... yes
checking the maximum length of command line arguments... 1966080

这并没有真正伤害任何东西,它只是增加了视觉噪音,让事情需要更长时间才能运行 - 再次,它并不重要,但它已经困扰了我多年。

我尝试过使用--with-tags = C,AC_LANG([C])以及其他几个带有shell变量的技巧(肯定感觉就像是错误的方法......)看看我是否可以关闭它

有没有人知道autoconf / automake / libtool有福的方式只为C进行配置探测?

2 个答案:

答案 0 :(得分:6)

如果使用libtool 1.5或更早版本,则必须使用脏技巧。把它放在你的configure.ac:

m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
m4_defun([_LT_AC_LANG_F77_CONFIG], [:])

或者您可以切换到libtool 2.2或更高版本,它会自动(并且更智能地)检测要查找的编译器。

答案 1 :(得分:2)

正如ptomato所说,正确的方法是使用现代的libtool。在configure.ac中:

# Set up libtool. The argument enables support for win32 DLLs
# and replaces AC_LIBTOOL_WIN32_DLL.
LT_INIT([win32-dll])
# Add C support to libtool
AC_PROG_CC