Как мне сказать autoconf не проверять фортран, C ++ и т. Д., Когда мой пакет собран только в C? - PullRequest
2 голосов
/ 27 ноября 2010

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

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?

Ответы [ 2 ]

6 голосов
/ 28 ноября 2010

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

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

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

2 голосов
/ 29 ноября 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
...