Здесь вы задаете два разных вопроса: во-первых, как добавить аргумент --enable
в configure
; и во-вторых, как этот аргумент влияет на сборку определенным образом.
Добавление аргумента выполняется с использованием AC_ARG_ENABLE
. Он принимает имя функции, строку справки и некоторые необязательные действия. Так, например:
AC_ARG_ENABLE(something, [enable the something feature])
(В реальной жизни вы должны использовать AS_HELP_STRING
для построения строки помощи здесь.)
Это добавляет --enable-something
и --disable-something
к configure
; и, что важно, добавляет новую переменную enable_something
, которая может быть использована для проверки того, что сделал пользователь.
Определение макроса, переданного компилятору C, выполняется с помощью AC_DEFINE
. Таким образом, вы можете сделать то, что вы хотите, проверяя новую переменную:
if test "$enable_something" = yes; then
AC_DEFINE([SOMETHING], [1], [define to enable the something feature])
fi
Это заставит -DSOMETHING=1
быть переданы компиляции; или, альтернативно, будет излучать #define SOMETHING 1
в ваш config.h
.
Это довольно хороший обзор того, как это сделать: https://autotools.io/autoconf/arguments.html – ptomato