Версия пакета (см. AC_INIT
) моего среднего проекта autotools довольно часто меняется. При изменении версии пакета я мучаюсь от ненужной пересборки всего проекта, потому что PACKAGE_VERSION
и друзья в config.h
изменились, а config.h
включен во все исходники.
На самом деле версия требуется только в одном исходном файле, и я хотел бы поместить эти определения в отдельный сгенерированный заголовок и включить его в этот исходный файл.
В файле general.m4
, принадлежащем autoconf, я вижу следующее:
m4_define([_AC_INIT_PREPARE],
...
AC_DEFINE_UNQUOTED([PACKAGE_VERSION], ["$PACKAGE_VERSION"],
[Define to the version of this package.])dnl
AC_DEFINE_UNQUOTED([PACKAGE_STRING], ["$PACKAGE_STRING"],
[Define to the full name and version of this package.])dnl
В файле init.m4
, принадлежащем automake:
AC_DEFUN([AM_INIT_AUTOMAKE],
...
AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
Я хотел бы отменить эффекты всех трех. В настоящее время мой configure.ac
имеет следующие строки:
AC_INIT(pkgname, [1.2.3])
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE([1.11 parallel-tests -Wno-portability tar-ustar])