Vous posez deux questions différentes ici: d'abord, comment ajouter un argument --enable
à configure
; et deuxièmement, comment avoir cet argument affecte la construction d'une manière spécifique.
L'ajout d'un argument est effectué en utilisant AC_ARG_ENABLE
. Il prend le nom de la fonctionnalité, une chaîne d'aide et quelques actions facultatives. Ainsi, par exemple:
AC_ARG_ENABLE(something, [enable the something feature])
(Dans la vraie vie, vous devriez utiliser AS_HELP_STRING
pour construire la chaîne d'aide ici.)
Cela ajoute --enable-something
et --disable-something
à configure
; et, important, ajoute une nouvelle variable qui peut être utilisée pour vérifier ce que l'utilisateur a fait.
La définition d'une macro transmise au compilateur C se fait avec AC_DEFINE
. Ainsi, vous pouvez accomplir ce que vous voulez en cochant la nouvelle variable:
if test "$enable_something" = yes; then
AC_DEFINE([SOMETHING], [1], [define to enable the something feature])
fi
Cela entraînera -DSOMETHING=1
à passer à la compilation; ou bien émettra #define SOMETHING 1
dans votre config.h
.
Voici un très bon aperçu de la façon de procéder: https://autotools.io/autoconf/arguments.html – ptomato