Как мне указать autoconf не проверять fortran, C++ и т. д., когда мой пакет собран только на C?

Это беспокоило меня годами, но я просто игнорировал это, как и все остальные.

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]) и пару других трюков с переменными оболочки (определенно кажется неправильным...), чтобы посмотреть, смогу ли я это отключить.

Кто-нибудь знает благословленный autoconf/automake/libtool способ настроить зондирование только для C?


person Wez Furlong    schedule 27.11.2010    source источник


Ответы (2)


Если вы используете libtool 1.5 или более раннюю версию, вам придется прибегнуть к пакости. Поместите это в свой configure.ac:

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

Или вы можете переключиться на libtool 2.2 или более позднюю версию, она автоматически (и более разумно) определяет, какие компиляторы искать.

person ptomato    schedule 28.11.2010
comment
Я приму m4_defun как эффективный и не слишком грязный трюк; Благодарность! - person Wez Furlong; 29.11.2010

Как говорит 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
person Jack Kelly    schedule 28.11.2010